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

# Create a transfer

> Create a transfer.

If this transfer cannot be created because the funding source is temporarily busy processing another update, this endpoint may return `409 resource_state_conflict`.
This is a transient, retryable response. You may safely retry the same request with the same `Idempotency-Key`.




## OpenAPI

````yaml https://withbridge-image1-sv-usw2-monorail-openapi.s3.amazonaws.com/latest.json post /transfers
openapi: 3.0.2
info:
  title: Bridge API
  description: APIs to move into, out of, and between any form of a dollar
  version: '1'
servers:
  - url: https://api.bridge.xyz/v0
    description: The base path for all resources
security:
  - ApiKey: []
tags:
  - name: Customers
  - name: Fiat Payout Configuration
  - name: External Accounts
  - name: Transfers
  - name: Prefunded Accounts
  - name: Balances
  - name: Liquidation Addresses
  - name: Developers
  - name: API Keys
  - name: Plaid
  - name: Virtual Accounts
  - name: Static Memos
  - name: Cards
  - name: Funds Requests
  - name: Webhooks
  - name: Lists
  - name: Crypto Return Policies
  - name: Rewards
  - name: Associated Persons
  - name: Sandbox
paths:
  /transfers:
    post:
      tags:
        - Transfers
      summary: Create a transfer
      description: >
        Create a transfer.


        If this transfer cannot be created because the funding source is
        temporarily busy processing another update, this endpoint may return
        `409 resource_state_conflict`.

        This is a transient, retryable response. You may safely retry the same
        request with the same `Idempotency-Key`.
      parameters:
        - $ref: '#/components/parameters/IdempotencyKeyParameter'
      requestBody:
        description: Transfer object to be created
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferRequest'
      responses:
        '201':
          description: Transfer object created
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/TransferResponse'
                  - $ref: '#/components/schemas/TransferRouteResponse'
              examples:
                AchOnrampTransferResponse:
                  $ref: '#/components/examples/AchOnrampTransferResponse'
                AchOfframpTransferResponse:
                  $ref: '#/components/examples/AchOfframpTransferResponse'
                AchOfframpWithMemoTransferResponse:
                  $ref: '#/components/examples/AchOfframpWithMemoTransferResponse'
                WireOnrampTransferResponse:
                  $ref: '#/components/examples/WireOnrampTransferResponse'
                WireOfframpTransferResponse:
                  $ref: '#/components/examples/WireOfframpTransferResponse'
                SepaOnrampTransferResponse:
                  $ref: '#/components/examples/SepaOnrampTransferResponse'
                SepaOfframpTransferResponse:
                  $ref: '#/components/examples/SepaOfframpTransferResponse'
                PixOnrampTransferResponse:
                  $ref: '#/components/examples/PixOnrampTransferResponse'
                PixOfframpTransferResponse:
                  $ref: '#/components/examples/PixOfframpTransferResponse'
                SpeiOnrampTransferResponse:
                  $ref: '#/components/examples/SpeiOnrampTransferResponse'
                SpeiOfframpTransferResponse:
                  $ref: '#/components/examples/SpeiOfframpTransferResponse'
                BreBOnrampTransferResponse:
                  $ref: '#/components/examples/BreBOnrampTransferResponse'
                BreBOfframpTransferResponse:
                  $ref: '#/components/examples/BreBOfframpTransferResponse'
                CoBankTransferOnrampTransferResponse:
                  $ref: '#/components/examples/CoBankTransferOnrampTransferResponse'
                CoBankTransferOfframpTransferResponse:
                  $ref: '#/components/examples/CoBankTransferOfframpTransferResponse'
                ValidTransferRouteResponse:
                  $ref: '#/components/examples/ValidTransferRouteResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '403':
          $ref: '#/components/responses/TransferAmlError'
        '409':
          $ref: '#/components/responses/ResourceStateConflictError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
components:
  parameters:
    IdempotencyKeyParameter:
      in: header
      name: Idempotency-Key
      required: true
      schema:
        type: string
  schemas:
    TransferRequest:
      required:
        - on_behalf_of
        - source
        - destination
      properties:
        id:
          $ref: '#/components/schemas/Id'
          readOnly: true
        client_reference_id:
          $ref: '#/components/schemas/client_reference_id'
        amount:
          description: >-
            Amount of the transfer, expressed as a decimal string.  Examples
            include "100.25", "0.1", "1.234567", "1.01" etc.


            It is denominated in the source currency if that is a fiat currency,
            or in the fiat currency to which the source currency is pegged.
          type: string
        on_behalf_of:
          description: >-
            The id of the Bridge customer that you are moving funds on behalf
            of.
          type: string
        developer_fee:
          description: >-
            The fee, expressed as a decimal string, represents the amount you
            wish to reserve for your own account.  This fee is the final amount
            deducted from what your customer ultimately receives, rather than a
            percentage.


            It is denominated in the source currency if that is a fiat currency,
            or in the fiat currency to which the source currency is pegged.
          type: string
        developer_fee_percent:
          description: >-
            The fee percent, expressed as a decimal string from `0.0` to
            `100.0`, represents the percentage of the transfer you wish to
            reserve for your own account.


            This field must be set instead of `developer_fee` when using
            [Flexible
            Amounts](https://apidocs.bridge.xyz/platform/orchestration/fees-and-mins/devfees#transfers-with-fixed-amounts).
          type: string
        dry_run:
          description: >-
            Whether to validate the transfer route without creating a transfer.
            If set to true, a valid transfer will return a
            `TransferRouteResponse` indicating the transfer would have been
            valid. The same error response will be returned for an invalid
            transfer as in the non-dry-run case.
          type: boolean
        source:
          description: >-
            The source of the transfer, which could be an external bank account,
            a bridge account, or a crypto wallet address.
          allOf:
            - $ref: '#/components/schemas/TransferSource'
            - properties:
                from_address:
                  description: >-
                    The crypto wallet address that the customer will send funds
                    from, in order to kick off this transfer.
                  type: string
        destination:
          description: >-
            The destination of the transfer, which could be an external bank
            account, a bridge account, or a crypto wallet address.
          allOf:
            - $ref: '#/components/schemas/TransferDestination'
            - properties:
                amount:
                  description: >-
                    Specify the destination amount for the recipient to receive.
                    Learn more at [Fixed Outputs Integration
                    Guide](https://apidocs.bridge.xyz/get-started/guides/move-money/fixed_outputs_integration_guide).


                    Denominated in the destination currency.


                    Expressed as a decimal string. Examples include "100.25",
                    "0.1", "1.234567", "1.01" etc.
                  type: string
                to_address:
                  description: >-
                    The crypto wallet address that the customer wishes to
                    ultimately receive funds at, in order to complete this
                    transfer
                  type: string
                wire_message:
                  type: string
        features:
          description: >-
            Features that should be enabled for this transfer. See [Transfer
            Features](https://apidocs.bridge.xyz/platform/orchestration/transfers/transfer-features)
            for more details.
          type: object
          properties:
            flexible_amount:
              type: boolean
              description: >-
                Allows for variable amounts to be accepted. When true, omit
                `amount` from the request body. Required to be `true` when the
                source payment rail is `swift`.
            static_template:
              type: boolean
            allow_any_from_address:
              type: boolean
        return_instructions:
          $ref: '#/components/schemas/ReturnInstructions'
          description: >-
            Optional instructions for where to send funds if the transfer is
            returned (e.g. refund). Only supported when the source payment rail
            is crypto. When the source is Stellar, `memo` is required.
        initiation:
          description: >-
            Payment initiation context. Required when the source Bridge Wallet's
            GET response includes `initiation_required: true`. Omit for wallets
            that do not return that field. Not returned in transfer responses.
          writeOnly: true
          allOf:
            - $ref: '#/components/schemas/TransferInitiation'
        travel_rule_data:
          description: >-
            Travel Rule data for this transfer. Use this when the same
            originator or beneficiary should apply to this transfer's movement.
            If the payload is only known after the transfer exists or is
            specific to a single movement, you can also submit the same object
            with `POST /travel_rule_data/{id}`.
          allOf:
            - $ref: '#/components/schemas/TravelRuleData'
    TransferResponse:
      required:
        - id
        - amount
        - developer_fee
        - currency
        - on_behalf_of
        - source
        - destination
        - state
        - receipt
        - created_at
        - updated_at
      properties:
        id:
          $ref: '#/components/schemas/Id'
          readOnly: true
        client_reference_id:
          $ref: '#/components/schemas/client_reference_id'
        amount:
          description: >-
            Amount of the transfer, expressed as a decimal string.  Examples
            include "100.25", "0.1", "1.234567", "1.01" etc.


            It is denominated in the source currency if that is a fiat currency,
            or in the fiat currency to which the source currency is pegged.
          type: string
        currency:
          $ref: '#/components/schemas/EuroInclusiveFiatCurrency'
          description: >-
            Fiat currency for the transfer amount and developer fee. It's the
            source currency if that is a fiat currency or the fiat currency to
            which the source currency is pegged.
        on_behalf_of:
          description: >-
            The id of the Bridge customer that you are moving funds on behalf
            of.
          type: string
        developer_fee:
          description: >-
            The fee, expressed as a decimal string, represents the amount you
            wish to reserve for your own account. This fee is the final amount
            deducted from what your customer ultimately receives, rather than a
            percentage.


            It is denominated in the source currency if that is a fiat currency,
            or in the fiat currency to which the source currency is pegged.
          type: string
        developer_fee_percent:
          description: >-
            The fee percent, expressed as a decimal string from `0.0` to
            `100.0`, represents the percentage of the transfer you wish to
            reserve for your own account.


            This field must be set instead of `developer_fee` when using
            [Flexible
            Amounts](https://apidocs.bridge.xyz/platform/orchestration/fees-and-mins/devfees#transfers-with-fixed-amounts).
          type: string
        source:
          description: >-
            The source of the transfer, which could be an external bank account,
            a bridge account, or a crypto wallet address
          allOf:
            - $ref: '#/components/schemas/TransferSource'
            - properties:
                currency:
                  $ref: '#/components/schemas/EuroInclusiveCurrency'
                  description: The source currency
                payment_rail:
                  $ref: '#/components/schemas/TransferSourcePaymentRail'
                  description: The intended source payment rail
                payment_received_rail:
                  $ref: '#/components/schemas/TransferSourcePaymentRail'
                  description: >-
                    The rail on which the payment was actually received. Set
                    once the funds have been onramped.
                  readOnly: true
                from_address:
                  description: >-
                    The crypto wallet address that the customer will send funds
                    from, in order to kick off this transfer
                  type: string
        destination:
          description: >-
            The destination of the transfer, which could be an external bank
            account, a bridge account, or a crypto wallet address
          allOf:
            - $ref: '#/components/schemas/TransferDestination'
            - properties:
                amount:
                  description: >-
                    The destination amount for the recipient to receive. Present
                    when the transfer was created with a destination amount
                    (Fixed Outputs).


                    Denominated in the destination currency.


                    Expressed as a decimal string. Examples include "100.25",
                    "0.1", "1.234567", "1.01" etc.
                  type: string
                  readOnly: true
                currency:
                  $ref: '#/components/schemas/EuroInclusiveCurrency'
                  description: The destination currency
                payment_rail:
                  $ref: '#/components/schemas/SepaSwiftInclusivePaymentRail'
                  description: The destination payment rail
                to_address:
                  description: >-
                    The crypto wallet address that the customer wishes to
                    ultimately receive funds at, in order to complete this
                    transfer
                  type: string
                wire_message:
                  description: >-
                    A message to be sent with a wire transfer, only allowed when
                    the payment rail is a wire.  This message will be validated
                    against 4 lines, each with a max length of 35 char according
                    to the Fedwire standard.
                  type: string
                blockchain_memo:
                  description: >-
                    A message to be sent with a crypto transaction, only allowed
                    when the payment rail is Stellar.
                  type: string
        state:
          $ref: '#/components/schemas/TransferState'
          description: >-
            Status of the transfer. See [Transfer
            States](https://apidocs.bridge.xyz/platform/orchestration/transfers/transfer-states)
            for more details.
          readOnly: true
        source_deposit_instructions:
          readOnly: true
          description: >-
            Some transfers require a deposit to be made by the customer before
            Bridge can start the process.  Instructions for how to kick off the
            transfer will be included here.  The deposit must match these
            instructions exactly, or the transfer will fail.
          allOf:
            - $ref: '#/components/schemas/DepositInstructions'
            - properties:
                currency:
                  $ref: '#/components/schemas/EuroInclusiveCurrency'
                  description: The source currency
                payment_rail:
                  $ref: '#/components/schemas/SepaSwiftInclusivePaymentRail'
                  description: The source payment rail
                amount:
                  description: >-
                    Amount of the deposit, expressed as a decimal string. It's
                    denominated in the source currency if that is a fiat
                    currency, or in the fiat currency to which the source
                    currency is pegged. Examples include "100.25", "0.1",
                    "1.234567", "1.01" etc.
                  type: string
                deposit_message:
                  description: >-
                    The message that the customer MUST include in their `wire
                    memo/message`, `ach push description`, or `sepa reference`.
                  type: string
                blockchain_memo:
                  description: >-
                    If present, the message that the customer MUST include in
                    their on chain transfer. Only used for memo-based
                    blockchains such as Stellar and Tron
                  type: string
        receipt:
          $ref: '#/components/schemas/Receipt'
          description: Receipt information of a transfer
        return_details:
          $ref: '#/components/schemas/TransferReturnDetails'
          readOnly: true
          description: Return information, if the transfer has been returned.
        return_instructions:
          $ref: '#/components/schemas/ReturnInstructions'
          readOnly: true
          description: >-
            Optional return instructions configured when creating or updating
            the transfer.
        exchange_details:
          $ref: '#/components/schemas/ExchangeDetails'
          readOnly: true
          description: Exchange details for the associated trade, if applicable.
        created_at:
          readOnly: true
          type: string
          description: Time of creation of the transfer
          format: date-time
        updated_at:
          readOnly: true
          type: string
          description: Time of update of the transfer
          format: date-time
        template_id:
          $ref: '#/components/schemas/Id'
          readOnly: true
          description: >-
            The ID of the static template transfer from which this transfer was
            instantiated. Only present for transfers created from a template.
    TransferRouteResponse:
      required:
        - state
        - notes
      properties:
        state:
          type: string
          enum:
            - valid
            - invalid
        notes:
          type: array
          items:
            type: string
    Id:
      description: A UUID that uniquely identifies a resource
      type: string
      pattern: '[a-z0-9]*'
      minLength: 1
      maxLength: 42
    client_reference_id:
      description: >-
        A client-provided reference ID that uniquely identifies a resource in
        the client's system
      type: string
      minLength: 1
      maxLength: 256
    TransferSource:
      required:
        - currency
        - payment_rail
      properties:
        currency:
          $ref: '#/components/schemas/EuroInclusiveCurrency'
          description: |-
            When `eur` is specified as the source currency:
              1. the source rail must be `sepa`;
              2. only `usdc` or `eurc` are supported as the destination currency
        payment_rail:
          $ref: '#/components/schemas/TransferSourcePaymentRail'
          description: |-
            When `sepa` is specified as the source rail:
              1. the source currency must be `eur`;
              2. only `usdc` or `eurc` are supported as the destination currency 

             **Note: This is the intended payment rail, and may differ from the actual payment rail used to onramp the funds.**
        payment_scheme:
          $ref: '#/components/schemas/PaymentScheme'
          description: >-
            (SEPA only) The payment scheme used for this transaction, such as
            SEPA Credit Transfer or SEPA Instant
          readOnly: true
        omad:
          $ref: '#/components/schemas/Omad'
          readOnly: true
        imad:
          $ref: '#/components/schemas/Imad'
          readOnly: true
        trace_number:
          $ref: '#/components/schemas/TraceNumber'
          readOnly: true
        bank_beneficiary_name:
          description: >-
            (Wire only) The name of the beneficiary of the bank account that the
            customer sent the deposit to
          type: string
          readOnly: true
        bank_beneficiary_address:
          description: >-
            (Wire only) The address of the beneficiary of the bank account that
            the customer sent the deposit to
          type: string
          readOnly: true
        bank_routing_number:
          description: >-
            (Wire only) The routing number of the bank that the customer sent
            the deposit to
          type: string
          readOnly: true
        bank_name:
          description: >-
            (Wire and SPEI only) The name of the bank that the customer sent the
            deposit from.
          type: string
          readOnly: true
        originator_name:
          description: (Wire only) The originator name of this wire
          type: string
          readOnly: true
        originator_address:
          description: (Wire only) The originator address of this wire
          type: string
          readOnly: true
        wire_message:
          description: (Wire only) The memo for this wire
          type: string
          readOnly: true
        bridge_wallet_id:
          $ref: '#/components/schemas/Id'
          description: (Bridge Wallet only) The ID of the Bridge Wallet to draw funds from
        sender_name:
          description: >-
            (ACH and FedNow only) The name of the business or individual who
            initiated the transaction
          type: string
          readOnly: true
        sender_bank_routing_number:
          description: >-
            (ACH and FedNow only) The routing number of the entity that
            initiated this transaction
          type: string
          readOnly: true
        end_to_end_id:
          $ref: '#/components/schemas/EndToEndId'
          readOnly: true
        description:
          description: (ACH only) The description of the deposit that the customer sent
          type: string
          readOnly: true
        tracking_number:
          $ref: '#/components/schemas/TrackingNumber'
          readOnly: true
        clabe:
          $ref: '#/components/schemas/Clabe'
          description: >-
            (SPEI only) The 18-digit CLABE of the sender who initiated this SPEI
            transaction
          readOnly: true
        bank_code:
          description: >-
            (SPEI only) The bank code of the sender's bank that initiated this
            SPEI transaction.
          type: string
          readOnly: true
        transaction_id:
          $ref: '#/components/schemas/TransactionId'
          readOnly: true
        co_bank_transfer:
          description: (co_bank_transfer only) Details for Colombian bank transfers.
          type: object
          required:
            - redirect_url
          properties:
            redirect_url:
              description: >-
                URL to redirect the customer to after completing the bank
                transfer
              type: string
              writeOnly: true
            expiry_date:
              description: >-
                Optional ISO 8601 expiry timestamp for the payment session.
                Defaults to 24 hours from creation.
              type: string
              writeOnly: true
            sender_data:
              description: >-
                Sender information for the CO bank transfer. If omitted, the
                payer must manually provide this information via the payment
                link. If provided, fields will be pre-populated for the payer.
                Sensitive fields are masked in responses (e.g. document_number
                shows `***3456`).
              type: object
              required:
                - full_name
                - document_type
                - document_number
                - email
                - phone_number
              properties:
                full_name:
                  description: Full name of the sender
                  type: string
                document_type:
                  $ref: '#/components/schemas/CoBankTransferDocumentType'
                document_number:
                  description: >-
                    Document number of the sender. Masked in responses (e.g.
                    ***3456).
                  type: string
                email:
                  description: Email address of the sender
                  type: string
                phone_number:
                  description: >-
                    Phone number of the sender in E.164 format (e.g.
                    +573001234567)
                  type: string
    TransferDestination:
      required:
        - currency
        - payment_rail
      properties:
        currency:
          $ref: '#/components/schemas/EuroInclusiveCurrency'
          description: >-
            When `eur` is specified as the destination currency, the destination
            rail must be `sepa`.
        payment_rail:
          $ref: '#/components/schemas/SepaSwiftInclusiveOfframpPaymentRail'
          description: >-
            When `sepa` is specified as the destination payment rail, the
            destination currency must be `eur`; when `swift` is specified as the
            destination payment rail, the destination currency must be `usd`.
        external_account_id:
          $ref: '#/components/schemas/Id'
          description: >-
            External bank account Bridge should send the funds to. The currency
            associated with the External Account must match the destination
            currency.
        bridge_wallet_id:
          $ref: '#/components/schemas/Id'
          description: >-
            The Bridge Wallet to which Bridge will send the funds. The chain
            associated with the Bridge Wallet must match the destination payment
            rail.
        omad:
          $ref: '#/components/schemas/Omad'
          readOnly: true
        imad:
          $ref: '#/components/schemas/Imad'
          readOnly: true
        trace_number:
          $ref: '#/components/schemas/TraceNumber'
          readOnly: true
        end_to_end_id:
          $ref: '#/components/schemas/EndToEndId'
          readOnly: true
        wire_message:
          $ref: '#/components/schemas/WireMessage'
        sepa_reference:
          $ref: '#/components/schemas/SepaReference'
        swift_reference:
          $ref: '#/components/schemas/SwiftReference'
        spei_reference:
          $ref: '#/components/schemas/SpeiReference'
        reference:
          $ref: '#/components/schemas/Reference'
        swift_charges:
          $ref: '#/components/schemas/SwiftCharges'
          description: >
            **Deprecated**: prefer `charge_bearer`; this field will be removed
            in a future release. In responses, this field always mirrors
            `charge_bearer`. Sending both `swift_charges` and `charge_bearer`
            with conflicting values on a request is rejected.


            Which party will bear the charges for the SWIFT transaction. When
            left blank, `sha` will be used as the default.
          deprecated: true
        charge_bearer:
          $ref: '#/components/schemas/ChargeBearer'
          description: >-
            Which party bears the charges for the SWIFT transaction. Defaults to
            `sha` when not specified. Replaces the deprecated `swift_charges`
            field; accepted on both request and response.
        ach_reference:
          $ref: '#/components/schemas/AchReference'
        uetr:
          $ref: '#/components/schemas/Uetr'
        blockchain_memo:
          type: string
          description: >-
            The memo to include when sending funds on chain. Only allowed for
            blockchains that support memos such as Stellar
        deposit_id:
          $ref: '#/components/schemas/DepositId'
        tracking_number:
          $ref: '#/components/schemas/TrackingNumber'
          readOnly: true
        transaction_id:
          $ref: '#/components/schemas/TransactionId'
          readOnly: true
        sending_institution_name:
          description: The name of the institution sending the funds
          type: string
          readOnly: true
    ReturnInstructions:
      description: >-
        Optional instructions for where to send funds if the transfer is
        returned (e.g. refund). Only supported when the source payment rail is
        crypto. Memo is required when the source payment rail is Stellar.
      type: object
      required:
        - address
      properties:
        address:
          description: >-
            The crypto wallet address to send returned funds to. Must be valid
            for the source payment rail's chain.
          type: string
        memo:
          description: >-
            Memo to include with the return transaction. Required when the
            source payment rail is Stellar; optional for other memo-capable
            chains.
          type: string
    TransferInitiation:
      type: object
      description: >-
        Payment initiation context required for transfers sourced from wallets
        where `initiation_required: true`. Captures how the payment was
        initiated (channel and subchannel) and whether Strong Customer
        Authentication was applied or which SCA exemption was used. This object
        is accepted on create only and is not returned in transfer responses.
      required:
        - channel
        - subchannel
        - attestations
      properties:
        channel:
          description: >-
            How the payment was initiated. Use `p2p_mobile_payment` for
            peer-to-peer transfers initiated on a mobile device;
            `other_mobile_payment` for non-P2P mobile-initiated payments (e.g. a
            merchant payment via a mobile app); `other` for payments not relying
            on a mobile device.
          type: string
          enum:
            - p2p_mobile_payment
            - other_mobile_payment
            - other
        subchannel:
          description: >-
            Whether the payment was made remotely or in person. Use `remote` for
            payments initiated from a distance (mobile app, online banking, or
            e-commerce checkout); `non_remote` for payments made in person
            (physical card, payment terminal, or contactless tap).
          type: string
          enum:
            - remote
            - non_remote
        attestations:
          $ref: '#/components/schemas/TransferInitiationAttestations'
    TravelRuleData:
      type: object
      description: >-
        Travel Rule data for a crypto movement. Send this on create or update
        when the same counterparty should apply to every future use of a
        reusable resource, or send the same payload with `POST
        /travel_rule_data/{id}` when it belongs to one specific movement.
      properties:
        originator:
          description: The party sending the crypto.
          allOf:
            - $ref: '#/components/schemas/TravelRuleOriginator'
        beneficiary:
          description: The party receiving the crypto.
          allOf:
            - $ref: '#/components/schemas/TravelRuleBeneficiary'
      example:
        originator:
          name: Jane Smith
          address:
            street_line_1: 123 Market St
            street_line_2: null
            city: San Francisco
            state: CA
            postal_code: '94105'
            country: USA
          identifying_information:
            type: national_id
            number: '1234567890'
            issuing_country: USA
          birth_date: '2000-01-31'
          place_of_birth:
            city: San Francisco
            country: USA
          wallet_type: self_custodied
          wallet_attested_ownership_at: '2026-04-01T12:00:00Z'
        beneficiary:
          is_self: true
          wallet_type: external
    EuroInclusiveFiatCurrency:
      type: string
      enum:
        - usd
        - eur
        - mxn
        - brl
        - cop
        - gbp
    EuroInclusiveCurrency:
      type: string
      enum:
        - brl
        - cop
        - eur
        - eurc
        - gbp
        - mxn
        - pyusd
        - usd
        - usdb
        - usdc
        - usdt
    TransferSourcePaymentRail:
      type: string
      enum:
        - ach
        - wire
        - ach_push
        - ach_same_day
        - fednow
        - arbitrum
        - avalanche_c_chain
        - base
        - bre_b
        - co_bank_transfer
        - bridge_wallet
        - celo
        - ethereum
        - faster_payments
        - optimism
        - pix
        - polygon
        - sepa
        - solana
        - spei
        - stellar
        - swift
        - tempo
        - tron
    SepaSwiftInclusivePaymentRail:
      type: string
      enum:
        - ach
        - wire
        - ach_push
        - ach_same_day
        - arbitrum
        - avalanche_c_chain
        - base
        - bre_b
        - co_bank_transfer
        - celo
        - ethereum
        - faster_payments
        - fiat_deposit_return
        - optimism
        - pix
        - polygon
        - sepa
        - solana
        - spei
        - stellar
        - swift
        - tempo
        - tron
    TransferState:
      type: string
      enum:
        - awaiting_funds
        - in_review
        - funds_received
        - payment_submitted
        - payment_processed
        - canceled
        - undeliverable
        - returned
        - refund_in_flight
        - refund_failed
        - refunded
    DepositInstructions:
      readOnly: true
      required:
        - payment_rail
        - amount
        - currency
      properties:
        payment_rail:
          $ref: '#/components/schemas/PaymentRail'
          description: >-
            The payment rail that Bridge is expecting funds to arrive on.  For a
            crypto based source on the transfer, this is the chain, i.e.
            ethereum or polygon
        amount:
          description: >-
            Amount of the deposit, represented as a dollar denominated string.
            Examples include "100.25", "0.1", "1.234567", "1.01" etc.
          type: string
        currency:
          $ref: '#/components/schemas/Currency'
        from_address:
          description: >-
            The crypto wallet address that the customer will send funds from, in
            order to kick off this transfer
          type: string
        to_address:
          description: >-
            The crypto wallet address the customer will send funds to in order
            to initiate the payment processing
          type: string
        memoless_to_address:
          description: >-
            An alternative crypto wallet address that encodes the memo, allowing
            the customer to send funds without needing to include a separate
            memo. Currently only available for Stellar deposits.
          type: string
        deposit_message:
          description: >-
            The message that the customer MUST include in their wire
            memo/message or ach push description
          type: string
        bank_name:
          description: The name of the bank that the customer should send the deposit to
          type: string
        bank_address:
          description: >-
            The address of the bank that the customer should send the deposit
            to. For SEPA, the country in this address should be used for sending
            the deposit
          type: string
        bank_routing_number:
          description: >-
            The routing number of the bank that the customer should send the
            deposit to
          type: string
        bank_account_number:
          description: >-
            The account number of the bank that the customer should send the
            deposit to
          type: string
        bank_beneficiary_name:
          description: >-
            The name of the beneficiary of the bank account that the customer
            should send the deposit to
          type: string
        bank_beneficiary_address:
          description: >-
            The address of the beneficiary of the bank account that the customer
            should send the deposit to
          type: string
        intermediary_bank_name:
          description: >-
            For USD SWIFT, the name of the intermediary correspondent bank that
            the originating bank should route the payment through.
          type: string
        intermediary_bank_bic:
          description: For USD SWIFT, the SWIFT/BIC of the intermediary correspondent bank
          type: string
        intermediary_bank_routing_number:
          description: >-
            For USD SWIFT, the ABA routing number of the intermediary
            correspondent bank
          type: string
        iban:
          description: >-
            For SEPA, the International Bank Account Number (IBAN) that the
            customer should use to send the deposit
          type: string
        bic:
          description: >-
            For SEPA, the Bank Identifier Code (BIC) that the customer should
            use to send the deposit
          type: string
        clabe:
          description: >-
            For SPEI, the CLABE (account number) that the customer should use to
            send the deposit
          type: string
        account_holder_name:
          description: >-
            For SEPA, the name of the bank account holder that the customer
            should use to send the deposit
          type: string
        bre_b_key:
          description: >-
            For Bre-B (Colombia), the Bre-B key that the customer should use to
            send the COP deposit
          type: string
        start_url:
          description: >-
            For co_bank_transfer (Colombia), the URL the customer should be
            redirected to in order to complete the bank transfer payment
          type: string
        redirect_url:
          description: >-
            For co_bank_transfer (Colombia), the merchant redirect URL provided
            when the transfer was created
          type: string
        expires_at:
          description: >-
            For Pix (Brazil) and co_bank_transfer (Colombia), the ISO 8601
            timestamp when the payment session expires
          type: string
    Receipt:
      required:
        - initial_amount
        - developer_fee
        - exchange_fee
        - subtotal_amount
      properties:
        initial_amount:
          description: >-
            The initial amount of the transfer, represented as a decimal string.
            Examples include "100.25", "0.1", "1.234567", "1.01" etc.


            It's denominated in the transfer's fiat currency (see the top-level
            `currency` field for more info)
          type: string
        developer_fee:
          description: >-
            The fee, expressed as a decimal string, represents the amount you
            wish to reserve for your own account.  This fee is the final amount
            deducted from what your customer ultimately receives, rather than a
            percentage.


            It is denominated in the transfer's fiat currency (see the top-level
            `currency` field for more info).
          type: string
        exchange_fee:
          description: >-
            The fee, expressed as a decimal string, represents the amount Bridge
            charges for facilitating the transfer.  This is the final amount to
            take out of what is ultimately received by your customer, not a
            percentage.


            It's denominated in the transfer's fiat currency (see top-level
            `currency` field for more info).
          type: string
        subtotal_amount:
          description: >-
            The initial amount of the transfer less fixed fees (including the
            developer_fee and exchange_fee). Examples include "100.25", "0.1",
            "1.234567", "1.01" etc.


            It's denominated in the transfer's fiat currency (see top-level
            `currency` field for more info).
          type: string
        remaining_prefunded_balance:
          description: >-
            For Prefunded Accounts, this value will represent the remaining
            account balance after the transfer.
          type: string
        gas_fee:
          description: >-
            The fee, expressed as a decimal string. It's deducted from the
            withdrawn amount to pay for gas.  Only nonzero to crypto withdrawals
            that cost gas (e.g. USDT), and only known when the transaction is
            confirmed on-chain.  Will be missing if not yet known.


            It's denominated in the fiat currency to which the destination
            currency is pegged.
          type: string
        final_amount:
          description: >-
            The final amount of the transfer, expressed as a decimal string,
            equal to the subtotal_amount minus any gas fees.  If the gas fee is
            not known, this field will be missing.  Examples include "100.25",
            "0.1", "1.234567", "1.01" etc.


            It's denominated in the destination currency if that is a fiat
            currency or the fiat currency to which the destination currency is
            pegged.
          type: string
        source_tx_hash:
          description: >-
            The hash of the on-chain deposit to the source address, where
            applicable
        destination_tx_hash:
          description: >-
            The hash of the on-chain transfer to the destination address, where
            applicable
        exchange_rate:
          description: >-
            The effective exchange rate can be calculated by dividing the
            converted amount by the amount available for conversion after
            deducting the developer fee. This rate includes a currency
            conversion spread and is subject to a rounding precision loss during
            the calculation. Currently it's populated for SEPA onramp/offramp
            transfers only.
        url:
          description: The URL of a user-facing copy of the receipt.
          type: string
        bank_details:
          description: >-
            Bank-lookup details for fiat offramp receipts, to help the
            recipient's bank locate the payment. Present for enabled developers
            once the offramp's bank leg exists; individual fields may be null
            until they become available (e.g. the ACH trace ID before submission
            to the Fed).
          type: object
          properties:
            sending_routing_number:
              description: Routing number of the bank Bridge sent the payment from.
              type: string
            ach_description:
              description: Statement descriptor on the outgoing ACH credit.
              type: string
            ach_trace_id:
              description: ACH trace number, populated after submission to the Fed.
              type: string
            recipient_name:
              description: Name on the receiving external account.
              type: string
    TransferReturnDetails:
      properties:
        reason:
          description: >-
            The reason for the return, as given by the returning financial
            institution.
          type: string
        refund_reference_id:
          description: >-
            A unique identifier (such as transaction hash) for the refund
            transaction.
          type: string
        risk_rejection_reason:
          description: >-
            If the return is due to a risk rejection, this field will be
            populated with the reason for the risk rejection.
          type: string
    ExchangeDetails:
      description: Exchange information for a currency conversion.
      properties:
        fixed_rate:
          description: The target exchange rate.
          type: string
        estimated_market_rate:
          description: The estimated achievable rate based on current market conditions.
          type: string
        traded_market_rate:
          description: The actual effective exchange rate achieved.
          type: string
        trade_at_market:
          description: Whether market-rate execution has been applied to this trade.
          type: boolean
        updated_at:
          description: Timestamp of the last exchange details update.
          type: string
          format: date-time
    Error:
      required:
        - code
        - message
      properties:
        code:
          type: string
          minLength: 1
          maxLength: 256
        message:
          type: string
          minLength: 1
          maxLength: 512
        source:
          title: ErrorSource
          required:
            - location
            - key
          properties:
            location:
              type: string
              enum:
                - path
                - query
                - body
                - header
            key:
              type: string
              description: >-
                Comma separated names of the properties or parameters causing
                the error
    PaymentScheme:
      type: string
      enum:
        - sepa_credit
        - sepa_instant
    Omad:
      description: (Wire only) The OMAD of a wire transfer, if available
      type: string
      pattern: '[a-z0-9]*'
      minLength: 1
      maxLength: 40
      deprecated: true
    Imad:
      description: (Wire only) The IMAD of a wire transfer, if available
      type: string
      pattern: '[a-z0-9]*'
      minLength: 1
      maxLength: 40
    TraceNumber:
      description: The trace number of an ACH transfer
      type: string
      pattern: '[0-9]'
      minLength: 15
      maxLength: 15
    EndToEndId:
      description: >-
        The end-to-end ID of the FedNow transaction, assigned by the sending
        bank, and is not guaranteed to be unique across payments.
      type: string
    TrackingNumber:
      description: >-
        The primary tracking identifier for this fiat transaction. Format varies
        by payment rail (e.g., UETR for SEPA/FPS, clave de rastreo for SPEI,
        end-to-end ID for PIX).
      type: string
      readOnly: true
    Clabe:
      description: >-
        The 18-digit CLABE (Clave Bancaria Estandarizada) of the sender who
        initiated this SPEI transaction
      type: string
      pattern: ^[0-9]+$
      minLength: 18
      maxLength: 18
    TransactionId:
      description: >-
        Deprecated: use tracking_number instead. The unique transaction
        identifier for this payment.
      type: string
      deprecated: true
    CoBankTransferDocumentType:
      description: >
        Colombian document type identifier. `cc` = Cédula de Ciudadanía, `ce` =
        Cédula de Extranjería, `nit` = NIT (tax ID), `rut` = RUT (worker
        registration), `pa` = Passport, `ppt` = Permiso de Protección Temporal.
      type: string
      enum:
        - cc
        - ce
        - nit
        - rut
        - pa
        - ppt
        - ti
        - rc
        - te
        - die
        - nd
    SepaSwiftInclusiveOfframpPaymentRail:
      type: string
      enum:
        - ach
        - wire
        - ach_push
        - ach_same_day
        - arbitrum
        - avalanche_c_chain
        - base
        - bre_b
        - co_bank_transfer
        - celo
        - ethereum
        - fiat_deposit_return
        - optimism
        - polygon
        - sepa
        - solana
        - spei
        - stellar
        - swift
        - tempo
        - tron
    WireMessage:
      description: >-
        A message to be sent with a wire transfer. It can have up to 140
        characters. This message will be validated against 4 lines, each with a
        max length of 35 characters according to the Fedwire standard.
      type: string
      minLength: 1
      maxLength: 256
    SepaReference:
      description: >-
        A reference message to be sent with a SEPA transaction. We recommend you
        set a unique value to help you and your customers track payments end to
        end. It must be from 6 to 140 characters. The allowed characters are
        `a-z`, `A-Z`, `0-9`, spaces, ampersand (`&`), hyphen (`-`), full stop
        (`.`), and solidus (`/`). If not populated, the default value is
        "Payment via Bridge {unique_token}".
      type: string
      minLength: 6
      maxLength: 140
    SwiftReference:
      description: >-
        A payment reference message or remittance information to be included in
        a SWIFT transaction. It can have at most 4 lines (separated by "\n"),
        each line with a max length of 35 chars. The allowed characters are
        `a-z`, `A-Z`, `0-9`, special characters (`/` `-` `?` `:` `(` `)` `.` `,`
        `'` `+`), and space
      type: string
      minLength: 1
      maxLength: 190
    SpeiReference:
      description: >-
        A payment reference message or remittance information to be included in
        a SPEI transaction. The allowed characters are alphanumeric `a-z`,
        `A-Z`, `0-9`, and space
      type: string
      minLength: 1
      maxLength: 40
    Reference:
      description: >
        A payment reference message for newer payment rails (e.g. Pix and Faster
        Payments).
      oneOf:
        - $ref: '#/components/schemas/FasterPaymentsReference'
        - $ref: '#/components/schemas/PixReference'
    SwiftCharges:
      description: >
        **Deprecated**: this schema is the type of the deprecated
        `swift_charges` field and will be removed in a future release. Prefer
        `charge_bearer`, which is typed by `ChargeBearer`.


        Which party bears the SWIFT transaction charges (MT 103 field 71A).

        - `our`: the sender (ordering customer) pays all charges.

        - `sha`: charges are shared — the sender pays their own bank's charges;
        intermediary/beneficiary bank charges are deducted from the transferred
        amount.

        - `ben`: the receiver (beneficiary) pays all charges, deducted from the
        transferred amount.
      deprecated: true
      type: string
      enum:
        - our
        - sha
        - ben
    ChargeBearer:
      description: >
        Which party bears the SWIFT transaction charges.

        - `our`: the sender (ordering customer) pays all charges.

        - `sha`: charges are shared — the sender pays their own bank's charges;
        intermediary/beneficiary bank charges are deducted from the transferred
        amount.

        - `ben`: the receiver (beneficiary) pays all charges, deducted from the
        transferred amount.
      type: string
      enum:
        - our
        - sha
        - ben
    AchReference:
      description: >-
        A reference message to be sent with an ACH transaction. It can be at
        most 10 characters, A-Z, a-z, 0-9, and spaces.
      type: string
      minLength: 1
      maxLength: 10
    Uetr:
      description: >-
        Deprecated: use tracking_number instead. The unique end-to-end
        transaction reference, for tracing purposes.
      type: string
      readOnly: true
      deprecated: true
    DepositId:
      description: A UUID that uniquely identifies a deposit
      type: string
      pattern: '[a-z0-9]*'
      minLength: 1
      maxLength: 42
    TransferInitiationAttestations:
      type: object
      required:
        - sca
      properties:
        sca:
          $ref: '#/components/schemas/TransferInitiationSca'
    TravelRuleOriginator:
      type: object
      description: Travel Rule details for originator crypto movement.
      properties:
        is_self:
          $ref: '#/components/schemas/TravelRuleIsSelf'
        name:
          $ref: '#/components/schemas/TravelRuleName'
        address:
          description: >-
            Mailing or legal address of the originator. Usually omitted when
            `is_self` is `true`.
          allOf:
            - $ref: '#/components/schemas/TravelRuleAddress'
        wallet_type:
          $ref: '#/components/schemas/TravelRuleWalletType'
        wallet_attested_ownership_at:
          $ref: '#/components/schemas/TravelRuleWalletAttestedOwnershipAt'
        identifying_information:
          allOf:
            - $ref: '#/components/schemas/IdentifyingInformation'
          description: >
            List of identification objects for the originator. Do **not**
            include `image_front` or `image_back` fields in this context; those
            are not accepted in Travel Rule submissions.
        birth_date:
          type: string
          description: Date of birth in format yyyy-mm-dd.
          minLength: 10
          maxLength: 10
        place_of_birth:
          $ref: '#/components/schemas/PlaceOfBirthInput'
        legal_entity_identifier:
          type: string
          description: >-
            The Legal Entity Identifier (LEI) or equivalent (e.g. VAT number) of
            the originator. Provide this when the originator is a legal entity
            rather than an individual.
    TravelRuleBeneficiary:
      type: object
      description: Travel Rule details for beneficiary crypto movement.
      properties:
        is_self:
          $ref: '#/components/schemas/TravelRuleIsSelf'
        name:
          $ref: '#/components/schemas/TravelRuleName'
        address:
          description: >-
            Mailing or legal address of the beneficiary. Usually omitted when
            `is_self` is `true`.
          allOf:
            - $ref: '#/components/schemas/TravelRuleAddress'
        wallet_type:
          $ref: '#/components/schemas/TravelRuleWalletType'
        wallet_attested_ownership_at:
          $ref: '#/components/schemas/TravelRuleWalletAttestedOwnershipAt'
        legal_entity_identifier:
          type: string
          description: >-
            The Legal Entity Identifier (LEI) or equivalent (e.g. VAT number) of
            the beneficiary. Provide this when the beneficiary is a legal entity
            rather than an individual.
    PaymentRail:
      type: string
      enum:
        - ach
        - wire
        - ach_push
        - ach_same_day
        - arbitrum
        - avalanche_c_chain
        - base
        - bre_b
        - co_bank_transfer
        - celo
        - ethereum
        - optimism
        - pix
        - polygon
        - solana
        - spei
        - stellar
        - tempo
    Currency:
      type: string
      enum:
        - usdb
        - usdc
        - usdt
        - usd
        - pyusd
    FasterPaymentsReference:
      title: Faster Payments
      type: string
      minLength: 1
      maxLength: 18
    PixReference:
      title: Pix
      type: string
      minLength: 1
      maxLength: 100
    TransferInitiationSca:
      type: object
      required:
        - outcome
      properties:
        outcome:
          description: >-
            Whether Strong Customer Authentication (SCA) was applied or which
            regulatory exemption or non-applicability reason covers this
            payment. Use `sca_used` when the user authenticated with SCA.
            Otherwise, choose the value that applies: `payment_to_self` — payer
            and payee are the same person (remote only); `trusted_beneficiaries`
            — payee is on the user's pre-approved list; `recurring_transaction`
            — amount and payee match a previously SCA-authorized recurring
            series; `contactless_low_value` — contactless card payment below the
            low-value threshold (non-remote only);
            `unattended_terminal_for_transport` — automated terminal for
            transport fares or parking (non-remote only); `low_value` — remote
            payment below the low-value threshold (remote only);
            `secure_corporate_payment` — dedicated corporate payment process
            with controls equivalent to SCA (remote only);
            `transaction_risk_analysis` — PSP has performed real-time risk
            analysis and the transaction falls within permitted thresholds
            (remote only); `merchant_initiated_transaction` — payment triggered
            by the merchant without the payer present, on a pre-authorized
            mandate (remote only); `not_applicable` — this flow requires
            initiation context but SCA and SCA exemptions do not apply; `other`
            — another recognized exemption not listed above.
          type: string
          enum:
            - sca_used
            - payment_to_self
            - trusted_beneficiaries
            - recurring_transaction
            - contactless_low_value
            - unattended_terminal_for_transport
            - low_value
            - secure_corporate_payment
            - transaction_risk_analysis
            - merchant_initiated_transaction
            - not_applicable
            - other
        auth_factors:
          description: >-
            Authentication factor metadata. Optional when `outcome` is
            `sca_used`; if provided, it must contain at least two entries from
            different `category` values (e.g. one `possession` factor and one
            `knowledge` factor). Omit this field for any other outcome.
          type: array
          minItems: 2
          items:
            $ref: '#/components/schemas/TransferInitiationAuthFactor'
    TravelRuleIsSelf:
      type: boolean
      description: >-
        Set to `true` when this party is the same person or business as the
        Bridge customer on the resource. When `true`, Bridge uses the customer's
        name and address on file instead of relying on `name` and `address` in
        this payload.
    TravelRuleName:
      type: string
      description: >-
        Legal name of the originator or beneficiary. Usually omitted when
        `is_self` is `true`.
    TravelRuleAddress:
      type: object
      description: >-
        Address for travel rule submissions. All fields are optional to support
        partial address data (e.g. country-only).
      properties:
        street_line_1:
          type: string
        street_line_2:
          type: string
        city:
          type: string
        state:
          type: string
          description: ISO 3166-2 subdivision code.
        postal_code:
          type: string
        country:
          description: Three-letter alpha-3 country code as defined in the ISO 3166-1 spec.
          type: string
          minLength: 3
          maxLength: 3
    TravelRuleWalletType:
      type: string
      description: >-
        Indicates the custody model for the wallet. Use `self_custodied` for
        customer-owned wallets (customer controls private keys), `hosted` for
        wallets managed by a developer or regulated entity on behalf of the
        customer, or `external` for wallets belonging to external exchanges or
        smart contracts.
      enum:
        - hosted
        - external
        - self_custodied
    TravelRuleWalletAttestedOwnershipAt:
      type: string
      format: date-time
      description: >-
        Required when `wallet_type` is `self-custodied` or `hosted`. Must be a
        timestamp in the past indicating when wallet ownership was attested.
    IdentifyingInformation:
      writeOnly: true
      type: array
      title: Identification Information
      items:
        type: object
        required:
          - issuing_country
          - type
        properties:
          type:
            type: string
            description: >
              Tax identification number type or government-issued ID document
              type (see enum). Country-specific tax and national ID lists:
              [Individuals](https://apidocs.bridge.xyz/docs/individual-tax-identification-numbers-by-country),
              [Businesses](https://apidocs.bridge.xyz/docs/business-tax-identification-numbers-by-country).


              **EEA / BBSA (policy in `eea_requirements.rb`):** In-scope
              individuals and UBOs need **both** a valid national-ID-type entry
              and a valid TIN per [EEA updated
              requirements](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements).
              In-scope businesses need business registration **and** business
              tax ID types per country tables there. **TIN issuing country**
              must match residence (individuals) or incorporation (businesses).
              **Foreign tax** outside the incorporation country: set
              `has_foreign_tax_registration` on the business customer and add
              TIN objects per jurisdiction ([foreign tax / tax
              residency](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements#tax-residency-status-foreign-tax-registry)).
            enum:
              - drivers_license
              - matriculate_id
              - military_id
              - national_id
              - passport
              - permanent_residency_id
              - state_or_provincial_id
              - visa
              - abn
              - acn
              - ahv
              - ak
              - aom
              - arbn
              - avs
              - bc
              - bce
              - bin
              - bir
              - bp
              - brn
              - bsn
              - bvn
              - cc
              - cdi
              - cedula_juridica
              - cf
              - cif
              - cin
              - cipc
              - cn
              - cnp
              - cnpj
              - cpf
              - cpr
              - crc
              - crib
              - crn
              - cro
              - cui
              - cuil
              - curp
              - cuit
              - cvr
              - edrpou
              - ein
              - embg
              - emirates_id
              - en
              - fin
              - fn
              - gstin
              - gui
              - hetu
              - hkid
              - hn
              - ic
              - ico
              - id
              - id_broj
              - idno
              - idnp
              - idnr
              - if
              - iin
              - ik
              - inn
              - ird
              - itin
              - itr
              - iva
              - jmbg
              - kbo
              - kvk
              - matricule
              - mf
              - mn
              - ms
              - mst
              - nic
              - nicn
              - nie
              - nif
              - nin
              - nino
              - nip
              - nipc
              - nipt
              - nit
              - npwp
              - nric
              - nrn
              - nrt
              - ntn
              - nuit
              - nzbn
              - oib
              - orgnr
              - other
              - pan
              - partita_iva
              - pesel
              - pib
              - pin
              - pk
              - ppsn
              - qid
              - rc
              - regon
              - rfc
              - ricn
              - rif
              - rn
              - rnc
              - rnokpp
              - rp
              - rrn
              - rtn
              - ruc
              - rut
              - si
              - sin
              - siren
              - siret
              - spi
              - ssm
              - ssn
              - steuer_id
              - strn
              - tckn
              - tfn
              - tin
              - tpin
              - trn
              - ucn
              - uen
              - uic
              - uid
              - usc
              - ust_idnr
              - utr
              - vat
              - vkn
              - voen
              - y_tunnus
          issuing_country:
            type: string
            description: >-
              The ISO 3166-1 (three-character) country code that issued the
              provided document.
          number:
            type: string
            description: >-
              The unique identifier of the document. Required if this document
              is being used as a tax identification number (e.g., you are
              providing a passport or national_id with no other identification).
          description:
            type: string
            description: >-
              A description describing the provided document. This field is
              required when `other` is selected.
          expiration:
            type: string
            description: The expiration date of the given document in yyyy-mm-dd format.
          image_front:
            type: string
            description: >
              This field is optionally accepted for tax_id types, but required
              for government_id types. Base64 encoded image* of the front side
              of the provided document, following the data-uri scheme i.e.
              data:image/[type];base64,[base_64_encoded_file_contents], with a
              minimum size of 200px x 200px \n\n*Maximum File Size:
              15MB\n\n*Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif


              _Note: When combined with an `image_back`, the combined size of
              both images must not exceed 24MB._
          image_back:
            type: string
            description: >
              Base64 encoded image* of the back side of the provided document,
              following the data-uri scheme i.e.
              data:image/[type];base64,[base_64_encoded_file_contents], with a
              minimum size of 200px x 200px \n\n*Maximum File Size:
              15MB\n\n*Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif


              _Note: When combined with an `image_front`, the combined size of
              both images must not exceed 24MB._
    PlaceOfBirthInput:
      type: object
      description: >
        Country (and optionally city) of birth. **EEA / BBSA in-scope
        customers:** supply when onboarding individuals or associated persons
        under the [EEA updated
        requirements](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements#country-of-birth-and-city-of-birth).
        This is a sparse address — no street address. At least `country` should
        be present when the object is sent; `city` is recommended and will be
        required by EU law in 2027.
      properties:
        country:
          type: string
          minLength: 3
          maxLength: 3
          description: ISO 3166-1 alpha-3 country code for the place of birth.
        city:
          type: string
          minLength: 1
          description: City of birth (recommended for EEA).
    TransferInitiationAuthFactor:
      type: object
      required:
        - category
        - authenticated_at
        - reference
      properties:
        category:
          description: >-
            The type of authentication factor used. Must be one of: `knowledge`
            (something only the user knows, e.g. a PIN or password),
            `possession` (something only the user has, e.g. a phone receiving an
            OTP or a hardware token), or `inherence` (something the user is,
            e.g. a fingerprint or face scan). When `outcome` is `sca_used`, the
            two factors in `auth_factors` must belong to two different
            categories.
          type: string
          enum:
            - knowledge
            - possession
            - inherence
        authenticated_at:
          description: The ISO 8601 timestamp when this factor was authenticated.
          type: string
          format: date-time
        reference:
          description: >-
            Your internal identifier for this authentication event (e.g. a
            session ID, transaction ID, or audit log reference). Used for
            reconciliation; Bridge does not validate its format.
          type: string
  examples:
    AchOnrampTransferResponse:
      summary: A successful ACH onramp transfer (ACH to crypto)
      value:
        id: 00000000-0000-0000-0000-000000000003
        client_reference_id: client_transfer_id_123
        state: pending
        on_behalf_of: 00000000-0000-0000-0000-000000000001
        amount: '75.0'
        developer_fee: '0.0'
        source:
          payment_rail: ach_push
          currency: usd
          external_account_id: null
          description: ACH description, if available
        destination:
          payment_rail: ethereum
          currency: usdc
          to_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        source_deposit_instructions:
          payment_rail: ach_push
          amount: '75.0'
          currency: usd
          deposit_message: BVI7depositmessage
          bank_name: Bank name
          bank_address: Bank address
          bank_routing_number: '123456789'
          bank_account_number: '1234567890'
          bank_beneficiary_name: Bank beneficiary
          bank_beneficiary_address: Bank beneficiary address
        receipt:
          initial_amount: '75.0'
          developer_fee: '0.0'
          exchange_fee: '0.0'
          subtotal_amount: '75.0'
          gas_fee: '0.0'
          final_amount: '75.0'
          url: >-
            https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000
        created_at: '2020-01-01T00:00:00.000Z'
        updated_at: '2020-01-02T00:00:00.000Z'
    AchOfframpTransferResponse:
      summary: A successful ACH offramp transfer (crypto to ACH)
      value:
        id: 00000000-0000-0000-0000-000000000003
        client_reference_id: client_transfer_id_123
        state: awaiting_funds
        on_behalf_of: 00000000-0000-0000-0000-000000000001
        amount: '75.0'
        developer_fee: '0.0'
        source:
          payment_rail: ethereum
          currency: usdc
          from_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        destination:
          payment_rail: ach
          currency: usd
          external_account_id: 00000000-0000-0000-0000-000000000002
        source_deposit_instructions:
          payment_rail: ethereum
          amount: '75.0'
          currency: usdc
          from_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
          to_address: '0xb794f5ea0ba39494ce839613fffba74279579268'
        receipt:
          initial_amount: '75.0'
          developer_fee: '0.0'
          exchange_fee: '0.0'
          subtotal_amount: '75.0'
          gas_fe: '0.0'
          final_amount: '75.0'
          url: >-
            https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000
        created_at: '2020-01-01T00:00:00.000Z'
        updated_at: '2020-01-02T00:00:00.000Z'
    AchOfframpWithMemoTransferResponse:
      summary: A successful ACH offramp transfer with memo (Tron/Stellar to ACH)
      value:
        id: 00000000-0000-0000-0000-000000000003
        client_reference_id: client_transfer_id_123
        state: awaiting_funds
        on_behalf_of: 00000000-0000-0000-0000-000000000001
        amount: '75.0'
        developer_fee: '0.0'
        source:
          payment_rail: tron
          currency: usdt
          from_address: TFCVwYhQxMXTeFGmWb45uMk1qsJ4DRMPVS
        destination:
          payment_rail: ach
          currency: usd
          external_account_id: 00000000-0000-0000-0000-000000000002
        source_deposit_instructions:
          payment_rail: tron
          amount: '75.0'
          currency: usdc
          from_address: TFCVwYhQxMXTeFGmWb45uMk1qsJ4DRMPVS
          to_address: TUEB3vjcMx7mPvc8DmeDLevZU3wEnkZ1zs
          blockchain_memo: BRGEXAMPLEMEMO
        receipt:
          initial_amount: '75.0'
          developer_fee: '0.0'
          exchange_fee: '0.0'
          subtotal_amount: '75.0'
          gas_fe: '0.0'
          final_amount: '75.0'
          url: >-
            https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000
        created_at: '2020-01-01T00:00:00.000Z'
        updated_at: '2020-01-02T00:00:00.000Z'
    WireOnrampTransferResponse:
      summary: A successful Wire onramp transfer (wire to crypto)
      value:
        id: 00000000-0000-0000-0000-000000000003
        client_reference_id: client_transfer_id_123
        state: pending
        on_behalf_of: 00000000-0000-0000-0000-000000000001
        amount: '75.0'
        developer_fee: '0.0'
        source:
          payment_rail: wire
          currency: usd
          external_account_id: null
          bank_beneficiary_name: Sender name, if available
          bank_beneficiary_address: Sender address, if available
          bank_routing_number: Sender routing, if available
          bank_name: Sender bank, if available
          imad: IMAD of incoming wire, if available
          omad: OMAD of incoming wire, if available (deprecated)
        destination:
          payment_rail: ethereum
          currency: usdc
          to_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        source_deposit_instructions:
          payment_rail: wire
          amount: '75.0'
          currency: usd
          deposit_message: BVI7depositmessage
          bank_name: Bank name
          bank_address: Bank address
          bank_routing_number: '123456789'
          bank_account_number: '1234567890'
          bank_beneficiary_name: Bank beneficiary
          bank_beneficiary_address: Bank beneficiary address
        receipt:
          initial_amount: '75.0'
          developer_fee: '0.0'
          exchange_fee: '0.0'
          subtotal_amount: '75.0'
          gas_fee: '0.0'
          final_amount: '75.0'
          url: >-
            https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000
        created_at: '2020-01-01T00:00:00.000Z'
        updated_at: '2020-01-02T00:00:00.000Z'
    WireOfframpTransferResponse:
      summary: A successful Wire offramp transfer (crypto to wire)
      value:
        id: 00000000-0000-0000-0000-000000000003
        client_reference_id: client_transfer_id_123
        state: awaiting_funds
        on_behalf_of: 00000000-0000-0000-0000-000000000001
        amount: '500.0'
        developer_fee: '0.0'
        source:
          payment_rail: ethereum
          currency: usdc
          from_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        destination:
          payment_rail: wire
          currency: usd
          external_account_id: 00000000-0000-0000-0000-000000000002
        source_deposit_instructions:
          payment_rail: ethereum
          amount: '500.0'
          currency: usdc
          from_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
          to_address: '0xb794f5ea0ba39494ce839613fffba74279579268'
        receipt:
          initial_amount: '500.0'
          developer_fee: '0.0'
          exchange_fee: '0.0'
          subtotal_amount: '500.0'
          gas_fee: '0.0'
          final_amount: '500.0'
          url: >-
            https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000
        created_at: '2020-01-01T00:00:00.000Z'
        updated_at: '2020-01-02T00:00:00.000Z'
    SepaOnrampTransferResponse:
      summary: A successful SEPA onramp transfer (SEPA to crypto)
      value:
        id: 00000000-0000-0000-0000-000000000003
        client_reference_id: client_transfer_id_123
        state: pending
        on_behalf_of: 00000000-0000-0000-0000-000000000001
        amount: '75.0'
        developer_fee: '0.0'
        source:
          payment_rail: sepa
          currency: eur
          external_account_id: null
        destination:
          payment_rail: ethereum
          currency: usdc
          to_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        source_deposit_instructions:
          payment_rail: sepa
          amount: '75.0'
          currency: eur
          deposit_message: BRG7depositmessage
          bank_name: Bank name
          bank_address: Bank address
          iban: '123456789'
          bic: '1234567890'
          account_holder_name: Bank account holder name
        receipt:
          initial_amount: '75.0'
          developer_fee: '0.0'
          exchange_fee: '0.0'
          gas_fee: '0.0'
          url: >-
            https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000
        created_at: '2020-01-01T00:00:00.000Z'
        updated_at: '2020-01-02T00:00:00.000Z'
    SepaOfframpTransferResponse:
      summary: A successful SEPA offramp transfer (crypto to SEPA)
      value:
        id: 00000000-0000-0000-0000-000000000003
        client_reference_id: client_transfer_id_123
        state: awaiting_funds
        on_behalf_of: 00000000-0000-0000-0000-000000000001
        amount: '75.0'
        developer_fee: '0.0'
        source:
          payment_rail: ethereum
          currency: usdc
          from_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        destination:
          payment_rail: sepa
          currency: eur
          external_account_id: 00000000-0000-0000-0000-000000000002
          sepa_reference: SEPA reference
        source_deposit_instructions:
          payment_rail: ethereum
          amount: '75.0'
          currency: usdc
          from_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
          to_address: '0xb794f5ea0ba39494ce839613fffba74279579268'
        receipt:
          initial_amount: '75.0'
          developer_fee: '0.0'
          exchange_fee: '0.0'
          subtotal_amount: '75.0'
          gas_fe: '0.0'
          final_amount: '68.27'
          url: >-
            https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000
        created_at: '2020-01-01T00:00:00.000Z'
        updated_at: '2020-01-02T00:00:00.000Z'
    PixOnrampTransferResponse:
      summary: A successful Pix onramp transfer (Pix to crypto)
      value:
        id: 00000000-0000-0000-0000-000000000003
        client_reference_id: client_transfer_id_123
        state: pending
        on_behalf_of: 00000000-0000-0000-0000-000000000001
        amount: '75.0'
        developer_fee: '0.0'
        source:
          payment_rail: pix
          currency: brl
          external_account_id: null
          description: Pix transfer description, if available
        destination:
          payment_rail: ethereum
          currency: usdc
          to_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        source_deposit_instructions:
          payment_rail: pix
          amount: '75.0'
          currency: brl
          deposit_message: BRG7depositmessage
          pix_key: '12345678901'
          account_holder_name: João Silva
        receipt:
          initial_amount: '75.0'
          developer_fee: '0.0'
          exchange_fee: '0.0'
          subtotal_amount: '75.0'
          gas_fee: '0.0'
          final_amount: '68.50'
          url: >-
            https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000
        created_at: '2020-01-01T00:00:00.000Z'
        updated_at: '2020-01-02T00:00:00.000Z'
    PixOfframpTransferResponse:
      summary: A successful Pix offramp transfer (crypto to Pix)
      value:
        id: 00000000-0000-0000-0000-000000000003
        client_reference_id: client_transfer_id_123
        state: awaiting_funds
        on_behalf_of: 00000000-0000-0000-0000-000000000001
        amount: '75.0'
        developer_fee: '0.0'
        source:
          payment_rail: ethereum
          currency: usdc
          from_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        destination:
          payment_rail: pix
          currency: brl
          external_account_id: 00000000-0000-0000-0000-000000000002
          reference: Pix payment reference
          transaction_id: E12345678202501011230ABCDEFGHIJK
          sending_institution_name: Woovi Instituição de Pagamento LTDA
        source_deposit_instructions:
          payment_rail: ethereum
          amount: '75.0'
          currency: usdc
          from_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
          to_address: '0xb794f5ea0ba39494ce839613fffba74279579268'
        receipt:
          initial_amount: '75.0'
          developer_fee: '0.0'
          exchange_fee: '0.0'
          subtotal_amount: '75.0'
          gas_fee: '0.0'
          final_amount: '68.50'
          url: >-
            https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000
        created_at: '2020-01-01T00:00:00.000Z'
        updated_at: '2020-01-02T00:00:00.000Z'
    SpeiOnrampTransferResponse:
      summary: A successful SPEI onramp transfer (SPEI to crypto)
      value:
        id: 00000000-0000-0000-0000-000000000003
        client_reference_id: client_transfer_id_123
        state: pending
        on_behalf_of: 00000000-0000-0000-0000-000000000001
        amount: '500.0'
        developer_fee: '0.0'
        source:
          payment_rail: spei
          currency: mxn
          external_account_id: null
          clabe: '646180546700000164'
          tracking_number: '1234567890123456789012345678'
          sender_name: Sender Business Name
          reference: Payment reference
        destination:
          payment_rail: ethereum
          currency: usdc
          to_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        source_deposit_instructions:
          payment_rail: spei
          amount: '500.0'
          currency: mxn
          deposit_message: MXN7depositmessage
          clabe: '646180115400000007'
          account_holder_name: Bridge Developer Name
          bank_name: STP
        receipt:
          initial_amount: '500.0'
          developer_fee: '0.0'
          exchange_fee: '0.0'
          subtotal_amount: '500.0'
          gas_fee: '0.0'
          final_amount: '24.88'
          url: >-
            https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000
        created_at: '2020-01-01T00:00:00.000Z'
        updated_at: '2020-01-02T00:00:00.000Z'
    SpeiOfframpTransferResponse:
      summary: A successful SPEI offramp transfer (crypto to SPEI)
      value:
        id: 00000000-0000-0000-0000-000000000003
        client_reference_id: client_transfer_id_123
        state: awaiting_funds
        on_behalf_of: 00000000-0000-0000-0000-000000000001
        amount: '75.0'
        developer_fee: '0.0'
        source:
          payment_rail: ethereum
          currency: usdc
          from_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        destination:
          payment_rail: spei
          currency: mxn
          external_account_id: 00000000-0000-0000-0000-000000000002
          spei_reference: SPEI reference
          tracking_number: '1234567890123456789012345678'
          sending_institution_name: Sistema de Transferencias y Pagos STP, S.A. de C.V.
        source_deposit_instructions:
          payment_rail: ethereum
          amount: '75.0'
          currency: usdc
          from_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
          to_address: '0xb794f5ea0ba39494ce839613fffba74279579268'
        receipt:
          initial_amount: '75.0'
          developer_fee: '0.0'
          exchange_fee: '0.0'
          subtotal_amount: '75.0'
          gas_fee: '0.0'
          final_amount: '1492.50'
          url: >-
            https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000
        created_at: '2020-01-01T00:00:00.000Z'
        updated_at: '2020-01-02T00:00:00.000Z'
    BreBOnrampTransferResponse:
      summary: A successful Bre-B onramp transfer (COP to crypto)
      value:
        id: 00000000-0000-0000-0000-000000000005
        state: awaiting_funds
        on_behalf_of: 00000000-0000-0000-0000-000000000001
        amount: '5000000.0'
        developer_fee: '0.0'
        source:
          payment_rail: bre_b
          currency: cop
        destination:
          payment_rail: ethereum
          currency: usdc
          to_address: '0xdeadbeef'
        source_deposit_instructions:
          payment_rail: bre_b
          amount: '5000000.0'
          currency: cop
          deposit_message: COP7depositmessage
          bre_b_key: '12345678901234567890'
          account_holder_name: Bridge Developer Name
        created_at: '2020-01-01T00:00:00.000Z'
        updated_at: '2020-01-02T00:00:00.000Z'
    BreBOfframpTransferResponse:
      summary: A successful Bre-B offramp transfer (crypto to COP)
      value:
        id: 00000000-0000-0000-0000-000000000004
        client_reference_id: client_transfer_id_456
        state: awaiting_funds
        on_behalf_of: 00000000-0000-0000-0000-000000000001
        amount: '100.0'
        developer_fee: '0.0'
        source:
          payment_rail: ethereum
          currency: usdc
          from_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        destination:
          payment_rail: bre_b
          currency: cop
          external_account_id: 00000000-0000-0000-0000-000000000002
        source_deposit_instructions:
          payment_rail: ethereum
          amount: '100.0'
          currency: usdc
          from_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
          to_address: '0xb794f5ea0ba39494ce839613fffba74279579268'
        receipt:
          initial_amount: '100.0'
          developer_fee: '0.0'
          exchange_fee: '0.0'
          subtotal_amount: '100.0'
          gas_fee: '0.0'
          final_amount: '420000.0'
          url: >-
            https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000
        created_at: '2020-01-01T00:00:00.000Z'
        updated_at: '2020-01-02T00:00:00.000Z'
    CoBankTransferOnrampTransferResponse:
      summary: A successful Colombian bank transfer onramp (COP to crypto)
      value:
        id: 00000000-0000-0000-0000-000000000006
        state: awaiting_funds
        on_behalf_of: 00000000-0000-0000-0000-000000000001
        amount: '5000000.0'
        developer_fee: '0.0'
        source:
          payment_rail: co_bank_transfer
          currency: cop
          co_bank_transfer:
            sender_data:
              full_name: María López
              document_type: cc
              document_number: '***7890'
              email: maria@example.com
              phone_number: '+573001234567'
        destination:
          payment_rail: ethereum
          currency: usdc
          to_address: '0xdeadbeef'
        source_deposit_instructions:
          payment_rail: co_bank_transfer
          amount: '5000000.0'
          currency: cop
          start_url: https://example.com/co-bank-transfer/pay/abc123
          redirect_url: https://merchant.example.com/return
          expires_at: '2026-05-01T00:30:00.000Z'
          account_holder_name: Bridge Developer Name
        created_at: '2020-01-01T00:00:00.000Z'
        updated_at: '2020-01-02T00:00:00.000Z'
    CoBankTransferOfframpTransferResponse:
      summary: A successful Colombian bank transfer offramp (crypto to COP)
      value:
        id: 00000000-0000-0000-0000-000000000007
        state: awaiting_funds
        on_behalf_of: 00000000-0000-0000-0000-000000000001
        amount: '100.0'
        developer_fee: '0.0'
        source:
          payment_rail: ethereum
          currency: usdc
          from_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
        destination:
          payment_rail: co_bank_transfer
          currency: cop
          external_account_id: 00000000-0000-0000-0000-000000000002
        source_deposit_instructions:
          payment_rail: ethereum
          amount: '100.0'
          currency: usdc
          from_address: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
          to_address: '0xb794f5ea0ba39494ce839613fffba74279579268'
        receipt:
          initial_amount: '100.0'
          developer_fee: '0.0'
          exchange_fee: '0.0'
          subtotal_amount: '100.0'
          gas_fee: '0.0'
          final_amount: '420000.0'
          url: >-
            https://dashboard.bridge.xyz/transaction/00000000-0000-0000-0000-000000000000/receipt/00000000-0000-0000-0000-000000000000
        created_at: '2020-01-01T00:00:00.000Z'
        updated_at: '2020-01-02T00:00:00.000Z'
    ValidTransferRouteResponse:
      summary: A valid transfer route response
      value:
        state: valid
        notes:
          - This is a valid transfer route
  responses:
    BadRequestError:
      description: Request containing missing or invalid parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            BadCustomerRequestErrorExample:
              summary: Bad customer request
              value:
                code: bad_customer_request
                message: fields missing from customer body.
                name: first_name,ssn
    AuthenticationError:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            MissingTokenError:
              summary: No Api-Key header
              description: The header may be missing or misspelled.
              value:
                code: required
                location: header
                name: Api-Key
                message: Missing Api-Key header
            InvalidTokenError:
              summary: Invalid key in Api-Key header
              value:
                code: invalid
                location: header
                name: Api-Key
                message: Invalid Api-Key header
    TransferAmlError:
      description: >-
        The transfer has failed due to an AML violation (anti-money
        laundering).  Reach out to Bridge for more information
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            TransferAmlErrorExample:
              summary: An AML violation error response
              value:
                code: aml_violation
                message: Failed AML Screening
    ResourceStateConflictError:
      description: >-
        The requested resource is temporarily in a conflicting state. Retry the
        same request later with the same idempotency key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            ResourceStateConflictErrorExample:
              summary: Balance lock contention while creating a transfer
              value:
                code: resource_state_conflict
                message: >-
                  Another transfer or balance update is currently in progress
                  for this funding source. Please retry this request.
    UnexpectedError:
      description: Unexpected error. User may try and send the request again.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            UnexpectedError:
              summary: An unexpected error
              value:
                errors:
                  - code: unexpected
                    message: An expected error occurred, you may try again later
  securitySchemes:
    ApiKey:
      type: apiKey
      name: Api-Key
      in: header

````