{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/inttegro-com/json-schema/inttegro-com-post-otp-initiate-request-schema.json",
  "title": "PostOtpInitiateRequest",
  "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/PostOtpInitiateRequest",
  "type": "object",
  "properties": {
    "recipient": {
      "type": "string",
      "description": "International phone number that will receive SMS, such as +233241234567, or a bare email address."
    },
    "serviceName": {
      "type": "string",
      "description": "Service or application name substituted for {service} in the message template. Length: 2-20 characters."
    },
    "purpose": {
      "type": "string",
      "description": "Intent of the verification flow. Supported values are account_creation, account_recovery, email_verification, financial_account_verification, password_reset, payment_confirmation, payment_method_verification, payout_confirmation, phone_verification, sensitive_action, sign_in, transaction_confirmation, and unspecified."
    },
    "tokenSize": {
      "type": "number",
      "description": "Generated token length. The current API requires a value from 5 through 10, inclusive."
    },
    "asyncDelivery": {
      "type": "boolean",
      "description": "When false or omitted, the request waits for the initial transmission attempt. When true, the transaction can be returned before transmission details are available, with status PendingDelivery."
    },
    "messageTemplate": {
      "type": "string",
      "description": "Custom SMS body or email copy. It must include {token} exactly once and can include {service}."
    },
    "sender": {
      "type": "string",
      "description": "SMS sender identifier (3-12 characters). Email OTP always uses {service_name} <no-reply@inttegro.com>; omit this field for email."
    },
    "preferredGateway": {
      "type": "string",
      "description": "Optional SMS gateway. Do not supply it for email OTP; email uses the configured default provider."
    },
    "transport": {
      "type": "string",
      "description": "Optional \"sms\" or \"email\". A phone recipient selects SMS and an email recipient selects email when omitted."
    },
    "tokenAlphabet": {
      "type": "string",
      "description": "Custom alphabet for token generation. Mutually exclusive with tokenAlphabetType."
    },
    "tokenAlphabetType": {
      "type": "string",
      "description": "Predefined alphabet type for token generation. Supported values are Alpha, Alphanumeric, and Numeric. Mutually exclusive with tokenAlphabet."
    },
    "validityDurationInMinutes": {
      "type": "number",
      "description": "How long the token remains valid. Accepted values are 3 through 10,080 minutes (7 days), inclusive. Defaults to 10 minutes."
    }
  },
  "required": [
    "recipient",
    "serviceName",
    "purpose"
  ]
}