Bridge Liquidation Addresses API

The Liquidation Addresses API from Bridge — 8 operation(s) for liquidation addresses.

OpenAPI Specification

bridge-liquidation-addresses-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Bridge API Keys Liquidation Addresses 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: Liquidation Addresses
paths:
  /customers/{customerID}/liquidation_addresses:
    post:
      summary: Create a Liquidation Address
      tags:
      - Liquidation Addresses
      parameters:
      - $ref: '#/components/parameters/CustomerIDParameter'
      - $ref: '#/components/parameters/IdempotencyKeyParameter'
      requestBody:
        description: Liquidation Address object to be created
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateLiquidationAddress'
      responses:
        '201':
          description: Liquidation Address object created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateLiquidationAddressResponse'
              examples:
                SuccessfulLiquidationAddressCreateResponse:
                  $ref: '#/components/examples/SuccessfulLiquidationAddressCreateResponse'
                SuccessfulSepaLiquidationAddressCreateResponse:
                  $ref: '#/components/examples/SuccessfulSepaLiquidationAddressCreateResponse'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
    get:
      summary: Get all Liquidation Addresses for a customer
      description: Get Liquidation Addresses
      tags:
      - Liquidation Addresses
      parameters:
      - $ref: '#/components/parameters/CustomerIDParameter'
      - $ref: '#/components/parameters/LimitParameter'
      - $ref: '#/components/parameters/LiquidationScheduleStartingAfterParameter'
      - $ref: '#/components/parameters/LiquidationScheduleEndingBeforeParameter'
      responses:
        '200':
          description: List of Liquidation Addresses (the returned list is empty if none found)
          content:
            application/json:
              schema:
                title: Liquidation Addresses
                type: object
                required:
                - count
                - data
                properties:
                  count:
                    description: total number of items in data
                    type: integer
                  data:
                    type: array
                    minItems: 0
                    items:
                      $ref: '#/components/schemas/LiquidationAddress'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /liquidation_addresses:
    get:
      summary: Get all Liquidation Addresses
      description: Get Liquidation Addresses
      tags:
      - Liquidation Addresses
      parameters:
      - $ref: '#/components/parameters/LimitParameter'
      - $ref: '#/components/parameters/LiquidationScheduleStartingAfterParameter'
      - $ref: '#/components/parameters/LiquidationScheduleEndingBeforeParameter'
      responses:
        '200':
          description: List of Liquidation Addresses (the returned list is empty if none found)
          content:
            application/json:
              schema:
                title: Liquidation Addresses
                type: object
                required:
                - count
                - data
                properties:
                  count:
                    description: total number of items in data
                    type: integer
                  data:
                    type: array
                    minItems: 0
                    items:
                      $ref: '#/components/schemas/LiquidationAddress'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /customers/{customerID}/liquidation_addresses/{liquidationAddressID}:
    get:
      summary: Get a Liquidation Address
      description: Retrieve a Liquidation Address for the specified Liquidation Address ID
      tags:
      - Liquidation Addresses
      parameters:
      - $ref: '#/components/parameters/CustomerIDParameter'
      - $ref: '#/components/parameters/LiquidationAddressIDParameter'
      responses:
        '200':
          description: A Liquidation Address object response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LiquidationAddress'
              examples:
                SuccessfulLiquidationAddressGetResponse:
                  $ref: '#/components/examples/SuccessfulLiquidationAddressGetResponse'
                SuccessfulSepaLiquidationAddressGetResponse:
                  $ref: '#/components/examples/SuccessfulSepaLiquidationAddressGetResponse'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
    put:
      summary: Update a Liquidation Address
      description: Update a Liquidation Address for the specified liquidation address ID. Note that `external_account_id` and `custom_developer_fee_percent` can be updated independently and are not both required.
      tags:
      - Liquidation Addresses
      parameters:
      - $ref: '#/components/parameters/CustomerIDParameter'
      - $ref: '#/components/parameters/LiquidationAddressIDParameter'
      requestBody:
        description: Liquidation Address details to be updated
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateLiquidationAddress'
      responses:
        '200':
          description: Updated Liquidation Address object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LiquidationAddress'
              examples:
                SuccessfulLiquidationAddressUpdateResponse:
                  $ref: '#/components/examples/SuccessfulLiquidationAddressGetResponse'
                SuccessfulSepaLiquidationAddressUpdateResponse:
                  $ref: '#/components/examples/SuccessfulSepaLiquidationAddressGetResponse'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /customers/{customerID}/liquidation_addresses/{liquidationAddressID}/drains:
    get:
      summary: Get drain history of a Liquidation Address
      description: Get drain history of a Liquidation Address
      tags:
      - Liquidation Addresses
      parameters:
      - $ref: '#/components/parameters/CustomerIDParameter'
      - $ref: '#/components/parameters/LiquidationAddressIDParameter'
      - $ref: '#/components/parameters/TxHashParameter'
      - $ref: '#/components/parameters/LimitParameter'
      - $ref: '#/components/parameters/DrainStartingAfterParameter'
      - $ref: '#/components/parameters/DrainEndingBeforeParameter'
      - $ref: '#/components/parameters/UpdatedAfterMsParameter'
      - $ref: '#/components/parameters/UpdatedBeforeMsParameter'
      - $ref: '#/components/parameters/DrainIDQueryParameter'
      responses:
        '200':
          description: List of drains (the returned list is empty if none found)
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/Drain'
              examples:
                DrainsToCryptoFound:
                  $ref: '#/components/examples/SuccessfulLiquidationAddressDrainsToCryptoResponse'
                DrainsToFiatFound:
                  $ref: '#/components/examples/SuccessfulLiquidationAddressDrainsToFiatResponse'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /customers/{customerID}/liquidation_addresses/{liquidationAddressID}/drains/{drainID}/execute:
    parameters:
    - $ref: '#/components/parameters/CustomerIDParameter'
    - $ref: '#/components/parameters/LiquidationAddressIDParameter'
    - name: drainID
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/Id'
    post:
      summary: Execute a pending USDT trade on a drain
      description: 'Force-executes a stuck USDT-to-USD trade at the current market rate. The drain must have a pending trade (i.e. appear in `GET /liquidation_addresses/drains/pending`).


        After execution, the drain will continue processing normally with the executed market rate.

        '
      tags:
      - Liquidation Addresses
      parameters:
      - $ref: '#/components/parameters/IdempotencyKeyParameter'
      responses:
        '200':
          description: Drain with trade execute at market rate enabled successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Drain'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /customers/{customerID}/liquidation_addresses/{liquidationAddressID}/balances:
    get:
      summary: Get the balance of a Liquidation Address (deprecated)
      description: Get the balance of a Liquidation Address. Note that most Liquidation Addresses no longer hold a balance. To check recent activity on a Liquidation Address, use the `/customers/{customerID}/liquidation_addresses/{liquidationAddressID}/drains` endpoint.
      deprecated: true
      tags:
      - Liquidation Addresses
      parameters:
      - $ref: '#/components/parameters/CustomerIDParameter'
      - $ref: '#/components/parameters/LiquidationAddressIDParameter'
      responses:
        '200':
          description: Get the current balance of a Liquidation Address
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/Balance'
              examples:
                DrainsFound:
                  $ref: '#/components/examples/SuccessfulLiquidationAddressBalanceResponse'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /liquidation_addresses/drains:
    get:
      summary: Liquidation Address Activity Across All Customers
      description: History of activity across all customers and Liquidation Addresses
      tags:
      - Liquidation Addresses
      parameters:
      - $ref: '#/components/parameters/TxHashParameter'
      - $ref: '#/components/parameters/LimitParameter'
      - $ref: '#/components/parameters/DrainStartingAfterParameter'
      - $ref: '#/components/parameters/DrainEndingBeforeParameter'
      - $ref: '#/components/parameters/UpdatedAfterMsParameter'
      - $ref: '#/components/parameters/UpdatedBeforeMsParameter'
      - $ref: '#/components/parameters/DrainIDQueryParameter'
      responses:
        '200':
          description: List of drains for all liquidation addresses (the returned list is empty if none found)
          content:
            application/json:
              schema:
                title: Liquidation Address history
                type: object
                required:
                - count
                - data
                properties:
                  count:
                    type: integer
                    description: The number of events returned
                  data:
                    type: array
                    minItems: 0
                    items:
                      $ref: '#/components/schemas/Drain'
              examples:
                DrainsToCryptoFound:
                  $ref: '#/components/examples/SuccessfulLiquidationAddressDrainsToCryptoResponse'
                DrainsToFiatFound:
                  $ref: '#/components/examples/SuccessfulLiquidationAddressDrainsToFiatResponse'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /liquidation_addresses/drains/pending:
    get:
      summary: List drains with pending USDT trades
      description: 'Returns drains that have a stuck USDT-to-USD trade awaiting execution. Results are sorted by creation time (newest first) and paginated.


        Use `POST /customers/{customerID}/liquidation_addresses/{liquidationAddressID}/drains/{drainID}/execute` to force-execute a pending trade at the current market rate.

        '
      tags:
      - Liquidation Addresses
      parameters:
      - $ref: '#/components/parameters/LimitParameter'
      - $ref: '#/components/parameters/DrainStartingAfterParameter'
      - $ref: '#/components/parameters/DrainEndingBeforeParameter'
      - $ref: '#/components/parameters/UpdatedAfterMsParameter'
      - $ref: '#/components/parameters/UpdatedBeforeMsParameter'
      responses:
        '200':
          description: List of drains with pending trades (the returned list is empty if none found)
          content:
            application/json:
              schema:
                title: PendingDrains
                type: object
                required:
                - count
                - data
                properties:
                  count:
                    type: integer
                    description: The number of drains returned
                  data:
                    type: array
                    minItems: 0
                    items:
                      $ref: '#/components/schemas/Drain'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
components:
  parameters:
    LiquidationScheduleEndingBeforeParameter:
      in: query
      name: ending_before
      schema:
        type: string
      description: This is a liquidation address id. If this is specified, the previous page that ends with a liquidation address right BEFORE the specified liquidation address id on the liquidation address timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that liquidation address newer than the specified liquidation address id will be returned (shouldn't be set if starting_after is set)
    IdempotencyKeyParameter:
      in: header
      name: Idempotency-Key
      required: true
      schema:
        type: string
    DrainIDQueryParameter:
      name: drain_id
      in: query
      required: false
      schema:
        type: string
      description: If specified, results will be filtered to the given drain id only
    LimitParameter:
      in: query
      name: limit
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
      description: The number of items to return (min 1, default 10, max 100)
    UpdatedAfterMsParameter:
      in: query
      name: updated_after_ms
      schema:
        type: integer
      description: This is a unix timestamp in milliseconds. If this is specified, objects updated AFTER the specified timestamp will be returned
    LiquidationScheduleStartingAfterParameter:
      in: query
      name: starting_after
      schema:
        type: string
      description: This is a liquidation address id. If this is specified, the next page that starts with a liquidation address right AFTER the specified liquidation address id on the liquidation address timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that liquidation address older than the specified liquidation address id will be returned (shouldn't be set if ending_before is set)
    TxHashParameter:
      name: tx_hash
      in: query
      required: false
      schema:
        type: string
      description: The hash of the transaction
    DrainEndingBeforeParameter:
      in: query
      name: ending_before
      schema:
        type: string
      description: This is a drain id. If this is specified, the previous page that ends with a drain right BEFORE the specified drain id on the drain timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that drains newer than the specified drain id will be returned (shouldn't be set if starting_after is set)
    LiquidationAddressIDParameter:
      name: liquidationAddressID
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/Id'
    UpdatedBeforeMsParameter:
      in: query
      name: updated_before_ms
      schema:
        type: integer
      description: This is a unix timestamp in milliseconds. If this is specified, objects updated BEFORE the specified timestamp will be returned
    CustomerIDParameter:
      name: customerID
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/Id'
    DrainStartingAfterParameter:
      in: query
      name: starting_after
      schema:
        type: string
      description: This is a drain id. If this is specified, the next page that starts with a drain right AFTER the specified drain id on the drain timeline, which is always ordered from the newest to the oldest by creation time, will be returned. This also implies that drains older than the specified drain id will be returned (shouldn't be set if ending_before is set)
  schemas:
    Drain:
      required:
      - id
      - customer_id
      - liquidation_address_id
      - amount
      - currency
      - state
      properties:
        id:
          $ref: '#/components/schemas/Id'
          readOnly: true
        amount:
          description: Amount of the drain, represented as a dollar denominated string. Examples include "100.25", "0.1", "1.234567", "1.01" etc.
          type: string
        customer_id:
          $ref: '#/components/schemas/Id'
          readOnly: true
        liquidation_address_id:
          $ref: '#/components/schemas/Id'
          readOnly: true
        currency:
          $ref: '#/components/schemas/EuroInclusiveCurrency'
        state:
          description: Status of the drain
          readOnly: true
          $ref: '#/components/schemas/TransactionStatus'
        created_at:
          readOnly: true
          type: string
          description: Time of creation of the drain
          format: date-time
        updated_at:
          readOnly: true
          type: string
          description: Time of last update of the drain
          format: date-time
        deposit_tx_hash:
          readOnly: true
          type: string
          description: Hash of the Liquidation Address deposit that triggered this drain
        from_address:
          readOnly: true
          type: string
          description: The blockchain address that sent funds to the Liquidation Address
        source_payment_rail:
          readOnly: true
          type: string
          description: The source payment rail where the funds originated from
        destination:
          readOnly: true
          description: Destination information of a drain.
          $ref: '#/components/schemas/DrainDestination'
        destination_tx_hash:
          readOnly: true
          type: string
          description: Hash of withdrawal of funds to the destination
        refund_tx_hash:
          readOnly: true
          type: string
          description: Hash of refund, if the drain has been returned
        return_details:
          readOnly: true
          description: Return information, if the drain has been returned.
          $ref: '#/components/schemas/DrainReturnDetails'
        receipt:
          readOnly: true
          description: Receipt information of a drain.
          $ref: '#/components/schemas/DrainReceipt'
        exchange_details:
          readOnly: true
          description: Exchange details for the associated trade, if applicable.
          $ref: '#/components/schemas/ExchangeDetails'
    TravelRuleName:
      type: string
      description: Legal name of the originator or beneficiary. Usually omitted when `is_self` is `true`.
    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.
    LiquidationAddressSourceCurrency:
      type: string
      enum:
      - usdb
      - usdc
      - usdt
      - pyusd
      - eurc
    LiquidationAddressGlobalDeveloperFeePercent:
      description: The developer fee percent that will be default applied to all Liquidation Addresses.
      type: object
      properties:
        percent:
          type: string
          nullable: true
          format: number
          minimum: 0
          maximum: 100
          exclusiveMaximum: true
          example: '0.2'
    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
    Uetr:
      description: 'Deprecated: use tracking_number instead. The unique end-to-end transaction reference, for tracing purposes.'
      type: string
      readOnly: true
      deprecated: true
    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
    CreateLiquidationAddress:
      required:
      - currency
      - chain
      properties:
        currency:
          $ref: '#/components/schemas/LiquidationAddressSourceCurrency'
        chain:
          $ref: '#/components/schemas/LiquidationAddressSourceChain'
        external_account_id:
          description: External bank account to which Bridge will send the funds. The currency associated with the External Account must match the destination currency.
          $ref: '#/components/schemas/Id'
        prefunded_account_id:
          description: The developer's prefunded account id that Bridge will send the funds to.
          $ref: '#/components/schemas/Id'
        bridge_wallet_id:
          description: The Bridge Wallet to which Bridge will send the funds. The chain associated with the Bridge Wallet must match the payment rail.
          $ref: '#/components/schemas/Id'
        destination_wire_message:
          $ref: '#/components/schemas/WireMessage'
        destination_sepa_reference:
          $ref: '#/components/schemas/SepaReference'
        destination_ach_reference:
          $ref: '#/components/schemas/AchReference'
        destination_spei_reference:
          $ref: '#/components/schemas/SpeiReference'
        destination_reference:
          description: A payment reference message for newer payment rails (e.g. Pix and Faster Payments).
          type: string
        destination_payment_rail:
          $ref: '#/components/schemas/SepaSwiftInclusivePaymentRail'
          description: The payment rail that Bridge will use to send funds to the customer. Will default to ACH if not specified.
        destination_currency:
          $ref: '#/components/schemas/EuroInclusiveCurrency'
          description: The currency that Bridge will use to send funds to the customer. Will default to USD if not specified.
        destination_address:
          type: string
          description: The crypto wallet address that Bridge will use to send funds to the customer.
        destination_blockchain_memo:
          type: string
          description: The memo to include in the transaction, for blockchains that support memos only
        return_address:
          type: string
          nullable: true
          deprecated: true
          description: 'Deprecated: use `return_instructions` instead.


            The crypto wallet address that Bridge will use to return funds to the customer in case of a failed transaction.

            Must be on the same chain as the liquidation address.

            Cannot be used on Stellar — use `return_instructions` with a `memo` instead.

            '
        return_instructions:
          description: 'The return instructions Bridge will use to route funds back to the customer when a transaction fails.

            Replaces the deprecated `return_address` field. Set one or the other, not both.


            For memo-required chains (e.g. Stellar), both `address` and `memo` are required — without a memo, Bridge cannot

            route the return to the correct end-customer at an omnibus wallet.

            '
          allOf:
          - $ref: '#/components/schemas/ReturnInstructions'
        custom_developer_fee_percent:
          $ref: '#/components/schemas/LiquidationAddressCustomDeveloperFeePercent'
        travel_rule_data:
          description: Travel Rule data for this liquidation address. Use this only when the same originator or beneficiary should apply to every future movement through this liquidation address. If counterparties can vary by deposit or drain, submit the payload later with `POST /travel_rule_data/{id}` for the relevant movement.
          allOf:
          - $ref: '#/components/schemas/TravelRuleData'
    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
    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.
    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
    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
    DrainDestination:
      required:
      - payment_rail
      - currency
      properties:
        payment_rail:
          $ref: '#/components/schemas/PaymentRail'
        currency:
          $ref: '#/components/schemas/Currency'
        to_address:
          description: The crypto wallet address that the customer will ultimately receive funds at
          type: string
        blockchain_memo:
          description: The memo to include in the transaction, for blockchains that support memos only
          type: string
        external_account_id:
          description: External bank account to which Bridge will send the funds.
          $ref: '#/components/schemas/Id'
        wire_message:
          description: A message to be sent with a wire transfer.
          $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'
        ach_reference:
          $ref: '#/components/schemas/AchReference'
        imad:
          $ref: '#/components/schemas/Imad'
        trace_number:
          $ref: '#/components/schemas/TraceNumber'
          readOnly: true
        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
        uetr:
          $ref: '#/components/schemas/Uetr'
    TransactionId:
      description: 'Deprecated: use tracking_number instead. The unique transaction identifier for this payment.'
      

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bridge/refs/heads/main/openapi/bridge-liquidation-addresses-api-openapi.yml