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

# Create a new Deposit transaction

> Create a new Deposit transaction using the data provided in the request body.



## OpenAPI

````yaml https://sandbox-api.borderless.xyz/v1/api-json post /v1/deposits
openapi: 3.0.0
info:
  title: Borderless API
  description: The Borderless API documentation.
  version: '1.0'
  contact: {}
servers:
  - url: https://sandbox-api.borderless.xyz
security: []
tags: []
paths:
  /v1/deposits:
    post:
      tags:
        - Transaction / Deposits
      summary: Create a new Deposit transaction
      description: >-
        Create a new Deposit transaction using the data provided in the request
        body.
      operationId: DepositsController_deposit
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/DepositDto'
                  title: Deposit (crypto)
                - $ref: '#/components/schemas/DepositPfiDto'
                  title: Deposit (PFI fiat)
      responses:
        '201':
          description: Successfully created Deposit transaction data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionEntity'
        '400':
          description: The Deposit transaction data is invalid or incomplete.
      security:
        - bearer: []
components:
  schemas:
    DepositDto:
      type: object
      properties:
        amount:
          type: string
          description: >-
            The amount for the operation. For deposits, this is the fiat amount
            the user must contribute. For withdrawals, this is the amount of the
            asset to be withdrawn.
          example: '100.00'
          minLength: 1
        accountId:
          type: string
          description: >-
            The id of the account associated with the operation. For
            withdrawals, this is the account from which assets will be
            withdrawn. For deposits, this is the account where assets will be
            deposited.
          example: cm2c4x3cc000019stwv7um4zl
        developerFee:
          type: string
          description: An optional developer fee for the operation, if applicable
          example: '5.00'
        pfiName:
          description: >-
            Specific PFI to use for this operation. If omitted, the
            organization's default PFI is used.
          allOf:
            - $ref: '#/components/schemas/PFIName'
        fiat:
          description: The fiat currency used for the deposit operation.
          example: USD
          allOf:
            - $ref: '#/components/schemas/FiatCurrencyId'
        country:
          description: >-
            The country code in ISO-3166-2 format for the region where the
            deposit is performed.
          example: US
          allOf:
            - $ref: '#/components/schemas/CountryCode'
        paymentMethod:
          description: >-
            The payment method used for the deposit transaction. Learn more at
            [Payment Methods
            Documentation](https://docs.buildborderless.com/docs/get-deposit-options).
          example: ACH
          allOf:
            - $ref: '#/components/schemas/PaymentMethod'
        source:
          description: >-
            The details of the deposit source. Some deposit payment methods
            (e.g. mobile money) require you to specify source account info.
          oneOf:
            - $ref: '#/components/schemas/DepositMobileMoneySourceDto'
              title: MobileMoney source.
          allOf:
            - $ref: '#/components/schemas/DepositMobileMoneySourceDto'
        redirectUrl:
          type: string
          format: uri
          description: >-
            The URL to redirect the user after the deposit is completed. This
            url is used: MobileMoney and EFT (South Africa); PSE (Colombia)
            payment methods. Required for providers that collect through a
            hosted payment page.
        paymentInstructionId:
          type: string
          description: >-
            The ID of the payment instruction containing bank details for the
            deposit. Required for certain payment providers (e.g. Onmeta).
          example: cm2c4x3cc000019stwv7um4zl
        counterPartyIdentityId:
          type: string
          description: >-
            The ID of the identity on whose behalf the deposit is being
            initiated. Provide this only if the deposit should be linked to a
            different identity than the one associated with the account. If not
            specified, the deposit will be initiated for the identity tied to
            the account by default.
          example: cm2c4x3cc000019stwv7um4zl
        businessIdentityId:
          type: string
          deprecated: true
          description: >-
            Deprecated: ignored. The payment-provider credentials are selected
            by `counterPartyIdentityId`.
          example: cm2c4x3cc000019stwv7um4zl
        documents:
          description: >-
            Documents may be required by certain countries or payment providers
            (for example, an invoice, contract, or agreement)
          type: array
          items:
            $ref: '#/components/schemas/TransactionDocumentDto'
        quoteId:
          type: string
          description: >-
            The id of an executable quote previously created via `POST
            /deposits/quotes`. When provided, the deposit is initiated using the
            locked exchange rate and fees from that quote, as long as the quote
            has not expired.
          example: cm2c4x3cc000019stwv7um4zl
        asset:
          description: >-
            The token tied to a specific blockchain for the deposit. See the
            list of [supported deposit
            assets](https://docs.buildborderless.com/docs/get-deposit-options).
          example: BTC
          allOf:
            - $ref: '#/components/schemas/AssetId'
      required:
        - amount
        - accountId
        - fiat
        - country
        - paymentMethod
        - asset
    DepositPfiDto:
      type: object
      properties:
        amount:
          type: string
          description: >-
            The amount for the operation. For deposits, this is the fiat amount
            the user must contribute. For withdrawals, this is the amount of the
            asset to be withdrawn.
          example: '100.00'
          minLength: 1
        accountId:
          type: string
          description: >-
            The id of the account associated with the operation. For
            withdrawals, this is the account from which assets will be
            withdrawn. For deposits, this is the account where assets will be
            deposited.
          example: cm2c4x3cc000019stwv7um4zl
        developerFee:
          type: string
          description: An optional developer fee for the operation, if applicable
          example: '5.00'
        pfiName:
          description: >-
            Specific PFI to use for this operation. If omitted, the
            organization's default PFI is used.
          allOf:
            - $ref: '#/components/schemas/PFIName'
        fiat:
          description: The fiat currency used for the deposit operation.
          example: USD
          allOf:
            - $ref: '#/components/schemas/FiatCurrencyId'
        country:
          description: >-
            The country code in ISO-3166-2 format for the region where the
            deposit is performed.
          example: US
          allOf:
            - $ref: '#/components/schemas/CountryCode'
        paymentMethod:
          description: >-
            The payment method used for the deposit transaction. Learn more at
            [Payment Methods
            Documentation](https://docs.buildborderless.com/docs/get-deposit-options).
          example: ACH
          allOf:
            - $ref: '#/components/schemas/PaymentMethod'
        source:
          description: >-
            The details of the deposit source. Some deposit payment methods
            (e.g. mobile money) require you to specify source account info.
          oneOf:
            - $ref: '#/components/schemas/DepositMobileMoneySourceDto'
              title: MobileMoney source.
          allOf:
            - $ref: '#/components/schemas/DepositMobileMoneySourceDto'
        redirectUrl:
          type: string
          format: uri
          description: >-
            The URL to redirect the user after the deposit is completed. This
            url is used: MobileMoney and EFT (South Africa); PSE (Colombia)
            payment methods. Required for providers that collect through a
            hosted payment page.
        paymentInstructionId:
          type: string
          description: >-
            The ID of the payment instruction containing bank details for the
            deposit. Required for certain payment providers (e.g. Onmeta).
          example: cm2c4x3cc000019stwv7um4zl
        counterPartyIdentityId:
          type: string
          description: >-
            The ID of the identity on whose behalf the deposit is being
            initiated. Provide this only if the deposit should be linked to a
            different identity than the one associated with the account. If not
            specified, the deposit will be initiated for the identity tied to
            the account by default.
          example: cm2c4x3cc000019stwv7um4zl
        businessIdentityId:
          type: string
          deprecated: true
          description: >-
            Deprecated: ignored. The payment-provider credentials are selected
            by `counterPartyIdentityId`.
          example: cm2c4x3cc000019stwv7um4zl
        documents:
          description: >-
            Documents may be required by certain countries or payment providers
            (for example, an invoice, contract, or agreement)
          type: array
          items:
            $ref: '#/components/schemas/TransactionDocumentDto'
        quoteId:
          type: string
          description: >-
            The id of an executable quote previously created via `POST
            /deposits/quotes`. When provided, the deposit is initiated using the
            locked exchange rate and fees from that quote, as long as the quote
            has not expired.
          example: cm2c4x3cc000019stwv7um4zl
      required:
        - amount
        - accountId
        - fiat
        - country
        - paymentMethod
    TransactionEntity:
      type: object
      properties:
        id:
          type: string
        type:
          allOf:
            - $ref: '#/components/schemas/TransactionType'
        status:
          allOf:
            - $ref: '#/components/schemas/TransactionStatus'
        pfiName:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/PFIName'
        country:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/CountryCode'
        source:
          $ref: '#/components/schemas/TransactionSourceEntity'
        destination:
          $ref: '#/components/schemas/TransactionDestinationEntity'
        instructions:
          type: object
          additionalProperties: true
          nullable: true
          deprecated: true
          description: >-
            Deprecated. Use `withdrawalOnchainInstruction` or
            `depositInstruction` instead.
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        txHash:
          type: array
          items:
            type: string
        externalTransactions:
          type: array
          items:
            $ref: '#/components/schemas/ExternalTransactionEntity'
        feeAmount:
          $ref: '#/components/schemas/DecimalNumber'
        networkFee:
          type: string
          nullable: true
        failureReason:
          type: object
          additionalProperties: true
          nullable: true
          example:
            details:
              - path: paymentInstruction
                pfiErrorMessage: >-
                  bank.transitNumber must match
                  /^([0-9]{3}-[0-9]{5}|[0-9]{5}-[0-9]{3})$/ regular expression
            message: Validation error from PFI
        depositInstruction:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/DepositInstructionEntity'
        destinationPaymentInstruction:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/PaymentInstructionEntity'
        withdrawalOnchainInstruction:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/OnchainInstructionEntity'
        counterPartyIdentityId:
          type: string
          nullable: true
        virtualAccountId:
          type: string
          nullable: true
        liquidationAddressId:
          type: string
          nullable: true
        uploadedDocumentTypes:
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/TransactionDocumentType'
        documentsRequired:
          type: boolean
          description: >-
            Whether the payment provider requires a transaction document (e.g.
            an invoice) before the payment can proceed.
        reconciliationStatus:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/ReconciliationStatus'
        reconciliationWasRegressed:
          type: boolean
        refundResolution:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/RefundResolutionEntity'
        rateGrade:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/RateGrade'
        rateStatus:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/RateStatus'
        rateConfidenceTier:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/RateConfidenceTier'
        lastKnownGrade:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/RateGrade'
        staleSince:
          format: date-time
          type: string
          nullable: true
        pfiTransactionSource:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/OrphanedPfiTransactionSource'
        importBenchmark:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/ImportBenchmarkEntity'
        developerFeeAmount:
          $ref: '#/components/schemas/DecimalNumber'
      required:
        - id
        - type
        - status
        - pfiName
        - country
        - source
        - destination
        - instructions
        - createdAt
        - updatedAt
        - txHash
        - externalTransactions
        - feeAmount
        - networkFee
        - failureReason
        - depositInstruction
        - destinationPaymentInstruction
        - withdrawalOnchainInstruction
        - counterPartyIdentityId
        - virtualAccountId
        - liquidationAddressId
        - uploadedDocumentTypes
        - documentsRequired
        - reconciliationStatus
        - reconciliationWasRegressed
        - rateGrade
        - rateStatus
        - rateConfidenceTier
        - lastKnownGrade
        - staleSince
        - pfiTransactionSource
        - developerFeeAmount
    PFIName:
      type: string
      enum:
        - Bridge
        - Koywe
        - Kotanipay
        - Hercle
        - Bitso
        - Yellowcard
        - TraceFinance
        - HoneyCoin
        - BlindPay
        - Finity
        - Infinia
        - Walapay
        - Abra
        - Yativo
        - Capa
        - Bivo
        - Cobre
        - Avenia
        - Brale
        - BVNK
        - CoinsPH
        - Iron
        - Enigma
        - Kira
        - TripleA
        - Onmeta
        - Alfred
        - Tazapay
        - Demo
        - CrissCross
        - Pockyt
    FiatCurrencyId:
      type: string
      enum:
        - USD
        - EUR
        - BRL
        - ARS
        - MXN
        - COP
        - CLP
        - PEN
        - PYG
        - DOP
        - UYU
        - BOB
        - CRC
        - GTQ
        - BWP
        - CDF
        - GHS
        - KES
        - MWK
        - NGN
        - RWF
        - ZAR
        - TZS
        - UGX
        - ZMW
        - XOF
        - XAF
        - AUD
        - BDT
        - CAD
        - INR
        - JPY
        - NPR
        - PKR
        - PHP
        - SGD
        - GBP
        - CNY
        - HKD
        - CNH
        - IDR
        - MYR
        - KRW
        - LKR
        - THB
        - TRY
        - VND
        - CZK
        - HUF
        - DKK
        - NOK
        - PLN
        - RON
        - RSD
        - SEK
        - CHF
        - AED
        - SAR
        - QAR
        - ILS
        - EGP
        - JOD
        - HNL
        - JMD
        - NZD
        - DZD
        - GMD
        - GNF
        - HTG
        - MAD
        - TND
      description: Fiat currency identifier (e.g. USD, EUR)
    CountryCode:
      type: string
      enum:
        - AF
        - AL
        - DZ
        - AS
        - AD
        - AO
        - AI
        - AQ
        - AG
        - AR
        - AM
        - AW
        - AU
        - AT
        - AZ
        - BS
        - BH
        - BD
        - BB
        - BY
        - BE
        - BZ
        - BJ
        - BM
        - BT
        - BO
        - BQ
        - BA
        - BW
        - BV
        - BR
        - IO
        - BN
        - BG
        - BF
        - BI
        - CV
        - KH
        - CM
        - CA
        - KY
        - CF
        - TD
        - CL
        - CN
        - CX
        - CC
        - CO
        - KM
        - CD
        - CG
        - CK
        - CR
        - HR
        - CU
        - CW
        - CY
        - CZ
        - CI
        - DK
        - DJ
        - DM
        - DO
        - EC
        - EG
        - SV
        - GQ
        - ER
        - EE
        - SZ
        - ET
        - FK
        - FO
        - FJ
        - FI
        - FR
        - GF
        - PF
        - TF
        - GA
        - GM
        - GE
        - DE
        - GH
        - GI
        - GR
        - GL
        - GD
        - GP
        - GU
        - GT
        - GG
        - GN
        - GW
        - GY
        - HT
        - HM
        - VA
        - HN
        - HK
        - HU
        - IS
        - IN
        - ID
        - IR
        - IQ
        - IE
        - IM
        - IL
        - IT
        - JM
        - JP
        - JE
        - JO
        - KZ
        - KE
        - KI
        - KP
        - KR
        - KW
        - KG
        - LA
        - LV
        - LB
        - LS
        - LR
        - LY
        - LI
        - LT
        - LU
        - MO
        - MG
        - MW
        - MY
        - MV
        - ML
        - MT
        - MH
        - MQ
        - MR
        - MU
        - YT
        - MX
        - FM
        - MD
        - MC
        - MN
        - ME
        - MS
        - MA
        - MZ
        - MM
        - NA
        - NR
        - NP
        - NL
        - NC
        - NZ
        - NI
        - NE
        - NG
        - NU
        - NF
        - MP
        - 'NO'
        - OM
        - PK
        - PW
        - PS
        - PA
        - PG
        - PY
        - PE
        - PH
        - PN
        - PL
        - PT
        - PR
        - QA
        - MK
        - RO
        - RU
        - RW
        - RE
        - BL
        - SH
        - KN
        - LC
        - MF
        - PM
        - VC
        - WS
        - SM
        - ST
        - SA
        - SN
        - RS
        - SC
        - SL
        - SG
        - SX
        - SK
        - SI
        - SB
        - SO
        - ZA
        - GS
        - SS
        - ES
        - LK
        - SD
        - SR
        - SJ
        - SE
        - CH
        - SY
        - TW
        - TJ
        - TZ
        - TH
        - TL
        - TG
        - TK
        - TO
        - TT
        - TN
        - TR
        - TM
        - TC
        - TV
        - UG
        - UA
        - AE
        - GB
        - UM
        - US
        - UY
        - UZ
        - VU
        - VE
        - VN
        - VG
        - VI
        - WF
        - EH
        - YE
        - ZM
        - ZW
        - AX
        - ZZ
    PaymentMethod:
      type: string
      enum:
        - ACH
        - Wire
        - Sepa
        - Swift
        - Card
        - MobileMoney
        - PIX
        - TED
        - PSE
        - SPEI
        - COELSA
        - Transfers30
        - SPAV
        - TEF
        - CCE
        - SPI
        - LBTR
        - SINPE
        - Transfer365
        - NIP
        - GhIPSS
        - BankTransfer
        - EFT
        - RTP
        - BECS
        - FPS
        - IMPS_FIRC
        - Breb
        - NPSS
        - MADA
        - ZAHAV
        - IBFT
        - SIC
        - Alipay
        - Tips
        - Napas
        - BiFast
        - FastSg
        - Instapay
        - Ipp
        - Giro
        - Elixir
        - FastRtp
        - TransFond
        - Nics
        - Cnaps
        - UnionPay
        - UPI
        - Onchain
    DepositMobileMoneySourceDto:
      type: object
      properties:
        phone:
          type: string
          minLength: 7
          maxLength: 20
          description: >-
            The phone number associated with the mobile money account. Required
            for MobileMoney.
          example: '+1234567890'
        networkSlug:
          type: string
          description: >-
            The ID of the network. It's an internal borderless id defining
            specific mobile money network provider.
        accountHolderName:
          type: string
          minLength: 1
          maxLength: 255
          description: The name of the account holder for the mobile money account
          example: John Doe
      required:
        - phone
        - networkSlug
        - accountHolderName
    TransactionDocumentDto:
      type: object
      properties:
        type:
          description: The type of the transaction document.
          example: Invoice
          allOf:
            - $ref: '#/components/schemas/TransactionDocumentType'
        content:
          type: string
          format: base64
          description: >-
            This document may be required by certain countries or payment
            providers. Supported MIME types (application/pdf, image/jpeg,
            image/jpg, image/png). Minimum resolution: 200x200px, maximum size:
            5MB.
          example: data:image/jpeg;base64,/9j/4AAQSkZJRg...
      required:
        - type
        - content
    AssetId:
      type: string
      enum:
        - POL
        - USDT_POLYGON
        - USDC_POLYGON
        - SBC_POLYGON
        - ETH
        - USDT_ETHEREUM
        - USDC_ETHEREUM
        - PYUSD_ETHEREUM
        - DAI_ETHEREUM
        - EURC_ETHEREUM
        - SBC_ETHEREUM
        - TRX
        - USDT_TRON
        - SBC_TRON
        - ETH_BASE
        - USDC_BASE
        - USDB_BASE
        - USDB_ETHEREUM
        - EURC_BASE
        - SBC_BASE
        - ETH_OPTIMISM
        - USDT_OPTIMISM
        - USDC_OPTIMISM
        - BTC
        - CELO
        - CUSD_CELO
        - USDC_CELO
        - SBC_CELO
        - SOL
        - USDC_SOLANA
        - USDT_SOLANA
        - PYUSD_SOLANA
        - USDP_SOLANA
        - EURC_SOLANA
        - SBC_SOLANA
    TransactionType:
      type: string
      enum:
        - Deposit
        - Withdrawal
        - Exchange
    TransactionStatus:
      type: string
      enum:
        - Submitted
        - Verifying
        - Orchestrating
        - Pending
        - Processing
        - AwaitingDocuments
        - Completed
        - Failed
        - Cancelled
        - Refunded
    TransactionSourceEntity:
      type: object
      properties:
        asset:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/AssetId'
        amount:
          type: string
          nullable: true
        fiatCurrency:
          type: string
          nullable: true
        paymentMethod:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/PaymentMethod'
        accountId:
          type: string
          nullable: true
        accountName:
          type: string
          nullable: true
        sender:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/TransactionSourceSenderEntity'
      required:
        - asset
        - amount
        - fiatCurrency
        - paymentMethod
        - accountId
        - accountName
        - sender
    TransactionDestinationEntity:
      type: object
      properties:
        asset:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/AssetId'
        amount:
          type: string
          nullable: true
        fiatCurrency:
          type: string
          nullable: true
        imad:
          type: string
          nullable: true
        reference:
          type: string
          nullable: true
        omad:
          type: string
          nullable: true
        uetr:
          type: string
          nullable: true
        traceNumber:
          type: string
          nullable: true
        externalAddress:
          type: string
          nullable: true
        accountId:
          type: string
          nullable: true
        accountName:
          type: string
          nullable: true
        paymentInstructionId:
          type: string
          nullable: true
      required:
        - asset
        - amount
        - fiatCurrency
        - imad
        - reference
        - omad
        - uetr
        - traceNumber
        - externalAddress
        - accountId
        - accountName
        - paymentInstructionId
    ExternalTransactionEntity:
      type: object
      properties:
        externalId:
          type: string
        provider:
          allOf:
            - $ref: '#/components/schemas/IntegrationProvider'
      required:
        - externalId
        - provider
    DecimalNumber:
      type: object
      properties: {}
    DepositInstructionEntity:
      type: object
      properties:
        paymentMethod:
          allOf:
            - $ref: '#/components/schemas/PaymentMethod'
        details:
          oneOf:
            - $ref: '#/components/schemas/USDepositDetailsEntity'
            - $ref: '#/components/schemas/SepaDepositDetailsEntity'
            - $ref: '#/components/schemas/PIXDepositDetailsEntity'
            - $ref: '#/components/schemas/LatAmDepositDetailsEntity'
            - $ref: '#/components/schemas/BankTransferDepositDetailsEntity'
            - $ref: '#/components/schemas/EFTDepositDetailsEntity'
            - $ref: '#/components/schemas/DefaultDetailsEntity'
      required:
        - paymentMethod
        - details
    PaymentInstructionEntity:
      type: object
      properties:
        id:
          type: string
        identityId:
          type: string
        name:
          type: string
        paymentMethod:
          allOf:
            - $ref: '#/components/schemas/PaymentMethod'
        currency:
          type: string
          nullable: true
          example: USD
        country:
          nullable: true
          example: US
          allOf:
            - $ref: '#/components/schemas/CountryCode'
        deleted:
          type: boolean
          default: false
        createdAt:
          format: date-time
          type: string
        details:
          oneOf:
            - $ref: '#/components/schemas/USDetailsEntity'
              title: US Details (ACH and Wire)
            - $ref: '#/components/schemas/IbanBankDetailsEntity'
              title: Iban Bank Details
            - $ref: '#/components/schemas/BankDetailsEntity'
              title: Bank Details
            - $ref: '#/components/schemas/IdentifierDetailsEntity'
              title: Identifier (PIX)
            - $ref: '#/components/schemas/BrebKeyDetailsEntity'
              title: Bre-B Key (Colombia)
            - $ref: '#/components/schemas/SepaDetailsEntity'
              title: SEPA (Europe)
            - $ref: '#/components/schemas/SwiftDetailsEntity'
              title: Swift Details
            - $ref: '#/components/schemas/MobileMoneyDetailsEntity'
              title: Mobile Money (Africa)
            - $ref: '#/components/schemas/UKFPSDetailsEntity'
              title: UK FPS (Sort Code + IBAN)
            - $ref: '#/components/schemas/OnchainDetailsEntity'
              title: Onchain (blockchain address)
      required:
        - id
        - identityId
        - name
        - paymentMethod
        - currency
        - country
        - deleted
        - createdAt
        - details
    OnchainInstructionEntity:
      type: object
      properties:
        id:
          type: string
        amount:
          type: string
          description: The amount for the onchain transaction.
          example: '100.00'
        asset:
          description: >-
            The token tied to a specific blockchain for the operation. See the
            list of [supported deposit
            assets](https://docs.buildborderless.com/docs/get-deposit-options)
            and [supported Withdrawal
            Assets](https://docs.buildborderless.com/docs/get-withdrawal-options#/).
          example: BTC
          allOf:
            - $ref: '#/components/schemas/AssetId'
        fromAddress:
          type: string
        toAddress:
          type: string
          nullable: true
          description: >-
            Where the funds go for a `Transfer`. Always null for an `Approval`,
            which has no destination — see `tokenAddress` and `spenderAddress`.
        spenderAddress:
          type: string
          nullable: true
          description: >-
            For an `Approval`, the party authorised to spend the funds. Null for
            a `Transfer`.
        tokenAddress:
          type: string
          nullable: true
          description: >-
            For an `Approval`, the token the allowance is granted on — the
            ERC-20 contract to call `approve` on, or the SPL mint. Never a
            destination for funds. Null for a `Transfer`.
        type:
          allOf:
            - $ref: '#/components/schemas/OnchainInstructionType'
        onchainInstructionTransaction:
          nullable: true
          deprecated: true
          description: >-
            Deprecated. The unsigned transaction is no longer generated
            automatically. Build it from this instruction's `asset`, `amount`
            and `fromAddress`, together with `toAddress` for a `Transfer` or
            `spenderAddress` for an `Approval`.
          type: object
          allOf:
            - $ref: '#/components/schemas/OnchainInstructionTransactionEntity'
      required:
        - id
        - amount
        - asset
        - fromAddress
        - toAddress
        - spenderAddress
        - tokenAddress
        - type
        - onchainInstructionTransaction
    TransactionDocumentType:
      type: string
      enum:
        - Invoice
        - Other
    ReconciliationStatus:
      type: string
      enum:
        - Matched
        - Mismatched
        - Missing
        - PfiError
    RefundResolutionEntity:
      type: object
      properties:
        supported:
          type: boolean
        requiresManualAction:
          type: boolean
        dispatchable:
          type: boolean
          description: >-
            Whether the refund plan can be dispatched now via POST
            /transactions/:id/refund.
        path:
          allOf:
            - $ref: '#/components/schemas/RefundPath'
        status:
          allOf:
            - $ref: '#/components/schemas/RefundPlanStatus'
        destinationSource:
          allOf:
            - $ref: '#/components/schemas/RefundDestinationSource'
        destination:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/RefundResolutionDestinationEntity'
        reason:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/RefundFailureReasonEntity'
        completedAt:
          format: date-time
          type: string
          nullable: true
        failedAt:
          format: date-time
          type: string
          nullable: true
        txHash:
          type: string
          nullable: true
          description: >-
            On-chain transaction hash of the settled refund. Null until the
            refund settles, and for refunds that settle off-chain.
      required:
        - supported
        - requiresManualAction
        - dispatchable
        - path
        - status
        - destinationSource
    RateGrade:
      type: string
      enum:
        - Competitive
        - InLine
        - OffMarket
    RateStatus:
      type: string
      enum:
        - Classified
        - Calibrating
        - Stale
        - NoRateProduced
        - Syncing
    RateConfidenceTier:
      type: string
      enum:
        - Strong
        - Standard
    OrphanedPfiTransactionSource:
      type: string
      enum:
        - Reconciliation
        - Import
        - CsvImport
    ImportBenchmarkEntity:
      type: object
      properties:
        benchmarkMean:
          type: string
          nullable: true
        benchmarkStddev:
          type: string
          nullable: true
        observationCount:
          type: number
          nullable: true
        deviation:
          type: string
          nullable: true
        bestRate:
          type: string
          nullable: true
        centerSourceLabel:
          type: string
          nullable: true
        anchorMode:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/AnchorMode'
        topOrgShare:
          type: string
          nullable: true
        bandWidened:
          type: string
          nullable: true
        methodologyVersion:
          type: string
          nullable: true
      required:
        - benchmarkMean
        - benchmarkStddev
        - observationCount
        - deviation
        - bestRate
        - centerSourceLabel
        - anchorMode
        - topOrgShare
        - bandWidened
        - methodologyVersion
    TransactionSourceSenderEntity:
      type: object
      properties:
        name:
          type: string
          nullable: true
        legalName:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        taxIdLast4:
          type: string
          nullable: true
        bankName:
          type: string
          nullable: true
        bankRoutingNumberLast4:
          type: string
          nullable: true
        bankAccountNumberLast4:
          type: string
          nullable: true
        accountNumberLast4:
          type: string
          nullable: true
        traceNumber:
          type: string
          nullable: true
        originatorName:
          type: string
          nullable: true
        beneficiaryName:
          type: string
          nullable: true
        wireMessage:
          type: string
          nullable: true
        imad:
          type: string
          nullable: true
        iban:
          type: string
          nullable: true
        ibanLast4:
          type: string
          nullable: true
        bic:
          type: string
          nullable: true
        sortCode:
          type: string
          nullable: true
        clabe:
          type: string
          nullable: true
        trackingNumber:
          type: string
          nullable: true
        reference:
          type: string
          nullable: true
        uetr:
          type: string
          nullable: true
        paymentScheme:
          type: string
          nullable: true
        recipientName:
          type: string
          nullable: true
      required:
        - name
        - legalName
        - description
        - taxIdLast4
        - bankName
        - bankRoutingNumberLast4
        - bankAccountNumberLast4
        - accountNumberLast4
        - traceNumber
        - originatorName
        - beneficiaryName
        - wireMessage
        - imad
        - iban
        - ibanLast4
        - bic
        - sortCode
        - clabe
        - trackingNumber
        - reference
        - uetr
        - paymentScheme
        - recipientName
    IntegrationProvider:
      type: string
      enum:
        - Standalone
        - MultiProvider
        - Dfns
        - Utila
        - Bridge
        - Koywe
        - Kotanipay
        - Manual
        - Blockchain
        - Hercle
        - Bitso
        - Yellowcard
        - TraceFinance
        - HoneyCoin
        - BlindPay
        - Finity
        - Ares
        - Infinia
        - Walapay
        - Abra
        - Yativo
        - Capa
        - Bivo
        - Cobre
        - Brale
        - Onmeta
        - Mastercard
        - Alfred
        - Tazapay
        - Demo
        - CrissCross
        - TripleA
        - Pockyt
    USDepositDetailsEntity:
      type: object
      properties:
        depositMessage:
          type: string
          description: BRGFR8EHMZRJ6MHVSEM4
        bankAccountNumber:
          type: string
          description: '11223344556677'
        bankRoutingNumber:
          type: string
          description: '123456789'
        bankBeneficiaryName:
          type: string
          description: Company Ventures Inc
        bankBeneficiaryAddress:
          type: string
          description: 1234 Elm St, Springfield, IL 12345
        bankName:
          type: string
          description: Bank of Nowhere
        bankAddress:
          type: string
          description: 1800 North Pole St., Orlando, FL 32801
        bic:
          type: string
          description: CHASUS33
      required:
        - depositMessage
        - bankAccountNumber
        - bankRoutingNumber
        - bankBeneficiaryName
        - bankBeneficiaryAddress
        - bankName
        - bankAddress
    SepaDepositDetailsEntity:
      type: object
      properties:
        depositMessage:
          type: string
          description: BRGFXKR2HU6P6ERDUBTR
        iban:
          type: string
          description: GB63MOCK00000003615430
        bic:
          type: string
          description: MOCKGB21
        accountHolderName:
          type: string
          description: Company Building Sp.z.o.o.
        bankName:
          type: string
          description: Bank of Nowhere
        bankAddress:
          type: string
          description: 1800 Nowhere Ave., London E41 2RF, United Kingdom
      required:
        - depositMessage
        - iban
        - bic
        - accountHolderName
        - bankName
        - bankAddress
    PIXDepositDetailsEntity:
      type: object
      properties:
        bankAccountNumber:
          type: string
          nullable: true
          description: Bank account number (e.g., "11223344556677").
          example: '11223344556677'
        bankBranchCode:
          type: string
          nullable: true
          description: Bank branch code (e.g., "1234").
          example: '1234'
        bankCode:
          type: string
          nullable: true
          description: Bank identification code (e.g., "002").
          example: '002'
        bankIspbCode:
          type: string
          nullable: true
          description: Bank ispb code (e.g., "12345432").
          example: '12345432'
        bankName:
          type: string
          nullable: true
          description: Name of the receiving bank (e.g., "Bank of Nowhere").
          example: Bank of Nowhere
        bankBeneficiaryName:
          type: string
          nullable: true
          description: Full legal name of the beneficiary who will receive the funds.
          example: John Smith
        bankBeneficiaryAddress:
          type: string
          nullable: true
          description: >-
            Full residential or business address of the beneficiary receiving
            the funds.
          example: 123 Main Street, Suite 400, New York, NY 10001, USA
        taxId:
          type: string
          nullable: true
          description: Tax identification number associated with the receiver.
          example: '1234123412342'
        pixKey:
          type: string
          nullable: true
          description: PIX key for the recipient (e.g., phone number, CPF, or random key).
          example: '+5511999999999'
        pixBrCode:
          type: string
          nullable: true
          description: >-
            BR Code ("PIX Copia e Cola") payload the payer pastes into their
            banking app to settle this exact deposit.
          example: >-
            00020101021226810014br.gov.bcb.pix2559qr.example.com/qr/v2/cob/66f9c6ea-ec38-4ed7-803c-0ac6fdcc747c5204000053039865802BR5925Example
            Company6009SAO PAULO63041D3D
        pixQrCode:
          type: string
          nullable: true
          description: >-
            QR code encoding the BR Code, as a base64-encoded PNG without a data
            URI prefix.
          example: iVBORw0KGgoAAAANSUhEUgAAAeoAAAHqAQAAAADjFjCX
        redirectUrl:
          type: string
          nullable: true
          description: Hosted payment page where the payer can complete this deposit.
          example: https://app2.example.com/api/v1/payments/MGYwZDQ1ZDkt/start
    LatAmDepositDetailsEntity:
      type: object
      properties:
        bankName:
          type: string
          description: >-
            Bank or financial institution. (STP, Banco Davivienda, Banco
            Santander etc.)
        bankAccountNumber:
          type: string
          description: Bank or financial institution account number. (CLABE)
        bankAccountType:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/BankAccountType'
        accountAlias:
          type: string
          nullable: true
          description: >-
            Account alias registered in the local directory, accepted by the
            payer's bank in place of the account number. (Argentine CVU/CBU
            alias)
        accountHolderName:
          type: string
          nullable: true
          description: >-
            Receiving account holder name, for an individual or a business.
            Populated instead of companyName by providers that do not
            distinguish the two.
        companyName:
          type: string
          nullable: true
          description: Receiving corporate entity name.
        taxId:
          type: string
          nullable: true
          description: Receiving corporate entity local tax id. (NIT, CUIL, RUT, RUC)
        email:
          type: string
          nullable: true
          description: Receiving corporate entity email.
        withholdingTax:
          type: string
          nullable: true
          description: >-
            Percentage of the total payment amount deducted at source as tax,
            per Colombian regulations, for specific transactions like income or
            services.
        redirectUrl:
          type: string
          nullable: true
          description: >-
            PSE-generated URL in Colombia redirecting to the payment platform
            for bank selection and pre-filled transaction confirmation.
      required:
        - bankName
        - bankAccountNumber
        - companyName
        - withholdingTax
        - redirectUrl
    BankTransferDepositDetailsEntity:
      type: object
      properties:
        bankName:
          type: string
          description: M-pesa
        bankAccountNumber:
          type: string
          description: '2045080458'
        bankBranchCode:
          type: string
          description: NIL
        companyName:
          type: string
          description: XXX PAY LIMITED
      required:
        - bankName
        - bankAccountNumber
        - bankBranchCode
        - companyName
    EFTDepositDetailsEntity:
      type: object
      properties:
        redirectUrl:
          type: string
          description: >-
            https://agent.callpay.com/pay/hosted?payment_key=e9b327a625ad7df6825a81d599200b3a&payment_type=eft
      required:
        - redirectUrl
    DefaultDetailsEntity:
      type: object
      properties:
        description:
          type: string
          nullable: true
        depositMessage:
          type: string
          nullable: true
        bankName:
          type: string
          nullable: true
        bankCode:
          type: string
          nullable: true
        bankAddress:
          type: string
          nullable: true
        bankAccountNumber:
          type: string
          nullable: true
        bankRoutingNumber:
          type: string
          nullable: true
        bankBeneficiaryName:
          type: string
          nullable: true
        bankBeneficiaryAddress:
          type: string
          nullable: true
        accountHolderName:
          type: string
          nullable: true
        accountAlias:
          type: string
          nullable: true
        iban:
          type: string
          nullable: true
        bic:
          type: string
          nullable: true
        bankAccountType:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/BankAccountType'
        bankIspbCode:
          type: string
          nullable: true
        companyName:
          type: string
          nullable: true
        taxId:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        pixKey:
          type: string
          nullable: true
        withholdingTax:
          type: string
          nullable: true
    USDetailsEntity:
      type: object
      properties:
        bankName:
          type: string
          nullable: true
          example: Chase
        accountHolderName:
          type: string
          example: John Doe
        bankAccountNumber:
          type: string
          example: '123456789'
          description: >-
            Full bank account number (PII). Nullable / omitted by default.
            Returned only when your organization has been granted access to full
            payment-instruction details. Contact support to enable.
        bankAccountNumberLast4:
          type: string
          example: '6789'
        bankRoutingNumber:
          type: string
          example: '021000021'
        bankAccountType:
          allOf:
            - $ref: '#/components/schemas/BankAccountType'
        recipientRelationship:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/RecipientRelationship'
        address:
          nullable: true
          description: >-
            Beneficiary bank address. The beneficiary's own address is taken
            from the identity.
          type: object
          allOf:
            - $ref: '#/components/schemas/PostalAddressEntity'
        bankSlug:
          type: string
          nullable: true
          deprecated: true
        bankCode:
          type: string
          nullable: true
          deprecated: true
        phone:
          type: string
          nullable: true
          deprecated: true
        taxId:
          type: string
          nullable: true
          deprecated: true
      required:
        - bankName
        - accountHolderName
        - bankAccountNumberLast4
        - bankRoutingNumber
        - bankAccountType
        - recipientRelationship
        - address
        - bankSlug
        - bankCode
        - phone
        - taxId
    IbanBankDetailsEntity:
      type: object
      properties:
        bankSlug:
          type: string
          nullable: true
          example: Chase
        iban:
          type: string
          example: DE89370400440532013000
          description: >-
            Full IBAN (PII). Nullable / omitted by default. Returned only when
            your organization has been granted access to full
            payment-instruction details. Contact support to enable.
        ibanLast4:
          type: string
          example: '3000'
        localRoutingCode:
          type: string
          nullable: true
          example: '0040'
        swiftOrBicNumber:
          type: string
          nullable: true
          example: CHASUS33
        address:
          nullable: true
          description: Beneficiary bank address.
          type: object
          allOf:
            - $ref: '#/components/schemas/PostalAddressEntity'
        bankAccountNumberLast4:
          type: string
          deprecated: true
          example: '3000'
        bankName:
          type: string
          nullable: true
          example: Example Bank
        bankRoutingNumber:
          type: string
          nullable: true
          deprecated: true
        bankCode:
          type: string
          nullable: true
          deprecated: true
        accountHolderName:
          type: string
          nullable: true
          deprecated: true
        bankAccountType:
          nullable: true
          deprecated: true
          allOf:
            - $ref: '#/components/schemas/BankAccountType'
        recipientRelationship:
          nullable: true
          deprecated: true
          allOf:
            - $ref: '#/components/schemas/RecipientRelationship'
        phone:
          type: string
          nullable: true
          deprecated: true
        taxId:
          type: string
          nullable: true
          deprecated: true
      required:
        - bankSlug
        - ibanLast4
        - localRoutingCode
        - swiftOrBicNumber
        - address
        - bankAccountNumberLast4
        - bankName
        - bankRoutingNumber
        - bankCode
        - accountHolderName
        - bankAccountType
        - recipientRelationship
        - phone
        - taxId
    BankDetailsEntity:
      type: object
      properties:
        bankName:
          type: string
          nullable: true
          example: Chase
        bankSlug:
          type: string
          nullable: true
          example: Chase
        bankAccountNumber:
          type: string
          example: '123456789'
          description: >-
            Full bank account number (PII). Nullable / omitted by default.
            Returned only when your organization has been granted access to full
            payment-instruction details. Contact support to enable.
        bankAccountNumberLast4:
          type: string
          example: '6789'
        localRoutingCode:
          type: string
          nullable: true
          example: '1234567'
        branchCode:
          type: string
          nullable: true
          example: '0001'
        swiftOrBicNumber:
          type: string
          nullable: true
          example: DEUTDEFF
        accountHolderName:
          type: string
          nullable: true
          example: John Doe
        bankAccountType:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/BankAccountType'
        bankAccountNumberType:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/BankAccountNumberType'
        address:
          nullable: true
          description: >-
            Beneficiary bank address. The beneficiary's own address is taken
            from the identity.
          type: object
          allOf:
            - $ref: '#/components/schemas/PostalAddressEntity'
        bankRoutingNumber:
          type: string
          nullable: true
          deprecated: true
          example: '021000021'
        bankCode:
          type: string
          nullable: true
          deprecated: true
          example: '40006'
        phone:
          type: string
          nullable: true
          deprecated: true
        taxId:
          type: string
          nullable: true
          deprecated: true
        recipientRelationship:
          nullable: true
          deprecated: true
          allOf:
            - $ref: '#/components/schemas/RecipientRelationship'
      required:
        - bankName
        - bankSlug
        - bankAccountNumberLast4
        - localRoutingCode
        - branchCode
        - swiftOrBicNumber
        - accountHolderName
        - bankAccountType
        - bankAccountNumberType
        - address
        - bankRoutingNumber
        - bankCode
        - phone
        - taxId
        - recipientRelationship
    IdentifierDetailsEntity:
      type: object
      properties:
        identifierType:
          allOf:
            - $ref: '#/components/schemas/PaymentInstructionIdentifierType'
        identifierValue:
          type: string
        address:
          nullable: true
          description: >-
            The address associated with the Identifier Payment Instruction is
            deprecated.
          deprecated: true
          type: object
          allOf:
            - $ref: '#/components/schemas/PostalAddressEntity'
      required:
        - identifierType
        - identifierValue
        - address
    BrebKeyDetailsEntity:
      type: object
      properties:
        brebKey:
          type: string
          description: The Bre-B key value registered for the recipient.
      required:
        - brebKey
    SepaDetailsEntity:
      type: object
      properties:
        bankName:
          type: string
          example: Chase
        bankAccountNumber:
          type: string
          example: '123456789'
          description: >-
            Full bank account number (PII). Nullable / omitted by default.
            Returned only when your organization has been granted access to full
            payment-instruction details. Contact support to enable.
        bankAccountNumberLast4:
          type: string
          example: '6789'
        accountHolderName:
          type: string
          example: John Doe
        swiftOrBicNumber:
          type: string
          example: BNPAFRPPXXX
        accountOwnerType:
          allOf:
            - $ref: '#/components/schemas/BankAccountOwnerType'
        firstName:
          type: string
          nullable: true
        lastName:
          type: string
          nullable: true
        businessName:
          type: string
          nullable: true
        address:
          nullable: true
          description: >-
            Beneficiary bank address. The beneficiary's own address is taken
            from the identity.
          type: object
          allOf:
            - $ref: '#/components/schemas/PostalAddressEntity'
      required:
        - bankName
        - bankAccountNumberLast4
        - accountHolderName
        - swiftOrBicNumber
        - accountOwnerType
        - firstName
        - lastName
        - businessName
        - address
    SwiftDetailsEntity:
      type: object
      properties:
        accountHolderName:
          type: string
          example: John Doe
        bankAccountNumber:
          type: string
          example: '123456789'
          description: >-
            Full bank account number (PII). Nullable / omitted by default.
            Returned only when your organization has been granted access to full
            payment-instruction details. Contact support to enable.
        iban:
          type: string
          example: DE89370400440532013000
          description: >-
            Full IBAN (PII). Nullable / omitted by default. Returned only when
            your organization has been granted access to full
            payment-instruction details. Contact support to enable.
        bankAccountNumberLast4:
          type: string
          example: '6789'
        swiftOrBicNumber:
          type: string
          example: BNPAFRPPXXX
        ibanLast4:
          type: string
          example: '3000'
        address:
          nullable: true
          description: >-
            Beneficiary bank address. Optional; required for SWIFT payouts via
            BlindPay. The beneficiary's own address is taken from the identity.
          type: object
          allOf:
            - $ref: '#/components/schemas/PostalAddressEntity'
        bankSlug:
          type: string
          nullable: true
          example: NH4EM3uyZ4DXriHihwbGLzeRAGj9qDXbClBtYBSX2x
        bankName:
          type: string
          nullable: true
          example: Chase
        bankAccountType:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/BankAccountType'
        intermediaryBankName:
          type: string
          nullable: true
        intermediaryBankSwiftOrBicNumber:
          type: string
          nullable: true
        intermediaryBankRoutingNumber:
          type: string
          nullable: true
        intermediaryBankAddress:
          type: string
          nullable: true
        beneficiaryBankCnapsCode:
          type: string
          nullable: true
        beneficiaryPhone:
          type: string
          nullable: true
        beneficiaryAddressInChinese:
          type: string
          nullable: true
        recipientRelationship:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/RecipientRelationship'
        bankAddress:
          type: string
          nullable: true
          description: >-
            Deprecated. Use the structured `address` field for the beneficiary
            bank address.
          deprecated: true
      required:
        - accountHolderName
        - address
        - bankSlug
        - bankName
        - bankAccountType
        - intermediaryBankName
        - intermediaryBankSwiftOrBicNumber
        - intermediaryBankRoutingNumber
        - intermediaryBankAddress
        - beneficiaryBankCnapsCode
        - beneficiaryPhone
        - beneficiaryAddressInChinese
        - recipientRelationship
        - bankAddress
    MobileMoneyDetailsEntity:
      type: object
      properties:
        accountHolderName:
          type: string
        phone:
          type: string
        networkProvider:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/MobileMoneyProvider'
        networkSlug:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/MobileMoneyProvider'
      required:
        - accountHolderName
        - phone
        - networkProvider
        - networkSlug
    UKFPSDetailsEntity:
      type: object
      properties:
        bankName:
          type: string
          nullable: true
          example: Barclays
        bankSlug:
          type: string
          nullable: true
          example: Barclays
        bankAccountNumber:
          type: string
          nullable: true
          example: '12345678'
          description: >-
            Full bank account number (PII). Nullable / omitted by default.
            Returned only when your organization has been granted access to full
            payment-instruction details. Contact support to enable.
        bankAccountNumberLast4:
          type: string
          nullable: true
          example: '5678'
        sortCode:
          type: string
          nullable: true
          example: '601613'
          description: 6-digit UK sort code (derived from IBAN positions 9-14).
        iban:
          type: string
          nullable: true
          example: GB29NWBK60161331926819
          description: >-
            Full IBAN (PII). Nullable / omitted by default. Returned only when
            your organization has been granted access to full
            payment-instruction details. Contact support to enable.
        ibanLast4:
          type: string
          nullable: true
          example: '6819'
        accountHolderName:
          type: string
          nullable: true
          example: Jane Smith
        bankAccountType:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/BankAccountType'
        address:
          nullable: true
          description: >-
            Beneficiary bank address. The beneficiary's own address is taken
            from the identity.
          type: object
          allOf:
            - $ref: '#/components/schemas/PostalAddressEntity'
      required:
        - bankName
        - bankSlug
        - bankAccountNumberLast4
        - sortCode
        - ibanLast4
        - accountHolderName
        - bankAccountType
        - address
    OnchainDetailsEntity:
      type: object
      properties:
        onchainNetwork:
          description: The blockchain the destination address lives on.
          example: POLYGON
          allOf:
            - $ref: '#/components/schemas/NetworkId'
        onchainAddress:
          type: string
          description: The blockchain address that receives the funds.
          example: '0x1234567890abcdef1234567890abcdef12345678'
      required:
        - onchainNetwork
        - onchainAddress
    OnchainInstructionType:
      type: string
      enum:
        - Transfer
        - Approval
        - SmartCall
    OnchainInstructionTransactionEntity:
      type: object
      properties:
        id:
          type: string
        to:
          type: string
          nullable: true
        from:
          type: string
          nullable: true
        data:
          type: string
          nullable: true
        nonce:
          type: string
          nullable: true
        value:
          type: string
          nullable: true
        chainId:
          type: number
          nullable: true
        gasLimit:
          type: string
          nullable: true
        gasPrice:
          type: string
          nullable: true
        fee:
          type: string
          nullable: true
        unsignedTx:
          type: string
          nullable: true
        psbt:
          type: string
          nullable: true
        inputs:
          type: object
          additionalProperties: true
          nullable: true
        outputs:
          type: object
          additionalProperties: true
          nullable: true
        walletId:
          type: string
          nullable: true
        body:
          type: object
          additionalProperties: true
          nullable: true
        visible:
          type: boolean
          nullable: true
        txID:
          type: string
          nullable: true
        rawData:
          type: object
          additionalProperties: true
          nullable: true
        rawDataHex:
          type: string
          nullable: true
        spender:
          type: string
          nullable: true
        mint:
          type: string
          nullable: true
      required:
        - id
        - to
        - from
        - data
        - nonce
        - value
        - chainId
        - gasLimit
        - gasPrice
        - fee
        - unsignedTx
        - psbt
        - inputs
        - outputs
        - walletId
        - body
        - visible
        - txID
        - rawData
        - rawDataHex
        - spender
        - mint
    RefundPath:
      type: string
      enum:
        - PfiAutoReversal
        - BalancePayout
        - ReturnToSender
        - PfiAutoReturn
        - ManualRequired
        - Unsupported
    RefundPlanStatus:
      type: string
      enum:
        - Created
        - Eligible
        - InProgress
        - Succeeded
        - Failed
        - Blocked
        - ManualRequired
        - Unsupported
        - Cancelled
    RefundDestinationSource:
      type: string
      enum:
        - None
        - PerTransaction
        - OrganizationDefault
        - OriginalSender
        - ProviderLocked
        - Manual
    RefundResolutionDestinationEntity:
      type: object
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/RefundDestinationType'
        address:
          type: string
          description: The crypto address that receives the refund.
        autoRefund:
          type: boolean
          description: Whether Borderless dispatches the refund automatically on failure.
        autoFiatReturn:
          type: boolean
          description: Whether Borderless dispatches a fiat return automatically.
      required:
        - type
    RefundFailureReasonEntity:
      type: object
      properties:
        message:
          type: string
          description: Human-readable failure summary.
        details:
          description: Provider-level error details for the failed refund attempt.
          type: array
          items:
            $ref: '#/components/schemas/RefundFailureDetailEntity'
    AnchorMode:
      type: string
      enum:
        - Achieved
        - Backstop
    BankAccountType:
      type: string
      enum:
        - Checking
        - Savings
    RecipientRelationship:
      type: string
      enum:
        - first party
        - employee
        - independent contractor
        - vendor or supplier
        - subsidiary or affiliate
        - merchant or partner
        - customer
        - landlord
        - family
        - other
    PostalAddressEntity:
      type: object
      properties:
        id:
          type: string
        street1:
          type: string
        street2:
          type: string
          nullable: true
        city:
          type: string
        state:
          type: string
          nullable: true
        country:
          allOf:
            - $ref: '#/components/schemas/CountryCode'
        postalCode:
          type: string
      required:
        - id
        - street1
        - street2
        - city
        - state
        - country
        - postalCode
    BankAccountNumberType:
      type: string
      enum:
        - CVU
        - CBU
        - ALIAS
    PaymentInstructionIdentifierType:
      type: string
      enum:
        - PhoneNumber
        - Email
        - CPF
        - EVP
        - CNPJ
        - UPI
    BankAccountOwnerType:
      type: string
      enum:
        - Personal
        - Business
    MobileMoneyProvider:
      type: string
      enum:
        - AIRTEL
        - BKTRX
        - FAWRY
        - CHECKOUT
        - CRDTRX
        - EXPRESSO
        - FLOOZ
        - FREE
        - HALOPESA
        - MOBICASH
        - MOOV
        - MPESA
        - MTN
        - MYZAKA
        - OPAY
        - ORANGE
        - TIGO
        - TMONEY
        - TNM
        - VODACOM
        - VODAFONE
        - WAVE
        - ZAMTEL
    NetworkId:
      type: string
      enum:
        - POLYGON
        - ETHEREUM
        - TRON
        - BASE
        - OPTIMISM
        - BITCOIN
        - SOLANA
        - CELO
      description: The blockchain the destination address lives on.
    RefundDestinationType:
      type: string
      enum:
        - Address
        - Source
        - ProviderBalance
    RefundFailureDetailEntity:
      type: object
      properties:
        path:
          type: string
          description: The field the provider rejected, when it named one.
        pfiErrorMessage:
          type: string
          description: The error message as reported by the provider.
        externalStatus:
          type: string
          description: The provider-side status that made the refund terminal.
      required:
        - pfiErrorMessage
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.