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

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://developers.fireblocks.com/feedback

```json
{
  "path": "/api-reference/trading-beta/get-order-details",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Get order details

> Retrieve detailed information about a specific order by its ID.

Note:These endpoints are currently in beta and might be subject to changes.

If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.

Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.

For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes).



## OpenAPI

````yaml https://docs.fireblocks.com/api/v1/swagger.yaml get /trading/orders/{orderId}
openapi: 3.0.0
info:
  title: Fireblocks API
  description: >
    Fireblocks provides a suite of applications to manage digital asset
    operations and a complete development platform to build your business on the
    blockchain.


    - Visit our website for more information: [Fireblocks
    Website](https://fireblocks.com)

    - Visit our developer docs: [Fireblocks
    DevPortal](https://developers.fireblocks.com)
  version: 1.6.2
  contact:
    email: developers@fireblocks.com
servers:
  - url: https://api.fireblocks.io/v1
    description: Fireblocks Production Environment Base URL
  - url: https://sandbox-api.fireblocks.io/v1
    description: Fireblocks Sandbox Environment Base URL
security: []
paths:
  /trading/orders/{orderId}:
    get:
      tags:
        - Trading (Beta)
      summary: Get order details
      description: >-
        Retrieve detailed information about a specific order by its ID.


        Note:These endpoints are currently in beta and might be subject to
        changes.


        If you want to participate and learn more about the Fireblocks Trading,
        please contact your Fireblocks Customer Success Manager or send an email
        to CSM@fireblocks.com.


        Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver,
        Editor, Viewer.


        For detailed information about error codes and troubleshooting, please
        refer to our [API Error Codes
        documentation](https://developers.fireblocks.com/reference/api-error-codes).
      operationId: getOrder
      parameters:
        - name: orderId
          in: path
          required: true
          description: The ID of the order to fetch.
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: Order response
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderDetails'
        '401':
          description: Unauthorized. Missing / invalid JWT token in Authorization header.
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradingErrorSchema'
        '403':
          description: >-
            Forbidden: insufficient permissions, disabled feature, or restricted
            access.
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradingErrorSchema'
        '404':
          description: 'Not found: requested resource does not exist (e.g., order).'
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradingErrorSchema'
        '429':
          description: 'Rate limit exceeded: slow down and retry later.'
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradingErrorSchema'
        5XX:
          description: Internal error while processing the request.
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradingErrorSchema'
        default:
          $ref: '#/components/responses/Error'
      x-codeSamples:
        - lang: TypeScript
          source: >-
            const response: Promise<FireblocksResponse<OrderDetails>> =
            fireblocks.tradingBeta.getOrder(tradingBetaApiGetOrderRequest);
        - lang: Java
          source: >-
            CompletableFuture<ApiResponse<OrderDetails>> response =
            fireblocks.tradingBeta().getOrder(orderId);
        - lang: Python
          source: response = fireblocks.trading_beta.get_order(order_id);
components:
  headers:
    X-Request-ID:
      schema:
        type: string
      description: >-
        Unique ID correlated to the API request. Please provide it in any
        support ticket you create or on Github issues related to Fireblocks SDKs
  schemas:
    OrderDetails:
      type: object
      properties:
        id:
          type: string
        via:
          $ref: '#/components/schemas/AccessType'
        status:
          $ref: '#/components/schemas/OrderStatus'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        receipt:
          $ref: '#/components/schemas/TransferReceipt'
        generalFees:
          type: array
          items:
            $ref: '#/components/schemas/Fee'
        executionSteps:
          type: array
          items:
            $ref: '#/components/schemas/OrderExecutionStep'
        executionResponseDetails:
          $ref: '#/components/schemas/ExecutionResponseDetails'
        settlement:
          $ref: '#/components/schemas/Settlement'
        participantsIdentification:
          $ref: '#/components/schemas/ParticipantsIdentification'
        paymentInstructions:
          type: array
          items:
            $ref: '#/components/schemas/PaymentInstructions'
          description: >-
            Payment instructions for the order, the client can use one of these
            to pay the order.
        createdBy:
          type: string
          description: The ID of the user who created the order
        customerInternalReferenceId:
          type: string
          description: Internal reference ID for the customer
        note:
          type: string
          maxLength: 512
          description: Optional note for the Order
        expiresAt:
          type: string
          format: date-time
        failure:
          $ref: '#/components/schemas/Failure'
      required:
        - id
        - via
        - status
        - createdAt
        - createdBy
        - executionSteps
        - settlement
        - executionResponseDetails
      example:
        id: order_9f4e2d8b1c6a5e73
        via:
          type: PROVIDER_ACCOUNT
          providerId: bridge-provider-001
          accountId: acc_9f4e2d8b1c6a5e73
        status: PROCESSING
        createdAt: '2024-01-15T10:30:00.000Z'
        updatedAt: '2024-01-15T10:30:30.000Z'
        receipt:
          type: BLOCKCHAIN
          txHash: '0x1234567890abcdef'
          amount: '0.02458'
        generalFees:
          - feeType: ORDER
            assetId: USDC
            amountType: FIXED
            amount: '5.00'
        executionSteps:
          - type: EXECUTE
            status: PROCESSING
            fee:
              feeType: NETWORK
              assetId: ETH
              amountType: FIXED
              amount: '0.01'
            txId: tx_abc123def456
        executionResponseDetails:
          type: MARKET
          side: BUY
          baseAmount: '1000.00'
          baseAssetId: USDC
          quoteAssetId: BTC
        settlement:
          type: PREFUNDED
          destinationAccount:
            type: VAULT_ACCOUNT
            accountId: vault_acc_9f4e2d8b1c6a5e73
        createdBy: user_123abc456def789
        customerInternalReferenceId: order_ref_2024_001
        note: Monthly investment order
    TradingErrorSchema:
      type: object
      properties:
        message:
          type: string
        code:
          type: number
        descriptor:
          type: string
      required:
        - code
        - message
      example:
        code: 900
        message: 'Invalid base amount: must be greater than 0'
    AccessType:
      discriminator:
        propertyName: type
        mapping:
          PROVIDER_ACCOUNT:
            $ref: '#/components/schemas/AccountAccess'
          PROVIDER:
            $ref: '#/components/schemas/DirectAccess'
      oneOf:
        - $ref: '#/components/schemas/AccountAccess'
        - $ref: '#/components/schemas/DirectAccess'
    OrderStatus:
      type: string
      enum:
        - CREATED
        - AWAITING_PAYMENT
        - PENDING_USER_ACTION
        - PROCESSING
        - CANCELED
        - COMPLETED
        - FAILED
      example: PROCESSING
    TransferReceipt:
      discriminator:
        propertyName: type
        mapping:
          BLOCKCHAIN:
            $ref: '#/components/schemas/BlockchainTransfer'
          FIAT:
            $ref: '#/components/schemas/FiatTransfer'
      oneOf:
        - $ref: '#/components/schemas/BlockchainTransfer'
        - $ref: '#/components/schemas/FiatTransfer'
    Fee:
      allOf:
        - $ref: '#/components/schemas/FeePropertiesDetails'
        - discriminator:
            propertyName: amountType
            mapping:
              FIXED:
                $ref: '#/components/schemas/FixedFee'
              BPS:
                $ref: '#/components/schemas/BpsFee'
          oneOf:
            - $ref: '#/components/schemas/FixedFee'
            - $ref: '#/components/schemas/BpsFee'
    OrderExecutionStep:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ExecutionStepType'
        status:
          $ref: '#/components/schemas/ExecutionStepStatusEnum'
        fee:
          $ref: '#/components/schemas/Fee'
        txId:
          type: string
        txHash:
          type: string
        error:
          $ref: '#/components/schemas/ExecutionStepError'
      required:
        - type
        - status
      example:
        type: EXECUTE
        status: PROCESSING
        fee:
          feeType: NETWORK
          assetId: ETH
          amountType: FIXED
          amount: '0.01'
        txId: tx_abc123def456
    ExecutionResponseDetails:
      discriminator:
        propertyName: type
        mapping:
          MARKET:
            $ref: '#/components/schemas/MarketExecutionResponseDetails'
          QUOTE:
            $ref: '#/components/schemas/QuoteExecutionWithRequoteResponseDetails'
      oneOf:
        - $ref: '#/components/schemas/MarketExecutionResponseDetails'
        - $ref: '#/components/schemas/QuoteExecutionWithRequoteResponseDetails'
    Settlement:
      description: Settlement configuration for the order
      discriminator:
        propertyName: type
        mapping:
          PREFUNDED:
            $ref: '#/components/schemas/PrefundedSettlement'
          DVP:
            $ref: '#/components/schemas/DVPSettlement'
      oneOf:
        - $ref: '#/components/schemas/PrefundedSettlement'
        - $ref: '#/components/schemas/DVPSettlement'
    ParticipantsIdentification:
      description: KYC/AML participant identification
      type: object
      properties:
        originator:
          $ref: '#/components/schemas/Identification'
        beneficiary:
          $ref: '#/components/schemas/Identification'
      example:
        originator:
          externalReferenceId: user_123456
          entityType: INDIVIDUAL
          participantRelationshipType: FirstParty
          fullName:
            firstName: John
            lastName: Smith
          dateOfBirth: '1985-03-15'
          email: john.smith@example.com
          phone: '+14155551234'
          postalAddress:
            streetName: Main Street
            buildingNumber: '123'
            postalCode: '10001'
            city: New York
            subdivision: NY
            district: Manhattan
            country: US
        beneficiary:
          externalReferenceId: user_789012
          entityType: INDIVIDUAL
          participantRelationshipType: ThirdParty
          fullName:
            firstName: Alice
            lastName: Johnson
          dateOfBirth: '1990-07-22'
          email: alice.johnson@example.com
          phone: '+14155551234'
          postalAddress:
            streetName: Broadway
            buildingNumber: '456'
            postalCode: '10002'
            city: New York
            subdivision: NY
            district: Manhattan
            country: US
    PaymentInstructions:
      oneOf:
        - $ref: '#/components/schemas/BlockchainDestination'
        - allOf:
            - $ref: '#/components/schemas/FiatDestination'
            - $ref: '#/components/schemas/FiatPaymentMetadata'
    Failure:
      type: object
      properties:
        reason:
          $ref: '#/components/schemas/FailureReason'
      required:
        - reason
    ErrorSchema:
      type: object
      properties:
        message:
          type: string
        code:
          type: number
    AccountAccess:
      type: object
      properties:
        type:
          type: string
          enum:
            - PROVIDER_ACCOUNT
          description: Indicates this uses account-based access
        providerId:
          type: string
          description: The ID of the provider
        accountId:
          type: string
          description: The ID of the account
      required:
        - type
        - accountId
      example:
        type: PROVIDER_ACCOUNT
        providerId: bridge-provider-001
        accountId: acc_9f4e2d8b1c6a5e73
    DirectAccess:
      type: object
      properties:
        type:
          type: string
          enum:
            - PROVIDER
          description: Indicates this uses direct provider access
        providerId:
          type: string
          description: The ID of the provider
      required:
        - type
        - providerId
      example:
        type: PROVIDER
        providerId: uniswap-v3-provider
    BlockchainTransfer:
      type: object
      properties:
        type:
          type: string
          enum:
            - BLOCKCHAIN
        txHash:
          type: string
          description: The hash of the transaction on the blockchain.
        amount:
          type: string
          description: The amount of the transaction.
      required:
        - amount
      example:
        type: BLOCKCHAIN
        txHash: '0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b'
        amount: '250.75'
    FiatTransfer:
      type: object
      properties:
        type:
          type: string
          enum:
            - FIAT
        amount:
          type: string
          description: The amount of the fiat transfer.
        referenceId:
          type: string
          description: The reference ID for the fiat transfer.
      required:
        - amount
      example:
        type: FIAT
        amount: '750.25'
        referenceId: fiat_ref_2024_003_789
    FeePropertiesDetails:
      type: object
      properties:
        feeType:
          $ref: '#/components/schemas/FeeTypeEnum'
        assetId:
          type: string
          description: The asset identifier for the fee.
      required:
        - feeType
        - assetId
    FixedFee:
      type: object
      properties:
        amountType:
          $ref: '#/components/schemas/FixedAmountTypeEnum'
        amount:
          type: string
          pattern: ^\d+(\.\d+)?$
          description: The fixed amount of the fee
          example: '0.01'
      required:
        - amountType
        - amount
      example:
        amountType: FIXED
        amount: '0.01'
    BpsFee:
      type: object
      properties:
        amountType:
          type: string
          enum:
            - BPS
        amount:
          type: number
          minimum: 0
          maximum: 10000
          description: Fee in basis points (1 = 0.01%, 10000 = 100%)
          example: 50
      required:
        - amountType
        - amount
      example:
        amountType: BPS
        amount: 50
    ExecutionStepType:
      type: string
      enum:
        - APPROVE
        - PERMIT
        - CONTRACT_CALL
        - EXECUTE
        - SETTLEMENT
        - DELIVERY
      example: EXECUTE
    ExecutionStepStatusEnum:
      type: string
      enum:
        - WAITING
        - PROCESSING
        - COMPLETED
        - FAILED
        - CANCELLED
      example: PROCESSING
    ExecutionStepError:
      type: string
      enum:
        - INTERNAL_ERROR
        - QUOTE_EXPIRED
        - INSUFFICIENT_OUTPUT_AMOUNT
        - INSUFFICIENT_FUNDS
        - LAST_TRANSACTION_FAILED
        - SWAP_APPROVAL_FAILED
        - PROVIDER_EXECUTION_ERROR
      example: INSUFFICIENT_FUNDS
    MarketExecutionResponseDetails:
      allOf:
        - $ref: '#/components/schemas/MarketTypeDetails'
        - $ref: '#/components/schemas/ExecutionResponseBaseDetails'
      example:
        type: MARKET
        side: BUY
        baseAmount: '1000.00'
        baseAssetId: USDC
        baseAssetRail: BLOCKCHAIN
        quoteAssetId: BTC
        quoteAssetRail: BLOCKCHAIN
    QuoteExecutionWithRequoteResponseDetails:
      allOf:
        - $ref: '#/components/schemas/QuoteExecutionTypeDetails'
        - $ref: '#/components/schemas/ExecutionResponseBaseDetails'
        - $ref: '#/components/schemas/ReQuoteDetails'
      example:
        type: QUOTE
        quoteId: quote_8f2e4d1a9c5b7e3f
        side: BUY
        baseAmount: '1000.00'
        baseAssetId: USDC
        baseAssetRail: BLOCKCHAIN
        quoteAssetId: BTC
        quoteAssetRail: BLOCKCHAIN
        reQuote:
          type: RETRY
          count: 1
          slippageBps: 50
    PrefundedSettlement:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/PrefundedSettlementType'
        destinationAccount:
          $ref: '#/components/schemas/AccountReference'
      required:
        - type
        - destinationAccount
      example:
        type: PREFUNDED
        destinationAccount:
          type: VAULT_ACCOUNT
          accountId: vault_acc_9f4e2d8b1c6a5e73
    DVPSettlement:
      type: object
      description: Source/Destination accounts for the quote (must have for defi quotes)
      properties:
        type:
          $ref: '#/components/schemas/DVPSettlementType'
        sourceAccount:
          $ref: '#/components/schemas/SettlementSourceAccount'
        destinationAccount:
          $ref: '#/components/schemas/AccountReference'
      required:
        - type
        - sourceAccount
        - destinationAccount
      example:
        type: DVP
        sourceAccount:
          type: VAULT_ACCOUNT
          id: vault_acc_3f7e1d9b2c5a8e4f
        destinationAccount:
          type: VAULT_ACCOUNT
          id: vault_acc_7b2e5d8f1c4a9e3b
    Identification:
      discriminator:
        propertyName: entityType
        mapping:
          INDIVIDUAL:
            $ref: '#/components/schemas/PersonalIdentification'
          BUSINESS:
            $ref: '#/components/schemas/BusinessIdentification'
      oneOf:
        - $ref: '#/components/schemas/PersonalIdentification'
        - $ref: '#/components/schemas/BusinessIdentification'
    BlockchainDestination:
      type: object
      properties:
        type:
          type: string
          description: >-
            The type of destination. Use "BLOCKCHAIN" for blockchain address
            destinations.
          example: BLOCKCHAIN
          enum:
            - BLOCKCHAIN
        address:
          $ref: '#/components/schemas/BlockchainAddress'
      required:
        - type
        - address
      example:
        type: BLOCKCHAIN
        address:
          blockchainAddress: '0x1234567890123456789012345678901234567890'
          tag: '1234567890'
    FiatDestination:
      oneOf:
        - $ref: '#/components/schemas/IbanDestination'
        - $ref: '#/components/schemas/SwiftDestination'
        - $ref: '#/components/schemas/AchDestination'
        - $ref: '#/components/schemas/USWireDestination'
        - $ref: '#/components/schemas/SpeiDestination'
        - $ref: '#/components/schemas/SEPADestination'
        - $ref: '#/components/schemas/PixDestination'
        - $ref: '#/components/schemas/LocalBankTransferAfricaDestination'
        - $ref: '#/components/schemas/MobileMoneyDestination'
        - $ref: '#/components/schemas/EuropeanSEPADestination'
        - $ref: '#/components/schemas/ChapsDestination'
        - $ref: '#/components/schemas/InteracDestination'
        - $ref: '#/components/schemas/PayidDestination'
        - $ref: '#/components/schemas/InternalTransferDestination'
    FiatPaymentMetadata:
      type: object
      properties:
        referenceId:
          type: string
    FailureReason:
      type: string
      enum:
        - INSUFFICIENT_FUNDS
        - UNKNOWN_REASON
        - INITIATE_PAYMENT_FAILURE
        - POLICY_REJECTION
        - TRANSACTION_FAILED
        - ACCOUNT_NOT_ACTIVE
        - ACCOUNT_NOT_FOUND
        - BAD_REQUEST
        - QUOTE_NOT_READY
        - INVALID_DATA
        - UNSUPPORTED_CONVERSION
        - UNSUPPORTED_RAMP_METHOD
        - REFUNDED
        - FAILED_BY_PROVIDER
        - ORDER_EXPIRED
        - TRANSACTION_CANCELLED
        - TRANSACTION_REJECTED
        - TRANSACTION_BLOCKED
        - PROVIDER_INTERNAL_ERROR
        - UNSUPPORTED_SOURCE_ASSET
        - UNSUPPORTED_DESTINATION_ASSET
        - AMOUNT_BELOW_MINIMUM
        - PII_MISSING
        - EXTERNAL_SOURCE_NOT_SUPPORTED
        - UNSUPPORTED_REGION
        - DESTINATION_NOT_WHITELISTED
    FeeTypeEnum:
      type: string
      enum:
        - ORDER
        - NETWORK
        - SPREAD
        - REBATE
      description: >
        The type of fee, such as ORDER, NETWORK, or SPREAD. ORDER - Fee for
        executing the order. NETWORK - Fee for network transactions. SPREAD -
        Fee for the difference between buy and sell prices. REBATE - Negative
        fee returned to the user as a reward or incentive.
    FixedAmountTypeEnum:
      type: string
      enum:
        - FIXED
      description: The type of amount for the fee, indicating a fixed amount.
    MarketTypeDetails:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/MarketTypeEnum'
      required:
        - type
    ExecutionResponseBaseDetails:
      type: object
      properties:
        side:
          $ref: '#/components/schemas/Side'
        baseAmount:
          type: string
          description: Amount to convert
        baseAssetId:
          type: string
          description: Source asset identifier
        baseAssetRail:
          $ref: '#/components/schemas/TransferRail'
        quoteAssetId:
          type: string
          description: Target asset identifier
        quoteAssetRail:
          $ref: '#/components/schemas/TransferRail'
      required:
        - baseAmount
        - baseAssetId
        - quoteAssetId
        - side
      example:
        side: BUY
        baseAmount: '1000.00'
        baseAssetId: USDC
        baseAssetRail: BLOCKCHAIN
        quoteAssetId: BTC
        quoteAssetRail: BLOCKCHAIN
    QuoteExecutionTypeDetails:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/QuoteTypeEnum'
        quoteId:
          type: string
          description: Quote ID for quote orders
        quoteAmount:
          type: string
          description: Quote amount for quote orders
      required:
        - type
        - quoteId
        - quoteAmount
    ReQuoteDetails:
      type: object
      properties:
        reQuote:
          discriminator:
            propertyName: type
            mapping:
              MARKET:
                $ref: '#/components/schemas/MarketRequoteRequestDetails'
              RETRY:
                $ref: '#/components/schemas/RetryRequoteRequestDetails'
          oneOf:
            - $ref: '#/components/schemas/MarketRequoteRequestDetails'
            - $ref: '#/components/schemas/RetryRequoteRequestDetails'
    PrefundedSettlementType:
      type: string
      enum:
        - PREFUNDED
    AccountReference:
      discriminator:
        propertyName: type
        mapping:
          VAULT_ACCOUNT:
            $ref: '#/components/schemas/InternalReference'
          EXCHANGE_ACCOUNT:
            $ref: '#/components/schemas/InternalReference'
          UNMANAGED_WALLET:
            $ref: '#/components/schemas/InternalReference'
          FIAT_ACCOUNT:
            $ref: '#/components/schemas/InternalReference'
          ONE_TIME_ADDRESS:
            $ref: '#/components/schemas/OneTimeAddressReference'
      oneOf:
        - $ref: '#/components/schemas/InternalReference'
        - $ref: '#/components/schemas/OneTimeAddressReference'
    DVPSettlementType:
      type: string
      enum:
        - DVP
    SettlementSourceAccount:
      discriminator:
        propertyName: type
        mapping:
          VAULT_ACCOUNT:
            $ref: '#/components/schemas/PlatformAccount'
          CONNECTED_ACCOUNT:
            $ref: '#/components/schemas/PlatformAccount'
          FIAT_ACCOUNT:
            $ref: '#/components/schemas/PlatformAccount'
          EXTERNAL:
            $ref: '#/components/schemas/ExternalAccount'
      oneOf:
        - $ref: '#/components/schemas/PlatformAccount'
        - $ref: '#/components/schemas/ExternalAccount'
    PersonalIdentification:
      type: object
      properties:
        externalReferenceId:
          type: string
        entityType:
          $ref: '#/components/schemas/PersonalEntityTypeEnum'
        participantRelationshipType:
          $ref: '#/components/schemas/ParticipantRelationshipType'
        fullName:
          type: object
          properties:
            firstName:
              type: string
            lastName:
              type: string
          required:
            - firstName
            - lastName
        dateOfBirth:
          type: string
          format: date
        postalAddress:
          $ref: '#/components/schemas/PostalAddress'
        email:
          type: string
          format: email
        phone:
          $ref: '#/components/schemas/MobilePhoneNumber'
        idNumber:
          type: string
          description: >-
            The identification number corresponding to the primary
            identification document type specified in idType
        idType:
          $ref: '#/components/schemas/PersonalIdentificationType'
        additionalIdNumber:
          type: string
          description: >-
            The identification number corresponding to the additional
            identification document type specified in additionalIdType
        additionalIdType:
          $ref: '#/components/schemas/PersonalIdentificationType'
      required:
        - externalReferenceId
        - entityType
        - participantRelationshipType
        - fullName
        - dateOfBirth
        - postalAddress
      example:
        externalReferenceId: person_ref_7f3e2d1c4b8a5e9f
        entityType: INDIVIDUAL
        participantRelationshipType: FirstParty
        fullName:
          firstName: Alexander
          lastName: Johnson
        dateOfBirth: '1985-03-15'
        postalAddress:
          streetName: Oak Street
          buildingNumber: '742'
          postalCode: '90210'
          city: Beverly Hills
          subdivision: CA
          district: Los Angeles County
          country: US
        email: alexander.johnson@example.com
        phone: '+14155551234'
        idNumber: '12345678901'
        idType: PASSPORT
        additionalIdNumber: BVN987654321
        additionalIdType: BVN
    BusinessIdentification:
      type: object
      properties:
        externalReferenceId:
          type: string
        entityType:
          $ref: '#/components/schemas/BusinessEntityTypeEnum'
        participantRelationshipType:
          $ref: '#/components/schemas/ParticipantRelationshipType'
        businessName:
          type: string
        registrationNumber:
          type: string
        postalAddress:
          $ref: '#/components/schemas/PostalAddress'
        email:
          type: string
          format: email
        phone:
          $ref: '#/components/schemas/MobilePhoneNumber'
      required:
        - externalReferenceId
        - entityType
        - participantRelationshipType
        - businessName
        - registrationNumber
        - postalAddress
      example:
        externalReferenceId: bus_ref_9f3e2d1c4b8a7e5f
        entityType: BUSINESS
        participantRelationshipType: COUNTERPARTY
        businessName: TechCorp Solutions LLC
        registrationNumber: TC-2023-001547
        email: techcorp@example.com
        phone: '+14155551234'
        postalAddress:
          streetAddress: 789 Innovation Drive
          city: San Francisco
          state: CA
          postalCode: '94105'
          country: US
    BlockchainAddress:
      type: object
      properties:
        blockchainAddress:
          type: string
          description: The blockchain address.
          example: '0x1234567890123456789012345678901234567890'
        tag:
          type: string
          description: >-
            The tag of the blockchain address. It is used to identify the
            address in the blockchain. It is optional.
          example: '1234567890'
      required:
        - blockchainAddress
      description: The blockchain address information.
      example:
        blockchainAddress: '0x1234567890123456789012345678901234567890'
        tag: '1234567890'
    IbanDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - IBAN
        address:
          $ref: '#/components/schemas/IbanAddress'
      required:
        - type
        - address
      example:
        type: IBAN
        address:
          accountHolder:
            name: Maria Gonzalez
            city: Madrid
            country: ES
            subdivision: MD
            address: Calle Gran Via 123, 2°B
            postalCode: '28013'
          iban: ES9121000418450200051332
    SwiftDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - SWIFT
        address:
          $ref: '#/components/schemas/SwiftAddress'
      required:
        - type
        - address
      example:
        type: SWIFT
        address:
          accountHolder:
            name: Pierre Dupont
            city: Paris
            country: FR
            subdivision: IDF
            address: 25 Avenue des Champs-Élysées
            postalCode: '75008'
          swiftCode: BNPAFRPPXXX
          routingNumber: '20041'
    AchDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - ACH
        address:
          $ref: '#/components/schemas/AchAddress'
      required:
        - type
        - address
      example:
        type: ACH
        address:
          accountHolder:
            name: Sarah Johnson
            city: Austin
            country: US
            subdivision: TX
            address: 456 Oak Avenue
            postalCode: '78701'
          bankName: Chase Bank
          bankAccountNumber: '1234567890123'
          routingNumber: '021000021'
          accountType: CHECKING
    USWireDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - WIRE
        address:
          $ref: '#/components/schemas/USWireAddress'
      required:
        - type
        - address
      example:
        type: WIRE
        address:
          accountHolder:
            name: John Smith
            city: New York
            country: US
            subdivision: NY
            address: 123 Wall Street
            postalCode: '10005'
          bankName: Chase Bank
          bankAccountNumber: '123456789012'
          routingNumber: '021000021'
          bankAddress: 270 Park Avenue, New York, NY 10017
    SpeiDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - SPEI
        address:
          $ref: '#/components/schemas/SpeiAddress'
      required:
        - type
        - address
      example:
        type: SPEI
        address:
          accountHolder:
            name: Carlos Martinez Lopez
            city: Mexico City
            country: MX
            subdivision: CDMX
            address: Avenida Reforma 123
            postalCode: '06600'
          bankName: BBVA México
          bankAccountNumber: '012180001234567890'
    SEPADestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - SEPA
        address:
          $ref: '#/components/schemas/SEPAAddress'
      required:
        - type
        - address
      example:
        type: SEPA
        address:
          accountHolder:
            name: Hans Mueller
            city: Berlin
            country: DE
            subdivision: BE
            address: Unter den Linden 15
            postalCode: '10117'
          iban: DE89370400440532013000
          bic: COBADEFFXXX
          bankName: Commerzbank AG
    PixDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - PIX
        address:
          $ref: '#/components/schemas/PixAddress'
      required:
        - type
        - address
      example:
        type: PIX
        address:
          accountHolder:
            name: Maria Silva Santos
            city: São Paulo
            country: BR
            subdivision: SP
            address: Rua das Flores, 123
            postalCode: 01234-567
          pixKey: '11987654321'
          keyType: phone
          bankName: Banco do Brasil
          bankCode: '001'
    LocalBankTransferAfricaDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - LOCAL_BANK_TRANSFER
        address:
          $ref: '#/components/schemas/LocalBankTransferAfricaAddress'
      required:
        - type
        - address
      example:
        type: LOCAL_BANK_TRANSFER
        address:
          accountHolder:
            name: Adaora Okafor
            city: Lagos
            country: NG
            subdivision: LA
            address: 15 Victoria Island Road
            postalCode: '101001'
          accountNumber: '1234567890123'
          bankName: First Bank of Nigeria
          bankCode: '011'
    MobileMoneyDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - MOBILE_MONEY
        address:
          $ref: '#/components/schemas/MobileMoneyAddress'
      required:
        - type
        - address
      example:
        type: MOBILE_MONEY
        address:
          accountHolder:
            name: Grace Wanjiku Kamau
            city: Nairobi
            country: KE
            subdivision: NRB
            address: Westlands Avenue 45
            postalCode: '00100'
          mobilePhoneNumber: '+254712345678'
          provider: m-pesa
          beneficiaryDocumentId: '12345678'
          beneficiaryRelationship: self
    EuropeanSEPADestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - EUROPEAN_SEPA
        address:
          $ref: '#/components/schemas/EuropeanSEPAAddress'
      required:
        - type
        - address
    ChapsDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - CHAPS
        address:
          $ref: '#/components/schemas/ChapsAddress'
      required:
        - type
        - address
      example:
        type: CHAPS
        address:
          accountHolder:
            name: John Smith
            city: London
            country: GB
            subdivision: ENG
            address: 123 Oxford Street
            postalCode: W1D 1BS
          sortCode: 12-34-56
          accountNumber: '12345678'
          bankName: Barclays Bank
    InteracDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - INTERAC
        address:
          $ref: '#/components/schemas/InteracAddress'
      required:
        - type
        - address
      example:
        type: INTERAC
        address:
          accountHolder:
            name: John Smith
            city: Toronto
            country: CA
            subdivision: 'ON'
            address: 123 Yonge Street
            postalCode: M5B 1M4
          email: john.smith@email.com
          institutionNumber: '001'
          transitNumber: '12345'
          accountNumber: '1234567'
          bankName: Royal Bank of Canada
    PayidDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - PAYID
        address:
          $ref: '#/components/schemas/PayidAddress'
      required:
        - type
        - address
      example:
        type: PAYID
        address:
          accountHolder:
            name: John Williams
            city: Sydney
            country: AU
            subdivision: NSW
            address: 456 George Street
            postalCode: '2000'
          payId: john.williams@email.com
          payIdType: email
          bsb: 123-456
          accountNumber: '12345678'
          bankName: Commonwealth Bank
    InternalTransferDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - INTERNAL_TRANSFER
        address:
          $ref: '#/components/schemas/InternalTransferAddress'
      required:
        - type
      example:
        type: INTERNAL_TRANSFER
        address:
          externalSubAccountId: sub_acc_1234567890
          accountId: acc_1234567890
    MarketTypeEnum:
      type: string
      enum:
        - MARKET
      description: Order type for market orders
    Side:
      type: string
      enum:
        - BUY
        - SELL
      description: 'BUY: receive base / pay quote; SELL: give base / receive quote.'
    TransferRail:
      type: string
      description: >
        Transfer rail: 

        * **BLOCKCHAIN** - Transfer over the public blockchain

        * **INTERNAL** - Internal transfer within the same account (e.g.
        sub-accounts or same api key)

        * **SWIFT** - International wire transfer

        * **IBAN** - International Bank Account Number transfer

        * **US_WIRE** - Domestic wire transfer within the United States (e.g.
        FedWire)

        * **ACH** - Automated Clearing House transfer, typically takes longer
        but not as expensive as wire transfers

        * **SEPA** - Euro transfers within the SEPA zone

        * **SPEI** - Mexican interbank electronic payment system

        * **PIX** - Brazilian instant payment system

        * **LBT** - Local bank transfers within Africa

        * **MOMO** - Mobile money transfers (e.g. M-Pesa)

        * **CHAPS** - The Clearing House Automated Payment System (CHAPS) is a
        real-time gross settlement payment system used for transactions in the
        United Kingdom

        * **PAYID** - PayID payment identifier system (Australia)

        * **INTERAC** - Interac electronic funds transfer (Canada)

        * **INTERNAL_TRANSFER** - Internal transfer between accounts
      enum:
        - BLOCKCHAIN
        - INTERNAL
        - SWIFT
        - IBAN
        - US_WIRE
        - ACH
        - SEPA
        - SPEI
        - PIX
        - LBT
        - MOMO
        - CHAPS
        - PAYID
        - INTERAC
        - INTERNAL_TRANSFER
      example: BLOCKCHAIN
    QuoteTypeEnum:
      type: string
      enum:
        - QUOTE
      description: Order type for quote orders
    MarketRequoteRequestDetails:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/MarketRequoteTypeEnum'
      required:
        - type
      example:
        type: MARKET
    RetryRequoteRequestDetails:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/RetryRequoteTypeEnum'
        count:
          type: integer
          description: >-
            If quote is expired, how many times to re-generate new quotes to try
            having the order executed as in the original quote.
          minimum: 1
          maximum: 10
        slippageBps:
          type: integer
          description: >-
            Slippage tolerance in basis points (bps) for quote orders - 1 is
            0.01% and 10000 is 100%
          minimum: 1
          maximum: 10000
      required:
        - type
        - count
      example:
        type: RETRY
        count: 1
        slippageBps: 50
    InternalReference:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/PeerType'
        accountId:
          type: string
      required:
        - accountId
        - type
      example:
        type: VAULT_ACCOUNT
        accountId: vault_acc_9f3e2d1c4b8a7e5f
    OneTimeAddressReference:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/OneTimeAddressPeerType'
        address:
          type: string
        tag:
          type: string
      required:
        - type
        - address
      example:
        type: ONE_TIME_ADDRESS
        address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
        tag: destination-memo-123
    PlatformAccount:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/PlatformPeerType'
        accountId:
          type: string
      required:
        - type
        - accountId
      example:
        type: VAULT_ACCOUNT
        accountId: vault_acc_5e9a2d1c4b7f3e8a
    ExternalAccount:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ExternalAccountType'
        senderInformation:
          $ref: '#/components/schemas/ExternalAccountSenderInformation'
      required:
        - type
      example:
        type: EXTERNAL
        senderInformation:
          type: MOBILE_MONEY
          mobilePhoneNumber: '+1234567890'
          provider: MPESA
          email: test@example.com
    PersonalEntityTypeEnum:
      type: string
      enum:
        - INDIVIDUAL
    ParticipantRelationshipType:
      type: string
      enum:
        - FirstParty
        - SecondParty
        - ThirdParty
      example: FirstParty
    PostalAddress:
      type: object
      properties:
        streetName:
          type: string
        buildingNumber:
          type: string
        postalCode:
          type: string
        city:
          type: string
        subdivision:
          type: string
        district:
          type: string
        country:
          type: string
      required:
        - streetName
        - buildingNumber
        - postalCode
        - city
        - subdivision
        - district
        - country
      example:
        streetName: Fifth Avenue
        buildingNumber: '350'
        postalCode: '10118'
        city: New York
        subdivision: NY
        district: Manhattan
        country: US
    MobilePhoneNumber:
      type: string
      pattern: ^\+[1-9]\d{1,14}$
      description: Mobile phone number in E.164 format
      example: '+14155551234'
    PersonalIdentificationType:
      type: string
      description: >-
        Type of identification document. Acceptable values are: -
        'NIN_SLIP_CARD': National Identification Number (NIN) Slip Card -
        temporary identification card issued in Nigeria - 'BVN': Bank
        Verification Number - unique identity number for bank account holders in
        Nigeria - 'ID_CARD': General national identity card - 'ID_BOOK':
        Identity book or booklet format identification document - 'NATIONAL_ID':
        National identity document issued by government authorities -
        'ALIEN_CARD': Alien registration card for foreign nationals -
        'PASSPORT': International travel document and proof of identity -
        'ECOWAS_CARD': Economic Community of West African States identification
        card - 'RWANDA_CARD': Rwandan national identification card -
        'DRIVERS_LICENSE': Driver's license or driving permit - 'RESIDENT_CARD':
        Resident permit or permanent resident card - 'VOTER_ID': Voter
        identification card used for electoral registration -
        'HEALTH_INSURANCE_ID': Health insurance identification card -
        'GHANA_CARD': Ghana Card - national identification card issued in Ghana
        - 'REFUGEE_ID': Refugee identification document - 'SSNIT': Social
        Security and National Insurance Trust ID - social security number in
        Ghana - 'NON_CITIZEN_ID': Identification document for non-citizens or
        foreign residents - 'NATIONAL_REGISTRATION_CARD': National registration
        card issued by national registration authority
      enum:
        - NIN_SLIP_CARD
        - BVN
        - ID_CARD
        - ID_BOOK
        - NATIONAL_ID
        - ALIEN_CARD
        - PASSPORT
        - ECOWAS_CARD
        - RWANDA_CARD
        - DRIVERS_LICENSE
        - RESIDENT_CARD
        - VOTER_ID
        - HEALTH_INSURANCE_ID
        - GHANA_CARD
        - REFUGEE_ID
        - SSNIT
        - NON_CITIZEN_ID
        - NATIONAL_REGISTRATION_CARD
    BusinessEntityTypeEnum:
      type: string
      enum:
        - BUSINESS
    IbanAddress:
      type: object
      properties:
        accountHolder:
          $ref: '#/components/schemas/AccountHolderDetails'
        iban:
          $ref: '#/components/schemas/Iban'
      required:
        - accountHolder
        - iban
      example:
        accountHolder:
          name: Maria Gonzalez
          city: Madrid
          country: ES
          subdivision: MD
          address: Calle Gran Via 123, 2°B
          postalCode: '28013'
        iban: ES9121000418450200051332
    SwiftAddress:
      type: object
      properties:
        accountHolder:
          $ref: '#/components/schemas/AccountHolderDetails'
        swiftCode:
          $ref: '#/components/schemas/SwiftCode'
        routingNumber:
          type: string
          description: Routing number identifying the bank account.
      required:
        - accountHolder
        - swiftCode
        - routingNumber
      example:
        accountHolder:
          name: Emma Watson
          city: London
          country: GB
          subdivision: ENG
          address: 25 Bank Street, Canary Wharf
          postalCode: E14 5JP
        swiftCode: CHASUS33XXX
        routingNumber: '026009593'
    AchAddress:
      type: object
      properties:
        accountHolder:
          $ref: '#/components/schemas/AccountHolderDetails'
        bankName:
          type: string
          description: Name of the bank.
        bankAccountNumber:
          type: string
          description: The bank account number for the ACH transfer.
          pattern: ^\d{4,17}$
        routingNumber:
          type: string
          pattern: ^\d{9}$
          description: Routing number identifying the bank account.
        accountType:
          $ref: '#/components/schemas/AchAccountType'
      required:
        - accountHolder
        - bankAccountNumber
        - routingNumber
        - accountType
      example:
        accountHolder:
          name: Sarah Johnson
          city: Austin
          country: US
          subdivision: TX
          address: 456 Oak Avenue
          postalCode: '78701'
        bankName: Chase Bank
        bankAccountNumber: '1234567890123'
        routingNumber: '021000021'
        accountType: CHECKING
    USWireAddress:
      type: object
      properties:
        accountHolder:
          $ref: '#/components/schemas/AccountHolderDetails'
        bankName:
          type: string
          description: Name of the bank.
        bankAccountNumber:
          type: string
          description: The bank account number for the wire transfer.
        routingNumber:
          type: string
          description: Routing number identifying the bank account.
        bankAddress:
          $ref: '#/components/schemas/BankAddress'
      required:
        - accountHolder
        - bankAccountNumber
        - routingNumber
      example:
        accountHolder:
          name: Michael Thompson
          city: Chicago
          country: US
          subdivision: IL
          address: 200 West Jackson Blvd, Suite 1500
          postalCode: '60606'
        bankName: JPMorgan Chase Bank
        bankAccountNumber: '987654321012345'
        routingNumber: '021000021'
        bankAddress: 270 Park Avenue, New York, NY 10017
    SpeiAddress:
      type: object
      properties:
        accountHolder:
          $ref: '#/components/schemas/AccountHolderDetails'
        bankName:
          type: string
          description: Name of the bank.
        bankAccountNumber:
          type: string
          description: The bank account number for the SPEI transfer.
      required:
        - accountHolder
        - bankAccountNumber
      example:
        accountHolder:
          name: Carlos Martinez Lopez
          city: Mexico City
          country: MX
          subdivision: CDMX
          address: Avenida Reforma 123
          postalCode: '06600'
        bankName: BBVA México
        bankAccountNumber: '012180001234567890'
    SEPAAddress:
      type: object
      properties:
        accountHolder:
          $ref: '#/components/schemas/AccountHolderDetails'
        iban:
          $ref: '#/components/schemas/Iban'
        bic:
          type: string
          description: Bank Identifier Code (SWIFT/BIC)
        bankName:
          type: string
        bankBranch:
          type: string
        bankAddress:
          type: string
        purposeCode:
          type: string
          description: ISO purpose code for the transfer
        taxId:
          type: string
          description: Beneficiary tax identification number
      required:
        - accountHolder
        - iban
      example:
        accountHolder:
          name: Pierre Dubois
          city: Paris
          country: FR
          subdivision: '11'
          address: 15 Rue de la Paix
          postalCode: '75001'
        iban: FR1420041010050500013M02606
        bic: PSSTFRPPPAR
        bankName: La Banque Postale
        bankBranch: Paris Central
        bankAddress: 1 Boulevard de Vaugirard, 75015 Paris
        purposeCode: TRAD
        taxId: FR12345678901
    PixAddress:
      type: object
      required:
        - accountHolder
        - pixKey
        - keyType
      properties:
        accountHolder:
          $ref: '#/components/schemas/AccountHolderDetails'
        pixKey:
          type: string
        keyType:
          type: string
          enum:
            - CPF
            - CNPJ
            - EMAIL
            - PHONE
            - RANDOM
        bankName:
          type: string
        bankCode:
          type: string
        qrCode:
          type: string
          description: The QR code to be used for the transfer
          example: qr_code_number
        expirationDate:
          type: string
          description: The expiration date of the QR code
          example: '2025-01-15T12:00:00Z'
      example:
        accountHolder:
          name: Maria Silva Santos
          city: São Paulo
          country: BR
          subdivision: SP
          address: Rua das Flores, 123
          postalCode: 01234-567
        pixKey: '11987654321'
        keyType: phone
        bankName: Banco do Brasil
        bankCode: '001'
        qrCode: qr_code_number
        expirationDate: '2025-01-15T12:00:00Z'
    LocalBankTransferAfricaAddress:
      type: object
      properties:
        accountHolder:
          $ref: '#/components/schemas/AccountHolderDetails'
        accountNumber:
          $ref: '#/components/schemas/LocalBankAfricaAccountNumber'
        bankName:
          type: string
          description: Name of the bank
        bankCode:
          type: string
          description: Internal bank identifier
        successPaymentInstructionRedirectUrl:
          type: string
          description: The URL to redirect to after the payment instruction is successful
        paymentRedirect:
          $ref: '#/components/schemas/PaymentRedirect'
      required:
        - accountHolder
        - accountNumber
        - bankName
        - bankCode
      example:
        accountHolder:
          name: Adaora Okafor
          city: Lagos
          country: NG
          subdivision: LA
          address: 15 Victoria Island Road
          postalCode: '101001'
        accountNumber: '1234567890123'
        bankName: First Bank of Nigeria
        bankCode: '011'
        successPaymentInstructionRedirectUrl: >-
          https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907
        paymentRedirect:
          url: >-
            https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907
          expiresAt: '2025-01-15T12:00:00Z'
    MobileMoneyAddress:
      type: object
      required:
        - accountHolder
        - mobilePhoneNumber
        - provider
      properties:
        accountHolder:
          $ref: '#/components/schemas/AccountHolderDetails'
        mobilePhoneNumber:
          $ref: '#/components/schemas/MobilePhoneNumber'
        provider:
          type: string
          enum:
            - m-pesa
            - airtel
            - mtn
            - tigo
            - orange
          description: Mobile money provider
        beneficiaryDocumentId:
          type: string
          description: Beneficiary document identification (may be required)
        beneficiaryRelationship:
          type: string
          description: Relationship to beneficiary for AML purposes
        successPaymentInstructionRedirectUrl:
          type: string
          description: The URL to redirect to after the payment instruction is successful
        paymentRedirect:
          $ref: '#/components/schemas/PaymentRedirect'
      example:
        accountHolder:
          name: Grace Wanjiku Kamau
          city: Nairobi
          country: KE
          subdivision: NRB
          address: Westlands Avenue 45
          postalCode: '00100'
        mobilePhoneNumber: '+254712345678'
        provider: m-pesa
        beneficiaryDocumentId: '12345678'
        beneficiaryRelationship: self
        successPaymentInstructionRedirectUrl: >-
          https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907
        paymentRedirect:
          url: >-
            https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907
          expiresAt: '2025-01-15T12:00:00Z'
    EuropeanSEPAAddress:
      type: object
      properties:
        accountHolder:
          $ref: '#/components/schemas/AccountHolderDetails'
        iban:
          $ref: '#/components/schemas/Iban'
        bic:
          type: string
        bankName:
          type: string
        bankBranch:
          type: string
        bankAddress:
          type: string
        purposeCode:
          type: string
        taxId:
          type: string
      required:
        - accountHolder
        - iban
    ChapsAddress:
      type: object
      required:
        - accountHolder
        - sortCode
        - accountNumber
        - bankAccountCountry
        - bankAccountHolderName
      properties:
        accountHolder:
          $ref: '#/components/schemas/AccountHolderDetails'
        sortCode:
          type: string
          description: UK bank sort code (format XX-XX-XX)
          example: 12-34-56
        accountNumber:
          type: string
          description: UK bank account number
          example: '12345678'
        bankName:
          type: string
          description: Name of the bank
          example: Barclays Bank
        bankAccountCountry:
          type: string
          pattern: ^\d{2}$
          description: CHAPS bank account holder name
          example: GB
        bankAccountHolderName:
          type: string
          pattern: ^(?=.{1,140}$)[^\s]+(\s+[^\s]+)*$
          description: CHAPS bank account holder name
          example: John Smith
      example:
        accountHolder:
          name: John Smith
          city: London
          country: GB
          subdivision: ENG
          address: 123 Oxford Street
          postalCode: W1D 1BS
        sortCode: 12-34-56
        accountNumber: '12345678'
        bankName: Barclays Bank
    InteracAddress:
      type: object
      description: >-
        When true, funds are deposited directly into the recipient's bank
        account without a security question.
         When false, a security question and answer are required to complete the transfer
      required:
        - accountHolder
        - recipientHandle
        - autoDeposit
      properties:
        accountHolder:
          $ref: '#/components/schemas/AccountHolderDetails'
        recipientHandle:
          $ref: '#/components/schemas/RecipientHandle'
        message:
          type: string
          description: The message to be sent to the recipient
          example: Please deposit the funds into the account
        autoDeposit:
          type: boolean
          description: Whether to automatically deposit the funds into the account
          example: true
        securityQuestion:
          type: string
          description: The security question to be used for the security answer
          example: What is your mother's maiden name?
        securityAnswer:
          type: string
          description: The security answer to be used for the security question
          example: Jane Smith
      example:
        accountHolder:
          name: John Smith
          city: Toronto
          country: CA
          subdivision: 'ON'
          address: 123 Yonge Street
          postalCode: M5B 1M4
        recipientHandle:
          type: EMAIL
          value: john.smith@email.com
        message: Please deposit the funds into the account
        autoDeposit: true
        securityQuestion: What is your mother's maiden name?
        securityAnswer: Jane Smith
    PayidAddress:
      type: object
      required:
        - accountHolder
        - value
        - type
        - accountNumber
      properties:
        accountHolder:
          $ref: '#/components/schemas/AccountHolderDetails'
        value:
          type: string
          description: The PayID identifier (email, phone, ABN, or organization ID)
          example: john.williams@email.com
        type:
          type: string
          enum:
            - EMAIL
          description: The type of PayID being used
          example: EMAIL
        bsb:
          type: string
          description: Bank State Branch (BSB) number (6 digits, format XXX-XXX)
          example: 123-456
        accountNumber:
          type: string
          description: Australian bank account number
          example: '12345678'
      example:
        accountHolder:
          name: John Williams
          city: Sydney
          country: AU
          subdivision: NSW
          address: 456 George Street
          postalCode: '2000'
        value: john.williams@email.com
        type: EMAIL
        bsb: 123-456
        accountNumber: '12345678'
    InternalTransferAddress:
      type: object
      required:
        - externalSubAccountId
        - accountId
      properties:
        externalAccountId:
          type: string
          description: >-
            The provider's identifier for the external account. This enables the
            user to fund the account externally (outside of Fireblocks) if
            needed.
        accountId:
          type: string
          description: The Fireblocks account ID where the user should deposit the funds.
      example:
        externalSubAccountId: sub_acc_1234567890
        accountId: acc_1234567890
    MarketRequoteTypeEnum:
      type: string
      enum:
        - MARKET
      description: >-
        Indicates that the order should be re-quoted if the original quote is
        expired. This will lead to a market order.
    RetryRequoteTypeEnum:
      type: string
      enum:
        - RETRY
      description: >-
        Indicates that the order should be re-quoted if the original quote is
        expired, trying to match the original quote.
    PeerType:
      type: string
      enum:
        - VAULT_ACCOUNT
        - EXCHANGE_ACCOUNT
        - UNMANAGED_WALLET
        - FIAT_ACCOUNT
        - CONNECTED_ACCOUNT
      example: VAULT_ACCOUNT
    OneTimeAddressPeerType:
      type: string
      enum:
        - ONE_TIME_ADDRESS
    PlatformPeerType:
      type: string
      enum:
        - VAULT_ACCOUNT
        - CONNECTED_ACCOUNT
        - FIAT_ACCOUNT
    ExternalAccountType:
      type: string
      enum:
        - EXTERNAL
    ExternalAccountSenderInformation:
      oneOf:
        - $ref: '#/components/schemas/ExternalAccountMobileMoney'
        - $ref: '#/components/schemas/ExternalAccountLocalBankAfrica'
      description: Additional data for the external account, depending on the type used.
    AccountHolderDetails:
      type: object
      properties:
        name:
          description: Full name of the account holder.
          type: string
        city:
          type: string
        country:
          description: Country code, as specified in ISO 3166-1 alpha-2.
          type: string
        subdivision:
          description: Country administrative subdivision, as specified in ISO 3166-2.
          type: string
        address:
          description: Account holder street address.
          type: string
        postalCode:
          type: string
      required:
        - name
      example:
        name: John Smith
        city: New York
        country: US
        subdivision: NY
        address: 123 Wall Street, Apt 4B
        postalCode: '10005'
    Iban:
      type: string
      pattern: ^[A-Z]{2}\d{2}[a-zA-Z0-9]{1,30}$
      example: GB82WEST12345698765432
    SwiftCode:
      type: string
      pattern: ^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$
      example: CHASUS33XXX
    AchAccountType:
      type: string
      description: Type of the bank account.
      enum:
        - CHECKING
        - SAVINGS
      example: CHECKING
    BankAddress:
      type: object
      properties:
        streetName:
          type: string
        buildingNumber:
          type: string
        postalCode:
          type: string
        city:
          type: string
        subdivision:
          type: string
        district:
          type: string
        country:
          type: string
      description: Address of the bank.
    LocalBankAfricaAccountNumber:
      type: string
      pattern: ^\d{4,17}$
      example: '1234567890123'
    PaymentRedirect:
      type: object
      description: >-
        URL returned by the provider that the end user will be redirected to in
        order to complete the payment on the bank/mobile provider page. After
        completion, the bank/mobile provider redirects the end user back to
        successRedirectUrl (provided in the RAMP request)
      properties:
        url:
          type: string
          description: URL to redirect to
          example: >-
            https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907
        expiresAt:
          type: string
          description: Expiration date of the redirect
          example: '2025-01-15T12:00:00Z'
    RecipientHandle:
      type: object
      required:
        - type
        - value
      properties:
        type:
          type: string
          enum:
            - EMAIL
        value:
          type: string
          description: The value of the recipient handle
          example: john.smith@email.com
    ExternalAccountMobileMoney:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ExternalAccountMobileMoneyType'
        mobilePhoneNumber:
          $ref: '#/components/schemas/MobilePhoneNumber'
        provider:
          $ref: '#/components/schemas/ExternalAccountMobileMoneyProvider'
        email:
          type: string
          format: email
        successRedirectUrl:
          type: string
          description: >-
            URL to redirect the end user back to after they complete the payment
            on the bank/mobile provider page (e.g., the merchant checkout page)
      required:
        - type
        - mobilePhoneNumber
        - provider
        - email
    ExternalAccountLocalBankAfrica:
      type: object
      properties:
        successRedirectUrl:
          type: string
          description: >-
            URL to redirect the end user back to after they complete the payment
            on the bank/mobile provider page (e.g., the merchant checkout page)
    ExternalAccountMobileMoneyType:
      type: string
      enum:
        - MOBILE_MONEY_RAIL
    ExternalAccountMobileMoneyProvider:
      type: string
      enum:
        - M_PESA
        - AIRTEL
        - MTN
        - TIGO
        - ORANGE
  responses:
    Error:
      description: Error Response
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorSchema'

````