{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/inttegro-com/json-schema/inttegro-com-post-otp-initiate-response-schema.json",
  "title": "PostOtpInitiateResponse",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_ae-authored/inttegro-com-openapi-generated.yml#/components/schemas/PostOtpInitiateResponse",
  "type": "object",
  "properties": {
    "transaction": {
      "type": "object",
      "description": "OTP transaction object returned after initiation."
    },
    "transaction.id": {
      "type": "string",
      "description": "Unique identifier for this transaction—use it to verify tokens and lookup transaction status."
    },
    "transaction.expiresAt": {
      "type": "string",
      "description": "When this token expires and can no longer be verified."
    },
    "transaction.fullMessage": {
      "type": "string",
      "description": "The message template with the service name substituted and the token placeholder preserved as {token}."
    },
    "transaction.initiatedAt": {
      "type": "string",
      "description": "When this transaction was created and token generation began."
    },
    "transaction.status": {
      "type": "string",
      "description": "Current transaction status."
    },
    "transaction.cancelReason": {
      "type": "string",
      "description": "Explanation for why this transaction was canceled. Omitted unless status is Canceled."
    },
    "transaction.canceledAt": {
      "type": "string",
      "description": "When this transaction was canceled. Omitted unless status is Canceled."
    },
    "transaction.transmission": {
      "type": "object",
      "description": "Delivery details for the OTP message."
    },
    "transaction.transmission.recipient": {
      "type": "string",
      "description": "Normalized international phone number or bare email address targeted by delivery."
    },
    "transaction.transmission.senderId": {
      "type": "string",
      "description": "SMS sender identifier or no-reply@inttegro.com for email OTP."
    },
    "transaction.transmission.sentAt": {
      "type": "string",
      "description": "When the message was sent. Omitted until the delivery attempt."
    },
    "transaction.transmission.sentVia": {
      "type": "string",
      "description": "Delivery mechanism: \"sms\" or \"email\". Omitted until the delivery attempt starts."
    },
    "transaction.transmission.status": {
      "type": "string",
      "description": "Delivery status: Submitted, Delivered, or Failed for SMS; accepted for email. Omitted until the delivery attempt."
    }
  }
}