Unstoppable Finance (Iron) Addresses API

Wallet and bank account registration Every wallet address that interacts with Iron must be registered (linked) to a customer **before** it can be used in any flow — onramp, offramp, or swap. This is a regulatory requirement under the **Travel Rule**, which obliges Virtual Asset Service Providers to exchange originator and beneficiary information for crypto transfers. Iron supports two wallet types: - **Self-hosted wallets** — the customer controls the private key. Registration requires a signed proof-of-ownership message. - **Hosted wallets** — the wallet is custodied by another VASP (e.g. Coinbase, Kraken). Registration requires the VASP's DID so Iron can exchange travel-rule data with the custodian. Similarly, fiat bank accounts must be registered before they can receive offramp payouts.

OpenAPI Specification

unstoppable-finance-addresses-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  description: The Stablecoin Payment Network
  title: Iron API - Sandbox Addresses API
  version: 1.0-16988
servers:
- url: https://api.sandbox.iron.xyz/api
tags:
- description: 'Wallet and bank account registration


    Every wallet address that interacts with Iron must be registered (linked) to a customer **before** it can be used in any flow — onramp, offramp, or swap. This is a regulatory requirement under the **Travel Rule**, which obliges Virtual Asset Service Providers to exchange originator and beneficiary information for crypto transfers.


    Iron supports two wallet types:


    - **Self-hosted wallets** — the customer controls the private key. Registration requires a signed proof-of-ownership message.

    - **Hosted wallets** — the wallet is custodied by another VASP (e.g. Coinbase, Kraken). Registration requires the VASP''s DID so Iron can exchange travel-rule data with the custodian.


    Similarly, fiat bank accounts must be registered before they can receive offramp payouts.'
  name: Addresses
paths:
  /addresses/crypto/attested:
    post:
      description: 'Register a self-hosted wallet that the customer **declares** they control, without

        providing a cryptographic signature. Intended for direct customers who cannot sign a

        proof-of-ownership message from their custody UI (e.g. Fireblocks).


        Like the signed self-hosted flow, the wallet must be registered before it can be used

        in any flow — onramp, offramp, or swap — under the **Travel Rule**. This endpoint is

        currently limited to customers in the **US** and **Rest of World** jurisdictions.'
      operationId: registerAttestedWalletAddress
      parameters:
      - deprecated: false
        description: a UUID ensuring an address is only registered once
        explode: true
        in: header
        name: IDEMPOTENCY-KEY
        required: true
        schema:
          type: string
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the wallet address will be registered for the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      requestBody:
        content:
          application/json; charset=utf-8:
            schema:
              $ref: '#/components/schemas/RegisterSelfAttestedWalletRequest'
        description: The self-attested wallet registration request
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/VerifiedAddressResponse'
          description: POST Self-Attested Wallet Succeeded
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Self-Attested Wallet Failed (Bad Request)
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Self-Attested Wallet Failed (Unauthorized)
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Self-Attested Wallet Failed (Forbidden - e.g. region not supported, customer suspended)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Self-Attested Wallet Failed (Not Found)
        '409':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Self-Attested Wallet Failed (Conflict - Address Already Exists)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Self-Attested Wallet Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Register a self-attested wallet address
      tags:
      - Addresses
  /addresses/crypto/hosted:
    post:
      description: 'Register a wallet that is custodied by another VASP (e.g. Coinbase, Kraken) on behalf of the customer. This is required by the **Travel Rule** before the wallet can be used in **any** flow — onramp, offramp, or swap.


        Provide the VASP''s DID (Decentralized Identifier) so Iron can exchange travel-rule data with the custodian. Use the [Search VASPs](#tag/Addresses/operation/searchHostedVasps) endpoint to look up the correct DID.

        '
      operationId: registerHostedWallet
      parameters:
      - deprecated: false
        description: a UUID ensuring an address is only registered once
        explode: true
        in: header
        name: IDEMPOTENCY-KEY
        required: true
        schema:
          type: string
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the wallet address will be registered for the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      requestBody:
        content:
          application/json; charset=utf-8:
            schema:
              $ref: '#/components/schemas/RegisterHostedWalletRequest'
        description: The hosted wallet registration request
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/VerifiedAddressResponse'
          description: Registration successful
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad request (e.g. invalid data)
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized (e.g. customer does not belong to partner)
        '409':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Conflict - Address already exists
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Failed to register the address
      security:
      - ApiKeyAuth: []
      summary: Register a hosted wallet address
      tags:
      - Addresses
  /addresses/crypto/hosted/vasps:
    get:
      description: Look up a VASP by name to find its DID (Decentralized Identifier). You need the DID when registering a hosted wallet via [Register Hosted Wallet](#tag/Addresses/operation/registerHostedWallet).
      operationId: searchHostedVasps
      parameters:
      - deprecated: false
        description: query string (min 2 chars)
        explode: true
        in: query
        name: q
        required: true
        schema:
          type: string
      - deprecated: false
        description: optional limit (default 20, max 50)
        explode: true
        in: query
        name: limit
        required: false
        schema:
          format: uint32
          type: integer
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/VaspSuggestion'
                type: array
          description: Success
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad request (e.g. query too short)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal server error
        '503':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: VASP search unavailable
      security:
      - ApiKeyAuth: []
      summary: Search hosted wallet providers (VASPs)
      tags:
      - Addresses
  /addresses/crypto/selfhosted:
    post:
      description: 'Register a wallet that the customer controls directly (i.e. they hold the private key). This is required by the **Travel Rule** before the wallet can be used in **any** flow — onramp, offramp, or swap.


        Submit a proof of address ownership. **The message must be in the format**:


        > I am verifying ownership of the wallet address [Wallet Address] as customer [CustomerId]. This message was signed on [DD/MM/YYYY] to confirm my control over this wallet.


        The signature must be generated using the private key of the wallet address and is just the standard string format of standard ethereum / solana signatures:

        ## Example message

        ```ignore

        I am verifying ownership of the wallet address GEhVdAGrGFvbAyj9ieZQt43mRAZZu4hRQ5MaKGgvpJMq as customer 7feaf33d-8551-4144-bfcb-01c86bcff857. This message was signed on 20/01/2024 to confirm my control over this wallet.

        ```

        ## Example signature

        solana signature: 3Z3TWYMhq9vrA6K9ajQMQmVi1aXTmyASGLEvMpzNdS3BdWhNKeQGHtvF6cFNzR96tsnPPocJPjxfVsjtay9iWgTG

        evm signature: 0x1234567890abcdef1234567890abcdef12345678900xa5f1751b75a28c12694f02590d29b8cdd68b4f5c783273a75823fc6cfeaa702f1a65fa7c1838ae799fe755c92443cb51631d000922329cdd2ce799eee75f42531babcdef1234567890abcdef

        '
      operationId: registerSelfHostedWalletAddress
      parameters:
      - deprecated: false
        description: a UUID ensuring a signature is only processed once
        explode: true
        in: header
        name: IDEMPOTENCY-KEY
        required: true
        schema:
          type: string
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the wallet address will be registered for the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      requestBody:
        content:
          application/json; charset=utf-8:
            schema:
              $ref: '#/components/schemas/RegisterSelfHostedWalletRequest'
        description: The self-hosted wallet registration request
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/SelfHostedWalletResponse'
          description: POST Self-Hosted Wallet Succeeded
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Self-Hosted Wallet Failed (Bad Request)
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Self-Hosted Wallet Failed (Unauthorized)
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Self-Hosted Wallet Failed (Forbidden - e.g. customer is suspended)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Self-Hosted Wallet Failed (Not Found)
        '409':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Self-Hosted Wallet Failed (Conflict - Address Already Exists)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Self-Hosted Wallet Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Register a self-hosted wallet address
      tags:
      - Addresses
  /addresses/crypto/{customer_id}:
    get:
      description: Returns every wallet address a customer has registered (linked), including both hosted and self-hosted wallets. Use the `filter` query parameter to narrow by type.
      operationId: getWalletAddresses
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the wallet addresses will be filtered for the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - deprecated: false
        description: the ID of the customer
        explode: true
        in: path
        name: customer_id
        required: true
        schema:
          format: uuid
          type: string
      - deprecated: false
        description: Filter for which type of addresses to return
        explode: false
        in: query
        name: filter
        required: false
        schema:
          allOf:
          - $ref: '#/components/schemas/AddressFilter'
          - default: All
          default: All
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/VerifiedAddressResponse'
                type: array
          description: GET Wallets Succeeded
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Wallets Failed (Bad Request)
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Wallets Failed (Unauthorized)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Wallets Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get all registered wallet addresses
      tags:
      - Addresses
  /addresses/crypto/{id}/disabled:
    put:
      description: 'Enable or disable a verified crypto address. Disabled addresses cannot be used for transactions.

        Only addresses belonging to the customer of the authenticated partner can be modified.

        '
      operationId: updateDisabledStatus
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the wallet address will be updated for the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - deprecated: false
        description: The ID of the verified crypto address
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      requestBody:
        content:
          application/json; charset=utf-8:
            schema:
              $ref: '#/components/schemas/UpdateDisabledStatusRequest'
        description: The request to update the disabled status
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/VerifiedAddressResponse'
          description: PUT Disabled Status Succeeded
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: PUT Disabled Status Failed (Bad Request)
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: PUT Disabled Status Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: PUT Disabled Status Failed (Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: PUT Disabled Status Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Update the disabled status of a verified crypto address
      tags:
      - Addresses
  /addresses/fiat:
    get:
      description: 'Get all fiat addresses with a specific status for the current partner

        '
      operationId: getFiatAddressesByStatus
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the fiat addresses will be filtered for the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - deprecated: false
        description: The Status to filter by. If not provided, defaults to `Registered`
        explode: false
        in: query
        name: status
        required: false
        schema:
          allOf:
          - $ref: '#/components/schemas/FiatAddressStatus'
          - default: null
          default: null
      - deprecated: false
        description: 'Paging: the cursor field from previous page'
        explode: false
        in: query
        name: cursor
        required: false
        schema:
          default: null
          format: uuid
          type: string
      - deprecated: false
        description: 'Paging: the requested page size (max 100)'
        explode: false
        in: query
        name: page_size
        required: false
        schema:
          default: 10
          format: uint32
          type: integer
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/PagedList_FiatAddress'
          description: GET Addresses Succeeded
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Addresses Failed (Bad Request)
        '401':
          description: GET Addresses Failed (Unauthorized)
        '404':
          description: GET Addresses Failed (Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Addresses Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get all fiat addresses with status
      tags:
      - Addresses
    post:
      description: 'Register a bank account address for a customer.

        '
      operationId: registerFiatAddress
      parameters:
      - deprecated: false
        description: a UUID ensuring an address is only registered once
        explode: true
        in: header
        name: IDEMPOTENCY-KEY
        required: true
        schema:
          type: string
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the fiat address will be registered for the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      requestBody:
        content:
          application/json; charset=utf-8:
            schema:
              $ref: '#/components/schemas/RegisterFiatAddressRequest'
        description: The fiat address registration request
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/FiatAddress'
          description: Registration successful
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad request (e.g. invalid data)
        '401':
          description: Unauthorized (e.g. customer does not belong to partner)
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Forbidden (e.g. customer is suspended)
        '404':
          description: Not Found
        '409':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Conflict (e.g. address already exists for this customer)
        '422':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Unprocessable Entity (e.g. customer does not have access to this rail)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Failed to register the address
      security:
      - ApiKeyAuth: []
      summary: Register a fiat bank account for a customer.
      tags:
      - Addresses
  /addresses/fiat/{customer_id}:
    get:
      description: 'Get all fiat addresses registered for a customer


        Bank account structure can vary per country. Therefore, the `bank_account_identifier` is always the identifier

        that matches how a user would identify it. For SEPA it would be the IBAN.


        You can search by providing a `search_term` parameter. This will search the following fields:


        - `bank_account_identifier`

        - `label`

        - `bank_name`'
      operationId: getFiatAddresses
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the fiat addresses will be filtered for the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - deprecated: false
        description: the ID of the customer
        explode: true
        in: path
        name: customer_id
        required: true
        schema:
          type: string
      - deprecated: false
        description: 'Paging: the cursor field from previous page'
        explode: false
        in: query
        name: cursor
        required: false
        schema:
          default: null
          format: uuid
          type: string
      - deprecated: false
        description: 'Paging: the cursor field for backward pagination'
        explode: false
        in: query
        name: prev_cursor
        required: false
        schema:
          default: null
          format: uuid
          type: string
      - deprecated: false
        description: 'Paging: the requested page size (max 100)'
        explode: false
        in: query
        name: page_size
        required: false
        schema:
          default: 10
          format: uint32
          maximum: 100.0
          type: integer
      - deprecated: false
        description: A search term to filter the addresses
        explode: false
        in: query
        name: search_term
        required: false
        schema:
          default: null
          maxLength: 256
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/PagedList_FiatAddress'
          description: GET Addresses Succeeded
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Addresses Failed (Bad Request)
        '401':
          description: GET Addresses Failed (Unauthorized)
        '404':
          description: GET Addresses Failed (Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Addresses Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get all fiat addresses / bank accounts
      tags:
      - Addresses
  /addresses/fiat/{customer_id}/{fiat_address_id}:
    delete:
      description: 'Soft-delete a fiat address for a customer

        '
      operationId: deleteFiatAddress
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the fiat address will be deleted for the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - deprecated: false
        description: the ID of the customer
        explode: true
        in: path
        name: customer_id
        required: true
        schema:
          format: uuid
          type: string
      - deprecated: false
        description: the ID of the fiat address
        explode: true
        in: path
        name: fiat_address_id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          description: Delete Address Succeeded
        '401':
          description: Unauthorized
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Forbidden (e.g. customer is suspended)
        '404':
          description: Not Found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Delete Address Failed (Internal Server Error)
      security:
      - ApiKeyAuth: []
      summary: Delete a fiat address
      tags:
      - Addresses
    get:
      description: 'Get a specific fiat address by customer ID and address ID

        '
      operationId: getFiatAddress
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the customer will be verified against the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - deprecated: false
        description: the ID of the customer
        explode: true
        in: path
        name: customer_id
        required: true
        schema:
          format: uuid
          type: string
      - deprecated: false
        description: the ID of the fiat address
        explode: true
        in: path
        name: fiat_address_id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/FiatAddress'
          description: GET Address Succeeded
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Address Failed (Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Address Failed (Internal Server Error)
      security:
      - ApiKeyAuth: []
      summary: Get a specific fiat address
      tags:
      - Addresses
  /addresses/fiat/{id}/retry-auth:
    post:
      deprecated: true
      description: 'Retry the authentication process on a failed fiat address


        NOTE: This endpoint is not yet implemented

        '
      operationId: retryFiatAddressAuth
      parameters:
      - deprecated: false
        description: the ID of the fiat address
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      security:
      - ApiKeyAuth: []
      summary: Retry Authentication
      tags:
      - Addresses
  /addresses/pix:
    post:
      description: 'Registers a PIX payout destination (Brazil / BRL). Check the returned

        `status` to determine whether the destination can be used for payouts.'
      operationId: registerPixAddress
      parameters:
      - deprecated: false
        description: a UUID ensuring an address is only registered once
        explode: true
        in: header
        name: IDEMPOTENCY-KEY
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      requestBody:
        content:
          application/json; charset=utf-8:
            schema:
              $ref: '#/components/schemas/RegisterPixAddressRequest'
        description: The PIX address registration request
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/PixAddress'
          description: Registration successful
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad request (e.g. invalid data)
        '401':
          description: Unauthorized (e.g. customer does not belong to partner)
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Forbidden (e.g. customer is suspended)
        '404':
          description: Not Found
        '409':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Conflict (e.g. address already exists for this customer)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Failed to register the address
      security:
      - ApiKeyAuth: []
      summary: Register a PIX destination for a customer.
      tags:
      - Addresses
  /addresses/pix/{customer_id}:
    get:
      operationId: getPixAddresses
      parameters:
      - deprecated: false
        description: the ID of the customer
        explode: true
        in: path
        name: customer_id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/PagedList_PixAddress'
          description: GET Addresses Succeeded
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Addresses Failed (Bad Request)
        '401':
          description: GET Addresses Failed (Unauthorized)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Addresses Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get a customer's PIX destinations.
      tags:
      - Addresses
  /addresses/pix/{customer_id}/{pix_address_id}:
    delete:
      description: Soft-deletes a PIX destination for a customer.
      operationId: deletePixAddress
      parameters:
      - deprecated: false
        description: the ID of the customer
        explode: true
        in: path
        name: customer_id
        required: true
        schema:
          format: uuid
          type: string
      - deprecated: false
        description: the ID of the PIX address
        explode: true
        in: path
        name: pix_address_id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          description: Delete Address 

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