> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lightspark.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Add an external account

> Register a new external bank account or wallet for the authenticated agent's customer. Requires the MANAGE_EXTERNAL_ACCOUNTS permission in the agent's policy. The `customerId` field is optional and will be inferred from the agent's associated customer if omitted.




## OpenAPI

````yaml https://app.stainless.com/api/spec/documented/grid/openapi.documented.yml post /agents/me/external-accounts
openapi: 3.1.0
info:
  title: Grid API
  description: >
    API for managing global payments on the open Money Grid. Built by
    Lightspark. See the full documentation at https://docs.lightspark.com/.
  version: '2025-10-13'
  contact:
    name: Lightspark Support
    email: support@lightspark.com
  license:
    name: Proprietary
    url: https://lightspark.com/terms
servers:
  - url: https://api.lightspark.com/grid/2025-10-13
    description: Production server
security:
  - BasicAuth: []
  - AgentAuth: []
tags:
  - name: Platform Configuration
    description: >-
      Platform configuration endpoints for managing global settings. You can
      also configure these settings in the Grid dashboard.
  - name: Customers
    description: >-
      Customer management endpoints for creating and updating customer
      information
  - name: KYC/KYB Verifications
    description: >-
      Endpoints for Know Your Customer (KYC) and Know Your Business (KYB)
      verification, including managing beneficial owners and triggering
      verification for customers.
  - name: Documents
    description: >-
      Endpoints for uploading and managing verification documents for customers
      and beneficial owners. Supports KYC and KYB document requirements.
  - name: Internal Accounts
    description: >-
      Internal account management endpoints for creating and managing internal
      accounts
  - name: External Accounts
    description: >-
      External account management endpoints for creating and managing external
      bank accounts
  - name: Same-Currency Transfers
    description: >-
      Endpoints for transferring funds between internal and external accounts
      with the same currency
  - name: Cross-Currency Transfers
    description: Endpoints for creating and confirming quotes for cross-currency transfers
  - name: Transactions
    description: Endpoints for retrieving transaction information
  - name: Webhooks
    description: Webhook endpoints and configuration for receiving notifications
  - name: Invitations
    description: Endpoints for creating, claiming and managing UMA invitations
  - name: Sandbox
    description: Endpoints to trigger test cases in sandbox
  - name: API Tokens
    description: Endpoints to programmatically manage API tokens
  - name: Exchange Rates
    description: >-
      Endpoints for retrieving cached foreign exchange rates. Rates are cached
      for approximately 5 minutes and include platform-specific fees.
  - name: Discoveries
    description: >-
      Endpoints for discovering available payment rails, banks, and providers
      for a given country and currency corridor.
  - name: Embedded Wallet Auth
    description: >-
      Endpoints for registering and verifying end-user authentication
      credentials (email OTP, OAuth, passkey) used to sign Embedded Wallet
      actions.
  - name: Agent Management
    description: >-
      Endpoints for creating and managing agents (experimental), called by the
      partner's backend using platform credentials. Covers the full agent
      lifecycle: creation, policy configuration, pausing, deletion, the device
      code installation flow, and approving or rejecting transactions initiated
      by agents.
  - name: Agent Operations
    description: >-
      Endpoints called by the agent itself using its own credentials (obtained
      via device code redemption). Scoped to the agent's associated customer —
      all requests automatically operate on behalf of that customer and are
      subject to the agent's policy. When an action requires approval, the
      resulting transaction enters a pending state and must be approved by the
      platform via `POST /transactions/{transactionId}/approve`.
  - name: Cards
    description: >-
      Card management endpoints. Issue debit cards against an internal account,
      freeze / unfreeze, close, manage card funding sources, and list card
      transactions.
paths:
  /agents/me/external-accounts:
    post:
      tags:
        - Agent Operations
      summary: Add an external account
      description: >
        Register a new external bank account or wallet for the authenticated
        agent's customer. Requires the MANAGE_EXTERNAL_ACCOUNTS permission in
        the agent's policy. The `customerId` field is optional and will be
        inferred from the agent's associated customer if omitted.
      operationId: agentCreateExternalAccount
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalAccountCreateRequest'
            examples:
              usBankAccount:
                summary: Create external US bank account
                value:
                  currency: USD
                  accountInfo:
                    accountType: USD_ACCOUNT
                    accountNumber: '12345678901'
                    routingNumber: '123456789'
                    bankAccountType: CHECKING
                    bankName: Chase Bank
                    beneficiary:
                      beneficiaryType: INDIVIDUAL
                      fullName: John Doe
                      birthDate: '1990-01-15'
                      nationality: US
                      address:
                        line1: 123 Main Street
                        city: San Francisco
                        state: CA
                        postalCode: '94105'
                        country: US
              sparkWallet:
                summary: Create external Spark wallet
                value:
                  currency: BTC
                  accountInfo:
                    accountType: SPARK_WALLET
                    address: >-
                      spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu
      responses:
        '201':
          description: External account created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalAccount'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error401'
        '409':
          description: Conflict - External account already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error409'
        '500':
          description: Internal service error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - AgentAuth: []
      x-codeSamples:
        - lang: JavaScript
          source: >-
            import LightsparkGrid from '@lightsparkdev/grid';


            const client = new LightsparkGrid({
              agentAccessToken: process.env['GRID_AGENT_ACCESS_TOKEN'], // This is the default and can be omitted
            });


            const externalAccount = await
            client.agents.me.externalAccounts.add({
              accountInfo: {
                accountType: 'USD_ACCOUNT',
                accountNumber: '12345678901',
                routingNumber: '123456789',
                beneficiary: {
                  beneficiaryType: 'INDIVIDUAL',
                  fullName: 'John Doe',
                  birthDate: '1990-01-15',
                  nationality: 'US',
                  address: {
                    line1: '123 Main Street',
                    city: 'San Francisco',
                    state: 'CA',
                    postalCode: '94105',
                    country: 'US',
                  },
                },
              },
              currency: 'USD',
            });


            console.log(externalAccount.id);
        - lang: Python
          source: |-
            import os
            from grid import LightsparkGrid

            client = LightsparkGrid(
                agent_access_token=os.environ.get("GRID_AGENT_ACCESS_TOKEN"),  # This is the default and can be omitted
            )
            external_account = client.agents.me.external_accounts.add(
                account_info={
                    "account_type": "USD_ACCOUNT",
                    "account_number": "12345678901",
                    "routing_number": "123456789",
                    "beneficiary": {
                        "beneficiary_type": "INDIVIDUAL",
                        "full_name": "John Doe",
                        "birth_date": "1990-01-15",
                        "nationality": "US",
                        "address": {
                            "line1": "123 Main Street",
                            "city": "San Francisco",
                            "state": "CA",
                            "postal_code": "94105",
                            "country": "US",
                        },
                    },
                },
                currency="USD",
            )
            print(external_account.id)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/stainless-sdks/grid-go\"\n\t\"github.com/stainless-sdks/grid-go/option\"\n\t\"github.com/stainless-sdks/grid-go/shared\"\n)\n\nfunc main() {\n\tclient := grid.NewClient(\n\t\toption.WithAgentAccessToken(\"My Agent Access Token\"),\n\t)\n\texternalAccount, err := client.Agents.Me.ExternalAccounts.Add(context.TODO(), grid.AgentMeExternalAccountAddParams{\n\t\tExternalAccountCreate: grid.ExternalAccountCreateParam{\n\t\t\tAccountInfo: grid.ExternalAccountCreateAccountInfoUnionParam{\n\t\t\t\tOfAedAccount: &shared.AedExternalAccountCreateInfoParam{\n\t\t\t\t\tAccountType: shared.AedExternalAccountCreateInfoAccountTypeAedAccount,\n\t\t\t\t\tBeneficiary: shared.AedExternalAccountCreateInfoBeneficiaryUnionParam{\n\t\t\t\t\t\tOfIndividual: &shared.AedBeneficiaryParam{\n\t\t\t\t\t\t\tAddress: grid.AddressParam{\n\t\t\t\t\t\t\t\tCountry:    \"US\",\n\t\t\t\t\t\t\t\tLine1:      \"123 Main Street\",\n\t\t\t\t\t\t\t\tPostalCode: \"94105\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tBeneficiaryType: shared.AedBeneficiaryBeneficiaryTypeIndividual,\n\t\t\t\t\t\t\tFullName:        \"fullName\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tIban: \"AE070331234567890123456\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tCurrency: \"USD\",\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", externalAccount.ID)\n}\n"
        - lang: Kotlin
          source: >-
            package com.lightspark.grid.example


            import com.lightspark.grid.client.LightsparkGridClient

            import com.lightspark.grid.client.okhttp.LightsparkGridOkHttpClient

            import com.lightspark.grid.models.AedBeneficiary

            import com.lightspark.grid.models.AedExternalAccountCreateInfo

            import com.lightspark.grid.models.customers.externalaccounts.Address

            import
            com.lightspark.grid.models.customers.externalaccounts.ExternalAccount

            import
            com.lightspark.grid.models.customers.externalaccounts.ExternalAccountCreate


            fun main() {
                val client: LightsparkGridClient = LightsparkGridOkHttpClient.fromEnv()

                val params: ExternalAccountCreate = ExternalAccountCreate.builder()
                    .accountInfo(AedExternalAccountCreateInfo.builder()
                        .accountType(AedExternalAccountCreateInfo.AccountType.AED_ACCOUNT)
                        .beneficiary(AedBeneficiary.builder()
                            .address(Address.builder()
                                .country("US")
                                .line1("123 Main Street")
                                .postalCode("94105")
                                .build())
                            .beneficiaryType(AedBeneficiary.BeneficiaryType.INDIVIDUAL)
                            .fullName("fullName")
                            .build())
                        .iban("AE070331234567890123456")
                        .build())
                    .currency("USD")
                    .build()
                val externalAccount: ExternalAccount = client.agents().me().externalAccounts().add(params)
            }
        - lang: Ruby
          source: >-
            require "grid"


            lightspark_grid = Grid::Client.new(agent_access_token: "My Agent
            Access Token")


            external_account = lightspark_grid.agents.me.external_accounts.add(
              account_info: {
                accountType: :AED_ACCOUNT,
                beneficiary: {
                  address: {country: "US", line1: "123 Main Street", postalCode: "94105"},
                  beneficiaryType: :INDIVIDUAL,
                  fullName: "fullName"
                },
                iban: "AE070331234567890123456"
              },
              currency: "USD"
            )


            puts(external_account)
        - lang: PHP
          source: |-
            <?php

            require_once dirname(__DIR__) . '/vendor/autoload.php';

            use Grid\Client;
            use Grid\Core\Exceptions\APIException;

            $client = new Client(
              agentAccessToken: getenv('GRID_AGENT_ACCESS_TOKEN') ?: 'My Agent Access Token'
            );

            try {
              $externalAccount = $client->agents->me->externalAccounts->add(
                accountInfo: [
                  'accountType' => 'AED_ACCOUNT',
                  'beneficiary' => [
                    'address' => [
                      'country' => 'US',
                      'line1' => '123 Main Street',
                      'postalCode' => '94105',
                      'city' => 'San Francisco',
                      'line2' => 'Apt 4B',
                      'state' => 'CA',
                    ],
                    'beneficiaryType' => 'INDIVIDUAL',
                    'fullName' => 'fullName',
                    'birthDate' => 'birthDate',
                    'countryOfResidence' => 'countryOfResidence',
                    'email' => 'email',
                    'nationality' => 'nationality',
                    'phoneNumber' => 'phoneNumber',
                  ],
                  'iban' => 'AE070331234567890123456',
                  'swiftCode' => 'EBILAEAD',
                ],
                currency: 'USD',
                customerID: 'Customer:019542f5-b3e7-1d02-0000-000000000001',
                defaultUmaDepositAccount: true,
                platformAccountID: 'ext_acc_123456',
              );

              var_dump($externalAccount);
            } catch (APIException $e) {
              echo $e->getMessage();
            }
        - lang: C#
          source: >-
            using System;

            using Grid;

            using Grid.Models;

            using Grid.Models.Agents.Me.ExternalAccounts;


            LightsparkGridClient client = new();


            ExternalAccountAddParams parameters = new()

            {
                AccountInfo = new AedExternalAccountCreateInfo()
                {
                    AccountType = AccountType.AedAccount,
                    Beneficiary = new AedBeneficiary()
                    {
                        Address = new()
                        {
                            Country = "US",
                            Line1 = "123 Main Street",
                            PostalCode = "94105",
                            City = "San Francisco",
                            Line2 = "Apt 4B",
                            State = "CA",
                        },
                        BeneficiaryType = BeneficiaryType.Individual,
                        FullName = "fullName",
                        BirthDate = "birthDate",
                        CountryOfResidence = "countryOfResidence",
                        Email = "email",
                        Nationality = "nationality",
                        PhoneNumber = "phoneNumber",
                    },
                    Iban = "AE070331234567890123456",
                    SwiftCode = "EBILAEAD",
                },
                Currency = "USD",
            };


            var externalAccount = await
            client.Agents.Me.ExternalAccounts.Add(parameters);


            Console.WriteLine(externalAccount);
        - lang: CLI
          source: |-
            grid agents:me:external-accounts add \
              --agent-access-token 'My Agent Access Token' \
              --account-info "{accountType: AED_ACCOUNT, beneficiary: {address: {country: US, line1: 123 Main Street, postalCode: '94105'}, beneficiaryType: INDIVIDUAL, fullName: fullName}, iban: AE070331234567890123456}" \
              --currency USD
components:
  schemas:
    ExternalAccountCreateRequest:
      allOf:
        - type: object
          required:
            - currency
            - accountInfo
          properties:
            customerId:
              type: string
              description: >-
                The ID of the customer for whom to create the external account.
                If not provided, the external account will be created on behalf
                of the platform.
              example: Customer:019542f5-b3e7-1d02-0000-000000000001
            currency:
              type: string
              description: The ISO 4217 currency code
              example: USD
            platformAccountId:
              type: string
              description: >-
                Your platform's identifier for the account in your system. This
                can be used to reference the account by your own identifier.
              example: ext_acc_123456
            defaultUmaDepositAccount:
              type: boolean
              description: >-
                Whether to set the external account as the default UMA deposit
                account. When set to true, incoming payments to this customer's
                UMA address will be automatically deposited into this external
                account. False if not provided. Note that only one external
                account can be set as the default UMA deposit account for a
                customer, so if there is already a default UMA deposit account,
                this will override the existing default UMA deposit account. If
                there is no default UMA deposit account, incoming UMA payments
                will be deposited into the primary internal account for the
                customer.
              default: false
            accountInfo:
              $ref: '#/components/schemas/ExternalAccountCreateInfoOneOf'
    ExternalAccount:
      allOf:
        - type: object
          required:
            - id
            - status
            - currency
            - accountInfo
          properties:
            id:
              type: string
              description: The system generated identifier of this account
              example: ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965
            customerId:
              type: string
              description: >-
                The customer this account is tied to, or null if the account is
                on behalf of the platform.
              example: Customer:da459a29-1fb7-41ce-a4cb-eb3a3c9fd7a7
            status:
              $ref: '#/components/schemas/ExternalAccountStatus'
              description: Status of the external account
              example: ACTIVE
            platformAccountId:
              type: string
              description: Optional platform-specific identifier for this account
              example: acc_123456789
            currency:
              type: string
              description: The ISO 4217 currency code
              example: USD
            defaultUmaDepositAccount:
              type: boolean
              description: >-
                Whether this account is the default UMA deposit account for the
                customer. If true, incoming UMA payments to this customer's UMA
                address will be automatically deposited into this account
                instead of the primary internal account. False if not provided.
                Note that at most, one external account can be set as the
                default UMA deposit account for a customer. If there is no
                default UMA deposit account, incoming UMA payments will be
                deposited into the primary internal account for the customer.
              example: false
            beneficiaryVerificationStatus:
              $ref: '#/components/schemas/BeneficiaryVerificationStatus'
              description: >-
                The result of verifying the beneficiary name against the account
                holder name
            beneficiaryVerifiedData:
              $ref: '#/components/schemas/BeneficiaryVerifiedData'
              description: >-
                Verified beneficiary data returned by the payment rail, if
                available
            accountInfo:
              $ref: '#/components/schemas/ExternalAccountInfoOneOf'
    Error400:
      type: object
      required:
        - message
        - status
        - code
      properties:
        status:
          type: integer
          enum:
            - 400
          description: HTTP status code
        code:
          type: string
          description: >
            | Error Code | Description |

            |------------|-------------|

            | INVALID_INPUT | Invalid input provided |

            | MISSING_MANDATORY_USER_INFO | Required customer information is
            missing |

            | INVITATION_ALREADY_CLAIMED | Invitation has already been claimed |

            | INVITATIONS_NOT_CONFIGURED | Invitations are not configured |

            | INVALID_UMA_ADDRESS | UMA address format is invalid |

            | INVITATION_CANCELLED | Invitation has been cancelled |

            | QUOTE_REQUEST_FAILED | An issue occurred during the quote process;
            this is retryable |

            | INVALID_PAYREQ_RESPONSE | Counterparty Payreq response was invalid
            |

            | INVALID_RECEIVER | Receiver is invalid |

            | PARSE_PAYREQ_RESPONSE_ERROR | Error parsing receiver PayReq
            response |

            | CERT_CHAIN_INVALID | Counterparty certificate chain is invalid |

            | CERT_CHAIN_EXPIRED | Counterparty certificate chain has expired |

            | INVALID_PUBKEY_FORMAT | Counterparty Public key format is invalid
            |

            | MISSING_REQUIRED_UMA_PARAMETERS | Counterparty required UMA
            parameters are missing |

            | SENDER_NOT_ACCEPTED | Sender is not accepted |

            | AMOUNT_OUT_OF_RANGE | Amount is out of range |

            | INVALID_CURRENCY | Currency is invalid |

            | INVALID_TIMESTAMP | Timestamp is invalid |

            | INVALID_NONCE | Nonce is invalid |

            | INVALID_REQUEST_FORMAT | Request format is invalid |

            | INVALID_BANK_ACCOUNT | Bank account is invalid |

            | SELF_PAYMENT | Self payment not allowed |

            | LOOKUP_REQUEST_FAILED | Lookup request failed |

            | PARSE_LNURLP_RESPONSE_ERROR | Error parsing LNURLP response |

            | INVALID_AMOUNT | Amount is invalid |

            | WEBHOOK_ENDPOINT_NOT_SET | Webhook endpoint is not set |

            | WEBHOOK_DELIVERY_ERROR | Webhook delivery error |

            | LOW_QUALITY | Document quality too low to process |

            | DATA_MISMATCH | Document details don't match provided information
            |

            | EXPIRED | Document has expired |

            | SUSPECTED_FRAUD | Document suspected of being forged or edited |

            | UNSUITABLE_DOCUMENT | Document type is not accepted or not
            supported |

            | INCOMPLETE | Document is missing pages or sides |

            | EMAIL_OTP_CREDENTIAL_ALREADY_EXISTS | An EMAIL_OTP credential is
            already registered on the target internal account; only one email
            OTP credential is supported per internal account at this time |

            | PASSKEY_CREDENTIAL_ALREADY_EXISTS | A PASSKEY credential with the
            same WebAuthn credentialId is already registered on the target
            internal account |
          enum:
            - INVALID_INPUT
            - MISSING_MANDATORY_USER_INFO
            - INVITATION_ALREADY_CLAIMED
            - INVITATIONS_NOT_CONFIGURED
            - INVALID_UMA_ADDRESS
            - INVITATION_CANCELLED
            - QUOTE_REQUEST_FAILED
            - INVALID_PAYREQ_RESPONSE
            - INVALID_RECEIVER
            - PARSE_PAYREQ_RESPONSE_ERROR
            - CERT_CHAIN_INVALID
            - CERT_CHAIN_EXPIRED
            - INVALID_PUBKEY_FORMAT
            - MISSING_REQUIRED_UMA_PARAMETERS
            - SENDER_NOT_ACCEPTED
            - AMOUNT_OUT_OF_RANGE
            - INVALID_CURRENCY
            - INVALID_TIMESTAMP
            - INVALID_NONCE
            - INVALID_REQUEST_FORMAT
            - INVALID_BANK_ACCOUNT
            - SELF_PAYMENT
            - LOOKUP_REQUEST_FAILED
            - PARSE_LNURLP_RESPONSE_ERROR
            - INVALID_AMOUNT
            - WEBHOOK_ENDPOINT_NOT_SET
            - WEBHOOK_DELIVERY_ERROR
            - LOW_QUALITY
            - DATA_MISMATCH
            - EXPIRED
            - SUSPECTED_FRAUD
            - UNSUITABLE_DOCUMENT
            - INCOMPLETE
            - EMAIL_OTP_CREDENTIAL_ALREADY_EXISTS
            - PASSKEY_CREDENTIAL_ALREADY_EXISTS
        message:
          type: string
          description: Error message
        details:
          type: object
          description: Additional error details
          additionalProperties: true
    Error401:
      type: object
      required:
        - message
        - status
        - code
      properties:
        status:
          type: integer
          enum:
            - 401
          description: HTTP status code
        code:
          type: string
          description: >
            | Error Code | Description |

            |------------|-------------|

            | UNAUTHORIZED | Issue with API credentials |

            | INVALID_SIGNATURE | Signature header is invalid |

            | WALLET_SIGNATURE_MISSING | The `Grid-Wallet-Signature` header is
            required for this Embedded Wallet action but was not supplied |

            | WALLET_SIGNATURE_MALFORMED | The `Grid-Wallet-Signature` header
            could not be parsed (bad encoding, structure, or fields) |

            | WALLET_SIGNATURE_BODY_MISMATCH | The `Grid-Wallet-Signature` was
            computed over a different request body than the one received |

            | WALLET_SIGNATURE_INVALID | The `Grid-Wallet-Signature` failed
            cryptographic verification against the registered credential |

            | REQUEST_ID_MISSING | The `Request-Id` header is required on the
            signed retry but was not supplied (paired with
            `Grid-Wallet-Signature`) |
          enum:
            - UNAUTHORIZED
            - INVALID_SIGNATURE
            - WALLET_SIGNATURE_MISSING
            - WALLET_SIGNATURE_MALFORMED
            - WALLET_SIGNATURE_BODY_MISMATCH
            - WALLET_SIGNATURE_INVALID
            - REQUEST_ID_MISSING
        message:
          type: string
          description: Error message
        details:
          type: object
          description: Additional error details
          additionalProperties: true
    Error409:
      type: object
      required:
        - message
        - status
        - code
      properties:
        status:
          type: integer
          enum:
            - 409
          description: HTTP status code
        code:
          type: string
          description: >
            | Error Code | Description |

            |------------|-------------|

            | TRANSACTION_NOT_PENDING_PLATFORM_APPROVAL | Transaction is not
            pending platform approval |

            | UMA_ADDRESS_EXISTS | UMA address already exists |

            | EMAIL_OTP_EMAIL_ALREADY_EXISTS | Email address is already
            associated with an EMAIL_OTP credential |

            | EMAIL_OTP_CREDENTIAL_SET_CHANGED | Tied EMAIL_OTP credential set
            changed after the signed-retry challenge was issued |

            | CONFLICT | Generic resource-state conflict. Returned, for example,
            when `platformCustomerId` on a customer create call collides with an
            existing active customer on the same platform |
          enum:
            - TRANSACTION_NOT_PENDING_PLATFORM_APPROVAL
            - UMA_ADDRESS_EXISTS
            - EMAIL_OTP_EMAIL_ALREADY_EXISTS
            - EMAIL_OTP_CREDENTIAL_SET_CHANGED
            - CONFLICT
        message:
          type: string
          description: Error message
        details:
          type: object
          description: Additional error details
          additionalProperties: true
    Error500:
      type: object
      required:
        - message
        - status
        - code
      properties:
        status:
          type: integer
          enum:
            - 500
          description: HTTP status code
        code:
          type: string
          description: |
            | Error Code | Description |
            |------------|-------------|
            | GRID_SWITCH_ERROR | Grid switch error |
            | INTERNAL_ERROR | Internal server or UMA error |
          enum:
            - GRID_SWITCH_ERROR
            - INTERNAL_ERROR
        message:
          type: string
          description: Error message
        details:
          type: object
          description: Additional error details
          additionalProperties: true
    ExternalAccountCreateInfoOneOf:
      oneOf:
        - $ref: '#/components/schemas/AedExternalAccountCreateInfo'
        - $ref: '#/components/schemas/BdtExternalAccountCreateInfo'
        - $ref: '#/components/schemas/BrlExternalAccountCreateInfo'
        - $ref: '#/components/schemas/BwpExternalAccountCreateInfo'
        - $ref: '#/components/schemas/CadExternalAccountCreateInfo'
        - $ref: '#/components/schemas/CnyExternalAccountCreateInfo'
        - $ref: '#/components/schemas/CopExternalAccountCreateInfo'
        - $ref: '#/components/schemas/DkkExternalAccountCreateInfo'
        - $ref: '#/components/schemas/EgpExternalAccountCreateInfo'
        - $ref: '#/components/schemas/EurExternalAccountCreateInfo'
        - $ref: '#/components/schemas/GbpExternalAccountCreateInfo'
        - $ref: '#/components/schemas/GhsExternalAccountCreateInfo'
        - $ref: '#/components/schemas/GtqExternalAccountCreateInfo'
        - $ref: '#/components/schemas/HkdExternalAccountCreateInfo'
        - $ref: '#/components/schemas/HtgExternalAccountCreateInfo'
        - $ref: '#/components/schemas/IdrExternalAccountCreateInfo'
        - $ref: '#/components/schemas/InrExternalAccountCreateInfo'
        - $ref: '#/components/schemas/JmdExternalAccountCreateInfo'
        - $ref: '#/components/schemas/KesExternalAccountCreateInfo'
        - $ref: '#/components/schemas/MwkExternalAccountCreateInfo'
        - $ref: '#/components/schemas/MxnExternalAccountCreateInfo'
        - $ref: '#/components/schemas/MyrExternalAccountCreateInfo'
        - $ref: '#/components/schemas/NgnExternalAccountCreateInfo'
        - $ref: '#/components/schemas/PhpExternalAccountCreateInfo'
        - $ref: '#/components/schemas/PkrExternalAccountCreateInfo'
        - $ref: '#/components/schemas/RwfExternalAccountCreateInfo'
        - $ref: '#/components/schemas/SgdExternalAccountCreateInfo'
        - $ref: '#/components/schemas/SlvExternalAccountCreateInfo'
        - $ref: '#/components/schemas/ThbExternalAccountCreateInfo'
        - $ref: '#/components/schemas/TzsExternalAccountCreateInfo'
        - $ref: '#/components/schemas/UgxExternalAccountCreateInfo'
        - $ref: '#/components/schemas/UsdExternalAccountCreateInfo'
        - $ref: '#/components/schemas/VndExternalAccountCreateInfo'
        - $ref: '#/components/schemas/XafExternalAccountCreateInfo'
        - $ref: '#/components/schemas/XofExternalAccountCreateInfo'
        - $ref: '#/components/schemas/ZarExternalAccountCreateInfo'
        - $ref: '#/components/schemas/ZmwExternalAccountCreateInfo'
        - $ref: '#/components/schemas/SwiftExternalAccountCreateInfo'
        - $ref: '#/components/schemas/BaseWalletExternalAccountInfo'
        - $ref: '#/components/schemas/EthereumWalletExternalAccountInfo'
        - $ref: '#/components/schemas/LightningExternalAccountInfo'
        - $ref: '#/components/schemas/PolygonWalletExternalAccountInfo'
        - $ref: '#/components/schemas/SolanaWalletExternalAccountInfo'
        - $ref: '#/components/schemas/SparkWalletExternalAccountInfo'
        - $ref: '#/components/schemas/TronWalletExternalAccountInfo'
      discriminator:
        propertyName: accountType
        mapping:
          AED_ACCOUNT:
            $ref: '#/components/schemas/AedExternalAccountCreateInfo'
          BDT_ACCOUNT:
            $ref: '#/components/schemas/BdtExternalAccountCreateInfo'
          BRL_ACCOUNT:
            $ref: '#/components/schemas/BrlExternalAccountCreateInfo'
          BWP_ACCOUNT:
            $ref: '#/components/schemas/BwpExternalAccountCreateInfo'
          CAD_ACCOUNT:
            $ref: '#/components/schemas/CadExternalAccountCreateInfo'
          CNY_ACCOUNT:
            $ref: '#/components/schemas/CnyExternalAccountCreateInfo'
          COP_ACCOUNT:
            $ref: '#/components/schemas/CopExternalAccountCreateInfo'
          DKK_ACCOUNT:
            $ref: '#/components/schemas/DkkExternalAccountCreateInfo'
          EGP_ACCOUNT:
            $ref: '#/components/schemas/EgpExternalAccountCreateInfo'
          EUR_ACCOUNT:
            $ref: '#/components/schemas/EurExternalAccountCreateInfo'
          GBP_ACCOUNT:
            $ref: '#/components/schemas/GbpExternalAccountCreateInfo'
          GHS_ACCOUNT:
            $ref: '#/components/schemas/GhsExternalAccountCreateInfo'
          GTQ_ACCOUNT:
            $ref: '#/components/schemas/GtqExternalAccountCreateInfo'
          HKD_ACCOUNT:
            $ref: '#/components/schemas/HkdExternalAccountCreateInfo'
          HTG_ACCOUNT:
            $ref: '#/components/schemas/HtgExternalAccountCreateInfo'
          IDR_ACCOUNT:
            $ref: '#/components/schemas/IdrExternalAccountCreateInfo'
          INR_ACCOUNT:
            $ref: '#/components/schemas/InrExternalAccountCreateInfo'
          JMD_ACCOUNT:
            $ref: '#/components/schemas/JmdExternalAccountCreateInfo'
          KES_ACCOUNT:
            $ref: '#/components/schemas/KesExternalAccountCreateInfo'
          MWK_ACCOUNT:
            $ref: '#/components/schemas/MwkExternalAccountCreateInfo'
          MXN_ACCOUNT:
            $ref: '#/components/schemas/MxnExternalAccountCreateInfo'
          MYR_ACCOUNT:
            $ref: '#/components/schemas/MyrExternalAccountCreateInfo'
          NGN_ACCOUNT:
            $ref: '#/components/schemas/NgnExternalAccountCreateInfo'
          PHP_ACCOUNT:
            $ref: '#/components/schemas/PhpExternalAccountCreateInfo'
          PKR_ACCOUNT:
            $ref: '#/components/schemas/PkrExternalAccountCreateInfo'
          RWF_ACCOUNT:
            $ref: '#/components/schemas/RwfExternalAccountCreateInfo'
          SGD_ACCOUNT:
            $ref: '#/components/schemas/SgdExternalAccountCreateInfo'
          SLV_ACCOUNT:
            $ref: '#/components/schemas/SlvExternalAccountCreateInfo'
          THB_ACCOUNT:
            $ref: '#/components/schemas/ThbExternalAccountCreateInfo'
          TZS_ACCOUNT:
            $ref: '#/components/schemas/TzsExternalAccountCreateInfo'
          UGX_ACCOUNT:
            $ref: '#/components/schemas/UgxExternalAccountCreateInfo'
          USD_ACCOUNT:
            $ref: '#/components/schemas/UsdExternalAccountCreateInfo'
          VND_ACCOUNT:
            $ref: '#/components/schemas/VndExternalAccountCreateInfo'
          XAF_ACCOUNT:
            $ref: '#/components/schemas/XafExternalAccountCreateInfo'
          XOF_ACCOUNT:
            $ref: '#/components/schemas/XofExternalAccountCreateInfo'
          ZAR_ACCOUNT:
            $ref: '#/components/schemas/ZarExternalAccountCreateInfo'
          ZMW_ACCOUNT:
            $ref: '#/components/schemas/ZmwExternalAccountCreateInfo'
          SWIFT_ACCOUNT:
            $ref: '#/components/schemas/SwiftExternalAccountCreateInfo'
          BASE_WALLET:
            $ref: '#/components/schemas/BaseWalletExternalAccountInfo'
          ETHEREUM_WALLET:
            $ref: '#/components/schemas/EthereumWalletExternalAccountInfo'
          LIGHTNING:
            $ref: '#/components/schemas/LightningExternalAccountInfo'
          POLYGON_WALLET:
            $ref: '#/components/schemas/PolygonWalletExternalAccountInfo'
          SOLANA_WALLET:
            $ref: '#/components/schemas/SolanaWalletExternalAccountInfo'
          SPARK_WALLET:
            $ref: '#/components/schemas/SparkWalletExternalAccountInfo'
          TRON_WALLET:
            $ref: '#/components/schemas/TronWalletExternalAccountInfo'
    ExternalAccountStatus:
      type: string
      enum:
        - PENDING
        - ACTIVE
        - UNDER_REVIEW
        - INACTIVE
      description: Status of an external account
    BeneficiaryVerificationStatus:
      type: string
      enum:
        - MATCHED
        - PARTIAL_MATCH
        - NOT_MATCHED
        - UNSUPPORTED
        - CHECKED_BY_RECEIVING_FI
        - PENDING
      description: >
        The result of verifying the beneficiary name against the account holder
        name.


        | Status | Description |

        |--------|-------------|

        | `MATCHED` | The beneficiary name is an exact match |

        | `PARTIAL_MATCH` | The beneficiary name is a fuzzy match |

        | `NOT_MATCHED` | The beneficiary name does not match |

        | `UNSUPPORTED` | The payment rail does not support name verification |

        | `CHECKED_BY_RECEIVING_FI` | Verification is deferred to the receiving
        financial institution (e.g. ACH) |

        | `PENDING` | Verification is still in progress |
    BeneficiaryVerifiedData:
      type: object
      properties:
        fullName:
          type: string
          description: >-
            The verified full name of the account holder as returned by the
            payment rail
          example: John Doe
    ExternalAccountInfoOneOf:
      oneOf:
        - $ref: '#/components/schemas/AedExternalAccountInfo'
        - $ref: '#/components/schemas/BdtExternalAccountInfo'
        - $ref: '#/components/schemas/BrlExternalAccountInfo'
        - $ref: '#/components/schemas/BwpExternalAccountInfo'
        - $ref: '#/components/schemas/CadExternalAccountInfo'
        - $ref: '#/components/schemas/CopExternalAccountInfo'
        - $ref: '#/components/schemas/DkkExternalAccountInfo'
        - $ref: '#/components/schemas/EgpExternalAccountInfo'
        - $ref: '#/components/schemas/EurExternalAccountInfo'
        - $ref: '#/components/schemas/GbpExternalAccountInfo'
        - $ref: '#/components/schemas/GhsExternalAccountInfo'
        - $ref: '#/components/schemas/GtqExternalAccountInfo'
        - $ref: '#/components/schemas/HkdExternalAccountInfo'
        - $ref: '#/components/schemas/HtgExternalAccountInfo'
        - $ref: '#/components/schemas/IdrExternalAccountInfo'
        - $ref: '#/components/schemas/InrExternalAccountInfo'
        - $ref: '#/components/schemas/JmdExternalAccountInfo'
        - $ref: '#/components/schemas/KesExternalAccountInfo'
        - $ref: '#/components/schemas/MwkExternalAccountInfo'
        - $ref: '#/components/schemas/MxnExternalAccountInfo'
        - $ref: '#/components/schemas/MyrExternalAccountInfo'
        - $ref: '#/components/schemas/NgnExternalAccountInfo'
        - $ref: '#/components/schemas/PhpExternalAccountInfo'
        - $ref: '#/components/schemas/PkrExternalAccountInfo'
        - $ref: '#/components/schemas/RwfExternalAccountInfo'
        - $ref: '#/components/schemas/SgdExternalAccountInfo'
        - $ref: '#/components/schemas/SlvExternalAccountInfo'
        - $ref: '#/components/schemas/ThbExternalAccountInfo'
        - $ref: '#/components/schemas/TzsExternalAccountInfo'
        - $ref: '#/components/schemas/UgxExternalAccountInfo'
        - $ref: '#/components/schemas/UsdExternalAccountInfo'
        - $ref: '#/components/schemas/VndExternalAccountInfo'
        - $ref: '#/components/schemas/XafExternalAccountInfo'
        - $ref: '#/components/schemas/XofExternalAccountInfo'
        - $ref: '#/components/schemas/ZarExternalAccountInfo'
        - $ref: '#/components/schemas/ZmwExternalAccountInfo'
        - $ref: '#/components/schemas/SwiftExternalAccountInfo'
        - $ref: '#/components/schemas/BaseWalletExternalAccountInfo'
        - $ref: '#/components/schemas/EthereumWalletExternalAccountInfo'
        - $ref: '#/components/schemas/LightningExternalAccountInfo'
        - $ref: '#/components/schemas/PolygonWalletExternalAccountInfo'
        - $ref: '#/components/schemas/SolanaWalletExternalAccountInfo'
        - $ref: '#/components/schemas/SparkWalletExternalAccountInfo'
        - $ref: '#/components/schemas/TronWalletExternalAccountInfo'
        - $ref: '#/components/schemas/CnyExternalAccountInfo'
      discriminator:
        propertyName: accountType
        mapping:
          AED_ACCOUNT:
            $ref: '#/components/schemas/AedExternalAccountInfo'
          BDT_ACCOUNT:
            $ref: '#/components/schemas/BdtExternalAccountInfo'
          BRL_ACCOUNT:
            $ref: '#/components/schemas/BrlExternalAccountInfo'
          BWP_ACCOUNT:
            $ref: '#/components/schemas/BwpExternalAccountInfo'
          CAD_ACCOUNT:
            $ref: '#/components/schemas/CadExternalAccountInfo'
          COP_ACCOUNT:
            $ref: '#/components/schemas/CopExternalAccountInfo'
          DKK_ACCOUNT:
            $ref: '#/components/schemas/DkkExternalAccountInfo'
          EGP_ACCOUNT:
            $ref: '#/components/schemas/EgpExternalAccountInfo'
          EUR_ACCOUNT:
            $ref: '#/components/schemas/EurExternalAccountInfo'
          GBP_ACCOUNT:
            $ref: '#/components/schemas/GbpExternalAccountInfo'
          GHS_ACCOUNT:
            $ref: '#/components/schemas/GhsExternalAccountInfo'
          GTQ_ACCOUNT:
            $ref: '#/components/schemas/GtqExternalAccountInfo'
          HKD_ACCOUNT:
            $ref: '#/components/schemas/HkdExternalAccountInfo'
          HTG_ACCOUNT:
            $ref: '#/components/schemas/HtgExternalAccountInfo'
          IDR_ACCOUNT:
            $ref: '#/components/schemas/IdrExternalAccountInfo'
          INR_ACCOUNT:
            $ref: '#/components/schemas/InrExternalAccountInfo'
          JMD_ACCOUNT:
            $ref: '#/components/schemas/JmdExternalAccountInfo'
          KES_ACCOUNT:
            $ref: '#/components/schemas/KesExternalAccountInfo'
          MWK_ACCOUNT:
            $ref: '#/components/schemas/MwkExternalAccountInfo'
          MXN_ACCOUNT:
            $ref: '#/components/schemas/MxnExternalAccountInfo'
          MYR_ACCOUNT:
            $ref: '#/components/schemas/MyrExternalAccountInfo'
          NGN_ACCOUNT:
            $ref: '#/components/schemas/NgnExternalAccountInfo'
          PHP_ACCOUNT:
            $ref: '#/components/schemas/PhpExternalAccountInfo'
          PKR_ACCOUNT:
            $ref: '#/components/schemas/PkrExternalAccountInfo'
          RWF_ACCOUNT:
            $ref: '#/components/schemas/RwfExternalAccountInfo'
          SGD_ACCOUNT:
            $ref: '#/components/schemas/SgdExternalAccountInfo'
          SLV_ACCOUNT:
            $ref: '#/components/schemas/SlvExternalAccountInfo'
          THB_ACCOUNT:
            $ref: '#/components/schemas/ThbExternalAccountInfo'
          TZS_ACCOUNT:
            $ref: '#/components/schemas/TzsExternalAccountInfo'
          UGX_ACCOUNT:
            $ref: '#/components/schemas/UgxExternalAccountInfo'
          USD_ACCOUNT:
            $ref: '#/components/schemas/UsdExternalAccountInfo'
          VND_ACCOUNT:
            $ref: '#/components/schemas/VndExternalAccountInfo'
          XAF_ACCOUNT:
            $ref: '#/components/schemas/XafExternalAccountInfo'
          XOF_ACCOUNT:
            $ref: '#/components/schemas/XofExternalAccountInfo'
          ZAR_ACCOUNT:
            $ref: '#/components/schemas/ZarExternalAccountInfo'
          ZMW_ACCOUNT:
            $ref: '#/components/schemas/ZmwExternalAccountInfo'
          SWIFT_ACCOUNT:
            $ref: '#/components/schemas/SwiftExternalAccountInfo'
          BASE_WALLET:
            $ref: '#/components/schemas/BaseWalletExternalAccountInfo'
          ETHEREUM_WALLET:
            $ref: '#/components/schemas/EthereumWalletExternalAccountInfo'
          LIGHTNING:
            $ref: '#/components/schemas/LightningExternalAccountInfo'
          LIGHTNING_ACCOUNT:
            $ref: '#/components/schemas/LightningExternalAccountInfo'
          POLYGON_WALLET:
            $ref: '#/components/schemas/PolygonWalletExternalAccountInfo'
          SOLANA_WALLET:
            $ref: '#/components/schemas/SolanaWalletExternalAccountInfo'
          SPARK_WALLET:
            $ref: '#/components/schemas/SparkWalletExternalAccountInfo'
          TRON_WALLET:
            $ref: '#/components/schemas/TronWalletExternalAccountInfo'
          CNY_ACCOUNT:
            $ref: '#/components/schemas/CnyExternalAccountInfo'
    AedExternalAccountCreateInfo:
      title: AED Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/AedAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/AedBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/AedBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    BdtExternalAccountCreateInfo:
      title: BDT Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/BdtAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/BdtBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/BdtBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    BrlExternalAccountCreateInfo:
      title: BRL Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/BrlAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/BrlBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/BrlBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    BwpExternalAccountCreateInfo:
      title: BWP Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/BwpAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/BwpBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/BwpBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    CadExternalAccountCreateInfo:
      title: CAD Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/CadAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/CadBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/CadBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    CnyExternalAccountCreateInfo:
      title: CNY Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/CnyAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/CnyBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/CnyBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    CopExternalAccountCreateInfo:
      title: COP Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/CopAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/CopBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/CopBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    DkkExternalAccountCreateInfo:
      title: DKK Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/DkkAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/DkkBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/DkkBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    EgpExternalAccountCreateInfo:
      title: EGP Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/EgpAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/EgpBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/EgpBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    EurExternalAccountCreateInfo:
      title: EUR Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/EurAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/EurBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/EurBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    GbpExternalAccountCreateInfo:
      title: GBP Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/GbpAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/GbpBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/GbpBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    GhsExternalAccountCreateInfo:
      title: GHS Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/GhsAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/GhsBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/GhsBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    GtqExternalAccountCreateInfo:
      title: GTQ Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/GtqAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/GtqBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/GtqBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    HkdExternalAccountCreateInfo:
      title: HKD Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/HkdAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/HkdBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/HkdBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    HtgExternalAccountCreateInfo:
      title: HTG Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/HtgAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/HtgBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/HtgBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    IdrExternalAccountCreateInfo:
      title: IDR Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/IdrAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/IdrBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/IdrBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    InrExternalAccountCreateInfo:
      title: INR Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/InrAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/InrBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/InrBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    JmdExternalAccountCreateInfo:
      title: JMD Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/JmdAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/JmdBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/JmdBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    KesExternalAccountCreateInfo:
      title: KES Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/KesAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/KesBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/KesBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    MwkExternalAccountCreateInfo:
      title: MWK Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/MwkAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/MwkBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/MwkBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    MxnExternalAccountCreateInfo:
      title: MXN Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/MxnAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/MxnBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/MxnBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    MyrExternalAccountCreateInfo:
      title: MYR Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/MyrAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/MyrBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/MyrBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    NgnExternalAccountCreateInfo:
      title: NGN Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/NgnAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/NgnBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/NgnBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    PhpExternalAccountCreateInfo:
      title: PHP Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/PhpAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/PhpBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/PhpBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    PkrExternalAccountCreateInfo:
      title: PKR Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/PkrAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/PkrBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/PkrBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    RwfExternalAccountCreateInfo:
      title: RWF Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/RwfAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/RwfBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/RwfBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    SgdExternalAccountCreateInfo:
      title: SGD Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/SgdAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/SgdBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/SgdBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    SlvExternalAccountCreateInfo:
      title: SLV Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/SlvAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/SlvBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/SlvBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    ThbExternalAccountCreateInfo:
      title: THB Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/ThbAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/ThbBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/ThbBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    TzsExternalAccountCreateInfo:
      title: TZS Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/TzsAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/TzsBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/TzsBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    UgxExternalAccountCreateInfo:
      title: UGX Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/UgxAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/UgxBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/UgxBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    UsdExternalAccountCreateInfo:
      title: USD Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/UsdAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/UsdBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/UsdBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    VndExternalAccountCreateInfo:
      title: VND Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/VndAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/VndBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/VndBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    XafExternalAccountCreateInfo:
      title: XAF Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/XafAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/XafBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/XafBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    XofExternalAccountCreateInfo:
      title: XOF Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/XofAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/XofBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/XofBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    ZarExternalAccountCreateInfo:
      title: ZAR Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/ZarAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/ZarBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/ZarBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    ZmwExternalAccountCreateInfo:
      title: ZMW Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/ZmwAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/ZmwBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/ZmwBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    SwiftExternalAccountCreateInfo:
      title: SWIFT Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/SwiftAccountInfoBase'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/SwiftBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/SwiftBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    BaseWalletExternalAccountInfo:
      title: Base Wallet
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/BaseWalletInfo'
    EthereumWalletExternalAccountInfo:
      title: Ethereum L1 Wallet
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/EthereumWalletInfo'
    LightningExternalAccountInfo:
      title: Lightning
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/LightningInfo'
    PolygonWalletExternalAccountInfo:
      title: Polygon Wallet
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/PolygonWalletInfo'
    SolanaWalletExternalAccountInfo:
      title: Solana Wallet
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/SolanaWalletInfo'
    SparkWalletExternalAccountInfo:
      title: Spark Wallet
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/SparkWalletInfo'
    TronWalletExternalAccountInfo:
      title: Tron Wallet
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/TronWalletInfo'
    AedExternalAccountInfo:
      title: AED Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/AedAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/AedBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/AedBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    BdtExternalAccountInfo:
      title: BDT Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/BdtAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/BdtBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/BdtBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    BrlExternalAccountInfo:
      title: BRL Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/BrlAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/BrlBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/BrlBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    BwpExternalAccountInfo:
      title: BWP Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/BwpAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/BwpBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/BwpBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    CadExternalAccountInfo:
      title: CAD Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/CadAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/CadBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/CadBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    CopExternalAccountInfo:
      title: COP Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/CopAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/CopBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/CopBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    DkkExternalAccountInfo:
      title: DKK Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/DkkAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/DkkBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/DkkBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    EgpExternalAccountInfo:
      title: EGP Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/EgpAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/EgpBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/EgpBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    EurExternalAccountInfo:
      title: EUR Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/EurAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/EurBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/EurBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    GbpExternalAccountInfo:
      title: GBP Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/GbpAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/GbpBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/GbpBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    GhsExternalAccountInfo:
      title: GHS Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/GhsAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/GhsBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/GhsBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    GtqExternalAccountInfo:
      title: GTQ Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/GtqAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/GtqBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/GtqBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    HkdExternalAccountInfo:
      title: HKD Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/HkdAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/HkdBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/HkdBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    HtgExternalAccountInfo:
      title: HTG Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/HtgAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/HtgBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/HtgBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    IdrExternalAccountInfo:
      title: IDR Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/IdrAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/IdrBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/IdrBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    InrExternalAccountInfo:
      title: INR Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/InrAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/InrBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/InrBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    JmdExternalAccountInfo:
      title: JMD Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/JmdAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/JmdBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/JmdBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    KesExternalAccountInfo:
      title: KES Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/KesAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/KesBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/KesBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    MwkExternalAccountInfo:
      title: MWK Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/MwkAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/MwkBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/MwkBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    MxnExternalAccountInfo:
      title: MXN Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/MxnAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/MxnBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/MxnBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    MyrExternalAccountInfo:
      title: MYR Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/MyrAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/MyrBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/MyrBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    NgnExternalAccountInfo:
      title: NGN Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/NgnAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/NgnBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/NgnBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    PhpExternalAccountInfo:
      title: PHP Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/PhpAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/PhpBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/PhpBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    PkrExternalAccountInfo:
      title: PKR Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/PkrAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/PkrBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/PkrBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    RwfExternalAccountInfo:
      title: RWF Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/RwfAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/RwfBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/RwfBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    SgdExternalAccountInfo:
      title: SGD Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/SgdAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/SgdBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/SgdBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    SlvExternalAccountInfo:
      title: SLV Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/SlvAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/SlvBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/SlvBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    ThbExternalAccountInfo:
      title: THB Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/ThbAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/ThbBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/ThbBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    TzsExternalAccountInfo:
      title: TZS Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/TzsAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/TzsBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/TzsBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    UgxExternalAccountInfo:
      title: UGX Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/UgxAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/UgxBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/UgxBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    UsdExternalAccountInfo:
      title: USD Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/UsdAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/UsdBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/UsdBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    VndExternalAccountInfo:
      title: VND Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/VndAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/VndBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/VndBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    XafExternalAccountInfo:
      title: XAF Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/XafAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/XafBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/XafBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    XofExternalAccountInfo:
      title: XOF Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/XofAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/XofBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/XofBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    ZarExternalAccountInfo:
      title: ZAR Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/ZarAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/ZarBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/ZarBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    ZmwExternalAccountInfo:
      title: ZMW Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/ZmwAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/ZmwBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/ZmwBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    SwiftExternalAccountInfo:
      title: SWIFT Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/SwiftAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/SwiftBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/SwiftBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    CnyExternalAccountInfo:
      title: CNY Account
      allOf:
        - $ref: '#/components/schemas/BaseExternalAccountInfo'
        - $ref: '#/components/schemas/CnyAccountInfo'
        - type: object
          required:
            - beneficiary
          properties:
            beneficiary:
              oneOf:
                - $ref: '#/components/schemas/CnyBeneficiary'
                  title: Individual Beneficiary
                - $ref: '#/components/schemas/BusinessBeneficiary'
                  title: Business Beneficiary
              discriminator:
                propertyName: beneficiaryType
                mapping:
                  INDIVIDUAL:
                    $ref: '#/components/schemas/CnyBeneficiary'
                  BUSINESS:
                    $ref: '#/components/schemas/BusinessBeneficiary'
    BaseExternalAccountInfo:
      type: object
      required:
        - accountType
      properties:
        accountType:
          $ref: '#/components/schemas/ExternalAccountType'
    AedAccountInfoBase:
      type: object
      required:
        - accountType
        - iban
      properties:
        accountType:
          type: string
          enum:
            - AED_ACCOUNT
        iban:
          type: string
          description: UAE IBAN (23 characters, starting with AE)
          example: AE070331234567890123456
          minLength: 23
          maxLength: 23
          pattern: ^AE[0-9]{21}$
        swiftCode:
          type: string
          description: The SWIFT/BIC code of the bank
          example: EBILAEAD
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
      example:
        accountType: AED_ACCOUNT
        iban: AE070331234567890123456
        swiftCode: EBILAEAD
    AedBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - address
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    BusinessBeneficiary:
      title: Business Beneficiary
      type: object
      required:
        - beneficiaryType
        - legalName
      properties:
        beneficiaryType:
          type: string
          enum:
            - BUSINESS
        legalName:
          type: string
          description: The legal name of the business
        registrationNumber:
          type: string
          description: The registration number of the business
        taxId:
          type: string
          description: The tax identification number of the business
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    BdtAccountInfoBase:
      type: object
      required:
        - accountType
        - bankName
      description: |-
        Required fields depend on the selected paymentRails:
        - BANK_TRANSFER: accountNumber, bankName
        - MOBILE_MONEY: bankName, phoneNumber
      properties:
        accountType:
          type: string
          enum:
            - BDT_ACCOUNT
        accountNumber:
          type: string
          description: The account number of the bank
          minLength: 1
          maxLength: 34
        bankName:
          type: string
          description: The name of the bank
          minLength: 1
          maxLength: 255
        branchCode:
          type: string
          description: The branch code
          minLength: 5
          maxLength: 5
          pattern: ^[0-9]{5}$
        swiftCode:
          type: string
          description: The SWIFT/BIC code of the bank
          example: DEUTDEFF
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
      example:
        accountType: BDT_ACCOUNT
        accountNumber: '1234567890'
        bankName: Example Bank
        branchCode: '11111'
        swiftCode: DEUTDEFF
        phoneNumber: '+1234567890'
    BdtBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    BrlAccountInfoBase:
      type: object
      required:
        - accountType
        - pixKey
        - pixKeyType
        - taxId
      properties:
        accountType:
          type: string
          enum:
            - BRL_ACCOUNT
        pixKey:
          type: string
          description: The PIX key (email, phone, CPF, CNPJ, or random)
          minLength: 1
          maxLength: 77
        pixKeyType:
          type: string
          description: The type of PIX key
          enum:
            - CPF
            - CNPJ
            - EMAIL
            - PHONE
            - RANDOM
        taxId:
          type: string
          description: The tax ID (CPF or CNPJ)
          minLength: 11
          maxLength: 14
          pattern: ^[0-9]{11,14}$
      example:
        accountType: BRL_ACCOUNT
        pixKey: user@example.com
        pixKeyType: CPF
        taxId: '11111111111'
    BrlBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    BwpAccountInfoBase:
      type: object
      required:
        - accountType
        - phoneNumber
        - provider
      properties:
        accountType:
          type: string
          enum:
            - BWP_ACCOUNT
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
        provider:
          type: string
          description: The mobile money provider name
          minLength: 1
          maxLength: 255
      example:
        accountType: BWP_ACCOUNT
        phoneNumber: '+1234567890'
        provider: Example Provider
    BwpBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    CadAccountInfoBase:
      type: object
      required:
        - accountType
        - bankCode
        - branchCode
        - accountNumber
      properties:
        accountType:
          type: string
          enum:
            - CAD_ACCOUNT
        bankCode:
          type: string
          description: Canadian financial institution number (3 digits)
          example: '001'
          minLength: 3
          maxLength: 3
          pattern: ^[0-9]{3}$
        branchCode:
          type: string
          description: Transit number identifying the branch (5 digits)
          example: '00012'
          minLength: 5
          maxLength: 5
          pattern: ^[0-9]{5}$
        accountNumber:
          type: string
          description: Bank account number (7-12 digits)
          example: '1234567'
          minLength: 7
          maxLength: 12
          pattern: ^[0-9]{7,12}$
    CadBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        registrationNumber:
          type: string
          description: The registration number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    CnyAccountInfoBase:
      type: object
      required:
        - accountType
        - bankName
      description: |-
        Required fields depend on the selected paymentRails:
        - BANK_TRANSFER: accountNumber, bankName
        - MOBILE_MONEY: phoneNumber, bankName
      properties:
        accountType:
          type: string
          enum:
            - CNY_ACCOUNT
        accountNumber:
          type: string
          description: The destination bank account number (BANK_TRANSFER rail)
          minLength: 1
          maxLength: 34
        phoneNumber:
          type: string
          description: The phone number in international format (MOBILE_MONEY rail)
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
        bankName:
          type: string
          description: The name of the bank or mobile-wallet provider
          minLength: 1
          maxLength: 255
      example:
        accountType: CNY_ACCOUNT
        accountNumber: '1234567890'
        phoneNumber: '+1234567890'
        bankName: China Construction Bank
    CnyBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    CopAccountInfoBase:
      type: object
      required:
        - accountType
        - bankName
      description: |-
        Required fields depend on the selected paymentRails:
        - BANK_TRANSFER: accountNumber, bankAccountType, bankName
        - MOBILE_MONEY: bankName, phoneNumber
      properties:
        accountType:
          type: string
          enum:
            - COP_ACCOUNT
        accountNumber:
          type: string
          description: The account number of the bank
          minLength: 1
          maxLength: 34
        bankAccountType:
          type: string
          description: The bank account type
          enum:
            - CHECKING
            - SAVINGS
        bankName:
          type: string
          description: The name of the bank
          minLength: 1
          maxLength: 255
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
      example:
        accountType: COP_ACCOUNT
        accountNumber: '1234567890'
        bankAccountType: CHECKING
        bankName: Example Bank
        phoneNumber: '+1234567890'
    CopBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
        documentType:
          type: string
          description: Identity document type (Colombia)
          enum:
            - CC
            - CE
            - TI
            - NIT
            - PP
        documentNumber:
          type: string
          description: The identity document number
          minLength: 1
          maxLength: 50
    DkkAccountInfoBase:
      type: object
      required:
        - accountType
        - iban
      properties:
        accountType:
          type: string
          enum:
            - DKK_ACCOUNT
        iban:
          type: string
          description: Danish IBAN (18 characters, starting with DK)
          example: DK5000400040116243
          minLength: 18
          maxLength: 18
          pattern: ^DK[0-9]{16}$
        swiftCode:
          type: string
          description: The SWIFT/BIC code of the bank
          example: DABADKKK
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
      example:
        accountType: DKK_ACCOUNT
        iban: DK5000400040116243
        swiftCode: DABADKKK
    DkkBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    EgpAccountInfoBase:
      type: object
      required:
        - accountType
        - bankName
      description: |-
        Required fields depend on the selected paymentRails:
        - BANK_TRANSFER: bankName, iban
        - MOBILE_MONEY: bankName, phoneNumber
      properties:
        accountType:
          type: string
          enum:
            - EGP_ACCOUNT
        iban:
          type: string
          description: Egyptian IBAN (29 characters, starting with EG)
          example: EG380019000500000000263180002
          minLength: 29
          maxLength: 29
          pattern: ^EG[0-9]{27}$
        bankName:
          type: string
          description: The name of the bank
          minLength: 1
          maxLength: 255
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
      example:
        accountType: EGP_ACCOUNT
        iban: EG380019000500000000263180002
        bankName: Example Bank
        phoneNumber: '+1234567890'
    EgpBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    EurAccountInfoBase:
      type: object
      required:
        - accountType
        - iban
      properties:
        accountType:
          type: string
          enum:
            - EUR_ACCOUNT
        iban:
          type: string
          description: The IBAN of the bank account
          example: DE89370400440532013000
          minLength: 15
          maxLength: 34
          pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$
        swiftCode:
          type: string
          description: The SWIFT/BIC code of the bank
          example: DEUTDEFF
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
      example:
        accountType: EUR_ACCOUNT
        iban: DE89370400440532013000
        swiftCode: DEUTDEFF
    EurBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - countryOfResidence
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    GbpAccountInfoBase:
      type: object
      required:
        - accountType
        - sortCode
        - accountNumber
      properties:
        accountType:
          type: string
          enum:
            - GBP_ACCOUNT
        sortCode:
          type: string
          description: The UK sort code
          example: '123456'
          minLength: 6
          maxLength: 6
          pattern: ^[0-9]{6}$
        accountNumber:
          type: string
          description: UK bank account number (8 digits)
          minLength: 8
          maxLength: 8
          example: '12345678'
          pattern: ^[0-9]{8}$
      example:
        accountType: GBP_ACCOUNT
        sortCode: '123456'
        accountNumber: '12345678'
    GbpBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    GhsAccountInfoBase:
      type: object
      required:
        - accountType
        - bankName
      description: |-
        Required fields depend on the selected paymentRails:
        - BANK_TRANSFER: accountNumber, bankName
        - MOBILE_MONEY: bankName, phoneNumber
      properties:
        accountType:
          type: string
          enum:
            - GHS_ACCOUNT
        accountNumber:
          type: string
          description: The account number of the bank
          minLength: 1
          maxLength: 34
        bankName:
          type: string
          description: The name of the bank
          minLength: 1
          maxLength: 255
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
      example:
        accountType: GHS_ACCOUNT
        accountNumber: '1234567890'
        bankName: Example Bank
        phoneNumber: '+1234567890'
    GhsBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    GtqAccountInfoBase:
      type: object
      required:
        - accountType
        - accountNumber
        - bankAccountType
      properties:
        accountType:
          type: string
          enum:
            - GTQ_ACCOUNT
        accountNumber:
          type: string
          description: The account number of the bank
          minLength: 1
          maxLength: 34
        bankAccountType:
          type: string
          description: The bank account type
          enum:
            - CHECKING
            - SAVINGS
      example:
        accountType: GTQ_ACCOUNT
        accountNumber: '1234567890'
        bankAccountType: CHECKING
    GtqBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - countryOfResidence
        - fullName
        - phoneNumber
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    HkdAccountInfoBase:
      type: object
      required:
        - accountType
        - bankName
        - accountNumber
        - swiftCode
      properties:
        accountType:
          type: string
          enum:
            - HKD_ACCOUNT
        bankName:
          type: string
          description: The name of the bank
          minLength: 1
          maxLength: 255
        accountNumber:
          type: string
          description: Hong Kong bank account number
          minLength: 1
          maxLength: 34
          example: '123456789012'
        swiftCode:
          type: string
          description: The SWIFT/BIC code of the bank
          example: HSBCHKHHHKH
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
      example:
        accountType: HKD_ACCOUNT
        bankName: Example Bank
        accountNumber: '123456789012'
        swiftCode: HSBCHKHHHKH
    HkdBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    HtgAccountInfoBase:
      type: object
      required:
        - accountType
        - phoneNumber
      properties:
        accountType:
          type: string
          enum:
            - HTG_ACCOUNT
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
      example:
        accountType: HTG_ACCOUNT
        phoneNumber: '+1234567890'
    HtgBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    IdrAccountInfoBase:
      type: object
      required:
        - accountType
        - bankName
        - accountNumber
        - swiftCode
        - phoneNumber
      properties:
        accountType:
          type: string
          enum:
            - IDR_ACCOUNT
        bankName:
          type: string
          description: The name of the bank
          minLength: 1
          maxLength: 255
          example: Bank Central Asia
        accountNumber:
          type: string
          description: Indonesian bank account number
          minLength: 1
          maxLength: 34
          example: '1234567890'
        swiftCode:
          type: string
          description: The SWIFT/BIC code of the bank
          example: CENAIDJA
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
        phoneNumber:
          type: string
          description: Indonesian phone number for e-wallet payments
          example: '+6281234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+62[0-9]{9,12}$
      example:
        accountType: IDR_ACCOUNT
        bankName: Bank Central Asia
        accountNumber: '1234567890'
        swiftCode: CENAIDJA
        phoneNumber: '+6281234567890'
    IdrBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    InrAccountInfoBase:
      type: object
      required:
        - accountType
        - vpa
      properties:
        accountType:
          type: string
          enum:
            - INR_ACCOUNT
        vpa:
          type: string
          description: The UPI Virtual Payment Address
          example: user@upi
          minLength: 3
          maxLength: 255
          pattern: ^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9]+$
      example:
        accountType: INR_ACCOUNT
        vpa: user@upi
    InrBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    JmdAccountInfoBase:
      type: object
      required:
        - accountType
        - accountNumber
        - branchCode
        - bankAccountType
      properties:
        accountType:
          type: string
          enum:
            - JMD_ACCOUNT
        accountNumber:
          type: string
          description: The account number of the bank
          minLength: 1
          maxLength: 34
        branchCode:
          type: string
          description: The branch code
          minLength: 5
          maxLength: 5
          pattern: ^[0-9]{5}$
        bankAccountType:
          type: string
          description: The bank account type
          enum:
            - CHECKING
            - SAVINGS
      example:
        accountType: JMD_ACCOUNT
        accountNumber: '1234567890'
        branchCode: '11111'
        bankAccountType: CHECKING
    JmdBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - address
        - fullName
        - phoneNumber
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    KesAccountInfoBase:
      type: object
      required:
        - accountType
        - phoneNumber
        - provider
      properties:
        accountType:
          type: string
          enum:
            - KES_ACCOUNT
        phoneNumber:
          type: string
          description: Kenyan mobile money phone number
          example: '+254712345678'
          minLength: 7
          maxLength: 15
          pattern: ^\+254[0-9]{9}$
        provider:
          type: string
          description: The mobile money provider name
          minLength: 1
          maxLength: 255
      example:
        accountType: KES_ACCOUNT
        phoneNumber: '+254712345678'
        provider: Example Provider
    KesBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    MwkAccountInfoBase:
      type: object
      required:
        - accountType
        - phoneNumber
        - provider
      properties:
        accountType:
          type: string
          enum:
            - MWK_ACCOUNT
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
        provider:
          type: string
          description: The mobile money provider name
          minLength: 1
          maxLength: 255
      example:
        accountType: MWK_ACCOUNT
        phoneNumber: '+1234567890'
        provider: Example Provider
    MwkBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    MxnAccountInfoBase:
      type: object
      required:
        - accountType
        - clabeNumber
      properties:
        accountType:
          type: string
          enum:
            - MXN_ACCOUNT
        clabeNumber:
          type: string
          description: The CLABE number of the bank
          example: '123456789012345678'
          minLength: 18
          maxLength: 18
          pattern: ^[0-9]{18}$
      example:
        accountType: MXN_ACCOUNT
        clabeNumber: '123456789012345678'
    MxnBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    MyrAccountInfoBase:
      type: object
      required:
        - accountType
        - bankName
        - accountNumber
        - swiftCode
      properties:
        accountType:
          type: string
          enum:
            - MYR_ACCOUNT
        bankName:
          type: string
          description: The name of the bank
          minLength: 1
          maxLength: 255
        accountNumber:
          type: string
          description: Malaysian bank account number
          minLength: 1
          maxLength: 34
          example: '1234567890'
        swiftCode:
          type: string
          description: The SWIFT/BIC code of the bank
          example: MABORUMMYYY
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
      example:
        accountType: MYR_ACCOUNT
        bankName: Example Bank
        accountNumber: '1234567890'
        swiftCode: MABORUMMYYY
    MyrBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    NgnAccountInfoBase:
      type: object
      required:
        - accountType
        - accountNumber
        - bankName
      properties:
        accountType:
          type: string
          enum:
            - NGN_ACCOUNT
        accountNumber:
          type: string
          description: Nigerian bank account number
          minLength: 10
          maxLength: 10
          example: '0123456789'
          pattern: ^[0-9]{10}$
        bankName:
          type: string
          description: The name of the bank
          minLength: 1
          maxLength: 255
      example:
        accountType: NGN_ACCOUNT
        accountNumber: '0123456789'
        bankName: Example Bank
    NgnBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    PhpAccountInfoBase:
      type: object
      required:
        - accountType
        - bankName
        - accountNumber
      properties:
        accountType:
          type: string
          enum:
            - PHP_ACCOUNT
        bankName:
          type: string
          description: Name of the beneficiary's bank
          minLength: 1
          maxLength: 255
          example: BDO Unibank
        accountNumber:
          type: string
          description: Bank account number
          minLength: 8
          maxLength: 16
          example: '001234567890'
          pattern: ^[0-9]{8,16}$
      example:
        accountType: PHP_ACCOUNT
        bankName: BDO Unibank
        accountNumber: '001234567890'
    PhpBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    PkrAccountInfoBase:
      type: object
      required:
        - accountType
        - bankName
      description: |-
        Required fields depend on the selected paymentRails:
        - BANK_TRANSFER: accountNumber, bankName
        - MOBILE_MONEY: bankName, phoneNumber
      properties:
        accountType:
          type: string
          enum:
            - PKR_ACCOUNT
        bankName:
          type: string
          description: The name of the bank
          minLength: 1
          maxLength: 255
        accountNumber:
          type: string
          description: The account number of the bank
          minLength: 1
          maxLength: 34
        iban:
          type: string
          description: Pakistani IBAN (24 characters, starting with PK)
          example: PK36SCBL0000001123456702
          minLength: 24
          maxLength: 24
          pattern: ^PK[0-9]{2}[A-Z]{4}[0-9]{16}$
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
      example:
        accountType: PKR_ACCOUNT
        bankName: Example Bank
        accountNumber: '1234567890'
        iban: PK36SCBL0000001123456702
        phoneNumber: '+1234567890'
    PkrBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    RwfAccountInfoBase:
      type: object
      required:
        - accountType
        - phoneNumber
        - provider
      properties:
        accountType:
          type: string
          enum:
            - RWF_ACCOUNT
        phoneNumber:
          type: string
          description: Rwandan mobile money phone number
          example: '+250781234567'
          minLength: 7
          maxLength: 15
          pattern: ^\+250[0-9]{9}$
        provider:
          type: string
          description: The mobile money provider name
          minLength: 1
          maxLength: 255
      example:
        accountType: RWF_ACCOUNT
        phoneNumber: '+250781234567'
        provider: Example Provider
    RwfBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    SgdAccountInfoBase:
      type: object
      required:
        - accountType
        - bankName
        - accountNumber
        - swiftCode
      properties:
        accountType:
          type: string
          enum:
            - SGD_ACCOUNT
        bankName:
          type: string
          description: Name of the beneficiary's bank
          minLength: 1
          maxLength: 255
          example: DBS Bank Ltd
        accountNumber:
          type: string
          description: Bank account number
          minLength: 1
          maxLength: 34
          example: '0123456789'
        swiftCode:
          type: string
          description: The SWIFT/BIC code of the bank
          example: DBSSSGSG
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
      example:
        accountType: SGD_ACCOUNT
        bankName: DBS Bank Ltd
        accountNumber: '0123456789'
        swiftCode: DBSSSGSG
    SgdBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    SlvAccountInfoBase:
      type: object
      required:
        - accountType
      description: |-
        Required fields depend on the selected paymentRails:
        - BANK_TRANSFER: bankAccountType, accountNumber
        - MOBILE_MONEY: phoneNumber
      properties:
        accountType:
          type: string
          enum:
            - SLV_ACCOUNT
        bankName:
          type: string
          description: The name of the bank (BANK_TRANSFER only)
          minLength: 1
          maxLength: 255
        accountNumber:
          type: string
          description: The account number of the bank (BANK_TRANSFER only)
          minLength: 1
          maxLength: 34
        bankAccountType:
          type: string
          description: The bank account type (BANK_TRANSFER only)
          enum:
            - CHECKING
            - SAVINGS
        phoneNumber:
          type: string
          description: >-
            The phone number in international format (MOBILE_MONEY only — e.g.
            Tigo Money)
          example: '+50312345678'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
      example:
        accountType: SLV_ACCOUNT
        bankName: Banco Cuscatlan
        accountNumber: '0123456789'
        bankAccountType: CHECKING
    SlvBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    ThbAccountInfoBase:
      type: object
      required:
        - accountType
        - bankName
        - accountNumber
        - swiftCode
      properties:
        accountType:
          type: string
          enum:
            - THB_ACCOUNT
        bankName:
          type: string
          description: The name of the bank
          minLength: 1
          maxLength: 255
        accountNumber:
          type: string
          description: Thai bank account number
          minLength: 1
          maxLength: 34
          example: '1234567890'
        swiftCode:
          type: string
          description: The SWIFT/BIC code of the bank
          example: BKKBTHBK
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
      example:
        accountType: THB_ACCOUNT
        bankName: Example Bank
        accountNumber: '1234567890'
        swiftCode: BKKBTHBK
    ThbBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    TzsAccountInfoBase:
      type: object
      required:
        - accountType
        - phoneNumber
        - provider
      properties:
        accountType:
          type: string
          enum:
            - TZS_ACCOUNT
        phoneNumber:
          type: string
          description: Tanzanian mobile money phone number
          example: '+255712345678'
          minLength: 7
          maxLength: 15
          pattern: ^\+255[0-9]{9}$
        provider:
          type: string
          description: The mobile money provider name
          minLength: 1
          maxLength: 255
      example:
        accountType: TZS_ACCOUNT
        phoneNumber: '+255712345678'
        provider: Example Provider
    TzsBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    UgxAccountInfoBase:
      type: object
      required:
        - accountType
        - phoneNumber
        - provider
      properties:
        accountType:
          type: string
          enum:
            - UGX_ACCOUNT
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
        provider:
          type: string
          description: The mobile money provider name
          minLength: 1
          maxLength: 255
      example:
        accountType: UGX_ACCOUNT
        phoneNumber: '+1234567890'
        provider: Example Provider
    UgxBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    UsdAccountInfoBase:
      type: object
      required:
        - accountType
        - accountNumber
        - routingNumber
      properties:
        accountType:
          type: string
          enum:
            - USD_ACCOUNT
        accountNumber:
          type: string
          description: The account number of the bank
          minLength: 1
          maxLength: 34
        routingNumber:
          type: string
          description: The ABA routing number
          example: '021000021'
          minLength: 9
          maxLength: 9
          pattern: ^[0-9]{9}$
      example:
        accountType: USD_ACCOUNT
        accountNumber: '1234567890'
        routingNumber: '021000021'
    UsdBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    VndAccountInfoBase:
      type: object
      required:
        - accountType
        - bankName
        - accountNumber
        - swiftCode
      properties:
        accountType:
          type: string
          enum:
            - VND_ACCOUNT
        bankName:
          type: string
          description: The name of the bank
          minLength: 1
          maxLength: 255
        accountNumber:
          type: string
          description: Vietnamese bank account number
          minLength: 1
          maxLength: 34
          example: '1234567890'
        swiftCode:
          type: string
          description: The SWIFT/BIC code of the bank
          example: BFTVVNVX
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
      example:
        accountType: VND_ACCOUNT
        bankName: Example Bank
        accountNumber: '1234567890'
        swiftCode: BFTVVNVX
    VndBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    XafAccountInfoBase:
      type: object
      required:
        - accountType
        - phoneNumber
        - provider
        - region
      properties:
        accountType:
          type: string
          enum:
            - XAF_ACCOUNT
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
        provider:
          type: string
          description: The mobile money provider name
          minLength: 1
          maxLength: 255
        region:
          type: string
          description: Country code within the Central African CFA franc zone
          minLength: 2
          maxLength: 2
          pattern: ^[A-Z]{2}$
          enum:
            - CM
            - CG
      example:
        accountType: XAF_ACCOUNT
        phoneNumber: '+1234567890'
        provider: Example Provider
        region: CM
    XafBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    XofAccountInfoBase:
      type: object
      required:
        - accountType
        - phoneNumber
        - provider
        - region
      properties:
        accountType:
          type: string
          enum:
            - XOF_ACCOUNT
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
        provider:
          type: string
          description: The mobile money provider name
          minLength: 1
          maxLength: 255
        region:
          type: string
          description: Country code within the West African CFA franc zone
          minLength: 2
          maxLength: 2
          pattern: ^[A-Z]{2}$
          enum:
            - BJ
            - CI
            - SN
            - TG
      example:
        accountType: XOF_ACCOUNT
        phoneNumber: '+1234567890'
        provider: Example Provider
        region: BJ
    XofBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    ZarAccountInfoBase:
      type: object
      required:
        - accountType
        - accountNumber
        - bankName
      properties:
        accountType:
          type: string
          enum:
            - ZAR_ACCOUNT
        accountNumber:
          type: string
          description: South African bank account number
          minLength: 9
          maxLength: 13
          example: '1234567890'
          pattern: ^[0-9]{9,13}$
        bankName:
          type: string
          description: The name of the bank
          minLength: 1
          maxLength: 255
      example:
        accountType: ZAR_ACCOUNT
        accountNumber: '1234567890'
        bankName: Example Bank
    ZarBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    ZmwAccountInfoBase:
      type: object
      required:
        - accountType
        - phoneNumber
        - provider
      properties:
        accountType:
          type: string
          enum:
            - ZMW_ACCOUNT
        phoneNumber:
          type: string
          description: Zambian mobile money phone number
          example: '+260971234567'
          minLength: 7
          maxLength: 15
          pattern: ^\+260[0-9]{9}$
        provider:
          type: string
          description: The mobile money provider name
          minLength: 1
          maxLength: 255
      example:
        accountType: ZMW_ACCOUNT
        phoneNumber: '+260971234567'
        provider: Example Provider
    ZmwBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    SwiftAccountInfoBase:
      type: object
      required:
        - accountType
        - swiftCode
        - bankName
        - country
      properties:
        accountType:
          type: string
          enum:
            - SWIFT_ACCOUNT
        country:
          type: string
          description: The ISO 3166-1 alpha-2 country code of the bank account
          example: NG
          minLength: 2
          maxLength: 2
          pattern: ^[A-Z]{2}$
        swiftCode:
          type: string
          description: The SWIFT/BIC code of the bank
          example: DEUTDEFF
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
        bankName:
          type: string
          description: The name of the bank
          example: Deutsche Bank
          minLength: 1
          maxLength: 255
        accountNumber:
          type: string
          description: >-
            The bank account number. Required for most corridors. Use iban
            instead for IBAN-only corridors (e.g. BR, GB).
          example: '1234567890'
          minLength: 1
          maxLength: 34
        iban:
          type: string
          description: >-
            The IBAN of the bank account. Required for IBAN-only corridors (e.g.
            BR, GB). Use accountNumber for all other corridors.
          example: GB29NWBK60161331926819
          minLength: 15
          maxLength: 34
          pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$
      example:
        accountType: SWIFT_ACCOUNT
        country: NG
        swiftCode: DEUTDEFF
        bankName: Deutsche Bank
        accountNumber: '1234567890'
    SwiftBeneficiary:
      title: Individual Beneficiary
      type: object
      required:
        - beneficiaryType
        - fullName
      properties:
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
        fullName:
          type: string
          description: The full name of the beneficiary
        birthDate:
          type: string
          description: The birth date of the beneficiary
        nationality:
          type: string
          description: The nationality of the beneficiary
        email:
          type: string
          description: The email of the beneficiary
        phoneNumber:
          type: string
          description: The phone number of the beneficiary
        countryOfResidence:
          type: string
          description: The country of residence of the beneficiary
        address:
          $ref: '#/components/schemas/Address'
    BaseWalletInfo:
      type: object
      required:
        - address
        - accountType
      properties:
        accountType:
          type: string
          enum:
            - BASE_WALLET
        address:
          type: string
          description: Base eth wallet address
          example: '0xAbCDEF1234567890aBCdEf1234567890ABcDef12'
    EthereumWalletInfo:
      type: object
      required:
        - address
        - accountType
      properties:
        accountType:
          type: string
          enum:
            - ETHEREUM_WALLET
        address:
          type: string
          description: Ethereum L1 wallet address
          example: '0xAbCDEF1234567890aBCdEf1234567890ABcDef12'
    LightningInfo:
      type: object
      description: >
        Lightning payment destination. Exactly one of `invoice`, `bolt12`, or
        `lightningAddress` must be provided.
      required:
        - accountType
      properties:
        accountType:
          type: string
          enum:
            - LIGHTNING
        invoice:
          type: string
          description: 1-time use lightning bolt11 invoice payout destination
          example: >-
            lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs
        bolt12:
          type: string
          description: A bolt12 offer which can be reused as a payment destination
          example: >-
            lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs
        lightningAddress:
          type: string
          description: >-
            A lightning address which can be used as a payment destination. Note
            that for UMA addresses, no external account is needed. You can use
            the UMA address directly as a destination.
          example: john.doe@lightningwallet.com
    PolygonWalletInfo:
      type: object
      required:
        - address
        - accountType
      properties:
        accountType:
          type: string
          enum:
            - POLYGON_WALLET
        address:
          type: string
          description: Polygon eth wallet address
          example: '0xAbCDEF1234567890aBCdEf1234567890ABcDef12'
    SolanaWalletInfo:
      type: object
      required:
        - address
        - accountType
      properties:
        accountType:
          type: string
          enum:
            - SOLANA_WALLET
        address:
          type: string
          description: Solana wallet address
          example: 4Nd1m6Qkq7RfKuE5vQ9qP9Tn6H94Ueqb4xXHzsAbd8Wg
    SparkWalletInfo:
      type: object
      required:
        - address
        - accountType
      properties:
        accountType:
          type: string
          enum:
            - SPARK_WALLET
        address:
          type: string
          description: Spark wallet address
          example: spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu
    TronWalletInfo:
      type: object
      required:
        - address
        - accountType
      properties:
        accountType:
          type: string
          enum:
            - TRON_WALLET
        address:
          type: string
          description: Tron wallet address
          example: TNPeeaaFB7K9cmo4uQpcU32zGK8G1NYqeL
    AedAccountInfo:
      allOf:
        - $ref: '#/components/schemas/AedAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
    BdtAccountInfo:
      allOf:
        - $ref: '#/components/schemas/BdtAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
                  - MOBILE_MONEY
    BrlAccountInfo:
      allOf:
        - $ref: '#/components/schemas/BrlAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - PIX
    BwpAccountInfo:
      allOf:
        - $ref: '#/components/schemas/BwpAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - MOBILE_MONEY
    CadAccountInfo:
      allOf:
        - $ref: '#/components/schemas/CadAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
    CopAccountInfo:
      allOf:
        - $ref: '#/components/schemas/CopAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
                  - MOBILE_MONEY
    DkkAccountInfo:
      allOf:
        - $ref: '#/components/schemas/DkkAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - SEPA
                  - SEPA_INSTANT
    EgpAccountInfo:
      allOf:
        - $ref: '#/components/schemas/EgpAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
                  - MOBILE_MONEY
    EurAccountInfo:
      allOf:
        - $ref: '#/components/schemas/EurAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - SEPA
                  - SEPA_INSTANT
    GbpAccountInfo:
      allOf:
        - $ref: '#/components/schemas/GbpAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - FASTER_PAYMENTS
    GhsAccountInfo:
      allOf:
        - $ref: '#/components/schemas/GhsAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
                  - MOBILE_MONEY
    GtqAccountInfo:
      allOf:
        - $ref: '#/components/schemas/GtqAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
    HkdAccountInfo:
      allOf:
        - $ref: '#/components/schemas/HkdAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
    HtgAccountInfo:
      allOf:
        - $ref: '#/components/schemas/HtgAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - MOBILE_MONEY
    IdrAccountInfo:
      allOf:
        - $ref: '#/components/schemas/IdrAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
    InrAccountInfo:
      allOf:
        - $ref: '#/components/schemas/InrAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - UPI
    JmdAccountInfo:
      allOf:
        - $ref: '#/components/schemas/JmdAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
    KesAccountInfo:
      allOf:
        - $ref: '#/components/schemas/KesAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - MOBILE_MONEY
    MwkAccountInfo:
      allOf:
        - $ref: '#/components/schemas/MwkAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - MOBILE_MONEY
    MxnAccountInfo:
      allOf:
        - $ref: '#/components/schemas/MxnAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - SPEI
    MyrAccountInfo:
      allOf:
        - $ref: '#/components/schemas/MyrAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
    NgnAccountInfo:
      allOf:
        - $ref: '#/components/schemas/NgnAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
    PhpAccountInfo:
      allOf:
        - $ref: '#/components/schemas/PhpAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
    PkrAccountInfo:
      allOf:
        - $ref: '#/components/schemas/PkrAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
                  - MOBILE_MONEY
    RwfAccountInfo:
      allOf:
        - $ref: '#/components/schemas/RwfAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - MOBILE_MONEY
    SgdAccountInfo:
      allOf:
        - $ref: '#/components/schemas/SgdAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - PAYNOW
                  - FAST
                  - BANK_TRANSFER
    SlvAccountInfo:
      allOf:
        - $ref: '#/components/schemas/SlvAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
                  - MOBILE_MONEY
    ThbAccountInfo:
      allOf:
        - $ref: '#/components/schemas/ThbAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
    TzsAccountInfo:
      allOf:
        - $ref: '#/components/schemas/TzsAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - MOBILE_MONEY
    UgxAccountInfo:
      allOf:
        - $ref: '#/components/schemas/UgxAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - MOBILE_MONEY
    UsdAccountInfo:
      allOf:
        - $ref: '#/components/schemas/UsdAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - ACH
                  - WIRE
                  - RTP
                  - FEDNOW
    VndAccountInfo:
      allOf:
        - $ref: '#/components/schemas/VndAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
    XafAccountInfo:
      allOf:
        - $ref: '#/components/schemas/XafAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - MOBILE_MONEY
    XofAccountInfo:
      allOf:
        - $ref: '#/components/schemas/XofAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - MOBILE_MONEY
    ZarAccountInfo:
      allOf:
        - $ref: '#/components/schemas/ZarAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - BANK_TRANSFER
    ZmwAccountInfo:
      allOf:
        - $ref: '#/components/schemas/ZmwAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - MOBILE_MONEY
    SwiftAccountInfo:
      allOf:
        - $ref: '#/components/schemas/SwiftAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - SWIFT
    CnyAccountInfo:
      allOf:
        - $ref: '#/components/schemas/CnyAccountInfoBase'
        - type: object
          required:
            - paymentRails
          properties:
            paymentRails:
              type: array
              items:
                type: string
                enum:
                  - MOBILE_MONEY
                  - BANK_TRANSFER
    ExternalAccountType:
      type: string
      enum:
        - AED_ACCOUNT
        - BDT_ACCOUNT
        - BRL_ACCOUNT
        - BWP_ACCOUNT
        - CAD_ACCOUNT
        - COP_ACCOUNT
        - DKK_ACCOUNT
        - EGP_ACCOUNT
        - EUR_ACCOUNT
        - GBP_ACCOUNT
        - GHS_ACCOUNT
        - GTQ_ACCOUNT
        - HKD_ACCOUNT
        - HTG_ACCOUNT
        - IDR_ACCOUNT
        - INR_ACCOUNT
        - JMD_ACCOUNT
        - KES_ACCOUNT
        - MWK_ACCOUNT
        - MXN_ACCOUNT
        - MYR_ACCOUNT
        - NGN_ACCOUNT
        - PHP_ACCOUNT
        - PKR_ACCOUNT
        - RWF_ACCOUNT
        - SGD_ACCOUNT
        - SLV_ACCOUNT
        - THB_ACCOUNT
        - TZS_ACCOUNT
        - UGX_ACCOUNT
        - USD_ACCOUNT
        - VND_ACCOUNT
        - XAF_ACCOUNT
        - XOF_ACCOUNT
        - ZAR_ACCOUNT
        - ZMW_ACCOUNT
        - SWIFT_ACCOUNT
        - BASE_WALLET
        - ETHEREUM_WALLET
        - LIGHTNING
        - POLYGON_WALLET
        - SOLANA_WALLET
        - SPARK_WALLET
        - TRON_WALLET
        - CNY_ACCOUNT
      description: Type of external account or wallet
      example: AED_ACCOUNT
    Address:
      type: object
      required:
        - line1
        - postalCode
        - country
      properties:
        line1:
          type: string
          description: Street address line 1
          example: 123 Main Street
        line2:
          type: string
          description: Street address line 2
          example: Apt 4B
        city:
          type: string
          description: City
          example: San Francisco
        state:
          type: string
          description: State/Province/Region
          example: CA
        postalCode:
          type: string
          description: Postal/ZIP code
          example: '94105'
        country:
          type: string
          description: Country code (ISO 3166-1 alpha-2)
          example: US
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: >-
        API token authentication using format `<api token id>:<api client
        secret>`
    AgentAuth:
      type: http
      scheme: bearer
      description: >-
        Bearer token authentication for agent-scoped endpoints. The token is the
        `accessToken` returned when redeeming a device code via `POST
        /agents/device-codes/{code}/redeem`. Agent credentials are user-scoped:
        all requests are automatically bound to the agent's associated customer
        and subject to the agent's policy.

````