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

# Create an order

> Creates an order for a supported source and destination currency pair, including pricing and recipient validation. Returns 202 with the order in its pending state. Creation never checks or reserves the source's available balance — an order can always be created before its source is funded, regardless of `autoExecute`. See `autoExecute` and `lockExpiresAt` on the response for how and when execution can start.



## OpenAPI

````yaml https://api.sandbox.conduit.financial/v2/api-docs/openapi.json post /orders
openapi: 3.0.0
info:
  title: Conduit Sandbox API
  description: >-
    **Sandbox API** — clients integrate against this surface to exercise happy
    and unhappy paths without consuming real KYC/PSP credits or moving real
    money. Customer KYC, banking partners, and crypto custody are stubbed;
    org-level KYB runs against real providers. Simulation endpoints under
    `/v2/sandbox/*` drive specific scenarios.


    Internal and portal endpoints are excluded from this spec.
  version: '2.0'
  contact: {}
servers:
  - url: https://api.sandbox.conduit.financial/v2
    description: Sandbox
  - url: https://api.conduit.financial/v2
    description: Production
security:
  - api-key: []
tags:
  - name: Customers
  - name: Registered Addresses
  - name: Wallets
  - name: Wallet Signers
  - name: Signing Quorum
  - name: Virtual Accounts
  - name: Applications
  - name: Documents
  - name: Verifications
  - name: Signing Requests
  - name: Transactions
  - name: Payouts
  - name: Whitelist Recipients
  - name: Orders
  - name: Quotes
  - name: RFIs
  - name: Webhook Endpoints
  - name: Webhook Deliveries
  - name: Webhook Event Types
  - name: Features
  - name: Customer Onboarding
  - name: Markup
  - name: Sandbox
paths:
  /orders:
    post:
      tags:
        - Orders
      summary: Create an order
      description: >-
        Creates an order for a supported source and destination currency pair,
        including pricing and recipient validation. Returns 202 with the order
        in its pending state. Creation never checks or reserves the source's
        available balance — an order can always be created before its source is
        funded, regardless of `autoExecute`. See `autoExecute` and
        `lockExpiresAt` on the response for how and when execution can start.
      operationId: OrdersController_create_v2
      parameters:
        - name: Idempotency-Key
          in: header
          description: >-
            Caller-generated unique key that lets the server safely replay this
            request. The cached response is returned for 5 minutes on any retry
            with the same key from the same API principal. Required on every
            state-changing money-moving or resource-creating POST.
          required: true
          schema:
            type: string
            pattern: ^[A-Za-z0-9_.:-]{1,128}$
            minLength: 1
            maxLength: 128
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/ExplicitSourceOrderDto'
                - $ref: '#/components/schemas/DepositFundedOrderDto'
                - $ref: '#/components/schemas/QuoteRedemptionOrderDto'
      responses:
        '202':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderExternalResponseDto'
        '400':
          description: >-
            **INVALID_OID_FORMAT**: A path or query parameter expected a valid
            object identifier but received a value that does not match the
            expected format.


            **VALIDATION_ERROR**: The request body or query parameters failed
            validation. One or more fields have invalid values, missing required
            properties, or incorrect types. Multipart file uploads that fail at
            the multipart-parser layer (unexpected form-field name, too many
            parts) carry an extra 'field' member naming the offending
            form-field.


            **MALFORMED_JSON**: The request body could not be parsed as JSON.
            Bodies declared as 'application/json' — and bodies with no
            Content-Type header, which are assumed to be JSON — must contain
            syntactically valid JSON.


            **IDEMPOTENCY_KEY_REQUIRED**: This endpoint requires an
            Idempotency-Key header to prevent duplicate processing. Generate a
            unique key per logical request and resend the request.


            **IDEMPOTENCY_KEY_INVALID**: The Idempotency-Key header value did
            not match the required shape (1-128 characters, letters / digits /
            underscore / dot / colon / hyphen).


            **IDEMPOTENCY_BODY_TOO_NESTED**: The request body exceeds the
            maximum nesting depth allowed by the idempotency fingerprint hasher.
            Deeply-nested arrays or objects are rejected as a malformed payload.


            **UNSUPPORTED_ASSET**: The requested asset and chain combination is
            not supported for this operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorDto'
              example:
                type: INVALID_OID_FORMAT
                title: Invalid Object ID Format
                status: 400
                detail: >-
                  A path or query parameter expected a valid object identifier
                  but received a value that does not match the expected format.
                resolution: >-
                  Verify that all IDs in the request URL and query parameters
                  are correctly formatted. IDs are typically prefixed strings
                  like 'cus_...', 'app_...', or 'doc_...'.
                docs: https://conduit-v2.mintlify.app/errors#invalid-oid-format
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
        '401':
          description: >-
            **API_KEY_MISSING**: The request did not include an API key. All API
            requests must be authenticated.


            **API_KEY_INVALID**: The provided API key is not recognized or has
            been revoked.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: API_KEY_MISSING
                title: API Key Missing
                status: 401
                detail: >-
                  The request did not include an API key. All API requests must
                  be authenticated.
                resolution: >-
                  Include your API key in the 'x-api-key' header with every
                  request.
                docs: https://conduit-v2.mintlify.app/errors#api-key-missing
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
        '403':
          description: >-
            **API_KEY_READ_ONLY**: This API key has read-only access and cannot
            perform write operations. Read-only keys may make read requests
            (GET, HEAD, OPTIONS) only.


            **FEATURE_NOT_ENABLED**: Your account does not have access to this
            feature. Features are enabled on a per-account basis.


            **CLIENT_MARKUP_NOT_ENABLED**: This request declares your own
            margin, but client markup is not enabled for your organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: API_KEY_READ_ONLY
                title: API Key Is Read-Only
                status: 403
                detail: >-
                  This API key has read-only access and cannot perform write
                  operations. Read-only keys may make read requests (GET, HEAD,
                  OPTIONS) only.
                resolution: >-
                  Use a read-write API key for this request, or have an
                  organization admin mint one from the dashboard.
                docs: https://conduit-v2.mintlify.app/errors#api-key-read-only
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
        '404':
          description: >-
            **NO_PRICING_CONFIGURED**: No active pricing profile contains a base
            pricing rule for the requested asset pair.


            **QUOTE_NOT_FOUND**: No quote option exists with the specified ID,
            or it belongs to a different organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: NO_PRICING_CONFIGURED
                title: No Pricing Configured
                status: 404
                detail: >-
                  No active pricing profile contains a base pricing rule for the
                  requested asset pair.
                resolution: >-
                  Configure a base pricing rule for the source/destination pair
                  before requesting an order.
                docs: https://conduit-v2.mintlify.app/errors#no-pricing-configured
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
        '409':
          description: >-
            **IDEMPOTENCY_KEY_CONFLICT**: The idempotency key was previously
            used with a different request body. Idempotency keys are bound to
            the exact request shape — replays must match the original.


            **IDEMPOTENCY_KEY_REQUEST_IN_PROGRESS**: A request with this
            idempotency key is already being processed and has not yet
            completed. Concurrent requests with the same key are rejected to
            prevent duplicate execution.


            **CONFLICT**: The request conflicts with the current state of the
            resource. This usually means a duplicate or a state transition that
            is not allowed.


            **DEPOSIT_ADDRESS_UNAVAILABLE**: A funding address for this customer
            is still being provisioned, so the order could not be given one.
            Nothing was created and no funds were moved.


            **QUOTE_EXPIRED**: The quote option's expiry has passed and it can
            no longer be redeemed.


            **QUOTE_ALREADY_USED**: The quote option has already been consumed
            by another order and is single-use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: IDEMPOTENCY_KEY_CONFLICT
                title: Idempotency Key Conflict
                status: 409
                detail: >-
                  The idempotency key was previously used with a different
                  request body. Idempotency keys are bound to the exact request
                  shape — replays must match the original.
                resolution: >-
                  Use a fresh idempotency key for the new request, or replay the
                  original request unchanged.
                docs: >-
                  https://conduit-v2.mintlify.app/errors#idempotency-key-conflict
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
        '415':
          description: >-
            **UNSUPPORTED_MEDIA_TYPE**: The request carries a body with a
            Content-Type this endpoint cannot parse. JSON endpoints accept
            'application/json'; a body with no Content-Type header at all is
            assumed to be JSON. File-upload endpoints accept only
            'multipart/form-data' — JSON or undeclared bodies are rejected
            there.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: UNSUPPORTED_MEDIA_TYPE
                title: Unsupported Media Type
                status: 415
                detail: >-
                  The request carries a body with a Content-Type this endpoint
                  cannot parse. JSON endpoints accept 'application/json'; a body
                  with no Content-Type header at all is assumed to be JSON.
                  File-upload endpoints accept only 'multipart/form-data' — JSON
                  or undeclared bodies are rejected there.
                resolution: >-
                  Send the request body with the 'Content-Type:
                  application/json' header. For file uploads, use 'Content-Type:
                  multipart/form-data' — upload endpoints accept no other body
                  type.
                docs: https://conduit-v2.mintlify.app/errors#unsupported-media-type
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
        '422':
          description: >-
            **UNSUPPORTED_PAIR**: The requested source and destination asset
            pair is not supported.


            **INVALID_ORDER_COMBO**: The requested order combination is not
            supported: same-asset same-chain moves, mismatched source and
            destination resources, or an autoPayout shape that does not match
            the order direction. OFFRAMP orders require a fiat autoPayout (`{
            rail, purpose, documents?, recipient }`); ONRAMP orders require a
            crypto autoPayout (`{ purpose, documents?, recipient: { rail:
            'crypto', chain, address, attestation } }`), self- or
            third-party-custody. `purpose` is required and drives the
            documentation / whitelist gate; `documents` are supporting-document
            ids. `recipient.chain` must match the destination wallet's chain.


            **NON_CUSTODIAL_SOURCE_NOT_SUPPORTED**: Non-custodial source wallets
            are supported on EVM chains. On Tron, Stellar, and Bitcoin, a
            non-custodial source is rejected at creation because those chains
            cannot be co-signed.


            **MISSING_REQUIRED_FIELDS**: The order request is missing one or
            more fields required for the destination shape.


            **RECIPIENT_VALIDATION_FAILED**: The supplied recipient or
            destination details failed validation for the chosen rail, chain, or
            corridor.


            **DESTINATION_NOT_ACTIVATED**: The destination account does not
            exist on the destination chain. On some chains an account must be
            activated on-chain before it can receive. The error detail names the
            chain.


            **DESTINATION_ASSET_NOT_ACCEPTED**: The destination account exists
            but cannot receive the requested asset now. The account has not
            opted in to the asset, the issuer froze the account's ability to
            hold it, or the account's holding limit leaves no room for this
            amount. The error detail and details.reason name the exact blocker.


            **AMOUNT_OUT_OF_RANGE**: The requested amount is below the minimum
            or above the maximum allowed for this order.


            **TRANSACTION_BLOCKED**: The transaction is blocked by policy. This
            decision is terminal.


            **PAYOUT_SELF_DESTINATION**: The recipient bank coordinates resolve
            to the very virtual account the payout is sent from. Paying an
            account from itself moves no money — it would leave over a payment
            rail and return as an inbound deposit, minus fees.


            **PAYOUT_DESTINATION_RESTRICTED**: The recipient bank coordinates
            resolve to a Conduit-issued account that is currently restricted
            from receiving funds.


            **CLIENT_MARKUP_SPREAD_EXCEEDED**: The margin declared on this
            order, added to Conduit's own spread terms for the pair, reaches the
            point at which the quoted rate would fall to zero. The margin itself
            has no fixed maximum; what is left for it depends on the pair.


            **CLIENT_MARKUP_EXCEEDS_PAYOUT**: The margin declared on the chained
            auto-payout reaches the amount this order converts to. The leg is
            funded only by that converted output, out of which Conduit's own
            payout fee also comes, so the margin cannot be collected.


            **QUOTE_ASSET_MISMATCH**: The order's source or destination resource
            asset does not match the quote option's priced asset pair.


            **QUOTE_RECIPIENT_TYPE_UNPRICED**: The quote was priced with no
            recipient, but a recipient-type-scoped pricing rule applies to this
            order's payout recipient and would change the price. The quote's
            locked rate is not valid for this recipient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: UNSUPPORTED_PAIR
                title: Unsupported Pair
                status: 422
                detail: >-
                  The requested source and destination asset pair is not
                  supported.
                resolution: >-
                  Check the configured trading pairs and submit a supported
                  source/destination asset combination.
                docs: https://conduit-v2.mintlify.app/errors#unsupported-pair
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
        '429':
          description: >-
            **RATE_LIMITED**: Too many requests. This error is returned by three
            independent checks: the per-organization bucket applied to every
            authenticated API request; the per-IP bucket applied to
            unauthenticated traffic before an API key is validated; and the
            per-IP bucket applied when repeated invalid API keys are submitted
            from the same address. Honor the Retry-After header (also exposed as
            retryAfterSeconds in the body) before retrying. Current limits and
            remaining budget are visible in X-RateLimit-Limit,
            X-RateLimit-Remaining, and X-RateLimit-Reset on rate-limited route
            responses.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedErrorDto'
              example:
                type: RATE_LIMITED
                title: Rate Limited
                status: 429
                detail: >-
                  Too many requests. This error is returned by three independent
                  checks: the per-organization bucket applied to every
                  authenticated API request; the per-IP bucket applied to
                  unauthenticated traffic before an API key is validated; and
                  the per-IP bucket applied when repeated invalid API keys are
                  submitted from the same address. Honor the Retry-After header
                  (also exposed as retryAfterSeconds in the body) before
                  retrying. Current limits and remaining budget are visible in
                  X-RateLimit-Limit, X-RateLimit-Remaining, and
                  X-RateLimit-Reset on rate-limited route responses.
                resolution: >-
                  Sleep until Retry-After seconds have elapsed, then retry. For
                  sustained workloads exceeding the per-organization defaults,
                  request a rate-limit increase through your support contact.
                docs: https://conduit-v2.mintlify.app/errors#rate-limited
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
                retryAfterSeconds: 3
        '500':
          description: >-
            **INTERNAL_ERROR**: An unexpected error occurred while processing
            your request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: INTERNAL_ERROR
                title: Internal Error
                status: 500
                detail: An unexpected error occurred while processing your request.
                resolution: >-
                  Retry the request after a brief delay. If the error persists,
                  contact support and include the correlationId from the error
                  response for investigation.
                docs: https://conduit-v2.mintlify.app/errors#internal-error
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
        '503':
          description: >-
            **RATE_UNAVAILABLE**: A live exchange rate could not be retrieved
            for the requested currency pair. The rate provider may be
            temporarily unavailable.


            **RATE_UNAVAILABLE_AFTER_HOURS**: The market for this currency pair
            is currently closed and no prior open-market rate is available to
            freeze, so a quote cannot be produced.


            **POLICY_EVALUATION_UNAVAILABLE**: The documentation policy could
            not be evaluated because a policy lookup did not complete. No
            transaction was created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: RATE_UNAVAILABLE
                title: Rate Unavailable
                status: 503
                detail: >-
                  A live exchange rate could not be retrieved for the requested
                  currency pair. The rate provider may be temporarily
                  unavailable.
                resolution: >-
                  Retry the request after a short delay. If the error persists,
                  the rate provider for this currency pair may be experiencing
                  an outage.
                docs: https://conduit-v2.mintlify.app/errors/rate-unavailable
                instance: /v2/...
                correlationId: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
                timestamp: '2026-01-15T09:30:00.000Z'
components:
  schemas:
    ExplicitSourceOrderDto:
      type: object
      properties:
        clientReferenceId:
          type: string
          pattern: ^[A-Za-z0-9_\-:.]{1,255}$
          description: >-
            Client-supplied reference, unique per resource within your
            organization. 1-255 characters from A-Za-z, 0-9, underscore, hyphen,
            colon, and period — no spaces.
        destination:
          oneOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - wallet
                id:
                  type: string
                  pattern: ^wlt_[0-9A-Za-z]{22}$
                asset:
                  type: object
                  properties:
                    code:
                      type: string
                      enum:
                        - USD
                        - EUR
                        - GBP
                        - CHF
                        - JPY
                        - CAD
                        - AUD
                        - NZD
                        - SGD
                        - HKD
                        - CNY
                        - KRW
                        - INR
                        - BRL
                        - MXN
                        - ARS
                        - CLP
                        - COP
                        - PEN
                        - ZAR
                        - NGN
                        - KES
                        - GHS
                        - EGP
                        - AED
                        - SAR
                        - ILS
                        - TRY
                        - PLN
                        - CZK
                        - HUF
                        - SEK
                        - NOK
                        - DKK
                        - THB
                        - IDR
                        - MYR
                        - PHP
                        - VND
                        - TWD
                        - USDC
                        - USDT
                        - DAI
                        - EURC
                        - PYUSD
                        - BTC
                        - ETH
                        - SOL
                        - TRX
                        - XLM
                    chain:
                      type: string
                      enum:
                        - ethereum
                        - base
                        - solana
                        - polygon
                        - arbitrum
                        - optimism
                        - avalanche
                        - tron
                        - stellar
                        - bsc
                        - bitcoin
                      nullable: true
                  required:
                    - code
              required:
                - type
                - id
                - asset
              additionalProperties: false
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - virtual_account
                id:
                  type: string
                  pattern: ^vac_[0-9A-Za-z]{22}$
              required:
                - type
                - id
              additionalProperties: false
        autoPayout:
          anyOf:
            - type: object
              properties:
                rail:
                  type: string
                  enum:
                    - fedwire
                    - rtp
                    - fednow
                    - swift
                recipient:
                  oneOf:
                    - oneOf:
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - us
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            routingNumber:
                              type: string
                            accountType:
                              type: string
                              enum:
                                - checking
                                - savings
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - individual
                            firstName:
                              type: string
                              maxLength: 70
                            lastName:
                              type: string
                              maxLength: 70
                            dateOfBirth:
                              type: string
                              format: date
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            countryOfCitizenship:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - accountNumber
                            - routingNumber
                            - accountType
                            - bankAddress
                            - type
                            - firstName
                            - lastName
                            - postalAddress
                          additionalProperties: false
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - us
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            routingNumber:
                              type: string
                            accountType:
                              type: string
                              enum:
                                - checking
                                - savings
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - business
                            legalName:
                              type: string
                              maxLength: 140
                            countryOfRegistration:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - accountNumber
                            - routingNumber
                            - accountType
                            - bankAddress
                            - type
                            - legalName
                            - postalAddress
                          additionalProperties: false
                    - oneOf:
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - swift
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            iban:
                              type: string
                            bic:
                              type: string
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - individual
                            firstName:
                              type: string
                              maxLength: 70
                            lastName:
                              type: string
                              maxLength: 70
                            dateOfBirth:
                              type: string
                              format: date
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            countryOfCitizenship:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - bic
                            - bankAddress
                            - type
                            - firstName
                            - lastName
                            - postalAddress
                          additionalProperties: false
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - swift
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            iban:
                              type: string
                            bic:
                              type: string
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - business
                            legalName:
                              type: string
                              maxLength: 140
                            countryOfRegistration:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - bic
                            - bankAddress
                            - type
                            - legalName
                            - postalAddress
                          additionalProperties: false
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - crypto
                        chain:
                          type: string
                          enum:
                            - ethereum
                            - base
                            - solana
                            - polygon
                            - arbitrum
                            - optimism
                            - avalanche
                            - tron
                            - stellar
                            - bsc
                            - bitcoin
                        address:
                          type: string
                          minLength: 1
                          maxLength: 255
                        attestation:
                          type: object
                          properties:
                            custody:
                              type: string
                              enum:
                                - self
                                - third_party
                          required:
                            - custody
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - individual
                            - business
                        firstName:
                          type: string
                          maxLength: 70
                        lastName:
                          type: string
                          maxLength: 70
                        legalName:
                          type: string
                          maxLength: 140
                        dateOfBirth:
                          type: string
                          format: date
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        countryOfCitizenship:
                          type: string
                        countryOfRegistration:
                          type: string
                        postalAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                        phone:
                          type: string
                          maxLength: 40
                      required:
                        - rail
                        - chain
                        - address
                        - attestation
                      additionalProperties: false
                ach:
                  type: object
                  properties:
                    authorizationType:
                      type: string
                      enum:
                        - corporate_agreement
                        - written
                        - web
                  required:
                    - authorizationType
                swift:
                  type: object
                  properties:
                    purposeOfPayment:
                      type: string
                      maxLength: 140
                instant:
                  type: object
                  properties:
                    receiverNetworkPreference:
                      type: string
                      enum:
                        - tch
                        - fednow
                remittance:
                  type: object
                  properties:
                    reference:
                      type: string
                      maxLength: 140
                    description:
                      type: string
                      maxLength: 280
                purpose:
                  type: string
                  enum:
                    - intercompany
                    - treasury_management
                    - payment_for_goods_or_services
                    - payroll
                    - investments
                    - other
                    - prefunding
                  description: >-
                    Declared business purpose of the chained auto-payout. Drives
                    documentation requirements and whitelist policy.
                documents:
                  description: >-
                    IDs of previously uploaded supporting documents (doc_*),
                    must be uploaded with purpose transaction_support. Maximum
                    10.
                  maxItems: 10
                  type: array
                  items:
                    type: string
                    pattern: ^doc_[0-9A-Za-z]{22}$
                markupBps:
                  description: >-
                    Your own margin on the chained payout, in basis points of
                    the amount it moves, to two decimal places. The leg spends
                    this order's converted output and has no second source to
                    draw on, so the margin is taken out of that output, exactly
                    as Conduit's own payout fee is: the recipient receives less
                    by this margin. A margin that reaches the amount this order
                    converts to is refused at order create. Omit it to take one
                    margin per customer action, on the conversion alone. Fiat
                    legs only.
                  type: number
                  minimum: 0.01
                  maximum: 99999.99
                  multipleOf: 0.01
                markupAmount:
                  description: >-
                    Your own margin on the chained payout as a flat amount, in
                    the leg's asset. Taken out of the converted output the same
                    way, so the recipient receives less by this amount. A value
                    finer than that asset's precision is refused, as is a margin
                    that reaches the amount this order converts to. Fiat legs
                    only.
                  type: string
              required:
                - rail
                - recipient
                - purpose
              additionalProperties: false
            - type: object
              properties:
                recipient:
                  oneOf:
                    - oneOf:
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - us
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            routingNumber:
                              type: string
                            accountType:
                              type: string
                              enum:
                                - checking
                                - savings
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - individual
                            firstName:
                              type: string
                              maxLength: 70
                            lastName:
                              type: string
                              maxLength: 70
                            dateOfBirth:
                              type: string
                              format: date
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            countryOfCitizenship:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - accountNumber
                            - routingNumber
                            - accountType
                            - bankAddress
                            - type
                            - firstName
                            - lastName
                            - postalAddress
                          additionalProperties: false
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - us
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            routingNumber:
                              type: string
                            accountType:
                              type: string
                              enum:
                                - checking
                                - savings
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - business
                            legalName:
                              type: string
                              maxLength: 140
                            countryOfRegistration:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - accountNumber
                            - routingNumber
                            - accountType
                            - bankAddress
                            - type
                            - legalName
                            - postalAddress
                          additionalProperties: false
                    - oneOf:
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - swift
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            iban:
                              type: string
                            bic:
                              type: string
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - individual
                            firstName:
                              type: string
                              maxLength: 70
                            lastName:
                              type: string
                              maxLength: 70
                            dateOfBirth:
                              type: string
                              format: date
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            countryOfCitizenship:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - bic
                            - bankAddress
                            - type
                            - firstName
                            - lastName
                            - postalAddress
                          additionalProperties: false
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - swift
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            iban:
                              type: string
                            bic:
                              type: string
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - business
                            legalName:
                              type: string
                              maxLength: 140
                            countryOfRegistration:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - bic
                            - bankAddress
                            - type
                            - legalName
                            - postalAddress
                          additionalProperties: false
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - crypto
                        chain:
                          type: string
                          enum:
                            - ethereum
                            - base
                            - solana
                            - polygon
                            - arbitrum
                            - optimism
                            - avalanche
                            - tron
                            - stellar
                            - bsc
                            - bitcoin
                        address:
                          type: string
                          minLength: 1
                          maxLength: 255
                        attestation:
                          type: object
                          properties:
                            custody:
                              type: string
                              enum:
                                - self
                                - third_party
                          required:
                            - custody
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - individual
                            - business
                        firstName:
                          type: string
                          maxLength: 70
                        lastName:
                          type: string
                          maxLength: 70
                        legalName:
                          type: string
                          maxLength: 140
                        dateOfBirth:
                          type: string
                          format: date
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        countryOfCitizenship:
                          type: string
                        countryOfRegistration:
                          type: string
                        postalAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                        phone:
                          type: string
                          maxLength: 40
                      required:
                        - rail
                        - chain
                        - address
                        - attestation
                      additionalProperties: false
                memo:
                  oneOf:
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - text
                        value:
                          type: string
                          minLength: 1
                      required:
                        - type
                        - value
                      additionalProperties: false
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - id
                        value:
                          type: string
                      required:
                        - type
                        - value
                      additionalProperties: false
                  description: >-
                    Destination memo (destination tag) for the receiving
                    account. Required by shared custodial addresses such as
                    exchanges. Only accepted on chains whose payments carry a
                    memo.
                purpose:
                  type: string
                  enum:
                    - intercompany
                    - treasury_management
                    - payment_for_goods_or_services
                    - payroll
                    - investments
                    - other
                    - prefunding
                  description: >-
                    Declared business purpose of the chained auto-payout. Drives
                    documentation requirements and whitelist policy.
                documents:
                  description: >-
                    IDs of previously uploaded supporting documents (doc_*),
                    must be uploaded with purpose transaction_support. Maximum
                    10.
                  maxItems: 10
                  type: array
                  items:
                    type: string
                    pattern: ^doc_[0-9A-Za-z]{22}$
                markupBps:
                  description: >-
                    Your own margin on the chained payout, in basis points of
                    the amount it moves, to two decimal places. The leg spends
                    this order's converted output and has no second source to
                    draw on, so the margin is taken out of that output, exactly
                    as Conduit's own payout fee is: the recipient receives less
                    by this margin. A margin that reaches the amount this order
                    converts to is refused at order create. Omit it to take one
                    margin per customer action, on the conversion alone. Fiat
                    legs only.
                  type: number
                  minimum: 0.01
                  maximum: 99999.99
                  multipleOf: 0.01
                markupAmount:
                  description: >-
                    Your own margin on the chained payout as a flat amount, in
                    the leg's asset. Taken out of the converted output the same
                    way, so the recipient receives less by this amount. A value
                    finer than that asset's precision is refused, as is a margin
                    that reaches the amount this order converts to. Fiat legs
                    only.
                  type: string
              required:
                - recipient
                - purpose
              additionalProperties: false
          description: >-
            Chains a follow-on external Withdrawal that fires automatically once
            this order's conversion settles — independent of `autoExecute`,
            which controls how the conversion itself starts. Its shape must
            match the order's direction: the fiat variant
            (rail/recipient/ach/swift/instant/remittance) for OFFRAMP, the
            crypto variant (recipient only) for ONRAMP. Subject to the same
            documentation/whitelist policy as a standalone POST /v2/payouts,
            enforced at order-create time.
        lockSide:
          type: string
          enum:
            - source
            - destination
        amount:
          type: string
        markupBps:
          description: >-
            Your own margin on this order, in basis points, to two decimal
            places. Conduit folds it into the quoted rate, so endUserRate is the
            marked-up rate your customer receives and totalSpreadBps includes
            it. There is no configured maximum; the request is refused only when
            this margin plus Conduit's own three spread terms reach 10000 bps,
            the point at which the quoted rate would collapse to zero. The
            amount is accrued to you at settlement and reported on GET
            /v2/markup/balances; it stays inside the rate, so it never enters
            fees[] and totalDebit stays principal plus fees. Omit the field for
            no markup. Requires markup to be enabled for your organization.
          type: number
          minimum: 0.01
          maximum: 99999.99
          multipleOf: 0.01
        markupAmount:
          description: >-
            Your own margin on this order as a flat amount per transaction, in
            the order's source asset. A value finer than that asset's precision
            is refused. A flat amount cannot sit inside the rate, so it behaves
            exactly as Conduit's own fixed fee: on a SOURCE-locked order it
            reduces the principal and your customer receives less, and on a
            DESTINATION-locked order it adds to totalDebit and your customer
            pays more. On a quoteOptionId redemption this always adds to
            totalDebit instead, on both lock sides: the option's sourceAmount
            and destinationAmount are already locked at its quoted rate and
            never recomputed, so the margin rides on top rather than carving
            into either side. It appears in fees[] as an entry owned by you, and
            it is accrued to you at settlement. Send it alongside markupBps, on
            its own, or omit both. Requires markup to be enabled for your
            organization.
          type: string
        source:
          oneOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - wallet
                id:
                  type: string
                  pattern: ^wlt_[0-9A-Za-z]{22}$
                asset:
                  type: object
                  properties:
                    code:
                      type: string
                      enum:
                        - USD
                        - EUR
                        - GBP
                        - CHF
                        - JPY
                        - CAD
                        - AUD
                        - NZD
                        - SGD
                        - HKD
                        - CNY
                        - KRW
                        - INR
                        - BRL
                        - MXN
                        - ARS
                        - CLP
                        - COP
                        - PEN
                        - ZAR
                        - NGN
                        - KES
                        - GHS
                        - EGP
                        - AED
                        - SAR
                        - ILS
                        - TRY
                        - PLN
                        - CZK
                        - HUF
                        - SEK
                        - NOK
                        - DKK
                        - THB
                        - IDR
                        - MYR
                        - PHP
                        - VND
                        - TWD
                        - USDC
                        - USDT
                        - DAI
                        - EURC
                        - PYUSD
                        - BTC
                        - ETH
                        - SOL
                        - TRX
                        - XLM
                    chain:
                      type: string
                      enum:
                        - ethereum
                        - base
                        - solana
                        - polygon
                        - arbitrum
                        - optimism
                        - avalanche
                        - tron
                        - stellar
                        - bsc
                        - bitcoin
                      nullable: true
                  required:
                    - code
              required:
                - type
                - id
                - asset
              additionalProperties: false
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - virtual_account
                id:
                  type: string
                  pattern: ^vac_[0-9A-Za-z]{22}$
              required:
                - type
                - id
              additionalProperties: false
        autoExecute:
          default: false
          description: >-
            Controls how the order starts executing; does not affect order
            creation, which never checks or reserves the source's available
            balance regardless of this flag — an order can always be created
            before the source is funded. When true, Conduit automatically starts
            execution as soon as the available source balance covers totalDebit
            (principal plus fees), with no client action required; orders
            sharing the same source resource execute oldest-first, so a
            still-underfunded older order can delay a newer, already-funded one.
            When false (default), the client must call POST
            /v2/orders/{id}/execute to start execution; an underfunded attempt
            returns 422 INSUFFICIENT_FUNDS immediately and leaves the order
            pending, so the client may retry after funding. Either way,
            execution must start before lockExpiresAt or the order is cancelled
            with cancellationReason 'expired' — funding after that deadline does
            not revive it.
          type: boolean
      required:
        - destination
        - lockSide
        - amount
        - source
      additionalProperties: false
    DepositFundedOrderDto:
      type: object
      properties:
        clientReferenceId:
          type: string
          pattern: ^[A-Za-z0-9_\-:.]{1,255}$
          description: >-
            Client-supplied reference, unique per resource within your
            organization. 1-255 characters from A-Za-z, 0-9, underscore, hyphen,
            colon, and period — no spaces.
        destination:
          oneOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - wallet
                id:
                  type: string
                  pattern: ^wlt_[0-9A-Za-z]{22}$
                asset:
                  type: object
                  properties:
                    code:
                      type: string
                      enum:
                        - USD
                        - EUR
                        - GBP
                        - CHF
                        - JPY
                        - CAD
                        - AUD
                        - NZD
                        - SGD
                        - HKD
                        - CNY
                        - KRW
                        - INR
                        - BRL
                        - MXN
                        - ARS
                        - CLP
                        - COP
                        - PEN
                        - ZAR
                        - NGN
                        - KES
                        - GHS
                        - EGP
                        - AED
                        - SAR
                        - ILS
                        - TRY
                        - PLN
                        - CZK
                        - HUF
                        - SEK
                        - NOK
                        - DKK
                        - THB
                        - IDR
                        - MYR
                        - PHP
                        - VND
                        - TWD
                        - USDC
                        - USDT
                        - DAI
                        - EURC
                        - PYUSD
                        - BTC
                        - ETH
                        - SOL
                        - TRX
                        - XLM
                    chain:
                      type: string
                      enum:
                        - ethereum
                        - base
                        - solana
                        - polygon
                        - arbitrum
                        - optimism
                        - avalanche
                        - tron
                        - stellar
                        - bsc
                        - bitcoin
                      nullable: true
                  required:
                    - code
              required:
                - type
                - id
                - asset
              additionalProperties: false
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - virtual_account
                id:
                  type: string
                  pattern: ^vac_[0-9A-Za-z]{22}$
              required:
                - type
                - id
              additionalProperties: false
        autoPayout:
          anyOf:
            - type: object
              properties:
                rail:
                  type: string
                  enum:
                    - fedwire
                    - rtp
                    - fednow
                    - swift
                recipient:
                  oneOf:
                    - oneOf:
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - us
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            routingNumber:
                              type: string
                            accountType:
                              type: string
                              enum:
                                - checking
                                - savings
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - individual
                            firstName:
                              type: string
                              maxLength: 70
                            lastName:
                              type: string
                              maxLength: 70
                            dateOfBirth:
                              type: string
                              format: date
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            countryOfCitizenship:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - accountNumber
                            - routingNumber
                            - accountType
                            - bankAddress
                            - type
                            - firstName
                            - lastName
                            - postalAddress
                          additionalProperties: false
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - us
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            routingNumber:
                              type: string
                            accountType:
                              type: string
                              enum:
                                - checking
                                - savings
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - business
                            legalName:
                              type: string
                              maxLength: 140
                            countryOfRegistration:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - accountNumber
                            - routingNumber
                            - accountType
                            - bankAddress
                            - type
                            - legalName
                            - postalAddress
                          additionalProperties: false
                    - oneOf:
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - swift
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            iban:
                              type: string
                            bic:
                              type: string
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - individual
                            firstName:
                              type: string
                              maxLength: 70
                            lastName:
                              type: string
                              maxLength: 70
                            dateOfBirth:
                              type: string
                              format: date
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            countryOfCitizenship:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - bic
                            - bankAddress
                            - type
                            - firstName
                            - lastName
                            - postalAddress
                          additionalProperties: false
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - swift
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            iban:
                              type: string
                            bic:
                              type: string
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - business
                            legalName:
                              type: string
                              maxLength: 140
                            countryOfRegistration:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - bic
                            - bankAddress
                            - type
                            - legalName
                            - postalAddress
                          additionalProperties: false
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - crypto
                        chain:
                          type: string
                          enum:
                            - ethereum
                            - base
                            - solana
                            - polygon
                            - arbitrum
                            - optimism
                            - avalanche
                            - tron
                            - stellar
                            - bsc
                            - bitcoin
                        address:
                          type: string
                          minLength: 1
                          maxLength: 255
                        attestation:
                          type: object
                          properties:
                            custody:
                              type: string
                              enum:
                                - self
                                - third_party
                          required:
                            - custody
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - individual
                            - business
                        firstName:
                          type: string
                          maxLength: 70
                        lastName:
                          type: string
                          maxLength: 70
                        legalName:
                          type: string
                          maxLength: 140
                        dateOfBirth:
                          type: string
                          format: date
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        countryOfCitizenship:
                          type: string
                        countryOfRegistration:
                          type: string
                        postalAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                        phone:
                          type: string
                          maxLength: 40
                      required:
                        - rail
                        - chain
                        - address
                        - attestation
                      additionalProperties: false
                ach:
                  type: object
                  properties:
                    authorizationType:
                      type: string
                      enum:
                        - corporate_agreement
                        - written
                        - web
                  required:
                    - authorizationType
                swift:
                  type: object
                  properties:
                    purposeOfPayment:
                      type: string
                      maxLength: 140
                instant:
                  type: object
                  properties:
                    receiverNetworkPreference:
                      type: string
                      enum:
                        - tch
                        - fednow
                remittance:
                  type: object
                  properties:
                    reference:
                      type: string
                      maxLength: 140
                    description:
                      type: string
                      maxLength: 280
                purpose:
                  type: string
                  enum:
                    - intercompany
                    - treasury_management
                    - payment_for_goods_or_services
                    - payroll
                    - investments
                    - other
                    - prefunding
                  description: >-
                    Declared business purpose of the chained auto-payout. Drives
                    documentation requirements and whitelist policy.
                documents:
                  description: >-
                    IDs of previously uploaded supporting documents (doc_*),
                    must be uploaded with purpose transaction_support. Maximum
                    10.
                  maxItems: 10
                  type: array
                  items:
                    type: string
                    pattern: ^doc_[0-9A-Za-z]{22}$
                markupBps:
                  description: >-
                    Your own margin on the chained payout, in basis points of
                    the amount it moves, to two decimal places. The leg spends
                    this order's converted output and has no second source to
                    draw on, so the margin is taken out of that output, exactly
                    as Conduit's own payout fee is: the recipient receives less
                    by this margin. A margin that reaches the amount this order
                    converts to is refused at order create. Omit it to take one
                    margin per customer action, on the conversion alone. Fiat
                    legs only.
                  type: number
                  minimum: 0.01
                  maximum: 99999.99
                  multipleOf: 0.01
                markupAmount:
                  description: >-
                    Your own margin on the chained payout as a flat amount, in
                    the leg's asset. Taken out of the converted output the same
                    way, so the recipient receives less by this amount. A value
                    finer than that asset's precision is refused, as is a margin
                    that reaches the amount this order converts to. Fiat legs
                    only.
                  type: string
              required:
                - rail
                - recipient
                - purpose
              additionalProperties: false
            - type: object
              properties:
                recipient:
                  oneOf:
                    - oneOf:
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - us
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            routingNumber:
                              type: string
                            accountType:
                              type: string
                              enum:
                                - checking
                                - savings
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - individual
                            firstName:
                              type: string
                              maxLength: 70
                            lastName:
                              type: string
                              maxLength: 70
                            dateOfBirth:
                              type: string
                              format: date
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            countryOfCitizenship:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - accountNumber
                            - routingNumber
                            - accountType
                            - bankAddress
                            - type
                            - firstName
                            - lastName
                            - postalAddress
                          additionalProperties: false
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - us
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            routingNumber:
                              type: string
                            accountType:
                              type: string
                              enum:
                                - checking
                                - savings
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - business
                            legalName:
                              type: string
                              maxLength: 140
                            countryOfRegistration:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - accountNumber
                            - routingNumber
                            - accountType
                            - bankAddress
                            - type
                            - legalName
                            - postalAddress
                          additionalProperties: false
                    - oneOf:
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - swift
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            iban:
                              type: string
                            bic:
                              type: string
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - individual
                            firstName:
                              type: string
                              maxLength: 70
                            lastName:
                              type: string
                              maxLength: 70
                            dateOfBirth:
                              type: string
                              format: date
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            countryOfCitizenship:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - bic
                            - bankAddress
                            - type
                            - firstName
                            - lastName
                            - postalAddress
                          additionalProperties: false
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - swift
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            iban:
                              type: string
                            bic:
                              type: string
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - business
                            legalName:
                              type: string
                              maxLength: 140
                            countryOfRegistration:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - bic
                            - bankAddress
                            - type
                            - legalName
                            - postalAddress
                          additionalProperties: false
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - crypto
                        chain:
                          type: string
                          enum:
                            - ethereum
                            - base
                            - solana
                            - polygon
                            - arbitrum
                            - optimism
                            - avalanche
                            - tron
                            - stellar
                            - bsc
                            - bitcoin
                        address:
                          type: string
                          minLength: 1
                          maxLength: 255
                        attestation:
                          type: object
                          properties:
                            custody:
                              type: string
                              enum:
                                - self
                                - third_party
                          required:
                            - custody
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - individual
                            - business
                        firstName:
                          type: string
                          maxLength: 70
                        lastName:
                          type: string
                          maxLength: 70
                        legalName:
                          type: string
                          maxLength: 140
                        dateOfBirth:
                          type: string
                          format: date
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        countryOfCitizenship:
                          type: string
                        countryOfRegistration:
                          type: string
                        postalAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                        phone:
                          type: string
                          maxLength: 40
                      required:
                        - rail
                        - chain
                        - address
                        - attestation
                      additionalProperties: false
                memo:
                  oneOf:
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - text
                        value:
                          type: string
                          minLength: 1
                      required:
                        - type
                        - value
                      additionalProperties: false
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - id
                        value:
                          type: string
                      required:
                        - type
                        - value
                      additionalProperties: false
                  description: >-
                    Destination memo (destination tag) for the receiving
                    account. Required by shared custodial addresses such as
                    exchanges. Only accepted on chains whose payments carry a
                    memo.
                purpose:
                  type: string
                  enum:
                    - intercompany
                    - treasury_management
                    - payment_for_goods_or_services
                    - payroll
                    - investments
                    - other
                    - prefunding
                  description: >-
                    Declared business purpose of the chained auto-payout. Drives
                    documentation requirements and whitelist policy.
                documents:
                  description: >-
                    IDs of previously uploaded supporting documents (doc_*),
                    must be uploaded with purpose transaction_support. Maximum
                    10.
                  maxItems: 10
                  type: array
                  items:
                    type: string
                    pattern: ^doc_[0-9A-Za-z]{22}$
                markupBps:
                  description: >-
                    Your own margin on the chained payout, in basis points of
                    the amount it moves, to two decimal places. The leg spends
                    this order's converted output and has no second source to
                    draw on, so the margin is taken out of that output, exactly
                    as Conduit's own payout fee is: the recipient receives less
                    by this margin. A margin that reaches the amount this order
                    converts to is refused at order create. Omit it to take one
                    margin per customer action, on the conversion alone. Fiat
                    legs only.
                  type: number
                  minimum: 0.01
                  maximum: 99999.99
                  multipleOf: 0.01
                markupAmount:
                  description: >-
                    Your own margin on the chained payout as a flat amount, in
                    the leg's asset. Taken out of the converted output the same
                    way, so the recipient receives less by this amount. A value
                    finer than that asset's precision is refused, as is a margin
                    that reaches the amount this order converts to. Fiat legs
                    only.
                  type: string
              required:
                - recipient
                - purpose
              additionalProperties: false
          description: >-
            Chains a follow-on external Withdrawal that fires automatically once
            this order's conversion settles — independent of `autoExecute`,
            which controls how the conversion itself starts. Its shape must
            match the order's direction: the fiat variant
            (rail/recipient/ach/swift/instant/remittance) for OFFRAMP, the
            crypto variant (recipient only) for ONRAMP. Subject to the same
            documentation/whitelist policy as a standalone POST /v2/payouts,
            enforced at order-create time.
        lockSide:
          type: string
          enum:
            - source
            - destination
        amount:
          type: string
        markupBps:
          description: >-
            Your own margin on this order, in basis points, to two decimal
            places. Conduit folds it into the quoted rate, so endUserRate is the
            marked-up rate your customer receives and totalSpreadBps includes
            it. There is no configured maximum; the request is refused only when
            this margin plus Conduit's own three spread terms reach 10000 bps,
            the point at which the quoted rate would collapse to zero. The
            amount is accrued to you at settlement and reported on GET
            /v2/markup/balances; it stays inside the rate, so it never enters
            fees[] and totalDebit stays principal plus fees. Omit the field for
            no markup. Requires markup to be enabled for your organization.
          type: number
          minimum: 0.01
          maximum: 99999.99
          multipleOf: 0.01
        markupAmount:
          description: >-
            Your own margin on this order as a flat amount per transaction, in
            the order's source asset. A value finer than that asset's precision
            is refused. A flat amount cannot sit inside the rate, so it behaves
            exactly as Conduit's own fixed fee: on a SOURCE-locked order it
            reduces the principal and your customer receives less, and on a
            DESTINATION-locked order it adds to totalDebit and your customer
            pays more. On a quoteOptionId redemption this always adds to
            totalDebit instead, on both lock sides: the option's sourceAmount
            and destinationAmount are already locked at its quoted rate and
            never recomputed, so the margin rides on top rather than carving
            into either side. It appears in fees[] as an entry owned by you, and
            it is accrued to you at settlement. Send it alongside markupBps, on
            its own, or omit both. Requires markup to be enabled for your
            organization.
          type: string
        sourceAsset:
          type: object
          properties:
            code:
              type: string
              enum:
                - BTC
                - DAI
                - ETH
                - EURC
                - PYUSD
                - SOL
                - TRX
                - USDC
                - USDT
                - XLM
            chain:
              type: string
              enum:
                - ethereum
                - base
                - solana
                - polygon
                - arbitrum
                - optimism
                - avalanche
                - tron
                - stellar
                - bsc
                - bitcoin
          required:
            - code
            - chain
          description: >-
            The crypto asset the order is funded in — both code and chain are
            required. Conduit answers with a funding address to send it to,
            published as depositInstructions on the order, and the order
            executes on its own once the funds clear; auto-execution is forced.
            Fundable pairs: USDC/ethereum, USDC/base, USDC/polygon,
            USDC/stellar, USDT/ethereum, USDT/tron, USDT/polygon, ETH/ethereum.
            Anything else is rejected with UNSUPPORTED_ASSET.
      required:
        - destination
        - lockSide
        - amount
        - sourceAsset
      additionalProperties: false
    QuoteRedemptionOrderDto:
      type: object
      properties:
        clientReferenceId:
          type: string
          pattern: ^[A-Za-z0-9_\-:.]{1,255}$
          description: >-
            Client-supplied reference, unique per resource within your
            organization. 1-255 characters from A-Za-z, 0-9, underscore, hyphen,
            colon, and period — no spaces.
        destination:
          oneOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - wallet
                id:
                  type: string
                  pattern: ^wlt_[0-9A-Za-z]{22}$
                asset:
                  type: object
                  properties:
                    code:
                      type: string
                      enum:
                        - USD
                        - EUR
                        - GBP
                        - CHF
                        - JPY
                        - CAD
                        - AUD
                        - NZD
                        - SGD
                        - HKD
                        - CNY
                        - KRW
                        - INR
                        - BRL
                        - MXN
                        - ARS
                        - CLP
                        - COP
                        - PEN
                        - ZAR
                        - NGN
                        - KES
                        - GHS
                        - EGP
                        - AED
                        - SAR
                        - ILS
                        - TRY
                        - PLN
                        - CZK
                        - HUF
                        - SEK
                        - NOK
                        - DKK
                        - THB
                        - IDR
                        - MYR
                        - PHP
                        - VND
                        - TWD
                        - USDC
                        - USDT
                        - DAI
                        - EURC
                        - PYUSD
                        - BTC
                        - ETH
                        - SOL
                        - TRX
                        - XLM
                    chain:
                      type: string
                      enum:
                        - ethereum
                        - base
                        - solana
                        - polygon
                        - arbitrum
                        - optimism
                        - avalanche
                        - tron
                        - stellar
                        - bsc
                        - bitcoin
                      nullable: true
                  required:
                    - code
              required:
                - type
                - id
                - asset
              additionalProperties: false
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - virtual_account
                id:
                  type: string
                  pattern: ^vac_[0-9A-Za-z]{22}$
              required:
                - type
                - id
              additionalProperties: false
        autoPayout:
          anyOf:
            - type: object
              properties:
                rail:
                  type: string
                  enum:
                    - fedwire
                    - rtp
                    - fednow
                    - swift
                recipient:
                  oneOf:
                    - oneOf:
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - us
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            routingNumber:
                              type: string
                            accountType:
                              type: string
                              enum:
                                - checking
                                - savings
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - individual
                            firstName:
                              type: string
                              maxLength: 70
                            lastName:
                              type: string
                              maxLength: 70
                            dateOfBirth:
                              type: string
                              format: date
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            countryOfCitizenship:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - accountNumber
                            - routingNumber
                            - accountType
                            - bankAddress
                            - type
                            - firstName
                            - lastName
                            - postalAddress
                          additionalProperties: false
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - us
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            routingNumber:
                              type: string
                            accountType:
                              type: string
                              enum:
                                - checking
                                - savings
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - business
                            legalName:
                              type: string
                              maxLength: 140
                            countryOfRegistration:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - accountNumber
                            - routingNumber
                            - accountType
                            - bankAddress
                            - type
                            - legalName
                            - postalAddress
                          additionalProperties: false
                    - oneOf:
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - swift
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            iban:
                              type: string
                            bic:
                              type: string
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - individual
                            firstName:
                              type: string
                              maxLength: 70
                            lastName:
                              type: string
                              maxLength: 70
                            dateOfBirth:
                              type: string
                              format: date
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            countryOfCitizenship:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - bic
                            - bankAddress
                            - type
                            - firstName
                            - lastName
                            - postalAddress
                          additionalProperties: false
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - swift
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            iban:
                              type: string
                            bic:
                              type: string
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - business
                            legalName:
                              type: string
                              maxLength: 140
                            countryOfRegistration:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - bic
                            - bankAddress
                            - type
                            - legalName
                            - postalAddress
                          additionalProperties: false
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - crypto
                        chain:
                          type: string
                          enum:
                            - ethereum
                            - base
                            - solana
                            - polygon
                            - arbitrum
                            - optimism
                            - avalanche
                            - tron
                            - stellar
                            - bsc
                            - bitcoin
                        address:
                          type: string
                          minLength: 1
                          maxLength: 255
                        attestation:
                          type: object
                          properties:
                            custody:
                              type: string
                              enum:
                                - self
                                - third_party
                          required:
                            - custody
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - individual
                            - business
                        firstName:
                          type: string
                          maxLength: 70
                        lastName:
                          type: string
                          maxLength: 70
                        legalName:
                          type: string
                          maxLength: 140
                        dateOfBirth:
                          type: string
                          format: date
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        countryOfCitizenship:
                          type: string
                        countryOfRegistration:
                          type: string
                        postalAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                        phone:
                          type: string
                          maxLength: 40
                      required:
                        - rail
                        - chain
                        - address
                        - attestation
                      additionalProperties: false
                ach:
                  type: object
                  properties:
                    authorizationType:
                      type: string
                      enum:
                        - corporate_agreement
                        - written
                        - web
                  required:
                    - authorizationType
                swift:
                  type: object
                  properties:
                    purposeOfPayment:
                      type: string
                      maxLength: 140
                instant:
                  type: object
                  properties:
                    receiverNetworkPreference:
                      type: string
                      enum:
                        - tch
                        - fednow
                remittance:
                  type: object
                  properties:
                    reference:
                      type: string
                      maxLength: 140
                    description:
                      type: string
                      maxLength: 280
                purpose:
                  type: string
                  enum:
                    - intercompany
                    - treasury_management
                    - payment_for_goods_or_services
                    - payroll
                    - investments
                    - other
                    - prefunding
                  description: >-
                    Declared business purpose of the chained auto-payout. Drives
                    documentation requirements and whitelist policy.
                documents:
                  description: >-
                    IDs of previously uploaded supporting documents (doc_*),
                    must be uploaded with purpose transaction_support. Maximum
                    10.
                  maxItems: 10
                  type: array
                  items:
                    type: string
                    pattern: ^doc_[0-9A-Za-z]{22}$
                markupBps:
                  description: >-
                    Your own margin on the chained payout, in basis points of
                    the amount it moves, to two decimal places. The leg spends
                    this order's converted output and has no second source to
                    draw on, so the margin is taken out of that output, exactly
                    as Conduit's own payout fee is: the recipient receives less
                    by this margin. A margin that reaches the amount this order
                    converts to is refused at order create. Omit it to take one
                    margin per customer action, on the conversion alone. Fiat
                    legs only.
                  type: number
                  minimum: 0.01
                  maximum: 99999.99
                  multipleOf: 0.01
                markupAmount:
                  description: >-
                    Your own margin on the chained payout as a flat amount, in
                    the leg's asset. Taken out of the converted output the same
                    way, so the recipient receives less by this amount. A value
                    finer than that asset's precision is refused, as is a margin
                    that reaches the amount this order converts to. Fiat legs
                    only.
                  type: string
              required:
                - rail
                - recipient
                - purpose
              additionalProperties: false
            - type: object
              properties:
                recipient:
                  oneOf:
                    - oneOf:
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - us
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            routingNumber:
                              type: string
                            accountType:
                              type: string
                              enum:
                                - checking
                                - savings
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - individual
                            firstName:
                              type: string
                              maxLength: 70
                            lastName:
                              type: string
                              maxLength: 70
                            dateOfBirth:
                              type: string
                              format: date
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            countryOfCitizenship:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - accountNumber
                            - routingNumber
                            - accountType
                            - bankAddress
                            - type
                            - firstName
                            - lastName
                            - postalAddress
                          additionalProperties: false
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - us
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            routingNumber:
                              type: string
                            accountType:
                              type: string
                              enum:
                                - checking
                                - savings
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - business
                            legalName:
                              type: string
                              maxLength: 140
                            countryOfRegistration:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - accountNumber
                            - routingNumber
                            - accountType
                            - bankAddress
                            - type
                            - legalName
                            - postalAddress
                          additionalProperties: false
                    - oneOf:
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - swift
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            iban:
                              type: string
                            bic:
                              type: string
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - individual
                            firstName:
                              type: string
                              maxLength: 70
                            lastName:
                              type: string
                              maxLength: 70
                            dateOfBirth:
                              type: string
                              format: date
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            countryOfCitizenship:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - bic
                            - bankAddress
                            - type
                            - firstName
                            - lastName
                            - postalAddress
                          additionalProperties: false
                        - type: object
                          properties:
                            rail:
                              type: string
                              enum:
                                - swift
                            accountNumber:
                              type: string
                              minLength: 4
                              maxLength: 64
                            iban:
                              type: string
                            bic:
                              type: string
                            bankName:
                              type: string
                              maxLength: 140
                            bankAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                            phone:
                              description: >-
                                Recipient contact phone. Optional; forwarded to
                                the banking partner when provided.
                              type: string
                              maxLength: 40
                            type:
                              type: string
                              enum:
                                - business
                            legalName:
                              type: string
                              maxLength: 140
                            countryOfRegistration:
                              type: string
                            postalAddress:
                              type: object
                              properties:
                                addressLine1:
                                  type: string
                                  maxLength: 120
                                addressLine2:
                                  type: string
                                  maxLength: 120
                                city:
                                  type: string
                                  maxLength: 80
                                state:
                                  type: string
                                  maxLength: 80
                                postalCode:
                                  type: string
                                  maxLength: 32
                                country:
                                  type: string
                              required:
                                - addressLine1
                                - city
                                - country
                              additionalProperties: false
                          required:
                            - rail
                            - bic
                            - bankAddress
                            - type
                            - legalName
                            - postalAddress
                          additionalProperties: false
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - crypto
                        chain:
                          type: string
                          enum:
                            - ethereum
                            - base
                            - solana
                            - polygon
                            - arbitrum
                            - optimism
                            - avalanche
                            - tron
                            - stellar
                            - bsc
                            - bitcoin
                        address:
                          type: string
                          minLength: 1
                          maxLength: 255
                        attestation:
                          type: object
                          properties:
                            custody:
                              type: string
                              enum:
                                - self
                                - third_party
                          required:
                            - custody
                          additionalProperties: false
                        type:
                          type: string
                          enum:
                            - individual
                            - business
                        firstName:
                          type: string
                          maxLength: 70
                        lastName:
                          type: string
                          maxLength: 70
                        legalName:
                          type: string
                          maxLength: 140
                        dateOfBirth:
                          type: string
                          format: date
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        countryOfCitizenship:
                          type: string
                        countryOfRegistration:
                          type: string
                        postalAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                        phone:
                          type: string
                          maxLength: 40
                      required:
                        - rail
                        - chain
                        - address
                        - attestation
                      additionalProperties: false
                memo:
                  oneOf:
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - text
                        value:
                          type: string
                          minLength: 1
                      required:
                        - type
                        - value
                      additionalProperties: false
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - id
                        value:
                          type: string
                      required:
                        - type
                        - value
                      additionalProperties: false
                  description: >-
                    Destination memo (destination tag) for the receiving
                    account. Required by shared custodial addresses such as
                    exchanges. Only accepted on chains whose payments carry a
                    memo.
                purpose:
                  type: string
                  enum:
                    - intercompany
                    - treasury_management
                    - payment_for_goods_or_services
                    - payroll
                    - investments
                    - other
                    - prefunding
                  description: >-
                    Declared business purpose of the chained auto-payout. Drives
                    documentation requirements and whitelist policy.
                documents:
                  description: >-
                    IDs of previously uploaded supporting documents (doc_*),
                    must be uploaded with purpose transaction_support. Maximum
                    10.
                  maxItems: 10
                  type: array
                  items:
                    type: string
                    pattern: ^doc_[0-9A-Za-z]{22}$
                markupBps:
                  description: >-
                    Your own margin on the chained payout, in basis points of
                    the amount it moves, to two decimal places. The leg spends
                    this order's converted output and has no second source to
                    draw on, so the margin is taken out of that output, exactly
                    as Conduit's own payout fee is: the recipient receives less
                    by this margin. A margin that reaches the amount this order
                    converts to is refused at order create. Omit it to take one
                    margin per customer action, on the conversion alone. Fiat
                    legs only.
                  type: number
                  minimum: 0.01
                  maximum: 99999.99
                  multipleOf: 0.01
                markupAmount:
                  description: >-
                    Your own margin on the chained payout as a flat amount, in
                    the leg's asset. Taken out of the converted output the same
                    way, so the recipient receives less by this amount. A value
                    finer than that asset's precision is refused, as is a margin
                    that reaches the amount this order converts to. Fiat legs
                    only.
                  type: string
              required:
                - recipient
                - purpose
              additionalProperties: false
          description: >-
            Chains a follow-on external Withdrawal that fires automatically once
            this order's conversion settles — independent of `autoExecute`,
            which controls how the conversion itself starts. Its shape must
            match the order's direction: the fiat variant
            (rail/recipient/ach/swift/instant/remittance) for OFFRAMP, the
            crypto variant (recipient only) for ONRAMP. Subject to the same
            documentation/whitelist policy as a standalone POST /v2/payouts,
            enforced at order-create time.
        markupAmount:
          description: >-
            Your own margin on this order as a flat amount per transaction, in
            the order's source asset. A value finer than that asset's precision
            is refused. A flat amount cannot sit inside the rate, so it behaves
            exactly as Conduit's own fixed fee: on a SOURCE-locked order it
            reduces the principal and your customer receives less, and on a
            DESTINATION-locked order it adds to totalDebit and your customer
            pays more. On a quoteOptionId redemption this always adds to
            totalDebit instead, on both lock sides: the option's sourceAmount
            and destinationAmount are already locked at its quoted rate and
            never recomputed, so the margin rides on top rather than carving
            into either side. It appears in fees[] as an entry owned by you, and
            it is accrued to you at settlement. Send it alongside markupBps, on
            its own, or omit both. Requires markup to be enabled for your
            organization.
          type: string
        quoteOptionId:
          type: string
          pattern: ^qop_[0-9A-Za-z]{22}$
          description: >-
            Redeems a POST /v2/quotes option at its locked rate. `amount` and
            `lockSide` are inherited from the option and must be absent.
        source:
          oneOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - wallet
                id:
                  type: string
                  pattern: ^wlt_[0-9A-Za-z]{22}$
                asset:
                  type: object
                  properties:
                    code:
                      type: string
                      enum:
                        - USD
                        - EUR
                        - GBP
                        - CHF
                        - JPY
                        - CAD
                        - AUD
                        - NZD
                        - SGD
                        - HKD
                        - CNY
                        - KRW
                        - INR
                        - BRL
                        - MXN
                        - ARS
                        - CLP
                        - COP
                        - PEN
                        - ZAR
                        - NGN
                        - KES
                        - GHS
                        - EGP
                        - AED
                        - SAR
                        - ILS
                        - TRY
                        - PLN
                        - CZK
                        - HUF
                        - SEK
                        - NOK
                        - DKK
                        - THB
                        - IDR
                        - MYR
                        - PHP
                        - VND
                        - TWD
                        - USDC
                        - USDT
                        - DAI
                        - EURC
                        - PYUSD
                        - BTC
                        - ETH
                        - SOL
                        - TRX
                        - XLM
                    chain:
                      type: string
                      enum:
                        - ethereum
                        - base
                        - solana
                        - polygon
                        - arbitrum
                        - optimism
                        - avalanche
                        - tron
                        - stellar
                        - bsc
                        - bitcoin
                      nullable: true
                  required:
                    - code
              required:
                - type
                - id
                - asset
              additionalProperties: false
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - virtual_account
                id:
                  type: string
                  pattern: ^vac_[0-9A-Za-z]{22}$
              required:
                - type
                - id
              additionalProperties: false
        autoExecute:
          description: >-
            Controls how the order starts executing; does not affect order
            creation, which never checks or reserves the source's available
            balance regardless of this flag — an order can always be created
            before the source is funded. When true, Conduit automatically starts
            execution as soon as the available source balance covers totalDebit
            (principal plus fees), with no client action required; orders
            sharing the same source resource execute oldest-first, so a
            still-underfunded older order can delay a newer, already-funded one.
            When false (default), the client must call POST
            /v2/orders/{id}/execute to start execution; an underfunded attempt
            returns 422 INSUFFICIENT_FUNDS immediately and leaves the order
            pending, so the client may retry after funding. Either way,
            execution must start before lockExpiresAt or the order is cancelled
            with cancellationReason 'expired' — funding after that deadline does
            not revive it.
          type: boolean
      required:
        - destination
        - quoteOptionId
        - source
      additionalProperties: false
    OrderExternalResponseDto:
      type: object
      properties:
        id:
          type: string
          pattern: ^ord_[0-9A-Za-z]{22}$
        customerId:
          type: string
          pattern: ^cus_[0-9A-Za-z]{22}$
          nullable: true
        clientReferenceId:
          type: string
          pattern: ^[A-Za-z0-9_\-:.]{1,255}$
          description: >-
            Client-supplied reference, unique per resource within your
            organization. 1-255 characters from A-Za-z, 0-9, underscore, hyphen,
            colon, and period — no spaces.
        status:
          type: string
          enum:
            - pending
            - succeeded
            - failed
            - cancelled
        type:
          type: string
          enum:
            - onramp
            - offramp
            - conversion
        source:
          description: >-
            The funding resource, when the order named one. Omitted entirely on
            a deposit-funded order (created without a `source`): the funding
            wallet is Conduit-managed infrastructure with no client-resolvable
            id, and `depositInstructions` carries the address to fund at
            instead. The presence of `depositInstructions` is the discriminator.
          oneOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - wallet
                id:
                  type: string
                  pattern: ^wlt_[0-9A-Za-z]{22}$
              required:
                - type
                - id
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - virtual_account
                id:
                  type: string
                  pattern: ^vac_[0-9A-Za-z]{22}$
              required:
                - type
                - id
        destination:
          oneOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - wallet
                id:
                  type: string
                  pattern: ^wlt_[0-9A-Za-z]{22}$
              required:
                - type
                - id
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - virtual_account
                id:
                  type: string
                  pattern: ^vac_[0-9A-Za-z]{22}$
              required:
                - type
                - id
        sourceAsset:
          type: object
          properties:
            code:
              type: string
              enum:
                - USD
                - EUR
                - GBP
                - CHF
                - JPY
                - CAD
                - AUD
                - NZD
                - SGD
                - HKD
                - CNY
                - KRW
                - INR
                - BRL
                - MXN
                - ARS
                - CLP
                - COP
                - PEN
                - ZAR
                - NGN
                - KES
                - GHS
                - EGP
                - AED
                - SAR
                - ILS
                - TRY
                - PLN
                - CZK
                - HUF
                - SEK
                - NOK
                - DKK
                - THB
                - IDR
                - MYR
                - PHP
                - VND
                - TWD
                - USDC
                - USDT
                - DAI
                - EURC
                - PYUSD
                - BTC
                - ETH
                - SOL
                - TRX
                - XLM
              description: Asset code (USDC, USD, etc.)
            chain:
              description: Chain when the asset is on-chain; omitted for fiat.
              type: string
              enum:
                - ethereum
                - base
                - solana
                - polygon
                - arbitrum
                - optimism
                - avalanche
                - tron
                - stellar
                - bsc
                - bitcoin
            amount:
              type: string
              description: Decimal string, asset-precision rounded
          required:
            - code
            - amount
          additionalProperties: false
        destinationAsset:
          type: object
          properties:
            code:
              type: string
              enum:
                - USD
                - EUR
                - GBP
                - CHF
                - JPY
                - CAD
                - AUD
                - NZD
                - SGD
                - HKD
                - CNY
                - KRW
                - INR
                - BRL
                - MXN
                - ARS
                - CLP
                - COP
                - PEN
                - ZAR
                - NGN
                - KES
                - GHS
                - EGP
                - AED
                - SAR
                - ILS
                - TRY
                - PLN
                - CZK
                - HUF
                - SEK
                - NOK
                - DKK
                - THB
                - IDR
                - MYR
                - PHP
                - VND
                - TWD
                - USDC
                - USDT
                - DAI
                - EURC
                - PYUSD
                - BTC
                - ETH
                - SOL
                - TRX
                - XLM
              description: Asset code (USDC, USD, etc.)
            chain:
              description: Chain when the asset is on-chain; omitted for fiat.
              type: string
              enum:
                - ethereum
                - base
                - solana
                - polygon
                - arbitrum
                - optimism
                - avalanche
                - tron
                - stellar
                - bsc
                - bitcoin
            amount:
              type: string
              description: Decimal string, asset-precision rounded
          required:
            - code
            - amount
          additionalProperties: false
        lockSide:
          type: string
          enum:
            - source
            - destination
        autoPayout:
          type: object
          properties:
            recipient:
              oneOf:
                - oneOf:
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - us
                        accountNumber:
                          type: string
                          minLength: 4
                          maxLength: 64
                        routingNumber:
                          type: string
                        accountType:
                          type: string
                          enum:
                            - checking
                            - savings
                        bankName:
                          type: string
                          maxLength: 140
                        bankAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                        phone:
                          description: >-
                            Recipient contact phone. Optional; forwarded to the
                            banking partner when provided.
                          type: string
                          maxLength: 40
                        type:
                          type: string
                          enum:
                            - individual
                        firstName:
                          type: string
                          maxLength: 70
                        lastName:
                          type: string
                          maxLength: 70
                        dateOfBirth:
                          type: string
                          format: date
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        countryOfCitizenship:
                          type: string
                        postalAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                      required:
                        - rail
                        - accountNumber
                        - routingNumber
                        - accountType
                        - bankAddress
                        - type
                        - firstName
                        - lastName
                        - postalAddress
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - us
                        accountNumber:
                          type: string
                          minLength: 4
                          maxLength: 64
                        routingNumber:
                          type: string
                        accountType:
                          type: string
                          enum:
                            - checking
                            - savings
                        bankName:
                          type: string
                          maxLength: 140
                        bankAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                        phone:
                          description: >-
                            Recipient contact phone. Optional; forwarded to the
                            banking partner when provided.
                          type: string
                          maxLength: 40
                        type:
                          type: string
                          enum:
                            - business
                        legalName:
                          type: string
                          maxLength: 140
                        countryOfRegistration:
                          type: string
                        postalAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                      required:
                        - rail
                        - accountNumber
                        - routingNumber
                        - accountType
                        - bankAddress
                        - type
                        - legalName
                        - postalAddress
                - oneOf:
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - swift
                        accountNumber:
                          type: string
                          minLength: 4
                          maxLength: 64
                        iban:
                          type: string
                        bic:
                          type: string
                        bankName:
                          type: string
                          maxLength: 140
                        bankAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                        phone:
                          description: >-
                            Recipient contact phone. Optional; forwarded to the
                            banking partner when provided.
                          type: string
                          maxLength: 40
                        type:
                          type: string
                          enum:
                            - individual
                        firstName:
                          type: string
                          maxLength: 70
                        lastName:
                          type: string
                          maxLength: 70
                        dateOfBirth:
                          type: string
                          format: date
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        countryOfCitizenship:
                          type: string
                        postalAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                      required:
                        - rail
                        - bic
                        - bankAddress
                        - type
                        - firstName
                        - lastName
                        - postalAddress
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - swift
                        accountNumber:
                          type: string
                          minLength: 4
                          maxLength: 64
                        iban:
                          type: string
                        bic:
                          type: string
                        bankName:
                          type: string
                          maxLength: 140
                        bankAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                        phone:
                          description: >-
                            Recipient contact phone. Optional; forwarded to the
                            banking partner when provided.
                          type: string
                          maxLength: 40
                        type:
                          type: string
                          enum:
                            - business
                        legalName:
                          type: string
                          maxLength: 140
                        countryOfRegistration:
                          type: string
                        postalAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                      required:
                        - rail
                        - bic
                        - bankAddress
                        - type
                        - legalName
                        - postalAddress
                - oneOf:
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - sepa
                        iban:
                          type: string
                        bic:
                          type: string
                        bankName:
                          type: string
                          maxLength: 140
                        bankAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                        phone:
                          description: >-
                            Recipient contact phone. Optional; forwarded to the
                            banking partner when provided.
                          type: string
                          maxLength: 40
                        type:
                          type: string
                          enum:
                            - individual
                        firstName:
                          type: string
                          maxLength: 70
                        lastName:
                          type: string
                          maxLength: 70
                        dateOfBirth:
                          type: string
                          format: date
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        countryOfCitizenship:
                          type: string
                        postalAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                      required:
                        - rail
                        - iban
                        - bic
                        - bankAddress
                        - type
                        - firstName
                        - lastName
                        - postalAddress
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - sepa
                        iban:
                          type: string
                        bic:
                          type: string
                        bankName:
                          type: string
                          maxLength: 140
                        bankAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                        phone:
                          description: >-
                            Recipient contact phone. Optional; forwarded to the
                            banking partner when provided.
                          type: string
                          maxLength: 40
                        type:
                          type: string
                          enum:
                            - business
                        legalName:
                          type: string
                          maxLength: 140
                        countryOfRegistration:
                          type: string
                        postalAddress:
                          type: object
                          properties:
                            addressLine1:
                              type: string
                              maxLength: 120
                            addressLine2:
                              type: string
                              maxLength: 120
                            city:
                              type: string
                              maxLength: 80
                            state:
                              type: string
                              maxLength: 80
                            postalCode:
                              type: string
                              maxLength: 32
                            country:
                              type: string
                          required:
                            - addressLine1
                            - city
                            - country
                          additionalProperties: false
                      required:
                        - rail
                        - iban
                        - bic
                        - bankAddress
                        - type
                        - legalName
                        - postalAddress
                - type: object
                  properties:
                    rail:
                      type: string
                      enum:
                        - crypto
                    chain:
                      type: string
                      enum:
                        - ethereum
                        - base
                        - solana
                        - polygon
                        - arbitrum
                        - optimism
                        - avalanche
                        - tron
                        - stellar
                        - bsc
                        - bitcoin
                    address:
                      type: string
                      minLength: 1
                      maxLength: 255
                    attestation:
                      type: object
                      properties:
                        custody:
                          type: string
                          enum:
                            - self
                            - third_party
                      required:
                        - custody
                      additionalProperties: false
                    type:
                      type: string
                      enum:
                        - individual
                        - business
                    firstName:
                      type: string
                    lastName:
                      type: string
                    legalName:
                      type: string
                    dateOfBirth:
                      type: string
                    countryOfCitizenship:
                      type: string
                    countryOfRegistration:
                      type: string
                    postalAddress:
                      type: object
                      properties:
                        addressLine1:
                          type: string
                          maxLength: 120
                        addressLine2:
                          type: string
                          maxLength: 120
                        city:
                          type: string
                          maxLength: 80
                        state:
                          type: string
                          maxLength: 80
                        postalCode:
                          type: string
                          maxLength: 32
                        country:
                          type: string
                      required:
                        - addressLine1
                        - city
                        - country
                      additionalProperties: false
                    phone:
                      type: string
                  required:
                    - rail
                    - chain
                    - address
                    - attestation
            rail:
              type: string
              enum:
                - rtp
                - fedwire
                - ach
                - swift
                - fednow
                - sepa
            ach:
              type: object
              properties:
                authorizationType:
                  type: string
                  enum:
                    - corporate_agreement
                    - written
                    - web
              required:
                - authorizationType
            swift:
              type: object
              properties:
                purposeOfPayment:
                  type: string
                  maxLength: 140
            instant:
              type: object
              properties:
                receiverNetworkPreference:
                  type: string
                  enum:
                    - tch
                    - fednow
            remittance:
              type: object
              properties:
                reference:
                  type: string
                  maxLength: 140
                description:
                  type: string
                  maxLength: 280
            markup:
              description: >-
                The margin you declared on this leg, echoed back. The leg spends
                this order's converted output, so the margin is taken out of it:
                the recipient receives destinationAsset.amount less this margin
                and less Conduit's own payout fee. It is separate from the
                conversion's own markup block, and it accrues to you when the
                payout succeeds.
              type: object
              properties:
                bps:
                  type: number
                flatAmount:
                  type: object
                  properties:
                    code:
                      type: string
                      enum:
                        - USD
                        - EUR
                        - GBP
                        - CHF
                        - JPY
                        - CAD
                        - AUD
                        - NZD
                        - SGD
                        - HKD
                        - CNY
                        - KRW
                        - INR
                        - BRL
                        - MXN
                        - ARS
                        - CLP
                        - COP
                        - PEN
                        - ZAR
                        - NGN
                        - KES
                        - GHS
                        - EGP
                        - AED
                        - SAR
                        - ILS
                        - TRY
                        - PLN
                        - CZK
                        - HUF
                        - SEK
                        - NOK
                        - DKK
                        - THB
                        - IDR
                        - MYR
                        - PHP
                        - VND
                        - TWD
                        - USDC
                        - USDT
                        - DAI
                        - EURC
                        - PYUSD
                        - BTC
                        - ETH
                        - SOL
                        - TRX
                        - XLM
                      description: Asset code (USDC, USD, etc.)
                    chain:
                      description: Chain when the asset is on-chain; omitted for fiat.
                      type: string
                      enum:
                        - ethereum
                        - base
                        - solana
                        - polygon
                        - arbitrum
                        - optimism
                        - avalanche
                        - tron
                        - stellar
                        - bsc
                        - bitcoin
                    amount:
                      type: string
                      description: Decimal string, asset-precision rounded
                  required:
                    - code
                    - amount
                  additionalProperties: false
          required:
            - recipient
          description: >-
            AutoPayout payload. Crypto recipients omit
            `rail`/`ach`/`swift`/`instant`/`remittance`; fiat (us|swift)
            recipients require `rail` and may carry the matching per-rail
            context block.
        rate:
          type: object
          properties:
            referenceRate:
              type: string
              description: Market reference rate at quote time
            totalSpreadBps:
              type: string
              description: >-
                Combined spread (FX markup + take rate, plus your own markupBps
                on an order that carries one — a quote never does) in basis
                points, as a string with up to two decimal places
            endUserRate:
              type: string
              description: Effective rate the customer is transacting at
          required:
            - referenceRate
            - totalSpreadBps
            - endUserRate
        fees:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                  - fixed
              assetAmount:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - USD
                      - EUR
                      - GBP
                      - CHF
                      - JPY
                      - CAD
                      - AUD
                      - NZD
                      - SGD
                      - HKD
                      - CNY
                      - KRW
                      - INR
                      - BRL
                      - MXN
                      - ARS
                      - CLP
                      - COP
                      - PEN
                      - ZAR
                      - NGN
                      - KES
                      - GHS
                      - EGP
                      - AED
                      - SAR
                      - ILS
                      - TRY
                      - PLN
                      - CZK
                      - HUF
                      - SEK
                      - NOK
                      - DKK
                      - THB
                      - IDR
                      - MYR
                      - PHP
                      - VND
                      - TWD
                      - USDC
                      - USDT
                      - DAI
                      - EURC
                      - PYUSD
                      - BTC
                      - ETH
                      - SOL
                      - TRX
                      - XLM
                    description: Asset code (USDC, USD, etc.)
                  chain:
                    description: Chain when the asset is on-chain; omitted for fiat.
                    type: string
                    enum:
                      - ethereum
                      - base
                      - solana
                      - polygon
                      - arbitrum
                      - optimism
                      - avalanche
                      - tron
                      - stellar
                      - bsc
                      - bitcoin
                  amount:
                    type: string
                    description: Decimal string, asset-precision rounded
                required:
                  - code
                  - amount
                additionalProperties: false
              owner:
                type: string
                enum:
                  - conduit
                  - you
                description: >-
                  Who this charge belongs to. `conduit` is Conduit's own fee.
                  `you` is a flat margin you declared with markupAmount, which
                  Conduit collects from your customer and accrues to you; it is
                  your revenue, not a Conduit charge.
            required:
              - type
              - assetAmount
              - owner
        markup:
          type: object
          properties:
            bps:
              description: >-
                The percentage margin you declared on this order, in basis
                points. Absent when you declared only a flat amount.
              type: number
            flatAmount:
              description: >-
                The flat margin you declared on this order, in its source asset.
                Absent when you declared only a percentage.
              type: object
              properties:
                code:
                  type: string
                  enum:
                    - USD
                    - EUR
                    - GBP
                    - CHF
                    - JPY
                    - CAD
                    - AUD
                    - NZD
                    - SGD
                    - HKD
                    - CNY
                    - KRW
                    - INR
                    - BRL
                    - MXN
                    - ARS
                    - CLP
                    - COP
                    - PEN
                    - ZAR
                    - NGN
                    - KES
                    - GHS
                    - EGP
                    - AED
                    - SAR
                    - ILS
                    - TRY
                    - PLN
                    - CZK
                    - HUF
                    - SEK
                    - NOK
                    - DKK
                    - THB
                    - IDR
                    - MYR
                    - PHP
                    - VND
                    - TWD
                    - USDC
                    - USDT
                    - DAI
                    - EURC
                    - PYUSD
                    - BTC
                    - ETH
                    - SOL
                    - TRX
                    - XLM
                  description: Asset code (USDC, USD, etc.)
                chain:
                  description: Chain when the asset is on-chain; omitted for fiat.
                  type: string
                  enum:
                    - ethereum
                    - base
                    - solana
                    - polygon
                    - arbitrum
                    - optimism
                    - avalanche
                    - tron
                    - stellar
                    - bsc
                    - bitcoin
                amount:
                  type: string
                  description: Decimal string, asset-precision rounded
              required:
                - code
                - amount
              additionalProperties: false
            assetAmount:
              type: object
              properties:
                code:
                  type: string
                  enum:
                    - USD
                    - EUR
                    - GBP
                    - CHF
                    - JPY
                    - CAD
                    - AUD
                    - NZD
                    - SGD
                    - HKD
                    - CNY
                    - KRW
                    - INR
                    - BRL
                    - MXN
                    - ARS
                    - CLP
                    - COP
                    - PEN
                    - ZAR
                    - NGN
                    - KES
                    - GHS
                    - EGP
                    - AED
                    - SAR
                    - ILS
                    - TRY
                    - PLN
                    - CZK
                    - HUF
                    - SEK
                    - NOK
                    - DKK
                    - THB
                    - IDR
                    - MYR
                    - PHP
                    - VND
                    - TWD
                    - USDC
                    - USDT
                    - DAI
                    - EURC
                    - PYUSD
                    - BTC
                    - ETH
                    - SOL
                    - TRX
                    - XLM
                  description: Asset code (USDC, USD, etc.)
                chain:
                  description: Chain when the asset is on-chain; omitted for fiat.
                  type: string
                  enum:
                    - ethereum
                    - base
                    - solana
                    - polygon
                    - arbitrum
                    - optimism
                    - avalanche
                    - tron
                    - stellar
                    - bsc
                    - bitcoin
                amount:
                  type: string
                  description: Decimal string, asset-precision rounded
              required:
                - code
                - amount
              additionalProperties: false
              description: >-
                The total amount accrued to you for the conversion, in the
                order's source asset: the percentage part plus the flat part.
          required:
            - assetAmount
          description: >-
            Present on an order that declared a margin which comes to at least
            one minor unit of the source asset. `assetAmount` is the total
            accrued to you, fixed at quote time. The two shapes reach the
            customer differently: the markupBps part is folded into the quoted
            rate, so it never appears in fees[] and does not move totalDebit,
            while the markupAmount part is a line item in fees[] owned by you
            and it does move totalDebit.
        totalDebit:
          type: object
          properties:
            code:
              type: string
              enum:
                - USD
                - EUR
                - GBP
                - CHF
                - JPY
                - CAD
                - AUD
                - NZD
                - SGD
                - HKD
                - CNY
                - KRW
                - INR
                - BRL
                - MXN
                - ARS
                - CLP
                - COP
                - PEN
                - ZAR
                - NGN
                - KES
                - GHS
                - EGP
                - AED
                - SAR
                - ILS
                - TRY
                - PLN
                - CZK
                - HUF
                - SEK
                - NOK
                - DKK
                - THB
                - IDR
                - MYR
                - PHP
                - VND
                - TWD
                - USDC
                - USDT
                - DAI
                - EURC
                - PYUSD
                - BTC
                - ETH
                - SOL
                - TRX
                - XLM
              description: Asset code (USDC, USD, etc.)
            chain:
              description: Chain when the asset is on-chain; omitted for fiat.
              type: string
              enum:
                - ethereum
                - base
                - solana
                - polygon
                - arbitrum
                - optimism
                - avalanche
                - tron
                - stellar
                - bsc
                - bitcoin
            amount:
              type: string
              description: Decimal string, asset-precision rounded
          required:
            - code
            - amount
          additionalProperties: false
        lockExpiresAt:
          type: string
          format: date-time
          description: >-
            Deadline for execution to begin, not merely for the source to be
            funded. If execution hasn't been claimed by this time, the order
            transitions to `status: cancelled` with `cancellationReason:
            'expired'` and can no longer execute — funding the source after this
            timestamp does not revive it. Create a new order to get a fresh rate
            lock.
          example: '2026-01-15T09:30:00.000Z'
        createdAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp
          example: '2026-01-15T09:30:00.000Z'
        autoExecute:
          type: boolean
          description: >-
            Echoes the create-time value. When true, Conduit automatically
            claims execution once the available source balance covers totalDebit
            (principal plus fees), with no client action required — orders
            sharing the same source resource execute oldest-first, so a
            still-underfunded older order can delay a newer, already-funded one;
            when false, the client must call POST /v2/orders/{id}/execute
            (repeatable after funding if a prior attempt returned 422
            INSUFFICIENT_FUNDS). Order creation never checks or reserves the
            source's available balance regardless of this value.
        executedAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp
          example: '2026-01-15T09:30:00.000Z'
        executionTrigger:
          description: >-
            Which path claimed execution: 'client' for a POST
            /v2/orders/{id}/execute call, 'auto' for automatic execution by
            Conduit. Set as soon as execution is claimed — well before the order
            reaches a terminal status — so it can appear on an order that is
            still `status: pending` while its conversion is in flight. Absent on
            an order that hasn't started executing yet (including one cancelled
            before execution began).
          type: string
          enum:
            - client
            - auto
        cancelledAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp
          example: '2026-01-15T09:30:00.000Z'
        cancellationReason:
          type: string
          enum:
            - expired
            - client_cancelled
        failureCode:
          type: string
          enum:
            - insufficient_funds
            - provider_unavailable
            - provider_rejected
            - internal_error
            - cancelled
        failureMessage:
          type: string
        linkedTransactionIds:
          type: array
          items:
            type: string
            pattern: ^txn_[0-9A-Za-z]{22}$
        quoteOptionId:
          description: >-
            Present when this order redeemed a POST /v2/quotes option — the id
            of the option it consumed.
          type: string
          pattern: ^qop_[0-9A-Za-z]{22}$
        depositInstructions:
          minItems: 1
          maxItems: 1
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                description: >-
                  Discriminator for this deposit block: send crypto to an
                  on-chain address.
                enum:
                  - crypto_address
              address:
                type: string
                description: Conduit-managed deposit address for funding this order.
              chain:
                type: string
                enum:
                  - ethereum
                  - base
                  - solana
                  - polygon
                  - arbitrum
                  - optimism
                  - avalanche
                  - tron
                  - stellar
                  - bsc
                  - bitcoin
                description: >-
                  Blockchain network to send the funding deposit on. Sending on
                  any other chain will not fund the order.
              asset:
                type: string
                enum:
                  - USD
                  - EUR
                  - GBP
                  - CHF
                  - JPY
                  - CAD
                  - AUD
                  - NZD
                  - SGD
                  - HKD
                  - CNY
                  - KRW
                  - INR
                  - BRL
                  - MXN
                  - ARS
                  - CLP
                  - COP
                  - PEN
                  - ZAR
                  - NGN
                  - KES
                  - GHS
                  - EGP
                  - AED
                  - SAR
                  - ILS
                  - TRY
                  - PLN
                  - CZK
                  - HUF
                  - SEK
                  - NOK
                  - DKK
                  - THB
                  - IDR
                  - MYR
                  - PHP
                  - VND
                  - TWD
                  - USDC
                  - USDT
                  - DAI
                  - EURC
                  - PYUSD
                  - BTC
                  - ETH
                  - SOL
                  - TRX
                  - XLM
                description: Asset code to send.
              expiresAt:
                type: string
                format: date-time
                description: >-
                  Funding deadline; the order is cancelled if unfunded by this
                  time.
                example: '2026-01-15T09:30:00.000Z'
            required:
              - type
              - address
              - chain
              - asset
              - expiresAt
          description: >-
            Where to send funds to fund this order. Exactly one `crypto_address`
            block.
        fundedBy:
          description: >-
            Transfers that funded this order, with how much of each it draws.
            Present on the order detail read for an order funded at a Conduit
            funding address; omitted on the list read and on an order that names
            its own source.
          type: array
          items:
            type: object
            properties:
              transactionId:
                type: string
                pattern: ^txn_[0-9A-Za-z]{22}$
              amount:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - USD
                      - EUR
                      - GBP
                      - CHF
                      - JPY
                      - CAD
                      - AUD
                      - NZD
                      - SGD
                      - HKD
                      - CNY
                      - KRW
                      - INR
                      - BRL
                      - MXN
                      - ARS
                      - CLP
                      - COP
                      - PEN
                      - ZAR
                      - NGN
                      - KES
                      - GHS
                      - EGP
                      - AED
                      - SAR
                      - ILS
                      - TRY
                      - PLN
                      - CZK
                      - HUF
                      - SEK
                      - NOK
                      - DKK
                      - THB
                      - IDR
                      - MYR
                      - PHP
                      - VND
                      - TWD
                      - USDC
                      - USDT
                      - DAI
                      - EURC
                      - PYUSD
                      - BTC
                      - ETH
                      - SOL
                      - TRX
                      - XLM
                    description: Asset code (USDC, USD, etc.)
                  chain:
                    description: Chain when the asset is on-chain; omitted for fiat.
                    type: string
                    enum:
                      - ethereum
                      - base
                      - solana
                      - polygon
                      - arbitrum
                      - optimism
                      - avalanche
                      - tron
                      - stellar
                      - bsc
                      - bitcoin
                  amount:
                    type: string
                    description: Decimal string, asset-precision rounded
                required:
                  - code
                  - amount
                additionalProperties: false
            required:
              - transactionId
              - amount
      required:
        - id
        - customerId
        - status
        - type
        - destination
        - sourceAsset
        - destinationAsset
        - lockSide
        - rate
        - fees
        - totalDebit
        - lockExpiresAt
        - createdAt
        - autoExecute
        - linkedTransactionIds
    ValidationErrorDto:
      type: object
      properties:
        type:
          type: string
          description: Machine-readable error code
          example: CUSTOMER_NOT_FOUND
        title:
          type: string
          description: Human-readable error type label
          example: Customer Not Found
        status:
          type: number
          description: HTTP status code
          example: 404
        detail:
          type: string
          description: Human-readable explanation of this occurrence
          example: Customer with id cus_034A0gCCVsxdV2PjHLx9k1 not found
        resolution:
          type: string
          description: What the developer should do to resolve this error
          example: >-
            Verify the customer ID. Check you are using the correct API key for
            this organization.
        docs:
          type: string
          description: URL to error documentation
          example: https://conduit-v2.mintlify.app/errors#customer-not-found
        instance:
          type: string
          description: Request path that produced the error
          example: /v2/customers/cus_034A0gCCVsxdV2PjHLx9k1
        correlationId:
          description: Request correlation ID
          example: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
          type: string
        timestamp:
          type: string
          description: ISO 8601 UTC timestamp
          example: '2026-04-27T20:00:00.000Z'
        details:
          description: >-
            Additional structured data for domain-specific errors (e.g. missing
            field lists, pair info)
        errors:
          type: array
          items:
            type: object
            properties:
              pointer:
                type: string
                description: JSON pointer to the invalid field
                example: /email
              detail:
                type: string
                description: What is wrong with this field
                example: Invalid email format
              allowedValues:
                description: The values this field accepts, when it is a closed set
                example:
                  - ach
                  - fedwire
                  - rtp
                type: array
                items:
                  type: string
              category:
                description: >-
                  Class of blocker (requirements-validator output only). 'field'
                  = form-field gap, 'document' = missing or insufficient
                  document (including per-UBO document slots), 'individual' =
                  required person missing.
                example: field
                type: string
                enum:
                  - field
                  - document
                  - individual
            required:
              - pointer
              - detail
      required:
        - type
        - title
        - status
        - detail
        - resolution
        - docs
        - instance
        - timestamp
    ProblemDetailDto:
      type: object
      properties:
        type:
          type: string
          description: Machine-readable error code
          example: CUSTOMER_NOT_FOUND
        title:
          type: string
          description: Human-readable error type label
          example: Customer Not Found
        status:
          type: number
          description: HTTP status code
          example: 404
        detail:
          type: string
          description: Human-readable explanation of this occurrence
          example: Customer with id cus_034A0gCCVsxdV2PjHLx9k1 not found
        resolution:
          type: string
          description: What the developer should do to resolve this error
          example: >-
            Verify the customer ID. Check you are using the correct API key for
            this organization.
        docs:
          type: string
          description: URL to error documentation
          example: https://conduit-v2.mintlify.app/errors#customer-not-found
        instance:
          type: string
          description: Request path that produced the error
          example: /v2/customers/cus_034A0gCCVsxdV2PjHLx9k1
        correlationId:
          description: Request correlation ID
          example: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
          type: string
        timestamp:
          type: string
          description: ISO 8601 UTC timestamp
          example: '2026-04-27T20:00:00.000Z'
        details:
          description: >-
            Additional structured data for domain-specific errors (e.g. missing
            field lists, pair info)
      required:
        - type
        - title
        - status
        - detail
        - resolution
        - docs
        - instance
        - timestamp
    RateLimitedErrorDto:
      type: object
      properties:
        type:
          type: string
          description: Machine-readable error code
          example: CUSTOMER_NOT_FOUND
        title:
          type: string
          description: Human-readable error type label
          example: Customer Not Found
        status:
          type: number
          description: HTTP status code
          example: 404
        detail:
          type: string
          description: Human-readable explanation of this occurrence
          example: Customer with id cus_034A0gCCVsxdV2PjHLx9k1 not found
        resolution:
          type: string
          description: What the developer should do to resolve this error
          example: >-
            Verify the customer ID. Check you are using the correct API key for
            this organization.
        docs:
          type: string
          description: URL to error documentation
          example: https://conduit-v2.mintlify.app/errors#customer-not-found
        instance:
          type: string
          description: Request path that produced the error
          example: /v2/customers/cus_034A0gCCVsxdV2PjHLx9k1
        correlationId:
          description: Request correlation ID
          example: 00469ea4-52c1-4ffa-bd05-9f28b236a5fe
          type: string
        timestamp:
          type: string
          description: ISO 8601 UTC timestamp
          example: '2026-04-27T20:00:00.000Z'
        details:
          description: >-
            Additional structured data for domain-specific errors (e.g. missing
            field lists, pair info)
        retryAfterSeconds:
          type: integer
          minimum: 0
          exclusiveMinimum: true
          maximum: 9007199254740991
          description: Seconds to wait before retrying
          example: 3
      required:
        - type
        - title
        - status
        - detail
        - resolution
        - docs
        - instance
        - timestamp
        - retryAfterSeconds
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: x-api-key

````