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

# Create a payout

> Creates a payout (crypto withdrawal) from a Conduit-managed wallet to any destination address valid for the chain. Requires the `idempotency-key` header. Returns 202 with the payout in its pending state, including its `id` and initial status.



## OpenAPI

````yaml https://api.sandbox.conduit.financial/v2/api-docs/openapi.json post /payouts
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: RFIs
  - name: Webhook Endpoints
  - name: Webhook Deliveries
  - name: Webhook Event Types
  - name: Features
  - name: Customer Onboarding
  - name: Sandbox
paths:
  /payouts:
    post:
      tags:
        - Payouts
      summary: Create a payout
      description: >-
        Creates a payout (crypto withdrawal) from a Conduit-managed wallet to
        any destination address valid for the chain. Requires the
        `idempotency-key` header. Returns 202 with the payout in its pending
        state, including its `id` and initial status.
      operationId: PayoutsController_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/CryptoPayoutDto'
                - $ref: '#/components/schemas/FiatPayoutDto'
      responses:
        '202':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicWithdrawalViewDto'
        '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.


            **INVALID_ADDRESS_FORMAT**: The provided blockchain address does not
            match the expected format for the specified chain.


            **DOCUMENT_IDS_NOT_FOUND**: One or more document IDs provided in the
            request do not exist or do not belong to this customer.
          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: req_a1b2c3d4
                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: req_a1b2c3d4
                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.
          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: req_a1b2c3d4
                timestamp: '2026-01-15T09:30:00.000Z'
        '404':
          description: >-
            **CUSTOMER_NOT_FOUND**: No customer exists with the specified ID, or
            the customer belongs to a different organization.


            **WALLET_NOT_FOUND**: No wallet exists with the specified ID, or the
            wallet belongs to a different organization.


            **VIRTUAL_ACCOUNT_NOT_FOUND**: No virtual account exists for the
            requested customer and asset, or the virtual account belongs to a
            different organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: CUSTOMER_NOT_FOUND
                title: Customer Not Found
                status: 404
                detail: >-
                  No customer exists with the specified ID, or the customer
                  belongs to a different organization.
                resolution: >-
                  Verify the customer ID is correct. Use the list customers
                  endpoint to find valid customer IDs for your organization.
                docs: https://conduit-v2.mintlify.app/errors#customer-not-found
                instance: /v2/...
                correlationId: req_a1b2c3d4
                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.


            **DUPLICATE_CLIENT_REFERENCE_ID**: A resource with this
            client_reference_id already exists for your organization. A
            client_reference_id must be unique per resource type within your
            organization.
          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: req_a1b2c3d4
                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: req_a1b2c3d4
                timestamp: '2026-01-15T09:30:00.000Z'
        '422':
          description: >-
            **INSUFFICIENT_FUNDS**: The customer's available balance for the
            order's source resource is below the requested amount plus fee.


            **WALLET_NOT_ACTIVE**: The wallet is not in ACTIVE status and cannot
            be used at this time (e.g. a frozen non-custodial wallet cannot
            initiate a payout).


            **DOCUMENTATION_REQUIRED**: This payout purpose requires a
            supporting document and none was attached.


            **RECIPIENT_NOT_WHITELISTED**: purpose=intercompany requires the
            recipient to be a registered intercompany whitelist entry for this
            customer.


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


            **PAYOUT_QUEUE_FULL**: This wallet and chain already has the maximum
            number of payouts waiting to collect signatures. Only one payout
            collects signatures at a time per wallet and chain; the rest wait in
            line.


            **PREFUNDING_SOURCE_NOT_HOUSE_ACCOUNT**: A prefunding transaction
            must originate from a Conduit house account. The source account for
            this request is not marked as a house account.


            **PREFUNDING_DESTINATION_NOT_FOUND**: The destination account
            specified for this prefunding transaction could not be found.


            **PREFUNDING_AMBIGUOUS_MATCH**: More than one account matches the
            details given for this prefunding transaction, so Conduit cannot
            determine a single destination.


            **PREFUNDING_UNSUPPORTED_RAIL**: Prefunding is not supported over
            the rail requested for this transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailDto'
              example:
                type: INSUFFICIENT_FUNDS
                title: Insufficient Funds
                status: 422
                detail: >-
                  The customer's available balance for the order's source
                  resource is below the requested amount plus fee.
                resolution: >-
                  Verify the customer's available balance on the order's source
                  resource and retry with a smaller amount, or top up the
                  source.
                docs: https://conduit-v2.mintlify.app/errors#insufficient-funds
                instance: /v2/...
                correlationId: req_a1b2c3d4
                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: req_a1b2c3d4
                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: req_a1b2c3d4
                timestamp: '2026-01-15T09:30:00.000Z'
        '503':
          description: >-
            **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: POLICY_EVALUATION_UNAVAILABLE
                title: Policy Evaluation Unavailable
                status: 503
                detail: >-
                  The documentation policy could not be evaluated because a
                  policy lookup did not complete. No transaction was created.
                resolution: >-
                  Retry the request using exponential backoff. If the error
                  persists, contact support.
                docs: >-
                  https://conduit-v2.mintlify.app/errors#policy-evaluation-unavailable
                instance: /v2/...
                correlationId: req_a1b2c3d4
                timestamp: '2026-01-15T09:30:00.000Z'
components:
  schemas:
    CryptoPayoutDto:
      type: object
      properties:
        customerId:
          type: string
          pattern: ^cus_[0-9A-Za-z]{22}$
        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.
        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
              description: Asset code (USDC, USD, etc.)
            chain:
              description: >-
                Chain when the asset is on-chain; omitted for fiat. Accepts
                uppercase or lowercase on input.
              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
        destination:
          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
            type:
              type: string
              enum:
                - crypto
          required:
            - recipient
            - type
          additionalProperties: false
        purpose:
          type: string
          enum:
            - intercompany
            - treasury_management
            - payment_for_goods_or_services
            - payroll
            - investments
            - other
            - prefunding
          description: >-
            Declared business purpose of this 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}$
      required:
        - customerId
        - assetAmount
        - destination
        - purpose
      additionalProperties: false
    FiatPayoutDto:
      type: object
      properties:
        customerId:
          type: string
          pattern: ^cus_[0-9A-Za-z]{22}$
        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.
        virtualAccountId:
          type: string
          pattern: ^vac_[0-9A-Za-z]{22}$
        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
              description: Asset code (USDC, USD, etc.)
            chain:
              description: >-
                Chain when the asset is on-chain; omitted for fiat. Accepts
                uppercase or lowercase on input.
              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
        destination:
          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
            type:
              type: string
              enum:
                - fiat
          required:
            - rail
            - recipient
            - type
          additionalProperties: false
        purpose:
          type: string
          enum:
            - intercompany
            - treasury_management
            - payment_for_goods_or_services
            - payroll
            - investments
            - other
            - prefunding
          description: >-
            Declared business purpose of this 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}$
      required:
        - customerId
        - virtualAccountId
        - assetAmount
        - destination
        - purpose
      additionalProperties: false
    PublicWithdrawalViewDto:
      type: object
      properties:
        id:
          type: string
          pattern: ^txn_[0-9A-Za-z]{22}$
        customerId:
          type: string
          pattern: ^cus_[0-9A-Za-z]{22}$
        customerName:
          description: >-
            Display name of the customer that owns the transaction: business
            legal name or individual full name. Same value on the transactions
            and payouts reads for the same row. Omitted when the customer's
            identity record hasn't resolved a name yet; per the public
            omit-don't-null convention, absence is never surfaced as `null`.
          type: string
        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
            - processing
            - completed
            - failed
            - cancelled
        stage:
          description: >-
            Progress signal for a non-terminal transaction, informational only —
            it does not replace `requiresUserSignature`, `hasRfi`, or
            `failureCode` for deciding whether your integration needs to act.
            `awaiting_signature`: waiting on the required transaction signature
            (see `requiresUserSignature`). `awaiting_customer_action`: further
            input is needed from your customer — details arrive on the matching
            event (e.g. `transaction.awaiting_sender_information`); this is NOT
            an RFI, `hasRfi` does not cover it. `under_review`: compliance,
            document, or verification review of something already submitted is
            in progress — usually no action needed; check `hasRfi` if unsure.
            `settling`: funds movement or settlement is in progress, no customer
            action required — covers long-lived fiat rails like SWIFT that
            legitimately take days as well as any other non-blocked in-flight
            state. Omitted once `status` reaches a terminal value (`completed` /
            `failed` / `cancelled`). The set of values may grow over time —
            treat unrecognized values the same as `processing`.
          type: string
          enum:
            - awaiting_signature
            - awaiting_customer_action
            - under_review
            - settling
        source:
          oneOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - wallet
                walletId:
                  type: string
                  pattern: ^wlt_[0-9A-Za-z]{22}$
                address:
                  type: string
                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
                      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:
                - type
                - walletId
                - address
                - assetAmount
              additionalProperties: false
              description: A Conduit-custodied crypto wallet on one side of a transaction.
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - deposit_address
                address:
                  type: string
                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
                      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:
                - type
                - address
                - assetAmount
              additionalProperties: false
              description: >-
                A Conduit-provided funding address — the address a
                deposit-funded order was funded at. Conduit owns and may rotate
                the wallet behind it without notice, so the side carries no
                wallet id and the address is the only thing to reconcile
                against. Chain travels with the asset inside `assetAmount`.
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - virtual_account
                virtualAccountId:
                  type: string
                  pattern: ^vac_[0-9A-Za-z]{22}$
                wireReceive:
                  oneOf:
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - us
                        bankName:
                          type: string
                          nullable: true
                        accountLast4:
                          type: string
                          nullable: true
                        routingNumber:
                          type: string
                          nullable: true
                      required:
                        - rail
                        - bankName
                        - accountLast4
                        - routingNumber
                      additionalProperties: false
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - swift
                        bankName:
                          type: string
                          nullable: true
                        accountLast4:
                          type: string
                          nullable: true
                        bic:
                          type: string
                          nullable: true
                      required:
                        - rail
                        - bankName
                        - accountLast4
                        - bic
                      additionalProperties: false
                  description: >-
                    Receiving wire-instruction context: which Conduit bank
                    account + rail the inbound deposit landed in. Captured at
                    deposit-detect time.
                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
                      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:
                - type
                - virtualAccountId
                - assetAmount
              additionalProperties: false
              description: >-
                A Conduit virtual account on one side of a transaction.
                `wireReceive` is destination-only — it carries the receiving
                wire instructions on fiat inbound deposits where the VA received
                the wire. Always absent when the VA is a source (conversions /
                fiat withdrawals).
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - external_crypto
                address:
                  type: string
                txHash:
                  type: string
                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
                      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:
                - type
                - address
                - assetAmount
              additionalProperties: false
              description: >-
                An external on-chain counterparty: address plus optional
                settlement tx hash. Chain travels with the asset inside
                `assetAmount`.
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - external_bank
                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
                    - 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
                        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
                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
                      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
                fedwireImad:
                  type: string
                fedwireOmad:
                  type: string
                swiftUetr:
                  type: string
                achTraceNumber:
                  type: string
                rtpTransactionId:
                  type: string
                fedNowMessageId:
                  type: string
              required:
                - type
                - recipient
                - assetAmount
              additionalProperties: false
              description: >-
                An external bank counterparty: recipient details (public
                lowercase rail) plus any real wire settlement references
                (Fedwire IMAD/OMAD, SWIFT UETR, ACH trace, RTP, FedNow).
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - external_bank_inbound
                sender:
                  type: object
                  properties:
                    name:
                      description: Name of the sending account holder.
                      type: string
                    country:
                      description: Sender's bank country, ISO 3166-1 alpha-2.
                      type: string
                      enum:
                        - AF
                        - AL
                        - DZ
                        - AS
                        - AD
                        - AO
                        - AI
                        - AQ
                        - AG
                        - AR
                        - AM
                        - AW
                        - AU
                        - AT
                        - AZ
                        - BS
                        - BH
                        - BD
                        - BB
                        - BY
                        - BE
                        - BZ
                        - BJ
                        - BM
                        - BT
                        - BO
                        - BQ
                        - BA
                        - BW
                        - BV
                        - BR
                        - IO
                        - BN
                        - BG
                        - BF
                        - BI
                        - CV
                        - KH
                        - CM
                        - CA
                        - KY
                        - CF
                        - TD
                        - CL
                        - CN
                        - CX
                        - CC
                        - CO
                        - KM
                        - CG
                        - CD
                        - CK
                        - CR
                        - CI
                        - HR
                        - CU
                        - CW
                        - CY
                        - CZ
                        - DK
                        - DJ
                        - DM
                        - DO
                        - EC
                        - EG
                        - SV
                        - GQ
                        - ER
                        - EE
                        - SZ
                        - ET
                        - FK
                        - FO
                        - FJ
                        - FI
                        - FR
                        - GF
                        - PF
                        - TF
                        - GA
                        - GM
                        - GE
                        - DE
                        - GH
                        - GI
                        - GR
                        - GL
                        - GD
                        - GP
                        - GU
                        - GT
                        - GG
                        - GN
                        - GW
                        - GY
                        - HT
                        - HM
                        - VA
                        - HN
                        - HK
                        - HU
                        - IS
                        - IN
                        - ID
                        - IR
                        - IQ
                        - IE
                        - IM
                        - IL
                        - IT
                        - JM
                        - JP
                        - JE
                        - JO
                        - KZ
                        - KE
                        - KI
                        - KP
                        - KR
                        - KW
                        - KG
                        - LA
                        - LV
                        - LB
                        - LS
                        - LR
                        - LY
                        - LI
                        - LT
                        - LU
                        - MO
                        - MG
                        - MW
                        - MY
                        - MV
                        - ML
                        - MT
                        - MH
                        - MQ
                        - MR
                        - MU
                        - YT
                        - MX
                        - FM
                        - MD
                        - MC
                        - MN
                        - ME
                        - MS
                        - MA
                        - MZ
                        - MM
                        - NA
                        - NR
                        - NP
                        - NL
                        - NC
                        - NZ
                        - NI
                        - NE
                        - NG
                        - NU
                        - NF
                        - MK
                        - MP
                        - 'NO'
                        - OM
                        - PK
                        - PW
                        - PS
                        - PA
                        - PG
                        - PY
                        - PE
                        - PH
                        - PN
                        - PL
                        - PT
                        - PR
                        - QA
                        - RE
                        - RO
                        - RU
                        - RW
                        - BL
                        - SH
                        - KN
                        - LC
                        - MF
                        - PM
                        - VC
                        - WS
                        - SM
                        - ST
                        - SA
                        - SN
                        - RS
                        - SC
                        - SL
                        - SG
                        - SX
                        - SK
                        - SI
                        - SB
                        - SO
                        - ZA
                        - GS
                        - SS
                        - ES
                        - LK
                        - SD
                        - SR
                        - SJ
                        - SE
                        - CH
                        - SY
                        - TW
                        - TJ
                        - TZ
                        - TH
                        - TL
                        - TG
                        - TK
                        - TO
                        - TT
                        - TN
                        - TR
                        - TM
                        - TC
                        - TV
                        - UG
                        - UA
                        - AE
                        - GB
                        - US
                        - UM
                        - UY
                        - UZ
                        - VU
                        - VE
                        - VN
                        - VG
                        - VI
                        - WF
                        - EH
                        - YE
                        - ZM
                        - ZW
                    accountNumber:
                      description: Sending account number, when transmitted.
                      type: string
                    routingNumber:
                      description: US ABA routing number of the sending bank.
                      type: string
                    iban:
                      description: Sender IBAN, when transmitted.
                      type: string
                    bic:
                      description: BIC of the sending bank (ISO 9362).
                      type: string
                  additionalProperties: false
                  description: >-
                    Originator details on an inbound fiat deposit — what the
                    sending bank transmitted with the payment. Each field is
                    present only when provided.
                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
                      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:
                - type
                - sender
                - assetAmount
              additionalProperties: false
              description: >-
                Inbound fiat deposit source: the external bank that originated
                the wire, with the originator details as provided by the sender
                bank. The variant is emitted once any sender field is populated;
                before that, the source surfaces as `external_unknown`. A
                deposit delivered on-us from another account in the same
                organization is `internal_transfer` instead, even when the
                partner bank supplied sender details — there is no external
                originator to report.
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - internal_transfer
                originatingTransactionId:
                  type: string
                  pattern: ^txn_[0-9A-Za-z]{22}$
                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
                      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:
                - type
                - originatingTransactionId
                - assetAmount
              additionalProperties: false
              description: >-
                Source of a deposit that was delivered on-us from another
                Conduit account in the SAME organization — no external bank was
                involved. `originatingTransactionId` is the withdrawal
                transaction that sent it; fetch it for the sending side's own
                details. Emitted only when the organization owns both sides: an
                on-us delivery from another organization keeps the source it
                would otherwise have. Like `external_bank_inbound`, this variant
                resolves as the deposit is detected, which happens after the
                transaction is created — so on a first-pass run
                `transaction.created` carries `external_unknown`, while
                `transaction.completed` and every read carry the resolved
                source.
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - external_unknown
                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
                      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:
                - type
                - assetAmount
              additionalProperties: false
              description: >-
                External counterparty whose details are not yet known (e.g.
                detected fiat deposit before sender info has been resolved).
          description: >-
            One side (source or destination) of a transaction. Discriminated by
            `type`.
        destination:
          oneOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - wallet
                walletId:
                  type: string
                  pattern: ^wlt_[0-9A-Za-z]{22}$
                address:
                  type: string
                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
                      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:
                - type
                - walletId
                - address
                - assetAmount
              additionalProperties: false
              description: A Conduit-custodied crypto wallet on one side of a transaction.
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - deposit_address
                address:
                  type: string
                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
                      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:
                - type
                - address
                - assetAmount
              additionalProperties: false
              description: >-
                A Conduit-provided funding address — the address a
                deposit-funded order was funded at. Conduit owns and may rotate
                the wallet behind it without notice, so the side carries no
                wallet id and the address is the only thing to reconcile
                against. Chain travels with the asset inside `assetAmount`.
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - virtual_account
                virtualAccountId:
                  type: string
                  pattern: ^vac_[0-9A-Za-z]{22}$
                wireReceive:
                  oneOf:
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - us
                        bankName:
                          type: string
                          nullable: true
                        accountLast4:
                          type: string
                          nullable: true
                        routingNumber:
                          type: string
                          nullable: true
                      required:
                        - rail
                        - bankName
                        - accountLast4
                        - routingNumber
                      additionalProperties: false
                    - type: object
                      properties:
                        rail:
                          type: string
                          enum:
                            - swift
                        bankName:
                          type: string
                          nullable: true
                        accountLast4:
                          type: string
                          nullable: true
                        bic:
                          type: string
                          nullable: true
                      required:
                        - rail
                        - bankName
                        - accountLast4
                        - bic
                      additionalProperties: false
                  description: >-
                    Receiving wire-instruction context: which Conduit bank
                    account + rail the inbound deposit landed in. Captured at
                    deposit-detect time.
                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
                      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:
                - type
                - virtualAccountId
                - assetAmount
              additionalProperties: false
              description: >-
                A Conduit virtual account on one side of a transaction.
                `wireReceive` is destination-only — it carries the receiving
                wire instructions on fiat inbound deposits where the VA received
                the wire. Always absent when the VA is a source (conversions /
                fiat withdrawals).
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - external_crypto
                address:
                  type: string
                txHash:
                  type: string
                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
                      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:
                - type
                - address
                - assetAmount
              additionalProperties: false
              description: >-
                An external on-chain counterparty: address plus optional
                settlement tx hash. Chain travels with the asset inside
                `assetAmount`.
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - external_bank
                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
                    - 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
                        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
                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
                      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
                fedwireImad:
                  type: string
                fedwireOmad:
                  type: string
                swiftUetr:
                  type: string
                achTraceNumber:
                  type: string
                rtpTransactionId:
                  type: string
                fedNowMessageId:
                  type: string
              required:
                - type
                - recipient
                - assetAmount
              additionalProperties: false
              description: >-
                An external bank counterparty: recipient details (public
                lowercase rail) plus any real wire settlement references
                (Fedwire IMAD/OMAD, SWIFT UETR, ACH trace, RTP, FedNow).
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - external_bank_inbound
                sender:
                  type: object
                  properties:
                    name:
                      description: Name of the sending account holder.
                      type: string
                    country:
                      description: Sender's bank country, ISO 3166-1 alpha-2.
                      type: string
                      enum:
                        - AF
                        - AL
                        - DZ
                        - AS
                        - AD
                        - AO
                        - AI
                        - AQ
                        - AG
                        - AR
                        - AM
                        - AW
                        - AU
                        - AT
                        - AZ
                        - BS
                        - BH
                        - BD
                        - BB
                        - BY
                        - BE
                        - BZ
                        - BJ
                        - BM
                        - BT
                        - BO
                        - BQ
                        - BA
                        - BW
                        - BV
                        - BR
                        - IO
                        - BN
                        - BG
                        - BF
                        - BI
                        - CV
                        - KH
                        - CM
                        - CA
                        - KY
                        - CF
                        - TD
                        - CL
                        - CN
                        - CX
                        - CC
                        - CO
                        - KM
                        - CG
                        - CD
                        - CK
                        - CR
                        - CI
                        - HR
                        - CU
                        - CW
                        - CY
                        - CZ
                        - DK
                        - DJ
                        - DM
                        - DO
                        - EC
                        - EG
                        - SV
                        - GQ
                        - ER
                        - EE
                        - SZ
                        - ET
                        - FK
                        - FO
                        - FJ
                        - FI
                        - FR
                        - GF
                        - PF
                        - TF
                        - GA
                        - GM
                        - GE
                        - DE
                        - GH
                        - GI
                        - GR
                        - GL
                        - GD
                        - GP
                        - GU
                        - GT
                        - GG
                        - GN
                        - GW
                        - GY
                        - HT
                        - HM
                        - VA
                        - HN
                        - HK
                        - HU
                        - IS
                        - IN
                        - ID
                        - IR
                        - IQ
                        - IE
                        - IM
                        - IL
                        - IT
                        - JM
                        - JP
                        - JE
                        - JO
                        - KZ
                        - KE
                        - KI
                        - KP
                        - KR
                        - KW
                        - KG
                        - LA
                        - LV
                        - LB
                        - LS
                        - LR
                        - LY
                        - LI
                        - LT
                        - LU
                        - MO
                        - MG
                        - MW
                        - MY
                        - MV
                        - ML
                        - MT
                        - MH
                        - MQ
                        - MR
                        - MU
                        - YT
                        - MX
                        - FM
                        - MD
                        - MC
                        - MN
                        - ME
                        - MS
                        - MA
                        - MZ
                        - MM
                        - NA
                        - NR
                        - NP
                        - NL
                        - NC
                        - NZ
                        - NI
                        - NE
                        - NG
                        - NU
                        - NF
                        - MK
                        - MP
                        - 'NO'
                        - OM
                        - PK
                        - PW
                        - PS
                        - PA
                        - PG
                        - PY
                        - PE
                        - PH
                        - PN
                        - PL
                        - PT
                        - PR
                        - QA
                        - RE
                        - RO
                        - RU
                        - RW
                        - BL
                        - SH
                        - KN
                        - LC
                        - MF
                        - PM
                        - VC
                        - WS
                        - SM
                        - ST
                        - SA
                        - SN
                        - RS
                        - SC
                        - SL
                        - SG
                        - SX
                        - SK
                        - SI
                        - SB
                        - SO
                        - ZA
                        - GS
                        - SS
                        - ES
                        - LK
                        - SD
                        - SR
                        - SJ
                        - SE
                        - CH
                        - SY
                        - TW
                        - TJ
                        - TZ
                        - TH
                        - TL
                        - TG
                        - TK
                        - TO
                        - TT
                        - TN
                        - TR
                        - TM
                        - TC
                        - TV
                        - UG
                        - UA
                        - AE
                        - GB
                        - US
                        - UM
                        - UY
                        - UZ
                        - VU
                        - VE
                        - VN
                        - VG
                        - VI
                        - WF
                        - EH
                        - YE
                        - ZM
                        - ZW
                    accountNumber:
                      description: Sending account number, when transmitted.
                      type: string
                    routingNumber:
                      description: US ABA routing number of the sending bank.
                      type: string
                    iban:
                      description: Sender IBAN, when transmitted.
                      type: string
                    bic:
                      description: BIC of the sending bank (ISO 9362).
                      type: string
                  additionalProperties: false
                  description: >-
                    Originator details on an inbound fiat deposit — what the
                    sending bank transmitted with the payment. Each field is
                    present only when provided.
                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
                      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:
                - type
                - sender
                - assetAmount
              additionalProperties: false
              description: >-
                Inbound fiat deposit source: the external bank that originated
                the wire, with the originator details as provided by the sender
                bank. The variant is emitted once any sender field is populated;
                before that, the source surfaces as `external_unknown`. A
                deposit delivered on-us from another account in the same
                organization is `internal_transfer` instead, even when the
                partner bank supplied sender details — there is no external
                originator to report.
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - internal_transfer
                originatingTransactionId:
                  type: string
                  pattern: ^txn_[0-9A-Za-z]{22}$
                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
                      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:
                - type
                - originatingTransactionId
                - assetAmount
              additionalProperties: false
              description: >-
                Source of a deposit that was delivered on-us from another
                Conduit account in the SAME organization — no external bank was
                involved. `originatingTransactionId` is the withdrawal
                transaction that sent it; fetch it for the sending side's own
                details. Emitted only when the organization owns both sides: an
                on-us delivery from another organization keeps the source it
                would otherwise have. Like `external_bank_inbound`, this variant
                resolves as the deposit is detected, which happens after the
                transaction is created — so on a first-pass run
                `transaction.created` carries `external_unknown`, while
                `transaction.completed` and every read carry the resolved
                source.
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - external_unknown
                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
                      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:
                - type
                - assetAmount
              additionalProperties: false
              description: >-
                External counterparty whose details are not yet known (e.g.
                detected fiat deposit before sender info has been resolved).
          description: >-
            One side (source or destination) of a transaction. Discriminated by
            `type`.
        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
                    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:
              - type
              - assetAmount
        createdAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp
          example: '2026-01-15T09:30:00.000Z'
        completedAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp
          example: '2026-01-15T09:30:00.000Z'
        failureCode:
          type: string
          enum:
            - user_signature_timeout
            - user_signature_expired
            - user_signature_declined
            - user_signature_rejected_by_provider
            - crypto_wallet_misconfigured
            - compliance_hold
            - compliance_review_rejected
            - compliance_rejected
            - returned_by_sender
            - rail_policy_rejected
            - insufficient_funds
            - insufficient_funds_at_settle
            - rail_unavailable
            - sender_info_timeout
            - travel_rule_rejected
            - provider_rejected
            - chain_broadcast_failed
            - roster_changed
        failureMessage:
          description: >-
            Human-readable description of `failureCode`. Defaults to the public
            error catalog text for the code; sandbox-driven failures may carry
            the operator-supplied reason instead.
          type: string
        cancelledAt:
          description: >-
            ISO-8601 timestamp when the transaction was cancelled. Present only
            on `status: cancelled`.
          type: string
          format: date-time
          example: '2026-01-15T09:30:00.000Z'
        cancellationReason:
          description: >-
            Machine-readable cancellation reason. `client_cancelled` when the
            client called `POST /v2/payouts/:id/cancel`; `expired` is reserved.
            Omitted on non-cancelled rows. Mirrors `orders.cancellationReason`.
          type: string
          enum:
            - expired
            - client_cancelled
        linkedOrderId:
          type: string
          pattern: ^ord_[0-9A-Za-z]{22}$
        purpose:
          description: >-
            The business purpose declared at payout creation. Drives compliance
            gating: intercompany requires a whitelisted recipient; other values
            require supporting documentation.
          type: string
          enum:
            - intercompany
            - treasury_management
            - payment_for_goods_or_services
            - payroll
            - investments
            - other
            - prefunding
        hasRfi:
          type: boolean
          description: >-
            True when at least one published (non-draft, non-cancelled) RFI
            targets this transaction. Always present; derived at read time, no
            stored column.
        rfiId:
          description: >-
            The most recently published such RFI. Omitted (never `null`) when
            `hasRfi` is false.
          type: string
          pattern: ^rfi_[0-9A-Za-z]{22}$
        type:
          type: string
          enum:
            - withdrawal
        requiresUserSignature:
          type: boolean
        queuePosition:
          description: >-
            Position in the per-(wallet, chain) signing queue. Only waiting
            payouts (position ≥ 1) expose this field; the active/head payout
            omits it. Absent when the payout is not on the user-signature path
            or has reached a terminal status.
          type: integer
          minimum: 1
          maximum: 9007199254740991
      required:
        - id
        - customerId
        - status
        - source
        - destination
        - fees
        - createdAt
        - hasRfi
        - type
        - requiresUserSignature
      description: >-
        Client-facing view of an outbound withdrawal (debit out of a customer
        VA/wallet).
    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_abc123 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_abc123
        correlationId:
          description: Request correlation ID
          example: req_a1b2c3d4
          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_abc123 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_abc123
        correlationId:
          description: Request correlation ID
          example: req_a1b2c3d4
          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_abc123 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_abc123
        correlationId:
          description: Request correlation ID
          example: req_a1b2c3d4
          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

````