> ## Documentation Index
> Fetch the complete documentation index at: https://ramps-docs-sync-20260320.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# List transactions

> Retrieve a paginated list of transactions with optional filtering.
The transactions can be filtered by customer ID, platform customer ID, UMA address,
date range, status, and transaction type.




## OpenAPI

````yaml https://app.stainless.com/api/spec/documented/grid/openapi.documented.yml get /transactions
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://grid.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: []
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.
paths:
  /transactions:
    get:
      tags:
        - Transactions
      summary: List transactions
      description: >
        Retrieve a paginated list of transactions with optional filtering.

        The transactions can be filtered by customer ID, platform customer ID,
        UMA address,

        date range, status, and transaction type.
      operationId: listTransactions
      parameters:
        - name: customerId
          in: query
          description: Filter by system customer ID
          required: false
          schema:
            type: string
        - name: platformCustomerId
          in: query
          description: Filter by platform-specific customer ID
          required: false
          schema:
            type: string
        - name: senderAccountIdentifier
          in: query
          description: Filter by sender account identifier
          required: false
          schema:
            type: string
        - name: receiverAccountIdentifier
          in: query
          description: Filter by receiver account identifier
          required: false
          schema:
            type: string
        - name: status
          in: query
          description: Filter by transaction status
          required: false
          schema:
            $ref: '#/components/schemas/TransactionStatus'
        - name: type
          in: query
          description: Filter by transaction type
          required: false
          schema:
            $ref: '#/components/schemas/TransactionType'
        - name: reference
          in: query
          description: Filter by reference
          required: false
          schema:
            type: string
        - name: startDate
          in: query
          description: Filter by start date (inclusive) in ISO 8601 format
          required: false
          schema:
            type: string
            format: date-time
        - name: endDate
          in: query
          description: Filter by end date (inclusive) in ISO 8601 format
          required: false
          schema:
            type: string
            format: date-time
        - name: limit
          in: query
          description: Maximum number of results to return (default 20, max 100)
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
        - name: cursor
          in: query
          description: Cursor for pagination (returned from previous request)
          required: false
          schema:
            type: string
        - name: sortOrder
          in: query
          description: Order to sort results in
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
            default: desc
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - hasMore
                properties:
                  data:
                    type: array
                    description: List of transactions matching the criteria
                    items:
                      $ref: '#/components/schemas/TransactionOneOf'
                  hasMore:
                    type: boolean
                    description: Indicates if more results are available beyond this page
                  nextCursor:
                    type: string
                    description: >-
                      Cursor to retrieve the next page of results (only present
                      if hasMore is true)
                  totalCount:
                    type: integer
                    description: >-
                      Total number of transactions matching the criteria
                      (excluding pagination)
        '400':
          description: Bad request - Invalid parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error401'
        '500':
          description: Internal service error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - BasicAuth: []
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import LightsparkGrid from '@lightsparkdev/grid';

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

            // Automatically fetches more pages as needed.
            for await (const transaction of client.transactions.list()) {
              console.log(transaction);
            }
        - lang: Python
          source: |-
            import os
            from grid import LightsparkGrid

            client = LightsparkGrid(
                username=os.environ.get("GRID_CLIENT_ID"),  # This is the default and can be omitted
                password=os.environ.get("GRID_CLIENT_SECRET"),  # This is the default and can be omitted
            )
            page = client.transactions.list()
            page = page.data[0]
            print(page)
        - 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.transactions.TransactionListPage
            import com.lightspark.grid.models.transactions.TransactionListParams

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

                val page: TransactionListPage = client.transactions().list()
            }
components:
  schemas:
    TransactionStatus:
      type: string
      enum:
        - CREATED
        - PENDING
        - PROCESSING
        - COMPLETED
        - REJECTED
        - FAILED
        - REFUNDED
        - EXPIRED
      description: >
        Status of a payment transaction.


        | Status | Description |

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

        | `CREATED` | Initial lookup has been created |

        | `PENDING` | Quote has been created |

        | `PROCESSING` | Funding has been received and payment initiated |

        | `COMPLETED` | Cross border payment has been received, converted and
        payment has been sent to the offramp network |

        | `REJECTED` | Receiving institution or wallet rejected payment, payment
        has been refunded |

        | `FAILED` | An error occurred during payment |

        | `REFUNDED` | Payment was unable to complete and refunded |

        | `EXPIRED` | Quote has expired |
    TransactionType:
      type: string
      enum:
        - INCOMING
        - OUTGOING
      description: Type of transaction (incoming payment or outgoing payment)
    TransactionOneOf:
      oneOf:
        - $ref: '#/components/schemas/IncomingTransaction'
        - $ref: '#/components/schemas/OutgoingTransaction'
      discriminator:
        propertyName: type
        mapping:
          INCOMING:
            $ref: '#/components/schemas/IncomingTransaction'
          OUTGOING:
            $ref: '#/components/schemas/OutgoingTransaction'
    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 |
          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
        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 |
          enum:
            - UNAUTHORIZED
            - INVALID_SIGNATURE
        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
    IncomingTransaction:
      title: Incoming Transaction
      allOf:
        - $ref: '#/components/schemas/Transaction'
        - type: object
          required:
            - type
            - receivedAmount
          properties:
            type:
              type: string
              enum:
                - INCOMING
            source:
              $ref: '#/components/schemas/TransactionSourceOneOf'
            receivedAmount:
              $ref: '#/components/schemas/CurrencyAmount'
              description: Amount received in the recipient's currency
            reconciliationInstructions:
              $ref: '#/components/schemas/ReconciliationInstructions'
              description: Included for all transactions except those with "CREATED" status
            rateDetails:
              $ref: '#/components/schemas/IncomingRateDetails'
              description: Details about the rate and fees for the transaction.
            failureReason:
              $ref: '#/components/schemas/IncomingTransactionFailureReason'
              description: >-
                If the transaction failed, this field provides the reason for
                failure.
    OutgoingTransaction:
      title: Outgoing Transaction
      allOf:
        - $ref: '#/components/schemas/Transaction'
        - type: object
          required:
            - type
            - sentAmount
            - source
          properties:
            status:
              $ref: '#/components/schemas/OutgoingTransactionStatus'
            type:
              type: string
              enum:
                - OUTGOING
            source:
              $ref: '#/components/schemas/TransactionSourceOneOf'
            sentAmount:
              $ref: '#/components/schemas/CurrencyAmount'
              description: Amount sent in the sender's currency
            receivedAmount:
              $ref: '#/components/schemas/CurrencyAmount'
              description: Amount to be received by recipient in the recipient's currency
            exchangeRate:
              type: number
              description: Number of sending currency units per receiving currency unit.
              exclusiveMinimum: 0
              example: 1.08
            fees:
              type: integer
              format: int64
              description: >-
                The fees associated with the quote in the smallest unit of the
                sending currency (eg. cents).
              minimum: 0
              example: 10
            quoteId:
              type: string
              description: The ID of the quote that was used to trigger this payment
              example: Quote:019542f5-b3e7-1d02-0000-000000000006
            paymentInstructions:
              type: array
              description: Payment instructions for executing the payment.
              items:
                $ref: '#/components/schemas/PaymentInstructions'
              example:
                - accountOrWalletInfo:
                    accountType: USD_ACCOUNT
                    paymentRails:
                      - ACH
                      - WIRE
                    accountNumber: '1234567890'
                    routingNumber: '021000021'
                    bankName: Chase Bank
                    reference: UMA-Q12345-REF
                  instructionsNotes: Include reference UMA-Q12345-REF in memo
                - accountOrWalletInfo:
                    accountType: SPARK_WALLET
                    assetType: BTC
                    address: >-
                      spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu
                    invoice: >-
                      lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs
            refund:
              $ref: '#/components/schemas/Refund'
              description: The refund if transaction was refunded.
            rateDetails:
              $ref: '#/components/schemas/OutgoingRateDetails'
              description: Details about the rate and fees for the transaction.
            failureReason:
              $ref: '#/components/schemas/OutgoingTransactionFailureReason'
              description: >-
                If the transaction failed, this field provides the reason for
                failure.
    Transaction:
      type: object
      required:
        - id
        - status
        - type
        - destination
        - customerId
        - platformCustomerId
      properties:
        id:
          type: string
          description: Unique identifier for the transaction
          example: Transaction:019542f5-b3e7-1d02-0000-000000000004
        status:
          $ref: '#/components/schemas/TransactionStatus'
        type:
          $ref: '#/components/schemas/TransactionType'
        destination:
          $ref: '#/components/schemas/TransactionDestinationOneOf'
        customerId:
          type: string
          description: >-
            System ID of the customer (sender for outgoing, recipient for
            incoming)
          example: Customer:019542f5-b3e7-1d02-0000-000000000001
        platformCustomerId:
          type: string
          description: >-
            Platform-specific ID of the customer (sender for outgoing, recipient
            for incoming)
          example: 18d3e5f7b4a9c2
        settledAt:
          type: string
          format: date-time
          description: When the payment was or will be settled
          example: '2025-08-15T14:30:00Z'
        createdAt:
          type: string
          format: date-time
          description: When the transaction was created
          example: '2025-08-15T14:25:18Z'
        updatedAt:
          type: string
          format: date-time
          description: When the transaction was last updated
          example: '2025-08-15T14:30:00Z'
        description:
          type: string
          description: Optional memo or description for the payment
          example: 'Payment for invoice #1234'
        counterpartyInformation:
          $ref: '#/components/schemas/CounterpartyInformation'
    TransactionSourceOneOf:
      oneOf:
        - $ref: '#/components/schemas/AccountTransactionSource'
        - $ref: '#/components/schemas/UmaAddressTransactionSource'
        - $ref: '#/components/schemas/RealtimeFundingTransactionSource'
      discriminator:
        propertyName: sourceType
        mapping:
          ACCOUNT:
            $ref: '#/components/schemas/AccountTransactionSource'
          UMA_ADDRESS:
            $ref: '#/components/schemas/UmaAddressTransactionSource'
          REALTIME_FUNDING:
            $ref: '#/components/schemas/RealtimeFundingTransactionSource'
    CurrencyAmount:
      type: object
      required:
        - amount
        - currency
      properties:
        amount:
          type: integer
          format: int64
          description: >-
            Amount in the smallest unit of the currency (e.g., cents for
            USD/EUR, satoshis for BTC)
          example: 12550
        currency:
          $ref: '#/components/schemas/Currency'
    ReconciliationInstructions:
      type: object
      required:
        - reference
      properties:
        reference:
          type: string
          description: >-
            Unique reference code that must be included with the payment to
            match it with the correct incoming transaction
          example: UMA-Q12345-REF
    IncomingRateDetails:
      description: Details about the rate and fees for an incoming transaction.
      type: object
      required:
        - gridApiMultiplier
        - gridApiFixedFee
        - gridApiVariableFeeRate
        - gridApiVariableFeeAmount
      properties:
        gridApiMultiplier:
          type: number
          format: double
          description: >-
            The underlying multiplier from the mSATS to the receiving currency,
            including variable fees.
          exclusiveMinimum: 0
          example: 0.925
        gridApiFixedFee:
          type: integer
          format: int64
          description: >-
            The fixed fee charged by the Grid product to execute the quote in
            the smallest unit of the receiving currency (eg. cents).
          minimum: 0
          example: 10
        gridApiVariableFeeRate:
          type: number
          format: double
          description: >-
            The variable fee rate charged by the Grid product to execute the
            quote as a percentage of the receiving currency amount.
          minimum: 0
          example: 0.003
        gridApiVariableFeeAmount:
          type: number
          format: int64
          description: >-
            The variable fee amount charged by the Grid product to execute the
            quote in the smallest unit of the receiving currency (eg. cents).
            This is the receiving amount times gridApiVariableFeeRate.
          minimum: 0
          example: 30
    IncomingTransactionFailureReason:
      type: string
      enum:
        - LNURLP_FAILED
        - PAY_REQUEST_FAILED
        - PAYMENT_APPROVAL_WEBHOOK_ERROR
        - PAYMENT_APPROVAL_TIMED_OUT
        - OFFRAMP_FAILED
        - MISSING_MANDATORY_PAYEE_DATA
        - QUOTE_EXPIRED
        - QUOTE_EXECUTION_FAILED
      description: >-
        Reason for failure of an incoming transaction. This is used to provide
        more context on why a transaction failed. If the transaction is not in a
        failed state, this field is omitted.
    OutgoingTransactionStatus:
      type: string
      enum:
        - PENDING
        - EXPIRED
        - PROCESSING
        - COMPLETED
        - FAILED
      description: |
        Status of an outgoing payment transaction.

        | Status | Description |
        |--------|-------------|
        | `PENDING` | Quote is pending confirmation |
        | `EXPIRED` | Quote wasn't executed before expiry window |
        | `PROCESSING` | Executing the quote after receiving funds |
        | `COMPLETED` | Payout successfully reached the destination |
        | `FAILED` | Something went wrong — accompanied by a `failureReason` |
    PaymentInstructions:
      type: object
      required:
        - accountOrWalletInfo
      properties:
        instructionsNotes:
          type: string
          description: Additional human-readable instructions for making the payment
          example: >-
            Please ensure the reference code is included in the payment
            memo/description field
        isPlatformAccount:
          type: boolean
          description: >-
            Indicates whether the account is a platform account or a customer
            account.
          example: true
        accountOrWalletInfo:
          oneOf:
            - $ref: '#/components/schemas/PaymentUsdAccountInfo'
            - $ref: '#/components/schemas/PaymentBrlAccountInfo'
            - $ref: '#/components/schemas/PaymentMxnAccountInfo'
            - $ref: '#/components/schemas/PaymentDkkAccountInfo'
            - $ref: '#/components/schemas/PaymentEurAccountInfo'
            - $ref: '#/components/schemas/PaymentInrAccountInfo'
            - $ref: '#/components/schemas/PaymentNgnAccountInfo'
            - $ref: '#/components/schemas/PaymentCadAccountInfo'
            - $ref: '#/components/schemas/PaymentGbpAccountInfo'
            - $ref: '#/components/schemas/PaymentHkdAccountInfo'
            - $ref: '#/components/schemas/PaymentIdrAccountInfo'
            - $ref: '#/components/schemas/PaymentMyrAccountInfo'
            - $ref: '#/components/schemas/PaymentPhpAccountInfo'
            - $ref: '#/components/schemas/PaymentSgdAccountInfo'
            - $ref: '#/components/schemas/PaymentThbAccountInfo'
            - $ref: '#/components/schemas/PaymentVndAccountInfo'
            - $ref: '#/components/schemas/PaymentAedAccountInfo'
            - $ref: '#/components/schemas/PaymentKesAccountInfo'
            - $ref: '#/components/schemas/PaymentMwkAccountInfo'
            - $ref: '#/components/schemas/PaymentRwfAccountInfo'
            - $ref: '#/components/schemas/PaymentTzsAccountInfo'
            - $ref: '#/components/schemas/PaymentUgxAccountInfo'
            - $ref: '#/components/schemas/PaymentXofAccountInfo'
            - $ref: '#/components/schemas/PaymentZarAccountInfo'
            - $ref: '#/components/schemas/PaymentZmwAccountInfo'
            - $ref: '#/components/schemas/PaymentBwpAccountInfo'
            - $ref: '#/components/schemas/PaymentXafAccountInfo'
            - $ref: '#/components/schemas/PaymentBdtAccountInfo'
            - $ref: '#/components/schemas/PaymentCopAccountInfo'
            - $ref: '#/components/schemas/PaymentEgpAccountInfo'
            - $ref: '#/components/schemas/PaymentGhsAccountInfo'
            - $ref: '#/components/schemas/PaymentGtqAccountInfo'
            - $ref: '#/components/schemas/PaymentHtgAccountInfo'
            - $ref: '#/components/schemas/PaymentJmdAccountInfo'
            - $ref: '#/components/schemas/PaymentPkrAccountInfo'
            - $ref: '#/components/schemas/PaymentSparkWalletInfo'
            - $ref: '#/components/schemas/PaymentLightningInvoiceInfo'
            - $ref: '#/components/schemas/PaymentSolanaWalletInfo'
            - $ref: '#/components/schemas/PaymentTronWalletInfo'
            - $ref: '#/components/schemas/PaymentPolygonWalletInfo'
            - $ref: '#/components/schemas/PaymentBaseWalletInfo'
            - $ref: '#/components/schemas/PaymentEthereumWalletInfo'
          discriminator:
            propertyName: accountType
            mapping:
              USD_ACCOUNT:
                $ref: '#/components/schemas/PaymentUsdAccountInfo'
              BRL_ACCOUNT:
                $ref: '#/components/schemas/PaymentBrlAccountInfo'
              MXN_ACCOUNT:
                $ref: '#/components/schemas/PaymentMxnAccountInfo'
              DKK_ACCOUNT:
                $ref: '#/components/schemas/PaymentDkkAccountInfo'
              EUR_ACCOUNT:
                $ref: '#/components/schemas/PaymentEurAccountInfo'
              INR_ACCOUNT:
                $ref: '#/components/schemas/PaymentInrAccountInfo'
              NGN_ACCOUNT:
                $ref: '#/components/schemas/PaymentNgnAccountInfo'
              CAD_ACCOUNT:
                $ref: '#/components/schemas/PaymentCadAccountInfo'
              GBP_ACCOUNT:
                $ref: '#/components/schemas/PaymentGbpAccountInfo'
              HKD_ACCOUNT:
                $ref: '#/components/schemas/PaymentHkdAccountInfo'
              IDR_ACCOUNT:
                $ref: '#/components/schemas/PaymentIdrAccountInfo'
              MYR_ACCOUNT:
                $ref: '#/components/schemas/PaymentMyrAccountInfo'
              PHP_ACCOUNT:
                $ref: '#/components/schemas/PaymentPhpAccountInfo'
              SGD_ACCOUNT:
                $ref: '#/components/schemas/PaymentSgdAccountInfo'
              THB_ACCOUNT:
                $ref: '#/components/schemas/PaymentThbAccountInfo'
              VND_ACCOUNT:
                $ref: '#/components/schemas/PaymentVndAccountInfo'
              SPARK_WALLET:
                $ref: '#/components/schemas/PaymentSparkWalletInfo'
              LIGHTNING:
                $ref: '#/components/schemas/PaymentLightningInvoiceInfo'
              SOLANA_WALLET:
                $ref: '#/components/schemas/PaymentSolanaWalletInfo'
              TRON_WALLET:
                $ref: '#/components/schemas/PaymentTronWalletInfo'
              POLYGON_WALLET:
                $ref: '#/components/schemas/PaymentPolygonWalletInfo'
              BASE_WALLET:
                $ref: '#/components/schemas/PaymentBaseWalletInfo'
              ETHEREUM_WALLET:
                $ref: '#/components/schemas/PaymentEthereumWalletInfo'
              AED_ACCOUNT:
                $ref: '#/components/schemas/PaymentAedAccountInfo'
              KES_ACCOUNT:
                $ref: '#/components/schemas/PaymentKesAccountInfo'
              MWK_ACCOUNT:
                $ref: '#/components/schemas/PaymentMwkAccountInfo'
              RWF_ACCOUNT:
                $ref: '#/components/schemas/PaymentRwfAccountInfo'
              TZS_ACCOUNT:
                $ref: '#/components/schemas/PaymentTzsAccountInfo'
              UGX_ACCOUNT:
                $ref: '#/components/schemas/PaymentUgxAccountInfo'
              XOF_ACCOUNT:
                $ref: '#/components/schemas/PaymentXofAccountInfo'
              ZAR_ACCOUNT:
                $ref: '#/components/schemas/PaymentZarAccountInfo'
              ZMW_ACCOUNT:
                $ref: '#/components/schemas/PaymentZmwAccountInfo'
              BWP_ACCOUNT:
                $ref: '#/components/schemas/PaymentBwpAccountInfo'
              XAF_ACCOUNT:
                $ref: '#/components/schemas/PaymentXafAccountInfo'
              BDT_ACCOUNT:
                $ref: '#/components/schemas/PaymentBdtAccountInfo'
              COP_ACCOUNT:
                $ref: '#/components/schemas/PaymentCopAccountInfo'
              EGP_ACCOUNT:
                $ref: '#/components/schemas/PaymentEgpAccountInfo'
              GHS_ACCOUNT:
                $ref: '#/components/schemas/PaymentGhsAccountInfo'
              GTQ_ACCOUNT:
                $ref: '#/components/schemas/PaymentGtqAccountInfo'
              HTG_ACCOUNT:
                $ref: '#/components/schemas/PaymentHtgAccountInfo'
              JMD_ACCOUNT:
                $ref: '#/components/schemas/PaymentJmdAccountInfo'
              PKR_ACCOUNT:
                $ref: '#/components/schemas/PaymentPkrAccountInfo'
    Refund:
      type: object
      required:
        - reference
        - initiatedAt
        - status
      properties:
        reference:
          type: string
          description: The unique reference ID of the refund
          example: UMA-Q12345-REFUND
        initiatedAt:
          type: string
          format: date-time
          description: When the refund was initiated
          example: '2025-08-15T14:30:00Z'
        settledAt:
          type: string
          format: date-time
          description: When the refund was settled
          example: '2025-08-15T14:35:00Z'
        status:
          type: string
          enum:
            - PENDING
            - COMPLETED
            - FAILED
          description: Current status of the refund
          example: COMPLETED
        reason:
          type: string
          enum:
            - TRANSACTION_FAILED
            - USER_CANCELLATION
            - TIMEOUT
          description: Reason for the refund
          example: TRANSACTION_FAILED
    OutgoingRateDetails:
      description: Details about the rate and fees for an outgoing transaction or quote.
      type: object
      required:
        - counterpartyMultiplier
        - counterpartyFixedFee
        - gridApiMultiplier
        - gridApiFixedFee
        - gridApiVariableFeeRate
        - gridApiVariableFeeAmount
      properties:
        counterpartyMultiplier:
          type: number
          format: double
          description: >-
            The underlying multiplier from mSATs to the receiving currency as
            returned by the counterparty institution.
          exclusiveMinimum: 0
          example: 1.08
        counterpartyFixedFee:
          type: integer
          format: int64
          description: >-
            The fixed fee charged by the counterparty institution to execute the
            quote in the smallest unit of the receiving currency (eg. cents).
          minimum: 0
          example: 10
        gridApiMultiplier:
          type: number
          format: double
          description: >-
            The underlying multiplier from the sending currency to mSATS,
            including variable fees.
          exclusiveMinimum: 0
          example: 0.925
        gridApiFixedFee:
          type: integer
          format: int64
          description: >-
            The fixed fee charged by the Grid product to execute the quote in
            the smallest unit of the sending currency (eg. cents).
          minimum: 0
          example: 10
        gridApiVariableFeeRate:
          type: number
          format: double
          description: >-
            The variable fee rate charged by the Grid product to execute the
            quote as a percentage of the sending currency amount.
          minimum: 0
          example: 0.003
        gridApiVariableFeeAmount:
          type: number
          format: int64
          description: >-
            The variable fee amount charged by the Grid product to execute the
            quote in the smallest unit of the sending currency (eg. cents). This
            is the sending amount times gridApiVariableFeeRate.
          minimum: 0
          example: 30
    OutgoingTransactionFailureReason:
      type: string
      enum:
        - QUOTE_EXPIRED
        - QUOTE_EXECUTION_FAILED
        - LIGHTNING_PAYMENT_FAILED
        - FUNDING_AMOUNT_MISMATCH
        - COUNTERPARTY_POST_TX_FAILED
      description: >-
        Reason for failure of an outgoing transaction. This is used to provide
        more context on why a transaction failed. If the transaction is not in a
        failed state, this field is omitted.
    TransactionDestinationOneOf:
      oneOf:
        - $ref: '#/components/schemas/AccountTransactionDestination'
        - $ref: '#/components/schemas/UmaAddressTransactionDestination'
      discriminator:
        propertyName: destinationType
        mapping:
          ACCOUNT:
            $ref: '#/components/schemas/AccountTransactionDestination'
          UMA_ADDRESS:
            $ref: '#/components/schemas/UmaAddressTransactionDestination'
    CounterpartyInformation:
      type: object
      description: >-
        Additional information about the counterparty, if available and relevant
        to the transaction and platform.
      additionalProperties: true
      example:
        FULL_NAME: John Sender
        BIRTH_DATE: '1985-06-15'
        NATIONALITY: DE
    AccountTransactionSource:
      title: Account Source
      allOf:
        - $ref: '#/components/schemas/BaseTransactionSource'
        - type: object
          required:
            - accountId
            - sourceType
          properties:
            sourceType:
              type: string
              enum:
                - ACCOUNT
            accountId:
              type: string
              description: Source account identifier
              example: InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965
          description: Source account details
    UmaAddressTransactionSource:
      title: UMA Address Source
      allOf:
        - $ref: '#/components/schemas/BaseTransactionSource'
        - type: object
          required:
            - umaAddress
            - sourceType
          properties:
            sourceType:
              type: string
              enum:
                - UMA_ADDRESS
            umaAddress:
              type: string
              description: UMA address of the sender
              example: $sender@uma.domain.com
          description: UMA address source details
    RealtimeFundingTransactionSource:
      title: Real-time Funding Source
      allOf:
        - $ref: '#/components/schemas/BaseTransactionSource'
        - type: object
          required:
            - currency
            - sourceType
          properties:
            sourceType:
              type: string
              enum:
                - REALTIME_FUNDING
            customerId:
              type: string
              description: The customer on whose behalf the transaction was initiated.
              example: Customer:019542f5-b3e7-1d02-0000-000000000009
            currency:
              type: string
              description: Currency code for the funding source
              example: USDC
          description: >-
            Transaction was funded using a real-time funding source (RTP, SEPA
            Instant, Spark, Stables, etc.).
    Currency:
      type: object
      properties:
        code:
          type: string
          description: >-
            Three-letter currency code (ISO 4217) for fiat currencies. Some
            cryptocurrencies may use their own ticker symbols (e.g. "BTC" for
            Bitcoin, "USDC" for USDC, etc.)
          example: USD
        name:
          type: string
          description: Full name of the currency
          example: United States Dollar
        symbol:
          type: string
          description: Symbol of the currency
          example: $
        decimals:
          type: integer
          description: Number of decimal places for the currency
          minimum: 0
          example: 2
    PaymentUsdAccountInfo:
      title: USD Bank Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/UsdAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentBrlAccountInfo:
      title: BRL Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - type: object
          required:
            - qrCode
          properties:
            accountType:
              type: string
              enum:
                - BRL_ACCOUNT
            qrCode:
              type: string
              description: >-
                A PIX QR code payload that can be used to fund the transaction.
                This can be rendered as a QR code image or pasted into a
                PIX-compatible banking app.
              minLength: 1
    PaymentMxnAccountInfo:
      title: MXN Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/MxnAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentDkkAccountInfo:
      title: DKK Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/DkkAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentEurAccountInfo:
      title: EUR Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/EurAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentInrAccountInfo:
      title: INR Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/InrAccountInfo'
    PaymentNgnAccountInfo:
      title: NGN Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/NgnAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentCadAccountInfo:
      title: CAD Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/CadAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentGbpAccountInfo:
      title: GBP Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/GbpAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentHkdAccountInfo:
      title: HKD Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/HkdAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentIdrAccountInfo:
      title: IDR Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/IdrAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentMyrAccountInfo:
      title: MYR Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/MyrAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentPhpAccountInfo:
      title: PHP Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/PhpAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentSgdAccountInfo:
      title: SGD Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/SgdAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentThbAccountInfo:
      title: THB Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/ThbAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentVndAccountInfo:
      title: VND Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/VndAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentAedAccountInfo:
      title: AED Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/AedAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentKesAccountInfo:
      title: KES Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/KesAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentMwkAccountInfo:
      title: MWK Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/MwkAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentRwfAccountInfo:
      title: RWF Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/RwfAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentTzsAccountInfo:
      title: TZS Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/TzsAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentUgxAccountInfo:
      title: UGX Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/UgxAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentXofAccountInfo:
      title: XOF Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/XofAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentZarAccountInfo:
      title: ZAR Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/ZarAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentZmwAccountInfo:
      title: ZMW Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/ZmwAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentBwpAccountInfo:
      title: BWP Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/BwpAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentXafAccountInfo:
      title: XAF Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/XafAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentBdtAccountInfo:
      title: BDT Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/BdtAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentCopAccountInfo:
      title: COP Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/CopAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentEgpAccountInfo:
      title: EGP Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/EgpAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentGhsAccountInfo:
      title: GHS Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/GhsAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentGtqAccountInfo:
      title: GTQ Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/GtqAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentHtgAccountInfo:
      title: HTG Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/HtgAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentJmdAccountInfo:
      title: JMD Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/JmdAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentPkrAccountInfo:
      title: PKR Account
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/PkrAccountInfo'
        - type: object
          required:
            - reference
          properties:
            reference:
              type: string
              description: >-
                Unique reference code that must be included with the payment to
                properly credit it
              example: UMA-Q12345-REF
    PaymentSparkWalletInfo:
      title: Spark Wallet
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/SparkWalletInfo'
        - type: object
          required:
            - assetType
          properties:
            assetType:
              type: string
              description: Type of asset
              enum:
                - BTC
                - USDB
            invoice:
              type: string
              description: Invoice for the payment
              example: >-
                sparkrt1pgss8ter0fhc4c220f3zftmpz49h8wqte8eg3m5zkrraplgc048jucgszg3ssqgjzqqekv73mmh842yj7drsjwh7t7tz5zt8wf5kghm5v4ehggszppjp5s80cg3qjdzc55g2567tn3lj705hdsr577tg8ah795mlnt6807y657qhkmgfkf9w75p4wz3l8vhua85zdn6ryj32zuj0p00pv2l5z4u47mw6h4s
    PaymentLightningInvoiceInfo:
      title: Lightning Invoice
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - type: object
          required:
            - invoice
          properties:
            accountType:
              type: string
              enum:
                - LIGHTNING
            invoice:
              type: string
              description: Invoice for the payment
              example: >-
                lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs
    PaymentSolanaWalletInfo:
      title: Solana Wallet
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/SolanaWalletInfo'
        - type: object
          properties:
            assetType:
              type: string
              description: Type of asset
              enum:
                - USDC
                - USDT
    PaymentTronWalletInfo:
      title: Tron Wallet
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/TronWalletInfo'
        - type: object
          properties:
            assetType:
              type: string
              description: Type of asset
              enum:
                - USDT
    PaymentPolygonWalletInfo:
      title: Polygon Wallet
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/PolygonWalletInfo'
        - type: object
          properties:
            assetType:
              type: string
              description: Type of asset
              enum:
                - USDC
    PaymentBaseWalletInfo:
      title: Base Wallet
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/BaseWalletInfo'
        - type: object
          properties:
            assetType:
              type: string
              description: Type of asset
              enum:
                - USDC
    PaymentEthereumWalletInfo:
      title: Ethereum Wallet
      allOf:
        - $ref: '#/components/schemas/BasePaymentAccountInfo'
        - $ref: '#/components/schemas/EthereumWalletInfo'
        - type: object
          properties:
            assetType:
              type: string
              description: Type of asset
              enum:
                - USDC
    AccountTransactionDestination:
      title: Account Destination
      allOf:
        - $ref: '#/components/schemas/BaseTransactionDestination'
        - type: object
          required:
            - accountId
            - destinationType
          properties:
            destinationType:
              type: string
              enum:
                - ACCOUNT
            accountId:
              type: string
              description: Destination account identifier
              example: ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123
          description: Destination account details
    UmaAddressTransactionDestination:
      title: UMA Address Destination
      allOf:
        - $ref: '#/components/schemas/BaseTransactionDestination'
        - type: object
          required:
            - umaAddress
            - destinationType
          properties:
            destinationType:
              type: string
              enum:
                - UMA_ADDRESS
            umaAddress:
              type: string
              description: UMA address of the recipient
              example: $receiver@uma.domain.com
          description: UMA address destination details
    BaseTransactionSource:
      type: object
      required:
        - sourceType
      properties:
        sourceType:
          $ref: '#/components/schemas/TransactionSourceType'
        currency:
          type: string
          description: Currency code for the source
          example: USD
    BasePaymentAccountInfo:
      type: object
      required:
        - accountType
      properties:
        accountType:
          $ref: '#/components/schemas/PaymentAccountType'
    UsdAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - accountNumber
        - routingNumber
      properties:
        accountType:
          type: string
          enum:
            - USD_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - ACH
              - WIRE
              - RTP
              - FEDNOW
              - BANK_TRANSFER
        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}$
    MxnAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - clabeNumber
      properties:
        accountType:
          type: string
          enum:
            - MXN_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - SPEI
        clabeNumber:
          type: string
          description: The CLABE number of the bank
          example: '123456789012345678'
          minLength: 18
          maxLength: 18
          pattern: ^[0-9]{18}$
    DkkAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - iban
      properties:
        accountType:
          type: string
          enum:
            - DKK_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - SEPA
              - SEPA_INSTANT
        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})?$
    EurAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - iban
      properties:
        accountType:
          type: string
          enum:
            - EUR_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - SEPA
              - SEPA_INSTANT
        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})?$
    InrAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - vpa
      properties:
        accountType:
          type: string
          enum:
            - INR_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - UPI
        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]+$
    NgnAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - accountNumber
        - bankName
      properties:
        accountType:
          type: string
          enum:
            - NGN_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
        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
    CadAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - bankCode
        - branchCode
        - accountNumber
      properties:
        accountType:
          type: string
          enum:
            - CAD_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
        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}$
    GbpAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - sortCode
        - accountNumber
      properties:
        accountType:
          type: string
          enum:
            - GBP_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - FASTER_PAYMENTS
        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}$
    HkdAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - bankName
        - accountNumber
        - swiftCode
      properties:
        accountType:
          type: string
          enum:
            - HKD_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
        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})?$
    IdrAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - bankName
        - accountNumber
        - swiftCode
        - phoneNumber
      properties:
        accountType:
          type: string
          enum:
            - IDR_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
        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}$
    MyrAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - bankName
        - accountNumber
        - swiftCode
      properties:
        accountType:
          type: string
          enum:
            - MYR_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
        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})?$
    PhpAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - bankName
        - accountNumber
      properties:
        accountType:
          type: string
          enum:
            - PHP_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
        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}$
    SgdAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - bankName
        - accountNumber
        - swiftCode
      properties:
        accountType:
          type: string
          enum:
            - SGD_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - PAYNOW
              - FAST
              - BANK_TRANSFER
        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})?$
    ThbAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - bankName
        - accountNumber
        - swiftCode
      properties:
        accountType:
          type: string
          enum:
            - THB_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
        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})?$
    VndAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - bankName
        - accountNumber
        - swiftCode
      properties:
        accountType:
          type: string
          enum:
            - VND_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
        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})?$
    AedAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - iban
      properties:
        accountType:
          type: string
          enum:
            - AED_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
        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})?$
    KesAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - phoneNumber
        - provider
      properties:
        accountType:
          type: string
          enum:
            - KES_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - MOBILE_MONEY
        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
    MwkAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - phoneNumber
        - provider
      properties:
        accountType:
          type: string
          enum:
            - MWK_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - MOBILE_MONEY
        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
    RwfAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - phoneNumber
        - provider
      properties:
        accountType:
          type: string
          enum:
            - RWF_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - MOBILE_MONEY
        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
    TzsAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - phoneNumber
        - provider
      properties:
        accountType:
          type: string
          enum:
            - TZS_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - MOBILE_MONEY
        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
    UgxAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - phoneNumber
        - provider
      properties:
        accountType:
          type: string
          enum:
            - UGX_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - MOBILE_MONEY
        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
    XofAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - phoneNumber
        - provider
        - region
      properties:
        accountType:
          type: string
          enum:
            - XOF_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - MOBILE_MONEY
        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
    ZarAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - accountNumber
        - bankName
      properties:
        accountType:
          type: string
          enum:
            - ZAR_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
        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
    ZmwAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - phoneNumber
        - provider
      properties:
        accountType:
          type: string
          enum:
            - ZMW_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - MOBILE_MONEY
        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
    BwpAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - phoneNumber
        - provider
      properties:
        accountType:
          type: string
          enum:
            - BWP_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - MOBILE_MONEY
        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
    XafAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - phoneNumber
        - provider
        - region
      properties:
        accountType:
          type: string
          enum:
            - XAF_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - MOBILE_MONEY
        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
    BdtAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - accountNumber
        - branchCode
        - phoneNumber
      properties:
        accountType:
          type: string
          enum:
            - BDT_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
              - MOBILE_MONEY
        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}$
        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}$
    CopAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - accountNumber
        - bankAccountType
        - phoneNumber
      properties:
        accountType:
          type: string
          enum:
            - COP_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
              - MOBILE_MONEY
        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
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
    EgpAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - accountNumber
      properties:
        accountType:
          type: string
          enum:
            - EGP_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
        accountNumber:
          type: string
          description: The account number of the bank
          minLength: 1
          maxLength: 34
        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})?$
    GhsAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - accountNumber
        - phoneNumber
      properties:
        accountType:
          type: string
          enum:
            - GHS_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
              - MOBILE_MONEY
        accountNumber:
          type: string
          description: The account number of the bank
          minLength: 1
          maxLength: 34
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
    GtqAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - accountNumber
        - phoneNumber
      properties:
        accountType:
          type: string
          enum:
            - GTQ_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
              - MOBILE_MONEY
        accountNumber:
          type: string
          description: The account number of the bank
          minLength: 1
          maxLength: 34
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
    HtgAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - phoneNumber
      properties:
        accountType:
          type: string
          enum:
            - HTG_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - MOBILE_MONEY
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
    JmdAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - accountNumber
        - branchCode
        - bankAccountType
      properties:
        accountType:
          type: string
          enum:
            - JMD_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
        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
    PkrAccountInfo:
      type: object
      required:
        - accountType
        - paymentRails
        - accountNumber
        - phoneNumber
      properties:
        accountType:
          type: string
          enum:
            - PKR_ACCOUNT
        paymentRails:
          type: array
          items:
            type: string
            enum:
              - BANK_TRANSFER
              - MOBILE_MONEY
        accountNumber:
          type: string
          description: The account number of the bank
          minLength: 1
          maxLength: 34
        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}$
        phoneNumber:
          type: string
          description: The phone number in international format
          example: '+1234567890'
          minLength: 7
          maxLength: 15
          pattern: ^\+[0-9]{6,14}$
    SparkWalletInfo:
      type: object
      required:
        - address
        - accountType
      properties:
        accountType:
          type: string
          enum:
            - SPARK_WALLET
        address:
          type: string
          description: Spark wallet address
          example: spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu
    SolanaWalletInfo:
      type: object
      required:
        - address
        - accountType
      properties:
        accountType:
          type: string
          enum:
            - SOLANA_WALLET
        address:
          type: string
          description: Solana wallet address
          example: 4Nd1m6Qkq7RfKuE5vQ9qP9Tn6H94Ueqb4xXHzsAbd8Wg
    TronWalletInfo:
      type: object
      required:
        - address
        - accountType
      properties:
        accountType:
          type: string
          enum:
            - TRON_WALLET
        address:
          type: string
          description: Tron wallet address
          example: TNPeeaaFB7K9cmo4uQpcU32zGK8G1NYqeL
    PolygonWalletInfo:
      type: object
      required:
        - address
        - accountType
      properties:
        accountType:
          type: string
          enum:
            - POLYGON_WALLET
        address:
          type: string
          description: Polygon eth wallet address
          example: '0xAbCDEF1234567890aBCdEf1234567890ABcDef12'
    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'
    BaseTransactionDestination:
      type: object
      required:
        - destinationType
      properties:
        destinationType:
          $ref: '#/components/schemas/TransactionDestinationType'
        currency:
          type: string
          description: Currency code for the destination
          example: EUR
    TransactionSourceType:
      type: string
      enum:
        - ACCOUNT
        - UMA_ADDRESS
        - REALTIME_FUNDING
      description: Type of transaction source
      example: ACCOUNT
    PaymentAccountType:
      type: string
      enum:
        - USD_ACCOUNT
        - BRL_ACCOUNT
        - MXN_ACCOUNT
        - DKK_ACCOUNT
        - EUR_ACCOUNT
        - INR_ACCOUNT
        - NGN_ACCOUNT
        - CAD_ACCOUNT
        - GBP_ACCOUNT
        - HKD_ACCOUNT
        - IDR_ACCOUNT
        - MYR_ACCOUNT
        - PHP_ACCOUNT
        - SGD_ACCOUNT
        - THB_ACCOUNT
        - VND_ACCOUNT
        - SPARK_WALLET
        - LIGHTNING
        - SOLANA_WALLET
        - TRON_WALLET
        - POLYGON_WALLET
        - BASE_WALLET
        - ETHEREUM_WALLET
      description: Type of payment account or wallet
      example: USD_ACCOUNT
    TransactionDestinationType:
      type: string
      enum:
        - ACCOUNT
        - UMA_ADDRESS
      description: Type of transaction destination
      example: ACCOUNT
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: >-
        API token authentication using format `<api token id>:<api client
        secret>`

````