openapi: 3.1.0
info:
  description: The Stablecoin Payment Network
  title: Iron API - Sandbox
  version: 1.0-20276
servers:
- url: https://api.sandbox.iron.xyz/api
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

        ## Smart contract wallets (e.g. Safe, Privy)
        EVM smart contract wallets are supported using the same `message` and `signature` fields, no separate endpoint or parameter is needed. Have your wallet SDK sign the same ownership message and submit whatever signature it produces:
        - **Deployed wallets** sign per [ERC-1271](https://eips.ethereum.org/EIPS/eip-1271).
        - **Not-yet-deployed (counterfactual) wallets** sign per [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492), which wraps the ERC-1271 signature so it can be verified before the wallet's first on-chain deployment.

        This endpoint automatically detects and validates both formats. Solana, Stellar, and Tron only support standard wallet signatures.
      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 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 PIX destination.
      tags:
      - Addresses
    get:
      operationId: getPixAddress
      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':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/PixAddress'
          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 PIX destination by ID.
      tags:
      - Addresses
  /authentication-codes/entity/{id}:
    get:
      description: |
        Get the pending authentication code for an entity by ID
        e.g. ID of Autoramp or FiatAddress (entity in AuhorizationRequired state)
        if no pending code is found, retry flow will have to be triggered
      operationId: getPendingAuthenticationCode
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the authentication code 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 entity to get the pending authentication code for
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/AuthenticationCode'
          description: GET Authentication Code Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Authentication Code Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Authentication Code Failed (Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Authentication Code Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get the pending authentication code for an entity
      tags:
      - Customer
  /authentication-codes/{id}:
    put:
      description: |
        Submit the code for a given authentication
      operationId: submitAuthenticationCode
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the authentication code will be submitted under scope of the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - deprecated: false
        description: The ID of the authentication code to submit
        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/SubmitAuthenticationCodeParams'
        description: The authentication code to submit
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/AuthenticationCode'
          description: PUT Authentication Code Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: PUT Authentication Code Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: PUT Authentication Code Failed (Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: PUT Authentication Code Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Submit an authentication code
      tags:
      - Customer
  /autoramp-transactions:
    get:
      description: |-
        Returns a list of transactions, optionally filtered by autoramp ID or customer ID

        An optional `search_term` parameter can be provided that will search the following fields:

        - Bank Account Name
        - Bank Account Provider Name
        - Wallet Address
        - Transaction ID
      operationId: getAutorampTransactions
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the autoramps will be filtered for the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - deprecated: false
        description: Optional autoramp ID
        explode: false
        in: query
        name: autoramp_id
        required: false
        schema:
          default: null
          format: uuid
          type: string
      - deprecated: false
        description: Optional customer ID
        explode: false
        in: query
        name: customer_id
        required: false
        schema:
          default: null
          format: uuid
          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'
        explode: false
        in: query
        name: page_size
        required: false
        schema:
          default: 10
          format: uint32
          maximum: 500.0
          type: integer
      - deprecated: false
        description: A search term to filter the transactions (searches bank account name, provider, wallet address, transaction ID, deposit transaction hash)
        explode: false
        in: query
        name: search_term
        required: false
        schema:
          default: null
          maxLength: 256
          type: string
      - deprecated: false
        description: Type of the autoramp (onramp, offramp or crypto-to-crypto swap)
        explode: false
        in: query
        name: ramp_type
        required: false
        schema:
          allOf:
          - $ref: '#/components/schemas/AutorampType'
          - default: null
          default: null
      - deprecated: false
        description: Filter by start date (inclusive). Only transactions created on or after this date will be returned.
        explode: false
        in: query
        name: from_date
        required: false
        schema:
          default: null
          format: date-time
          type: string
      - deprecated: false
        description: Filter by end date (inclusive). Only transactions created on or before this date will be returned.
        explode: false
        in: query
        name: to_date
        required: false
        schema:
          default: null
          format: date-time
          type: string
      - deprecated: false
        description: Filter by transaction status. Multiple statuses can be provided as comma-separated values.
        explode: false
        in: query
        name: status
        required: false
        schema:
          default: null
          items:
            $ref: '#/components/schemas/AutorampTransactionStatus'
          type: array
      - deprecated: false
        description: Sort order for results. "asc" for oldest first, "desc" for newest first (default).
        explode: false
        in: query
        name: sort_order
        required: false
        schema:
          allOf:
          - $ref: '#/components/schemas/SortOrder'
          - default: null
          default: null
      - deprecated: false
        description: Filter by batch payout flag. If true, only batch payout transactions are returned. If false, only non-batch payout. If omitted, all transactions are returned.
        explode: false
        in: query
        name: is_batch_payout
        required: false
        schema:
          default: null
          type: boolean
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/PagedList_AutorampTransaction'
          description: Autoramp Transaction List
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad Request
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
      security:
      - ApiKeyAuth: []
      summary: List autoramp transactions
      tags:
      - Autoramp
  /autoramp-transactions/ids:
    get:
      description: |-
        Return a subset of transactions by ID.
        This can be used to query multiple transactions for updated states without having to go through all transactions.

        You have to provide at least one transaction ID

        Returns at most 100 transactions
      operationId: getAutorampTransactionsByIds
      parameters:
      - deprecated: false
        description: Ids of the transactions to get
        explode: false
        in: query
        name: ids
        required: false
        schema:
          default: []
          items:
            format: uuid
            type: string
          type: array
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/PagedList_AutorampTransaction'
          description: Autoramp Transaction List
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad Request
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
      security:
      - ApiKeyAuth: []
      summary: Get autoramp transactions by transaction IDs
      tags:
      - Autoramp
  /autoramps:
    get:
      description: |-
        Returns a paginated list of autoramps for all customers

        If customer ID is provided, returns all autoramps for the specified customer

        If status is provided, returns all autoramps with the specified status
      operationId: getAutoramps
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the autoramps 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 optional Customer ID to filter autoramps by. If not provided, returns autoramps for all customers
        explode: false
        in: query
        name: customer_id
        required: false
        schema:
          default: null
          format: uuid
          type: string
      - deprecated: false
        description: Filter by autoramp status. Multiple statuses can be provided as comma-separated values.
        explode: false
        in: query
        name: status
        required: false
        schema:
          default: null
          items:
            $ref: '#/components/schemas/AutorampStatus'
          type: array
      - deprecated: false
        description: autoramp type filter
        explode: true
        in: query
        name: autoramp_type
        required: false
        schema:
          $ref: '#/components/schemas/AutorampType'
      - 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'
        explode: false
        in: query
        name: page_size
        required: false
        schema:
          default: 10
          format: uint32
          maximum: 100.0
          type: integer
      - deprecated: false
        description: Sort order for results. "asc" for oldest first, "desc" for newest first (default).
        explode: false
        in: query
        name: sort_order
        required: false
        schema:
          allOf:
          - $ref: '#/components/schemas/SortOrder'
          - default: null
          default: null
      - deprecated: false
        description: Filter by batch payout flag. If true, only batch payout autoramps are returned. If false, only non-batch payout. If omitted, all autoramps are returned.
        explode: false
        in: query
        name: is_batch_payout
        required: false
        schema:
          default: null
          type: boolean
      - deprecated: false
        description: Filter by autoramp source. "Standalone" returns only market autoramps (with no attached quotes). "Quote" returns only autoramps with at least one attached quote. If omitted, all sources are returned.
        explode: true
        in: query
        name: source
        required: false
        schema:
          $ref: '#/components/schemas/AutorampSource'
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/PagedList_Autoramp'
          description: Get autoramps successful
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Forbidden
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Not Found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
      security:
      - ApiKeyAuth: []
      summary: List Autoramps for a Customer
      tags:
      - Autoramp
    post:
      description: Creates a new autoramp, with a specified recipient account, source and destination currency
      operationId: createAutoramp
      parameters:
      - deprecated: false
        description: a UUID ensuring an Autoramp operation 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 autoramp will be created 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/CreateAutoramp'
        description: The request parameters for creating an autoramp
        required: true
      responses:
        '201':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Autoramp'
          description: Create autoramp successful
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad Request
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Forbidden (e.g. customer is suspended)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Not Found
        '422':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unprocessable Content
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
      security:
      - ApiKeyAuth: []
      summary: Create a new Autoramp
      tags:
      - Autoramp
  /autoramps/check-limit:
    get:
      description: Checks if a customer has reached their limit for creating new autoramps based on the deposit account type and whether it's a third-party ramp.
      operationId: checkAutorampLimit
      parameters:
      - deprecated: false
        description: The customer ID
        explode: true
        in: query
        name: customer_id
        required: true
        schema:
          format: uuid
          type: string
      - deprecated: false
        description: The type of deposit account intended (e.g., Iban, Wallet)
        explode: true
        in: query
        name: deposit_account_type
        required: true
        schema:
          $ref: '#/components/schemas/DepositAccountType'
      - deprecated: false
        description: Whether the intended autoramp is for a third party
        explode: true
        in: query
        name: is_third_party
        required: true
        schema:
          type: boolean
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiCanCreateAutorampResponse'
          description: Check successful
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Not Found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
      security:
      - ApiKeyAuth: []
      summary: Check if a customer can create more autoramps
      tags:
      - Autoramp
  /autoramps/payments/open-banking/{payment_id}:
    get:
      description: |
        Get the autoramp open banking payment for a given autoramp
      operationId: getAutorampOpenBankingPayment
      parameters:
      - deprecated: false
        description: The payment ID
        explode: false
        in: path
        name: payment_id
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '201':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiAutorampOpenBankingPayment'
          description: Create autoramp successful
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad Request
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Not Found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
      security:
      - ApiKeyAuth: []
      summary: Get the autoramp open banking payment for existing payment
      tags:
      - Autoramp
  /autoramps/quote:
    get:
      description: Get a quote for an autoramp with fixed conversion rate, exact amount out or amount in
      operationId: getAutorampQuote
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the autoramps 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 parameters for the quote
          The customer id
        explode: true
        in: query
        name: customer_id
        required: true
        schema:
          format: uuid
          type: string
      - deprecated: false
        description: The source currency code
        explode: true
        in: query
        name: source_currency_code
        required: true
        schema:
          maxLength: 32
          type: string
      - deprecated: false
        description: The source currency chain
        explode: true
        in: query
        name: source_currency_chain
        required: false
        schema:
          $ref: '#/components/schemas/Blockchain'
      - deprecated: false
        description: The destination currency code
        explode: true
        in: query
        name: destination_currency_code
        required: true
        schema:
          maxLength: 32
          type: string
      - deprecated: false
        description: The destination currency chain
        explode: true
        in: query
        name: destination_currency_chain
        required: false
        schema:
          $ref: '#/components/schemas/Blockchain'
      - deprecated: false
        description: |-
          The recipient account ID (fiat_address or verified_crypto_address ID)
          Use this parameter instead of recipient_account. This is the preferred way to provide the recipient account and will be used if both are provided.
        explode: true
        in: query
        name: recipient_account_id
        required: false
        schema:
          default: null
          format: uuid
          type: string
      - deprecated: true
        description: |-
          **DEPRECATED**: The recipient account, either a fiat iban or a crypto wallet address
          Use recipient_account_id instead
        explode: true
        in: query
        name: recipient_account
        required: false
        schema:
          default: null
          maxLength: 256
          type: string
      - deprecated: false
        description: The source amount
        explode: true
        in: query
        name: amount_in
        required: false
        schema:
          default: null
          format: decimal
          type: string
      - deprecated: false
        description: The destination amount
        explode: true
        in: query
        name: amount_out
        required: false
        schema:
          default: null
          format: decimal
          type: string
      - deprecated: false
        description: The rate lock duration in minutes
        explode: true
        in: query
        name: rate_lock_duration_minutes
        required: false
        schema:
          default: null
          format: int64
          type: integer
      - deprecated: false
        description: The rate expiry policy
        explode: true
        in: query
        name: rate_expiry_policy
        required: true
        schema:
          $ref: '#/components/schemas/RateExpiryPolicy'
      - deprecated: false
        description: The slippage tolerance in bips
        explode: true
        in: query
        name: slippage_tolerance_in_bips
        required: false
        schema:
          default: null
          format: decimal
          type: string
      - deprecated: false
        description: The autoramp expiry time in hours. Maximum is 24 hours. It is limited to rate lock duration if rate expiry policy is Return
        explode: true
        in: query
        name: expiry_in_hours
        required: true
        schema:
          format: int64
          type: integer
      - deprecated: false
        description: Is this a third party autoramp
        explode: true
        in: query
        name: is_third_party
        required: true
        schema:
          type: boolean
      - deprecated: false
        description: Sender Account Number is required when the source currency is African & payment type is Bank transfer
        explode: true
        in: query
        name: sender_account_number
        required: false
        schema:
          default: null
          maxLength: 256
          type: string
      - deprecated: false
        description: Sender Mobile Number is required when the source currency is African & payment type is Mobile Money
        explode: true
        in: query
        name: sender_mobile_number
        required: false
        schema:
          default: null
          maxLength: 256
          type: string
      - deprecated: false
        description: Sender Account Financial Institution/Bank is required when the source currency is African
        explode: true
        in: query
        name: sender_bank
        required: false
        schema:
          type: string
      - deprecated: false
        description: The external id
        explode: true
        in: query
        name: external_id
        required: false
        schema:
          default: null
          type: string
      - deprecated: false
        description: wire_message
        explode: true
        in: query
        name: wire_message
        required: false
        schema:
          default: null
          type: string
      - deprecated: false
        description: swift_payment_reference
        explode: true
        in: query
        name: swift_payment_reference
        required: false
        schema:
          default: null
          type: string
      - deprecated: false
        description: sepa_payment_reference
        explode: true
        in: query
        name: sepa_payment_reference
        required: false
        schema:
          default: null
          type: string
      - deprecated: false
        description: ach_payment_reference
        explode: true
        in: query
        name: ach_payment_reference
        required: false
        schema:
          default: null
          type: string
      - deprecated: false
        description: fps_payment_reference
        explode: true
        in: query
        name: fps_payment_reference
        required: false
        schema:
          default: null
          type: string
      - deprecated: false
        description: The fee profile id to use for the autoramp
        explode: true
        in: query
        name: fee_profile_id
        required: false
        schema:
          default: null
          format: uuid
          type: string
      - deprecated: false
        description: Whether payouts for this autoramp are batched daily
        explode: true
        in: query
        name: batch_payout
        required: false
        schema:
          default: null
          type: boolean
      - deprecated: false
        description: |-
          Additional input currency codes to allow on the autoramp beyond
          `source_currency_code`. Used to enable later per-currency quotes via
          `POST /autoramps/:id/quotes` on a quote-type autoramp.

          Must have the same length as `additional_in_currency_chains` and be
          index-aligned: the chain at position `i` describes the code at
          position `i`.
        explode: false
        in: query
        name: additional_in_currency_codes
        required: false
        schema:
          default: []
          items:
            type: string
          maxItems: 16
          type: array
      - deprecated: false
        description: |-
          Chains for each entry in `additional_in_currency_codes`, index-aligned.
          Must have the same length as `additional_in_currency_codes`.
        explode: false
        in: query
        name: additional_in_currency_chains
        required: false
        schema:
          default: []
          items:
            $ref: '#/components/schemas/Blockchain'
          maxItems: 16
          type: array
      - deprecated: false
        description: |-
          If true, a payment reference will be generated for the autoramp on
          inbound matching (pay-by-reference). Defaults to false if not provided.
        explode: true
        in: query
        name: pay_by_reference
        required: false
        schema:
          default: null
          type: boolean
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/SignedAutorampQuote'
          description: Get Quote successful
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad Request
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Forbidden
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Not Found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
      security:
      - ApiKeyAuth: []
      summary: Get a quote for an autoramp
      tags:
      - Autoramp
  /autoramps/quotes-preview:
    get:
      description: |-
        Price a prospective autoramp knowing only the currencies — before a recipient
        wallet or bank account is selected. Prices identically to `getAutorampQuote`;
        banking fees assume the destination currency's default payout rail (USD→ACH,
        EUR→SEPA, GBP→FPS; see `assumed_payout_rail` in the response). The result is an
        estimate and cannot be submitted; fetch a signed quote once a recipient is chosen.
      operationId: getAutorampQuotePreview
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the quote preview is scoped to the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - deprecated: false
        description: The customer id
        explode: true
        in: query
        name: customer_id
        required: true
        schema:
          format: uuid
          type: string
      - deprecated: false
        description: The source currency code
        explode: true
        in: query
        name: source_currency_code
        required: true
        schema:
          maxLength: 32
          type: string
      - deprecated: false
        description: The source currency chain
        explode: true
        in: query
        name: source_currency_chain
        required: false
        schema:
          $ref: '#/components/schemas/Blockchain'
      - deprecated: false
        description: The destination currency code
        explode: true
        in: query
        name: destination_currency_code
        required: true
        schema:
          maxLength: 32
          type: string
      - deprecated: false
        description: The destination currency chain
        explode: true
        in: query
        name: destination_currency_chain
        required: false
        schema:
          $ref: '#/components/schemas/Blockchain'
      - deprecated: false
        description: The source amount. Provide exactly one of amount_in / amount_out.
        explode: true
        in: query
        name: amount_in
        required: false
        schema:
          default: null
          format: decimal
          type: string
      - deprecated: false
        description: The destination amount. Provide exactly one of amount_in / amount_out.
        explode: true
        in: query
        name: amount_out
        required: false
        schema:
          default: null
          format: decimal
          type: string
      - deprecated: false
        description: Price against this fee profile; resolved automatically when omitted
        explode: true
        in: query
        name: fee_profile_id
        required: false
        schema:
          default: null
          format: uuid
          type: string
      - deprecated: false
        description: Is this a third party autoramp (defaults to false)
        explode: true
        in: query
        name: is_third_party
        required: false
        schema:
          default: null
          type: boolean
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiAutorampQuotePreview'
          description: Preview successful
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad Request
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Forbidden
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Not Found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
      security:
      - ApiKeyAuth: []
      summary: Get autoramp quote preview
      tags:
      - Autoramp
  /autoramps/{autoramp_id}:
    delete:
      description: Cancel the execution of an autoramp. After this, the given autoramp will not perform any transactions anymore.
      operationId: cancelAutoramp
      parameters:
      - deprecated: false
        description: The autoramp ID
        explode: false
        in: path
        name: autoramp_id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '204':
          description: Autoramp cancelled successfully
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Not Found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
      security:
      - ApiKeyAuth: []
      summary: Cancel an Autoramp
      tags:
      - Autoramp
    get:
      description: Get a single autoramp by ID
      operationId: getAutorampById
      parameters:
      - deprecated: false
        description: The autoramp ID
        explode: false
        in: path
        name: autoramp_id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Autoramp'
          description: Get autoramp successful
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Not Found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
      security:
      - ApiKeyAuth: []
      summary: Get an Autoramp by ID
      tags:
      - Autoramp
    patch:
      description: |
        Patch the autoramp market by ID
      operationId: patchAutorampMarketById
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the autoramps 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 autoramp ID
        explode: false
        in: path
        name: autoramp_id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      requestBody:
        content:
          application/json; charset=utf-8:
            schema:
              $ref: '#/components/schemas/PatchAutorampMarketParameters'
        description: Parameters for updating the autoramp market
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Autoramp'
          description: Update autoramp successful
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad Request
        '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: Internal Error
      security:
      - ApiKeyAuth: []
      summary: Patch an autoramp market
      tags:
      - Autoramp
  /autoramps/{autoramp_id}/br-code:
    post:
      description: |
        Generates a static Pix BR code (copy-and-paste payload) for a BRL
        autoramp, tagged with your `reference` and optionally a fixed amount.
        The reference is returned with the resulting deposit. Calling again with
        the same parameters returns the same code.
      operationId: createAutorampBrCode
      parameters:
      - deprecated: false
        description: a UUID ensuring an Autoramp operation is only processed once
        explode: true
        in: header
        name: IDEMPOTENCY-KEY
        required: true
        schema:
          type: string
      - deprecated: false
        description: The autoramp ID
        explode: false
        in: path
        name: autoramp_id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      requestBody:
        content:
          application/json; charset=utf-8:
            schema:
              $ref: '#/components/schemas/CreateAutorampBrCodeRequest'
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiAutorampBrCode'
          description: BR code generated
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad Request
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Not Found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
        '503':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Pix provider temporarily unavailable
      security:
      - ApiKeyAuth: []
      summary: Generate a Pix BR code for an autoramp
      tags:
      - Autoramp
  /autoramps/{autoramp_id}/payments/open-banking:
    get:
      description: |-
        Returns a paginated list of all open banking payment attempts for the
        autoramp, ordered by most recent first. Statuses are refreshed from the
        provider on every call (skipping payments already in terminal states).

        Pagination follows the standard cursor pattern: pass `cursor` =
        `iron_payment_id` of the last item in the previous page to fetch the
        next (older) page, or `prev_cursor` to walk backward (newer).
      operationId: listAutorampOpenBankingPayments
      parameters:
      - deprecated: false
        explode: true
        in: path
        name: autoramp_id
        required: true
        schema:
          format: uuid
          type: string
      - deprecated: false
        explode: false
        in: query
        name: cursor
        required: false
        schema:
          default: null
          format: uuid
          type: string
      - deprecated: false
        explode: false
        in: query
        name: prev_cursor
        required: false
        schema:
          default: null
          format: uuid
          type: string
      - deprecated: false
        explode: false
        in: query
        name: page_size
        required: false
        schema:
          default: 10
          format: uint32
          maximum: 10.0
          type: integer
      - deprecated: false
        explode: false
        in: query
        name: sort_order
        required: false
        schema:
          allOf:
          - $ref: '#/components/schemas/SortOrder'
          - default: null
          default: null
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/PagedList_ApiAutorampOpenBankingPayment'
          description: ''
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: ''
      security:
      - ApiKeyAuth: []
      summary: List open banking payments for an autoramp
      tags:
      - Autoramp
    post:
      description: |
        Create an open banking payment link for a given autoramp
      operationId: createAutorampOpenBankingPayment
      parameters:
      - deprecated: false
        description: a UUID ensuring an Autoramp operation is only processed once
        explode: true
        in: header
        name: IDEMPOTENCY-KEY
        required: true
        schema:
          type: string
      - deprecated: false
        description: The autoramp ID
        explode: false
        in: path
        name: autoramp_id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      requestBody:
        content:
          application/json; charset=utf-8:
            schema:
              $ref: '#/components/schemas/CreateAutorampOpenBankingPayment'
        description: Open banking payment parameters
        required: true
      responses:
        '201':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiAutorampOpenBankingPayment'
          description: Create autoramp successful
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad Request
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Not Found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
      security:
      - ApiKeyAuth: []
      summary: Create an open banking payment link
      tags:
      - Autoramp
  /autoramps/{autoramp_id}/quote:
    get:
      description: |-
        Generates a signed rate quote for an existing quote-type autoramp.
        The autoramp's currencies, recipient, and fee profile are used automatically.
      operationId: getAutorampRateQuote
      parameters:
      - deprecated: false
        explode: true
        in: path
        name: autoramp_id
        required: true
        schema:
          format: uuid
          type: string
      - deprecated: false
        description: The source currency code — must be one of the autoramp's input currencies
        explode: true
        in: query
        name: source_currency_code
        required: true
        schema:
          maxLength: 32
          type: string
      - deprecated: false
        description: The source currency chain (required for crypto source currencies)
        explode: true
        in: query
        name: source_currency_chain
        required: false
        schema:
          $ref: '#/components/schemas/Blockchain'
      - deprecated: false
        explode: true
        in: query
        name: amount_in
        required: false
        schema:
          format: decimal
          type: string
      - deprecated: false
        explode: true
        in: query
        name: amount_out
        required: false
        schema:
          format: decimal
          type: string
      - deprecated: false
        explode: true
        in: query
        name: rate_lock_duration_minutes
        required: false
        schema:
          format: int64
          type: integer
      - deprecated: false
        explode: true
        in: query
        name: rate_expiry_policy
        required: true
        schema:
          $ref: '#/components/schemas/RateExpiryPolicy'
      - deprecated: false
        explode: true
        in: query
        name: slippage_tolerance_in_bips
        required: false
        schema:
          format: decimal
          type: string
      - deprecated: false
        explode: true
        in: query
        name: expiry_in_hours
        required: true
        schema:
          format: int64
          maximum: 24.0
          type: integer
      - deprecated: false
        description: |-
          An optional payout reference applied when paying out transactions
          matched to this quote. Overrides the autoramp's payment reference.
        explode: true
        in: query
        name: payment_reference
        required: false
        schema:
          maxLength: 140
          minLength: 1
          pattern: ^[A-Za-z0-9 /\-?:().+]*$
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/SignedAutorampRateQuote'
          description: Get rate quote successful
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad Request
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Forbidden
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Not Found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
      security:
      - ApiKeyAuth: []
      summary: Get a rate quote for an existing autoramp
      tags:
      - Autoramp
  /autoramps/{autoramp_id}/quotes:
    post:
      description: Attaches a signed rate quote to an existing quote-type autoramp.
      operationId: attachQuoteToAutoramp
      parameters:
      - deprecated: false
        description: a UUID ensuring the operation is only processed once
        explode: true
        in: header
        name: IDEMPOTENCY-KEY
        required: true
        schema:
          type: string
      - deprecated: false
        explode: true
        in: path
        name: autoramp_id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      requestBody:
        content:
          application/json; charset=utf-8:
            schema:
              $ref: '#/components/schemas/SignedAutorampRateQuote'
        required: true
      responses:
        '201':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Autoramp'
          description: Attach quote successful
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad Request
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Forbidden (e.g. customer is suspended)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Not Found
        '409':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Conflict (e.g. quote already attached)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
      security:
      - ApiKeyAuth: []
      summary: Attach a quote to an existing autoramp
      tags:
      - Autoramp
  /autoramps/{autoramp_id}/retry-auth:
    post:
      deprecated: true
      description: |
        Retry the authentication process on a failed autoramp
      operationId: retryAutorampAuth
      parameters:
      - deprecated: false
        description: a UUID ensuring an Autoramp operation is only processed once
        explode: true
        in: header
        name: IDEMPOTENCY-KEY
        required: true
        schema:
          type: string
      - deprecated: false
        description: the autoramp ID
        explode: false
        in: path
        name: autoramp_id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '201':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/AuthenticationCode'
          description: Authorization of autoramp succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Not Found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
      summary: Retry authentication
      tags:
      - Autoramp
  /autoramps/{external_id}/external:
    get:
      description: Get a single autoramp by external ID
      operationId: getAutorampByExternalId
      parameters:
      - deprecated: false
        description: The autoramp external ID
        explode: false
        in: path
        name: external_id
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Autoramp'
          description: Get autoramp successful
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Not Found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Error
      security:
      - ApiKeyAuth: []
      summary: Get an Autoramp by external ID
      tags:
      - Autoramp
  /country_subdivisions/{country_code}:
    get:
      description: |
        Utility endpoint to get a list of all accepted subdivisions (states, provinces, regions, etc.) for a given country
      operationId: getCountrySubdivisions
      parameters:
      - deprecated: false
        description: The ISO 3166-1 Alpha-2 country code
        explode: true
        in: path
        name: country_code
        required: true
        schema:
          description: ISO 3166-1 Alpha-2 country code (e.g. "DE", "US")
          example: DE
          maxLength: 2
          minLength: 2
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/CountrySubdivision'
                type: array
          description: GET Subdivisions Succeeded
        '401':
          description: Unauthorized
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Country not found or has no subdivisions
      security:
      - ApiKeyAuth: []
      summary: Get country subdivisions
      tags:
      - Addresses
  /cryptocurrencies:
    get:
      description: |
        A list of all crypto currencies which are currently supported by Iron
      operationId: listCryptoCurrencies
      parameters:
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/CryptoCurrency'
                type: array
          description: GET crypto currencies succeeded
        '401':
          description: GET crypto currencies failed (Unauthorized)
        '500':
          description: GET crypto currencies failed (Internal Server Error)
      security:
      - ApiKeyAuth: []
      summary: List all available crypto currencies
      tags:
      - Currencies
  /customers:
    get:
      description: |
        Get all customers for a particular partner. The partner ID does not need to be provided as it
        is provided by the API Key.

        An optional `search_term` can be provided to filter by name, id, email, or external id.
      operationId: getAllCustomers
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the customers will be filtered for the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        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 customers
        explode: false
        in: query
        name: search_term
        required: false
        schema:
          default: null
          maxLength: 256
          type: string
      - deprecated: false
        description: Filter by customer status (comma-separated or repeated values)
        explode: true
        in: query
        name: status
        required: false
        schema:
          default: null
          items:
            $ref: '#/components/schemas/CustomerStatus'
          type: array
      - deprecated: false
        description: Filter by customer type (Person or Business)
        explode: true
        in: query
        name: customer_type
        required: false
        schema:
          default: null
          items:
            $ref: '#/components/schemas/CustomerType'
          type: array
      - deprecated: false
        description: |-
          When true, only customers with at least one transaction; when
          false, only customers without any. Omit to disable the filter.
        explode: false
        in: query
        name: has_transactions
        required: false
        schema:
          default: null
          type: boolean
      - deprecated: false
        description: 'Sort order: "asc" for oldest first, "desc" for newest first (default)'
        explode: false
        in: query
        name: sort_order
        required: false
        schema:
          allOf:
          - $ref: '#/components/schemas/SortOrder'
          - default: null
          default: null
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/PagedList_Customer'
          description: GET ALL Customer Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET ALL Customer Failed (Unauthorized)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET ALL Customer Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get all Customers
      tags:
      - Customer
    post:
      description: |
        Create a new **business** or **legal person** customer.
      operationId: createCustomer
      parameters:
      - deprecated: false
        description: a UUID ensuring an Customer operation 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 customer will be created 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/CreateCustomerParams'
        description: Parameters required to create a new Customer
        required: true
      responses:
        '201':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Customer'
          description: POST Customer Succeeded
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Customer Failed (Bad Request)
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Customer Failed (Unauthorized)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: POST Customer Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Create a new customer
      tags:
      - Customer
  /customers/{customer_id}/rfis:
    get:
      operationId: listCustomerRfis
      parameters:
      - deprecated: false
        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:
                items:
                  $ref: '#/components/schemas/Rfi'
                type: array
          description: ''
        '401':
          description: ''
        '403':
          description: ''
        '404':
          description: ''
        '500':
          description: ''
      security:
      - ApiKeyAuth: []
      summary: List RFIs for a customer
      tags:
      - Customer
  /customers/{external_id}/external:
    get:
      description: |
        Retrieve a specific customer by external ID
      operationId: getCustomerByExternalId
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the customer 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 external ID of the Customer to GET
        explode: true
        in: path
        name: external_id
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Customer'
          description: GET Customer Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Customer Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Customer Failed (Resource Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Customer Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get a customer by external ID
      tags:
      - Customer
  /customers/{id}:
    get:
      description: |
        Retrieve a specific customer by ID
      operationId: getCustomerById
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the customer 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 to GET
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Customer'
          description: GET Customer Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Customer Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Customer Failed (Resource Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Customer Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get a customer by ID
      tags:
      - Customer
    put:
      description: |
        Update a customer by ID
      operationId: updateCustomer
      parameters:
      - 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
      - deprecated: false
        description: the ID of the Customer to update
        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/UpdateCustomerParams'
        description: The customer data to be used for the update
        required: true
      responses:
        '204':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Customer'
          description: PUT Customer Succeeded
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: PUT Customer Failed (Bad Request)
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: PUT Customer Failed (Unauthorized)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: PUT Customer Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Update a customer
      tags:
      - Customer
  /customers/{id}/abilities:
    get:
      description: |
        Retrieve the abilities/capabilities for a specific customer by ID
      operationId: getCustomerAbilities
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the customer 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 to GET abilities for
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/CustomerAbilities'
          description: GET Customer Abilities Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Customer Abilities Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Customer Abilities Failed (Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Customer Abilities Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get customer abilities
      tags:
      - Customer
  /customers/{id}/archive:
    put:
      description: |
        Archive a customer and all of their identifications. This is terminal and
        cannot be undone: the customer is completely and permanently blocked from
        using any services.
      operationId: archiveCustomer
      parameters:
      - deprecated: false
        description: the ID of the Customer to archive
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Customer'
          description: Customer Archived
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Archive Customer Failed (Bad Request)
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Archive Customer Failed (Unauthorized)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Archive Customer Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Archive a customer
      tags:
      - Customer
  /customers/{id}/identification-data:
    patch:
      description: |-
        Partial update for a person customer's existing KYC record. Only
        non-null fields are applied. Patches the customer's existing KYC
        record directly — does not trigger re-verification, so an
        already-approved customer keeps their status. Useful for backfilling a
        tax identification number (DAC8/CARF) on customers who onboarded before
        TIN collection existed.
      operationId: updateCustomerIdentificationData
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the identification data will be updated for the sub-partner's customer
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - deprecated: false
        description: the ID of the Customer whose identification data will be updated
        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/UpdateIdentificationDataParams'
        description: The identification data to update
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Identification'
          description: PATCH Customer Identification Data Succeeded
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: PATCH Customer Identification Data Failed (Invalid Request)
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: PATCH Customer Identification Data Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: PATCH Customer Identification Data Failed (Resource Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: PATCH Customer Identification Data Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Update Customer Identification Data
      tags:
      - Customer
  /customers/{id}/identifications:
    get:
      description: |
        Retrieve all identifications for this customer
      operationId: getAllCustomerIdentifications
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the identifications 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 to get Identifications for
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          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 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_Identification'
          description: GET ALL Identification Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET ALL Identification Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET ALL Identification Failed (Resource Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET ALL Identification Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get all customer Identifications
      tags:
      - Customer
  /customers/{id}/identifications/tin-step-up:
    post:
      description: |-
        For an already-approved customer, moves their existing KYC
        onto a TIN-only step-up level and returns a fresh verification
        link. Hand the returned `url` to the customer to collect their tax
        identification number status. No-ops with a 409 if the customer already
        has a TIN on file.
      operationId: triggerCustomerTinStepUp
      parameters:
      - deprecated: false
        description: a UUID ensuring a TIN step-up trigger 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 step-up will be triggered for the sub-partner's customer
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - deprecated: false
        description: the ID of the Customer to trigger a TIN step-up for
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Identification'
          description: POST Trigger Customer TIN Step-Up Succeeded
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Trigger Customer TIN Step-Up Failed (Invalid Request)
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Trigger Customer TIN Step-Up Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Trigger Customer TIN Step-Up Failed (Resource Not Found)
        '409':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Trigger Customer TIN Step-Up Failed (Customer Already Has a TIN On File)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: POST Trigger Customer TIN Step-Up Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Trigger Customer TIN Step-Up
      tags:
      - Customer
  /customers/{id}/identifications/v2:
    post:
      description: |-
        This will create a new identification for the customer, dependent on the customer type a KYC or KYB will be created for the customer to complete.
        we support three types of identification:
        - Link: where a link is provided to the customer for access to the identification process.
        - Token: where a token is provided in the request from which verification data can be extracted and where the token is generated by the third party provider
        - Person: where the identification details of the person for which the identification process is being created are provided in the request
      operationId: createCustomerIdentificationV2
      parameters:
      - deprecated: false
        description: a UUID ensuring an Customer Identification operation 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 identification will be created under scope of 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 to create an Identification for
        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/IdentificationCreateParamsV2'
        description: The Identification data to be used for the identification
        required: true
      responses:
        '201':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Identification'
          description: POST Customer Identification Succeeded
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiIdentificationErrorBody'
          description: POST Customer Identification Failed (Invalid Request)
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Customer Identification Failed (Unauthorized)
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Customer Identification Failed (Forbidden)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Customer Identification Failed (Resource Not Found)
        '409':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/IdentificationConflict'
          description: POST Customer Identification Failed (Duplicate Or Pending Identification)
        '429':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Customer Identification Failed (Creation Rate Limit Exceeded)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: POST Customer Identification Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Create Customer Identification V2
      tags:
      - Customer
  /customers/{id}/microdeposits:
    get:
      description: |
        Retrieve all microdeposits for a specific customer by ID
      operationId: getCustomerMicrodeposits
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the customer 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 to GET microdeposits for
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/Microdeposit'
                type: array
          description: GET Microdeposits Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Microdeposits Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Microdeposits Failed (Resource Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Microdeposits Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get customer microdeposits
      tags:
      - Customer
  /customers/{id}/required-signings:
    get:
      description: |
        Get all required signings for a customer
      operationId: getCustomerRequiredSignings
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the required signings 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 to get required signings for
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/TermsAndConditionsLink'
                type: array
          description: GET Required Signings Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Required Signings Failed (Unauthorized)
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Required Signings Failed (Forbidden)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Required Signings Failed (Not Found)
        '409':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Required Signings Failed (Conflict)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Required Signings Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get customer required signings
      tags:
      - Customer
  /customers/{id}/requirements:
    get:
      deprecated: false
      description: |-
        API 2026-10-01 returns catalog descriptions and separate review feedback,
        validation occurrences, and rejected document steps. Earlier versions retain
        the legacy shape. The default when X-API-Version is omitted remains unchanged.
        Customers without stored requirements show the identification-level requirement.
        Only applicant-facing feedback is included on this route.
      operationId: getCustomerRequirements
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the customer 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 to GET requirements for
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/StructuredCustomerRequirements'
          description: GET Customer Requirements Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Customer Requirements Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Customer Requirements Failed (Resource Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Customer Requirements Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get customer requirements
      tags:
      - Customer
  /customers/{id}/signings:
    get:
      description: |
        Retrieve all signings for a customer, representing the various legal agreements and consents gathered from the customer.
        See The KYC/Compliance section of our documentation for more info.
      operationId: getSignings
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the signings 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 to get Signings for
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          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 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_Signing'
          description: GET Signings Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Signings Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Signings Resource Not found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Signings Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get all customer Signings
      tags:
      - Customer
    post:
      description: |+
        This will create a signing for the customer, representing the legal consent to a specific Document.
        See The KYC/Compliance section of our documentation for more info.

      operationId: createCustomerSigning
      parameters:
      - deprecated: false
        description: a UUID ensuring an Signing operation 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 signing will be created under scope of 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 to create a Signing for
        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/SigningCreateParams'
        description: Parameters required to create a new Signing
        required: true
      responses:
        '201':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Signing'
          description: POST Signing Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Signing Failed (Unauthorized)
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Signing Failed (Forbidden)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Signing Failed (Not Found)
        '422':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: POST Signing Failed (Validation Error)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: POST Signing Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Create a new Customer signing
      tags:
      - Customer
  /customers/{id}/spending-limit:
    get:
      description: |-
        Retrieve the current spending limit usage for a specific customer,
        split by direction (fiat on-ramp and crypto off-ramp).

        Amounts are returned in **EUR cents** as strings.

        `threshold_eur` (and therefore `remaining_eur`) is `null` for Business
        customers and persons with `ThresholdKind::Regulated`. `null` means
        "no enforced cap"
      operationId: getCustomerSpendingLimit
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the customer 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 to GET the spending limit for
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/CustomerSpendingLimit'
          description: GET Customer Spending Limit Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Customer Spending Limit Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Customer Spending Limit Failed (Resource Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Customer Spending Limit Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get customer spending limit usage
      tags:
      - Customer
  /exchange-rate:
    get:
      description: |
        Get the exchange rate from a source currency to a destination currency for a customer with effective rate and fees
      operationId: getExchangeRate
      parameters:
      - deprecated: false
        description: customer id
        explode: false
        in: query
        name: customer_id
        required: false
        schema:
          default: null
          format: uuid
          type: string
      - deprecated: false
        description: source currency code
        explode: true
        in: query
        name: source_currency_code
        required: true
        schema:
          maxLength: 32
          type: string
      - deprecated: false
        description: source currency type
        explode: true
        in: query
        name: source_currency_type
        required: true
        schema:
          $ref: '#/components/schemas/CurrencyType'
      - deprecated: false
        description: source currency chain
        explode: true
        in: query
        name: source_currency_chain
        required: false
        schema:
          $ref: '#/components/schemas/Blockchain'
      - deprecated: false
        description: destination currency code
        explode: true
        in: query
        name: destination_currency_code
        required: true
        schema:
          maxLength: 32
          type: string
      - deprecated: false
        description: destination currency type
        explode: true
        in: query
        name: destination_currency_type
        required: true
        schema:
          $ref: '#/components/schemas/CurrencyType'
      - deprecated: false
        description: destination currency chain
        explode: true
        in: query
        name: destination_currency_chain
        required: false
        schema:
          $ref: '#/components/schemas/Blockchain'
      - deprecated: false
        description: amount
        explode: true
        in: query
        name: amount
        required: true
        schema:
          format: decimal
          type: string
      - deprecated: true
        description: partner fee in bips
        explode: true
        in: query
        name: _partner_fee_in_bips
        required: false
        schema:
          format: uint64
          type: integer
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ExchangeRate'
          description: The exchange rate response
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: The bad request response
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: The unauthorized response
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: The not found response
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: The internal server error response
      security:
      - ApiKeyAuth: []
      summary: Get exchange rate
      tags:
      - ExchangeRate
  /fee-profiles:
    get:
      description: Gets fee profile of partner
      operationId: getFeeProfiles
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the fee profiles will be filtered for the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - deprecated: false
        description: Ids of the fee profiles to get. Will be ignored if is_default is set to true.
        explode: false
        in: query
        name: fee_profile_ids
        required: false
        schema:
          default: null
          items:
            format: uuid
            type: string
          type: array
      - deprecated: false
        description: parameter to get the default fee profile. If set to true, only the default fee profile will be returned.
        explode: false
        in: query
        name: is_default
        required: false
        schema:
          default: null
          type: boolean
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/PagedList_FeeProfile'
          description: GET Fee Profiles Succeeded
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad Request
        '401':
          description: GET Fee Profiles Failed (Unauthorized)
        '404':
          description: Get Fee Profiles Not Found
        '500':
          description: GET Fee Profiles Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get Fee Profile of Partner
      tags:
      - FeeProfiles
    post:
      description: |-
        Creates a new transactional fee profile for the partner.
        Iron fee settings are inherited from the partner's invoicing fee profile.
      operationId: createFeeProfile
      parameters:
      - deprecated: false
        description: Unique key to ensure idempotent creation
        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/CreatePartnerFeeProfileRequest'
        required: true
      responses:
        '201':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/FeeProfile'
          description: Create fee profile successful
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
        '500':
          description: Internal Error
      security:
      - ApiKeyAuth: []
      summary: Create Fee Profile
      tags:
      - FeeProfiles
  /fiatcurrencies:
    get:
      description: |
        A list of all fiat currencies which are currently supported by Iron
      operationId: listFiatCurrencies
      parameters:
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/FiatCurrency'
                type: array
          description: GET fiat currencies succeeded
        '401':
          description: GET fiat currencies failed (Unauthorized)
      security:
      - ApiKeyAuth: []
      summary: List all available fiat currencies
      tags:
      - Currencies
  /identifications/{id}:
    get:
      description: |
        Retrieve a specific Identification by ID
      operationId: getIdentificationById
      parameters:
      - deprecated: false
        description: the ID of the Identification to GET
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Identification'
          description: GET Identification Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Identification Failed (Unauthorized)
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Identification Failed (Forbidden)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Identification Failed (ResourceNotFound)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Identification Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Get an Identification by ID
      tags:
      - Customer
  /identifications/{id}/archive:
    put:
      description: |
        Archive an identification. This is terminal and cannot be undone: the
        identification is permanently invalidated and can no longer be used to
        verify the customer.
      operationId: archiveIdentification
      parameters:
      - deprecated: false
        description: the ID of the Identification to archive
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Identification'
          description: Identification Archived
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Archive Identification Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Archive Identification Failed (ResourceNotFound)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Archive Identification Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Archive an identification
      tags:
      - Customer
  /identifications/{id}/compliance-questionnaire:
    get:
      description: |
        Fetch the compliance questionnaire for an identification
      operationId: getIdentificationComplianceQuestionnaire
      parameters:
      - deprecated: false
        description: the ID of the Identification to get compliance questions for
        explode: true
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ComplianceQuestionaire'
          description: GET Compliance Question Succeeded
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Compliance Question Failed (Unauthorized)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: GET Compliance Question Failed (Resource Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: GET Compliance Question Failed (Internal Error)
      security:
      - ApiKeyAuth: []
      summary: Fetch identification compliance questionnaire
      tags:
      - Customer
  /pix-key-info:
    get:
      description: |-
        Utility endpoint to resolve the holder/bank info a PIX key points to,
        without registering anything. Useful to preview a destination before
        `POST /addresses/pix`.
      operationId: getPixKeyInfo
      parameters:
      - deprecated: false
        description: Which PIX key format `pix_key` is
        explode: true
        in: query
        name: pix_key_type
        required: true
        schema:
          $ref: '#/components/schemas/ApiPixKeyType'
      - deprecated: false
        description: The PIX key to resolve, in the format `pix_key_type` declares
        explode: true
        in: query
        name: pix_key
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/PixKeyInfo'
          description: Lookup succeeded
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad request (e.g. pix_key doesn't match pix_key_type's format)
        '401':
          description: Unauthorized
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: The PIX key could not be resolved
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Failed to look up the PIX key
      security:
      - ApiKeyAuth: []
      summary: Look up a PIX key.
      tags:
      - Addresses
  /platform-fee-configs:
    get:
      description: |-
        Lists every platform fee config for the partner, along with the rule (ramp kind,
        currency, customer, price source) that selects each one. Use this instead of the
        deprecated `iron_fee` field on a fee profile.
      operationId: getPlatformFeeConfigs
      parameters:
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/IronFeeConfig'
                type: array
          description: ''
        '401':
          description: ''
        '500':
          description: ''
      security:
      - ApiKeyAuth: []
      summary: Get Platform Fee Configs of Partner
      tags:
      - FeeProfiles
  /rfis:
    get:
      operationId: listRfis
      parameters:
      - deprecated: false
        description: '`open` (default) or `completed`'
        explode: false
        in: query
        name: state
        required: false
        schema:
          allOf:
          - $ref: '#/components/schemas/RfiListState'
          - default: null
          default: null
      - deprecated: false
        explode: false
        in: query
        name: search_term
        required: false
        schema:
          default: null
          maxLength: 256
          type: string
      - deprecated: false
        explode: false
        in: query
        name: cursor
        required: false
        schema:
          default: null
          format: uuid
          type: string
      - deprecated: false
        explode: false
        in: query
        name: prev_cursor
        required: false
        schema:
          default: null
          format: uuid
          type: string
      - deprecated: false
        explode: false
        in: query
        name: page_size
        required: false
        schema:
          default: 10
          format: uint32
          maximum: 100.0
          type: integer
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/PagedList_RfiCustomerGroup'
          description: ''
        '401':
          description: ''
        '403':
          description: ''
        '500':
          description: ''
      security:
      - ApiKeyAuth: []
      summary: List RFIs
      tags:
      - Customer
  /rfis/{rfi_id}:
    get:
      operationId: getRfi
      parameters:
      - deprecated: false
        explode: true
        in: path
        name: rfi_id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Rfi'
          description: ''
        '401':
          description: ''
        '403':
          description: ''
        '404':
          description: ''
        '500':
          description: ''
      security:
      - ApiKeyAuth: []
      summary: Get an RFI
      tags:
      - Customer
  /rfis/{rfi_id}/rounds/{round_id}/document-link-opened:
    post:
      operationId: recordRfiDocumentLinkOpened
      parameters:
      - deprecated: false
        explode: true
        in: header
        name: IDEMPOTENCY-KEY
        required: false
        schema:
          type: string
      - deprecated: false
        explode: true
        in: path
        name: rfi_id
        required: true
        schema:
          format: uuid
          type: string
      - deprecated: false
        explode: true
        in: path
        name: round_id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          description: ''
        '401':
          description: ''
        '403':
          description: ''
        '404':
          description: ''
        '409':
          description: ''
        '500':
          description: ''
      security:
      - ApiKeyAuth: []
      summary: Record that an RFI document link was opened
      tags:
      - Customer
  /rfis/{rfi_id}/rounds/{round_id}/documents:
    post:
      operationId: uploadRfiDocument
      parameters:
      - deprecated: false
        explode: true
        in: header
        name: IDEMPOTENCY-KEY
        required: false
        schema:
          type: string
      - deprecated: false
        explode: true
        in: path
        name: rfi_id
        required: true
        schema:
          format: uuid
          type: string
      - deprecated: false
        explode: true
        in: path
        name: round_id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  format: binary
                  type: string
              required:
              - file
              type: object
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/RfiDocument'
          description: ''
        '400':
          content:
            text/plain; charset=utf-8:
              schema:
                type: string
          description: ''
        '403':
          description: ''
        '404':
          description: ''
        '409':
          description: ''
        '500':
          description: ''
      security:
      - ApiKeyAuth: []
      summary: Upload an RFI document
      tags:
      - Customer
  /rfis/{rfi_id}/rounds/{round_id}/response:
    post:
      operationId: submitRfiResponse
      parameters:
      - deprecated: false
        explode: true
        in: header
        name: IDEMPOTENCY-KEY
        required: false
        schema:
          type: string
      - deprecated: false
        explode: true
        in: path
        name: rfi_id
        required: true
        schema:
          format: uuid
          type: string
      - deprecated: false
        explode: true
        in: path
        name: round_id
        required: true
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      requestBody:
        content:
          application/json; charset=utf-8:
            schema:
              $ref: '#/components/schemas/SubmitRfiResponse'
        required: true
      responses:
        '200':
          description: ''
        '400':
          content:
            text/plain; charset=utf-8:
              schema:
                type: string
          description: ''
        '401':
          description: ''
        '403':
          description: ''
        '404':
          description: ''
        '409':
          description: ''
        '500':
          description: ''
      security:
      - ApiKeyAuth: []
      summary: Submit an RFI response
      tags:
      - Customer
  /sandbox/autoramp/{id}:
    put:
      description: |
        Update the status of an autoramp for testing purposes
      operationId: updateSandboxAutorampStatus
      parameters:
      - deprecated: false
        description: the ID of the autoramp to update
        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/AutorampStatus'
        description: the new autoramp status
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Autoramp'
          description: Update autoramp successful
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Bad Request
        '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: Internal Error
      security:
      - ApiKeyAuth: []
      summary: Update autoramp status
      tags:
      - Sandbox
  /sandbox/fiat-verification/{id}:
    put:
      description: |
        Update the verification status of a fiat address
      operationId: updateSandboxFiatAddressVerificationStatus
      parameters:
      - deprecated: false
        description: the ID of the address to update
        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/FiatAddressStatus'
        description: the new verification status
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/FiatAddress'
          description: Update Address Succeeded
        '403':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Update Address Failed (Forbidden)
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Update Address Failed (Not Found)
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: ''
      security:
      - ApiKeyAuth: []
      summary: Update fiat address verification status
      tags:
      - Sandbox
  /sandbox/identification/{id}:
    post:
      deprecated: true
      description: |-
        Updates a pending identification for a customer.
        Deprecated: use `POST /sandbox/identification/{id}/status`, which reaches every status.
      operationId: updateSandboxIdentificationStatus
      parameters:
      - deprecated: false
        description: a UUID ensuring the reset operation is only processed once
        explode: true
        in: header
        name: IDEMPOTENCY-KEY
        required: true
        schema:
          type: string
      - deprecated: false
        description: the ID of the identification to update
        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/UpdatePendingIdentificationParams'
        description: Parameters required to update a pending identification
        required: true
      responses:
        '201':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Identification'
          description: ''
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: ''
      security:
      - ApiKeyAuth: []
      summary: Update pending Identification status
      tags:
      - Sandbox
  /sandbox/identification/{id}/status:
    post:
      description: |-
        Sets a customer's identification to any status, bypassing the normal transition rules,
        so partners can rehearse every branch of their onboarding UI. Sandbox only.
      operationId: setSandboxIdentificationStatus
      parameters:
      - deprecated: false
        description: a UUID ensuring the status update is only processed once
        explode: true
        in: header
        name: IDEMPOTENCY-KEY
        required: true
        schema:
          type: string
      - deprecated: false
        description: the ID of the identification to update
        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/SetIdentificationStatusParams'
        description: The status to set
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Identification'
          description: ''
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: ''
      security:
      - ApiKeyAuth: []
      summary: Set Identification status
      tags:
      - Sandbox
  /sandbox/reset:
    post:
      description: Resets the sandbox for the partner. Including fiat accounts, wallets, autoramps, transactions, and customers
      operationId: resetSandbox
      parameters:
      - deprecated: false
        description: a UUID ensuring the reset operation 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'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                type: boolean
          description: ''
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: ''
      security:
      - ApiKeyAuth: []
      summary: Reset sandbox environment
      tags:
      - Sandbox
  /sandbox/transaction:
    post:
      description: |-
        Creates a new fiat transaction directly from an autoramp configuration for testing purposes.
        This bypasses the normal deposit flow and creates a ramp transaction with the specified amount
        using the autoramp's configuration (customer, recipient, currencies, etc.).
      operationId: createSandboxTransaction
      parameters:
      - deprecated: false
        description: a UUID ensuring a Ramp Transaction operation is only processed 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/CreateSandboxTransactionParams'
        description: Parameters required to create a new sandbox ramp transaction
        required: true
      responses:
        '201':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/SandboxSandboxTransaction'
          description: ''
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: ''
      security:
      - ApiKeyAuth: []
      summary: Mock a transaction
      tags:
      - Sandbox
  /sandbox/transaction/{id}/state:
    put:
      description: Updates the state of a sandbox transaction for testing purposes
      operationId: updateSandboxTransactionState
      parameters:
      - deprecated: false
        description: a UUID ensuring the state update operation is only processed once
        explode: true
        in: header
        name: IDEMPOTENCY-KEY
        required: true
        schema:
          type: string
      - deprecated: false
        description: the ID of the ramp transaction to update
        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/UpdateRampTransactionStateParams'
        description: Parameters required to update the ramp transaction state
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/SandboxSandboxTransaction'
          description: ''
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: ''
      security:
      - ApiKeyAuth: []
      summary: Update sandbox transaction state
      tags:
      - Sandbox
  /terms-and-conditions:
    get:
      description: |
        Retrieve all latest terms and conditions signings are required for a specific country
      operationId: getAllCurrentTermsAndConditions
      parameters:
      - deprecated: false
        explode: true
        in: query
        name: country
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/XApiVersion'
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/TermsAndConditionsLink'
                type: array
          description: ''
        '400':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: ''
      security:
      - ApiKeyAuth: []
      summary: Get all current terms and conditions
      tags:
      - TermsAndConditions
  /webhooks:
    get:
      description: |
        Lists all webhooks for the currently authenticated partner
      operationId: listWebhooks
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the webhooks of the sub-partner are listed
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        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 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_Webhook'
          description: Listing successful
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Failed to list webhooks
      security:
      - ApiKeyAuth: []
      summary: List all webhooks
      tags:
      - Webhooks
  /webhooks/{id}:
    patch:
      description: |
        Updates an existing webhook for the currently authenticated partner
      operationId: updateWebhook
      parameters:
      - deprecated: false
        description: Optional sub-partner UUID, if provided, the webhook will be updated under scope of the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - deprecated: false
        description: The ID of the webhook to update
        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/UpdateWebhookRequest'
        description: The webhook update request
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Webhook'
          description: Update 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
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Not Found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Failed to update the webhook
      security:
      - ApiKeyAuth: []
      summary: Update a webhook
      tags:
      - Webhooks
  /webhooks/{id}/ping:
    post:
      description: Sends a test ping event to a webhook for testing purposes
      operationId: pingWebhook
      parameters:
      - deprecated: false
        description: a UUID ensuring the ping operation 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 webhook will be pinged under scope of the sub-partner
        explode: true
        in: header
        name: X-SUB-PARTNER-ID
        required: false
        schema:
          type: string
      - deprecated: false
        description: the ID of the webhook to ping
        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/PingWebhookParams'
        description: Parameters required to ping a webhook
        required: true
      responses:
        '200':
          content:
            application/json; charset=utf-8:
              schema:
                type: boolean
          description: Successfully pinged webhook
        '401':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Unauthorized
        '404':
          content:
            application/json; charset=utf-8:
              schema:
                type: string
          description: Webhook not found
        '500':
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal server error
      security:
      - ApiKeyAuth: []
      summary: Ping webhook
      tags:
      - Webhooks
components:
  parameters:
    XApiVersion:
      description: 'Selects the API version for this request, as an ISO date (`YYYY-MM-DD`). Omit to use the default version (`2025-03-13`). Supported versions: 2025-03-13, 2026-07-01, 2026-08-01, 2026-10-01, 2026-10-15.'
      in: header
      name: X-API-Version
      required: false
      schema:
        type: string
  schemas:
    ACHDepositInfo:
      example:
        account_number: '123456789'
        bank_address: 1 Chase Manhattan Plaza, New York, NY 10005, US
        bank_name: JPMorgan Chase Bank
        recipient_address: 123 Main Street, New York, NY 10001, US
        recipient_name: Alan Turing
        routing_number: '021000021'
      properties:
        account_number:
          type: string
        bank_address:
          type: string
        bank_name:
          type: string
        recipient_address:
          type: string
        recipient_name:
          type: string
        routing_number:
          type: string
      required:
      - routing_number
      - account_number
      - bank_name
      - bank_address
      - recipient_name
      - recipient_address
      title: ACHDepositInfo
      type: object
    AbilityStatus:
      description: The current status of the ability
      enum:
      - Active
      - Pending
      - Unavailable
      - Blocked
      - Maintenance
      type: string
    Account:
      anyOf:
      - $ref: '#/components/schemas/Account_FiatAccount'
      - $ref: '#/components/schemas/Account_CryptoWallet'
      - $ref: '#/components/schemas/Account_PixAccount'
      description: |
        Account

        The account for the autoramp
      discriminator:
        mapping:
          Crypto: '#/components/schemas/Account_CryptoWallet'
          Fiat: '#/components/schemas/Account_FiatAccount'
          Pix: '#/components/schemas/Account_PixAccount'
        propertyName: type
      type: object
    Account_CryptoWallet:
      allOf:
      - properties:
          type:
            enum:
            - Crypto
            example: Crypto
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/CryptoWallet'
      description: |
        Account

        The account for the autoramp
    Account_FiatAccount:
      allOf:
      - properties:
          type:
            enum:
            - Fiat
            example: Fiat
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/FiatAccount'
      description: |
        Account

        The account for the autoramp
    Account_PixAccount:
      allOf:
      - properties:
          type:
            enum:
            - Pix
            example: Pix
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/PixAccount'
      description: |
        Account

        The account for the autoramp
    AchWireDepositInfo:
      example:
        account_number: '123456789'
        bank_address: 1 Chase Manhattan Plaza, New York, NY 10005, US
        bank_name: JPMorgan Chase Bank
        recipient_address: 123 Main Street, New York, NY 10001, US
        recipient_name: Alan Turing
        routing_number: '021000021'
      properties:
        account_number:
          type: string
        bank_address:
          type: string
        bank_name:
          type: string
        recipient_address:
          type: string
        recipient_name:
          type: string
        routing_number:
          type: string
      required:
      - routing_number
      - account_number
      - bank_name
      - bank_address
      - recipient_name
      - recipient_address
      title: AchWireDepositInfo
      type: object
    Address:
      description: Address
      properties:
        city:
          description: city
          type: string
        country:
          description: country (2-character ISO 3166)
          type: string
        state:
          description: state/province/region
          type: string
        street_1:
          description: street address
          type: string
        street_2:
          description: street address (additional)
          type: string
        zip_code:
          description: zip code
          type: string
      required:
      - street_1
      - city
      - zip_code
      - country
      title: Address
      type: object
    AddressFilter:
      description: |
        Filter for address types when retrieving signatures

        Specifies which type of addresses to return
      enum:
      - Hosted
      - SelfHosted
      - All
      type: string
    AddressType:
      enum:
      - Hosted
      - SelfHosted
      type: string
    AfricanBankTransferDepositInfo:
      properties:
        account_name:
          type: string
        account_number:
          type: string
        amount:
          format: decimal
          type: string
        bank_name:
          type: string
        currency:
          type: string
        financial_institution:
          type: string
        instruction:
          type: string
        reference_id:
          type: string
      title: AfricanBankTransferDepositInfo
      type: object
    Amount:
      description: |
        An amount of money
      example:
        amount: '100.5'
        currency:
          code: USD
          type: Fiat
      properties:
        amount:
          description: The amount, a decimal number
          format: decimal
          type: string
        currency:
          $ref: '#/components/schemas/Currency'
      required:
      - amount
      - currency
      title: Amount
      type: object
    ApiAutorampBrCode:
      description: A Pix BR code for an autoramp
      properties:
        br_code:
          description: The Pix copy-and-paste (EMV) payload to pay
          type: string
      required:
      - br_code
      title: ApiAutorampBrCode
      type: object
    ApiAutorampOpenBankingPayment:
      description: |-
        Autoramp Open Banking Payment with link to initiate flow

        One payment attempt against a provider for an autoramp's open-banking flow.
      properties:
        id:
          description: |-
            The provider's payment ID (e.g. tokenio's payment ID). Use this with
            the GET-by-id endpoint to look up the latest status.
          type: string
        iron_payment_id:
          description: |-
            Iron's internal identifier for this open banking payment. Use this
            as the pagination cursor when listing payments.
          format: uuid
          type: string
        payment_link:
          type: string
        settlement_status:
          $ref: '#/components/schemas/ApiAutorampOpenBankingPaymentSettlementStatus'
        status:
          $ref: '#/components/schemas/ApiAutorampOpenBankingPaymentStatus'
      required:
      - id
      - iron_payment_id
      - status
      title: ApiAutorampOpenBankingPayment
      type: object
    ApiAutorampOpenBankingPaymentSettlementStatus:
      enum:
      - InProgress
      - Completed
      - Incomplete
      type: string
    ApiAutorampOpenBankingPaymentStatus:
      description: |
        Autoramp Payment Link Status

        The status of the autoramp payment link
      enum:
      - Pending
      - Ready
      - Processing
      - Completed
      - Failed
      type: string
    ApiAutorampQuotePreview:
      description: |
        Autoramp Quote Preview

        A recipient-free pricing preview, shaped like a signed quote but not
        submittable: no quote_id, signature, or validity window.
      properties:
        amount_in:
          $ref: '#/components/schemas/Amount'
        amount_out:
          $ref: '#/components/schemas/Amount'
        assumed_payout_rail:
          $ref: '#/components/schemas/PaymentNetwork'
        customer_id:
          description: The customer id
          format: uuid
          type: string
        destination_currency:
          $ref: '#/components/schemas/Currency'
        fee:
          $ref: '#/components/schemas/Fee'
        fee_profile_id:
          description: The fee profile this preview was priced against
          format: uuid
          type: string
        fee_settlement:
          $ref: '#/components/schemas/FeeSettlement'
        rate:
          description: The rate (destination per 1 source)
          format: decimal
          type: string
        source_currency:
          $ref: '#/components/schemas/Currency'
      required:
      - source_currency
      - destination_currency
      - customer_id
      - amount_in
      - amount_out
      - rate
      - fee
      - fee_settlement
      - fee_profile_id
      title: ApiAutorampQuotePreview
      type: object
    ApiBankAccountSource:
      description: A bank account source of an autoramp transaction
      example:
        account_number: null
        bank_name: Iron Bank
        bic: COBADEFFXXX
        iban: DE89370400440532013000
        name: Alan Turing
        routing_number: null
        sort_code: null
      properties:
        account_number:
          description: The account number for US accounts
          type: string
        bank_name:
          description: The bank name
          type: string
        bic:
          description: The bic
          type: string
        iban:
          description: The iban
          type: string
        name:
          description: The name of the account holder
          type: string
        routing_number:
          description: The routing number of the bank, for US accounts
          type: string
        sort_code:
          description: The sort code of the bank, for UK accounts
          type: string
      required:
      - bank_name
      - iban
      - bic
      - name
      title: ApiBankAccountSource
      type: object
    ApiCanCreateAutorampResponse:
      description: |
        Can Create Autoramp Response

        Indicates whether a customer can create a new autoramp.
      properties:
        can_create:
          description: Whether the customer can create a new autoramp based on the provided parameters.
          type: boolean
      required:
      - can_create
      title: ApiCanCreateAutorampResponse
      type: object
    ApiError:
      description: |-
        Standard error response returned to API clients for server errors.
        Includes a trace_id that clients can reference when reporting issues.
      properties:
        message:
          description: Human-readable error message
          type: string
        trace_id:
          description: Trace ID that can be used to look up request details in logs
          type: string
      required:
      - message
      - trace_id
      title: ApiError
      type: object
    ApiFiatAbilities:
      description: |-
        Fiat rails
        Customer's ability to use fiat deposit and payout rails
      properties:
        brl:
          $ref: '#/components/schemas/BrlAbilities'
        eur:
          $ref: '#/components/schemas/EurAbilities'
        gbp:
          $ref: '#/components/schemas/GbpAbilities'
        usd:
          $ref: '#/components/schemas/UsdAbilities'
      required:
      - eur
      - gbp
      - usd
      - brl
      title: ApiFiatAbilities
      type: object
    ApiIdentificationErrorBody:
      anyOf:
      - items:
          $ref: '#/components/schemas/IdentificationError'
        type: array
      - type: string
      description: |-
        The body of a `BadRequest` identification-creation response. Callers on
        `X-API-Version: 2026-08-01` or later get [`Errors`](Self::Errors) — a
        structured, machine-readable array. Earlier/unversioned callers keep
        today's bare string for backward compatibility.
      type: object
    ApiIdentificationErrorCode:
      description: |
        Identification Error Code

        Machine-readable classification of a business/person/token identification
        failure. Categories, not a 1:1 mirror of internal validation variants —
        internal validation changes don't ripple into the public contract this
        way. See `https://docs.iron.xyz/errors` for a description of every code.
      enum:
      - invalid_request
      - selfie_required
      - selfie_expired
      - tin_required
      - identity_document_rejected
      - identity_document_images_identical
      - structure_invalid
      - attestation_invalid
      - cdd_certification_invalid
      - business_description_insufficient
      - funds_flow_disclosure_required
      - license_details_required
      - company_details_required
      - legal_presence_required
      - ownership_structure_required
      - control_structure_required
      - ubo_country_prohibited
      - ubo_share_below_threshold
      - ubo_subtype_invalid
      - proof_of_address_required_for_edd
      - outsourcing_agreement_not_signed
      - uk_customers_not_enabled
      - country_not_supported
      - duplicate_upload_blocked
      - provider_rejected_document
      - reuse_rejected
      - prohibited_industry
      - industry_required
      - miscellaneous_industry_deprecated
      - intended_use_deprecated
      - foundation_intended_use_not_supported
      - all_deposit_rails_blocked
      type: string
    ApiPixKeyType:
      description: |-
        PIX Key Type

        Which of the five PIX key formats `pix_key` is, for `GET /pix-key-info`.
        Declared explicitly by the caller rather than guessed from the string's
        shape, mirroring the tags `ApiPixAccountIdentifier` uses at registration.
      enum:
      - CPF
      - CNPJ
      - EMAIL
      - PHONE
      - EVP
      type: string
    ApiPreflightDecision:
      enum:
      - likely_pass
      - fail
      - likely_fail
      - inconclusive
      type: string
    ApiThirdPartyClassification:
      description: |
        Third Party Classification

        Whether the payer who funded a transaction was the customer themselves.
        Determined when the deposit arrives, by comparing the payer name on the
        incoming payment against the customer's verified name.

        - `FirstParty`: the names match. The customer paid from their own account.
        - `ThirdParty`: the names do not match. Someone other than the customer paid.
        - `Inconclusive`: a partial match we will not call either way, for example a
        missing middle name or a joint account.
        - `Unknown`: no payer name was supplied with the payment, so there was
        nothing to compare.

        Always set for EUR and GBP bank deposits. On other rails it is only
        evaluated when the parent autoramp was created with
        `source_is_third_party`, and it is never set in sandbox. Treat an absent
        value as "not evaluated", not as `FirstParty`.
      enum:
      - FirstParty
      - ThirdParty
      - Inconclusive
      - Unknown
      type: string
    ApiWalletDepositSource:
      description: A wallet deposit source of an autoramp transaction
      example:
        blockchain: Solana
        deposit_tx_hash: 45E89p7aRyUzsqbqstCkKqxaaeYXgagbq8ccHCZWMRN1E8KAqoEPACDasVjkMMbDJGwrwFHz5RDT67kUN3p5Rk81
        wallet_address: 7QqLDBU5iT4VWshsqRdWKHjKdqZqKqYbpjhCkqDnKXSp
      properties:
        blockchain:
          description: The blockchain
          type: string
        deposit_tx_hash:
          description: The deposit transaction hash
          type: string
        wallet_address:
          description: The wallet address
          type: string
      required:
      - wallet_address
      - blockchain
      title: ApiWalletDepositSource
      type: object
    ApproximateNetWorth:
      description: |
        Approximate Net Worth

        The approximate net worth of the person
      enum:
      - UpTo25000
      - Between25001And50000
      - Between50001And100000
      - Between100001And300000
      - Between300001And500000
      - Between500001And1000000
      - Over1000001
      type: string
    AuthenticationCode:
      description: |
        An authentication code

        used to confirm a 2FA action
      properties:
        attempts:
          description: attempts to submit the authentication code
          format: int32
          type: integer
        entity_id:
          description: the ID of the entity the authentication is related to
          format: uuid
          type: string
        expires_at:
          description: the time of expiry for the authentication code
          format: date-time
          type: string
        id:
          description: The ID of the authentication code
          format: uuid
          type: string
        status:
          $ref: '#/components/schemas/AuthenticationCodeStatus'
      required:
      - id
      - status
      - expires_at
      - attempts
      - entity_id
      title: AuthenticationCode
      type: object
    AuthenticationCodeStatus:
      description: The status of the Authentication Code
      enum:
      - Pending
      - Expired
      - Confirmed
      - Rejected
      type: string
    Autoramp:
      description: |-
        Autoramp

        The autoramp response

        A Autoramp response
      properties:
        additional_partner_fee_in_bips:
          description: The additional partner fee in bips
          format: decimal
          type: string
        batch_payout:
          description: Whether payouts for this autoramp are batched daily
          type: boolean
        created_at:
          description: The created at timestamp
          format: date-time
          type: string
        customer_id:
          description: The id of the customer that owns the autoramp
          format: uuid
          type: string
        deposit_account:
          allOf:
          - $ref: '#/components/schemas/DepositAccount'
          - deprecated: true
            description: Deprecated, please use the information in the deposit_rails field instead
          deprecated: true
          description: Deprecated, please use the information in the deposit_rails field instead
        deposit_rails:
          items:
            $ref: '#/components/schemas/DepositRail'
          type: array
        destination_currency:
          $ref: '#/components/schemas/Currency'
        external_id:
          description: External ID for the autoramp, provided by the partner
          type: string
        fee_profile_id:
          description: The fee profile id used for the autoramp
          format: uuid
          type: string
        fps_payment_reference:
          description: reference message for outgoing FPS transfers
          type: string
        id:
          description: The id of the autoramp
          format: uuid
          type: string
        inbound_payment_reference:
          description: |-
            System-generated inbound memo that senders must include on transfers
            to the shared VA. `None` for autoramps that don't use pay-by-reference.
          type: string
        is_third_party:
          description: |-
            Whether this autoramp accepts third-party payments (3pp), which
            determines how its deposits are routed and screened. Set from
            `source_is_third_party` at creation and fixed for the life of the
            autoramp. It can also be enabled automatically for some currencies
            depending on which rail the customer is eligible for, so `true` does not
            mean any particular deposit came from a third party. For that, read
            `third_party_classification` on the transaction.
          type: boolean
        kind:
          $ref: '#/components/schemas/AutorampType'
        name:
          description: The name of the autoramp
          type: string
        payment_reference:
          description: The payment reference for the autoramp
          type: string
        quote:
          allOf:
          - $ref: '#/components/schemas/AutorampQuote'
          - deprecated: true
            description: 'Deprecated: use the `quotes` field instead. Returns the newest active (non-expired) quote if any.'
          deprecated: true
          description: 'Deprecated: use the `quotes` field instead. Returns the newest active (non-expired) quote if any.'
        quotes:
          description: |-
            Active (non-expired) quotes associated with this autoramp. Deposits are
            matched to the newest active quote with matching `amount_in` value and
            currency.
          items:
            $ref: '#/components/schemas/AutorampQuote'
          type: array
        recipient:
          $ref: '#/components/schemas/Recipient'
        sepa_payment_reference:
          description: reference message for outgoing SEPA transfers
          type: string
        source:
          $ref: '#/components/schemas/AutorampSource'
        source_currencies:
          description: The source currencies
          items:
            $ref: '#/components/schemas/Currency'
          type: array
        status:
          $ref: '#/components/schemas/AutorampStatus'
        swift_payment_reference:
          description: reference message for outgoing SWIFT transfers
          type: string
        travel_address:
          description: The travel rule address for compliance
          type: string
        wire_message:
          description: reference message for outgoing wire transfers
          type: string
      required:
      - id
      - customer_id
      - status
      - kind
      - created_at
      - source_currencies
      - destination_currency
      - source
      - quotes
      - is_third_party
      - recipient
      - deposit_rails
      - fee_profile_id
      - batch_payout
      title: Autoramp
      type: object
    AutorampQuote:
      description: |
        Autoramp Quote

        The autoramp quote used to create an autoramp
      properties:
        amount_in:
          $ref: '#/components/schemas/Amount'
        amount_out:
          $ref: '#/components/schemas/Amount'
        fee:
          $ref: '#/components/schemas/Fee'
        fee_settlement:
          $ref: '#/components/schemas/FeeSettlement'
        partner_fee_settlement:
          $ref: '#/components/schemas/FeeSettlement'
        quote_id:
          description: The id of the quote
          format: uuid
          type: string
        rate:
          description: The rate
          format: decimal
          type: string
        rate_expiry_policy:
          $ref: '#/components/schemas/RateExpiryPolicy'
        rate_lock_valid_until:
          description: The rate lock valid until
          format: date-time
          type: string
        slippage_tolerance_in_bips:
          description: The slippage tolerance in bips
          format: decimal
          type: string
        valid_until:
          description: The valid until
          format: date-time
          type: string
      required:
      - quote_id
      - amount_in
      - amount_out
      - rate
      - rate_lock_valid_until
      - rate_expiry_policy
      - fee
      - fee_settlement
      - partner_fee_settlement
      - valid_until
      title: AutorampQuote
      type: object
    AutorampSource:
      description: |-
        Autoramp Source

        The source of the autoramp
      enum:
      - Standalone
      - Quote
      type: string
    AutorampStatus:
      enum:
      - Created
      - EditPending
      - Authorized
      - DepositAccountAdded
      - Approved
      - Rejected
      - Cancelled
      type: string
    AutorampTransaction:
      description: |-
        Autoramp Transaction

        The autoramp transaction response

        A Payment response
      properties:
        autoramp_id:
          description: The ID of the autoramp this transaction belongs to
          format: uuid
          type: string
        batch_id:
          description: The batch ID if this transaction was part of a batch payout
          format: uuid
          type: string
        created_at:
          description: Date of transaction creation
          format: date-time
          type: string
        customer_id:
          description: The ID of the customer two whom this transaction belongs
          format: uuid
          type: string
        destination_amount:
          $ref: '#/components/schemas/Amount'
        exchange_rate:
          description: The exchange rate
          format: decimal
          type: string
        fee:
          description: The total fee charged
          format: decimal
          type: string
        fee_breakdown:
          $ref: '#/components/schemas/Fee'
        fee_settlement:
          $ref: '#/components/schemas/FeeSettlement'
        id:
          description: The ID of the transaction
          format: uuid
          type: string
        inbound_payment_reference:
          description: reference of this transaction's pay-in transfer
          type: string
        is_third_party:
          description: |-
            Whether the parent autoramp is configured to accept third-party
            payments, copied from the autoramp. This is a configuration flag, not a
            finding about this transaction. Use `third_party_classification` to see
            whether this specific payment came from the customer.
          type: boolean
        kind:
          $ref: '#/components/schemas/AutorampType'
        ob_payment_id:
          description: |-
            The id of the open-banking payment that initiated this
            transaction, if any. Use this to look up the ob_payment via the
            `getAutorampOpenBankingPayment` endpoint family.
          type: string
        payment_tracking:
          $ref: '#/components/schemas/PaymentTracking'
        payout_crypto_transaction:
          $ref: '#/components/schemas/PayoutCryptoTransaction'
        recipient:
          $ref: '#/components/schemas/Recipient'
        source:
          $ref: '#/components/schemas/RampTransactionSource'
        source_amount:
          $ref: '#/components/schemas/Amount'
        state:
          allOf:
          - $ref: '#/components/schemas/AutorampTransactionState'
          - deprecated: true
            description: 'The current state of the transaction. DEPRECATED: use ''status'''
          deprecated: true
          description: 'The current state of the transaction. DEPRECATED: use ''status'''
        status:
          $ref: '#/components/schemas/AutorampTransactionStatus'
        third_party_classification:
          $ref: '#/components/schemas/ApiThirdPartyClassification'
      required:
      - id
      - customer_id
      - autoramp_id
      - state
      - status
      - source_amount
      - destination_amount
      - recipient
      - fee
      - exchange_rate
      - created_at
      - fee_settlement
      - is_third_party
      - kind
      title: AutorampTransaction
      type: object
    AutorampTransactionState:
      description: |
        Autoramp Transaction State

        The state of the autoramp transaction
      enum:
      - Pending
      - PayoutPending
      - Payout
      - PayoutCompleted
      - Completed
      - Failed
      - InAmlReview
      - AmlRejected
      - AmountRejected
      - FraudRejected
      type: string
    AutorampTransactionStatus:
      description: |
        Autoramp Transaction Status

        The status of the autoramp transaction
      enum:
      - FundsReviewInProgress
      - ConversionInProgress
      - PayoutInProgress
      - Completed
      - Failed
      - RejectedAml
      - RejectedFraud
      - RejectedMinAmount
      type: string
    AutorampType:
      description: |-
        Autoramp type

        The type (onramp, offramp, swap) of an autoramp
      enum:
      - Onramp
      - Offramp
      - Swap
      - Mint
      - Redeem
      type: string
    BankAccountACHIdentifier:
      example:
        account_number: '123456789'
        routing_number: '021000021'
      properties:
        account_number:
          description: US account number (4-17 alphanumeric characters)
          pattern: ^[0-9A-Z]{4,17}$
          type: string
        routing_number:
          description: US routing number (exactly 9 digits)
          pattern: ^[0-9]{9}$
          type: string
      required:
      - routing_number
      - account_number
      title: BankAccountACHIdentifier
      type: object
    BankAccountCBUIdentifier:
      example:
        account_number: '0170099220000067797370'
      properties:
        account_number:
          description: CBU (exactly 22 digits, with valid check digits). Bank aliases are not accepted.
          pattern: ^[0-9]{22}$
          type: string
      required:
      - account_number
      title: BankAccountCBUIdentifier
      type: object
    BankAccountCHAPSIdentifier:
      example:
        account_number: '12345678'
        sort_code: 20-00-00
      properties:
        account_number:
          type: string
        sort_code:
          type: string
      required:
      - sort_code
      - account_number
      title: BankAccountCHAPSIdentifier
      type: object
    BankAccountCVUIdentifier:
      example:
        account_number: '0000003100012345678901'
      properties:
        account_number:
          description: CVU (exactly 22 digits). Bank aliases are not accepted.
          pattern: ^[0-9]{22}$
          type: string
      required:
      - account_number
      title: BankAccountCVUIdentifier
      type: object
    BankAccountFPSIdentifier:
      example:
        account_number: '55779911'
        sort_code: 20-00-00
      properties:
        account_number:
          type: string
        sort_code:
          type: string
      required:
      - sort_code
      - account_number
      title: BankAccountFPSIdentifier
      type: object
    BankAccountFedNowIdentifier:
      example:
        account_number: '456789123'
        routing_number: '021000021'
      properties:
        account_number:
          description: US account number (4-17 alphanumeric characters)
          pattern: ^[0-9A-Z]{4,17}$
          type: string
        routing_number:
          description: US routing number (exactly 9 digits)
          pattern: ^[0-9]{9}$
          type: string
      required:
      - routing_number
      - account_number
      title: BankAccountFedNowIdentifier
      type: object
    BankAccountIdentifier:
      anyOf:
      - $ref: '#/components/schemas/BankAccountIdentifier_Iban'
      - $ref: '#/components/schemas/BankAccountIdentifier_BankAccountACHIdentifier'
      - $ref: '#/components/schemas/BankAccountIdentifier_BankAccountWireIdentifier'
      - $ref: '#/components/schemas/BankAccountIdentifier_BankAccountRTPIdentifier'
      - $ref: '#/components/schemas/BankAccountIdentifier_BankAccountFedNowIdentifier'
      - $ref: '#/components/schemas/BankAccountIdentifier_BankAccountSWIFTIdentifier'
      - $ref: '#/components/schemas/BankAccountIdentifier_BankAccountCHAPSIdentifier'
      - $ref: '#/components/schemas/BankAccountIdentifier_BankAccountFPSIdentifier'
      - $ref: '#/components/schemas/BankAccountIdentifier_BankAccountCBUIdentifier'
      - $ref: '#/components/schemas/BankAccountIdentifier_BankAccountCVUIdentifier'
      discriminator:
        mapping:
          ACH: '#/components/schemas/BankAccountIdentifier_BankAccountACHIdentifier'
          CBU: '#/components/schemas/BankAccountIdentifier_BankAccountCBUIdentifier'
          CHAPS: '#/components/schemas/BankAccountIdentifier_BankAccountCHAPSIdentifier'
          CVU: '#/components/schemas/BankAccountIdentifier_BankAccountCVUIdentifier'
          FEDNOW: '#/components/schemas/BankAccountIdentifier_BankAccountFedNowIdentifier'
          FPS: '#/components/schemas/BankAccountIdentifier_BankAccountFPSIdentifier'
          RTP: '#/components/schemas/BankAccountIdentifier_BankAccountRTPIdentifier'
          SEPA: '#/components/schemas/BankAccountIdentifier_Iban'
          SWIFT: '#/components/schemas/BankAccountIdentifier_BankAccountSWIFTIdentifier'
          Wire: '#/components/schemas/BankAccountIdentifier_BankAccountWireIdentifier'
        propertyName: type
      type: object
    BankAccountIdentifier_BankAccountACHIdentifier:
      allOf:
      - properties:
          type:
            enum:
            - ACH
            example: ACH
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/BankAccountACHIdentifier'
    BankAccountIdentifier_BankAccountCBUIdentifier:
      allOf:
      - properties:
          type:
            enum:
            - CBU
            example: CBU
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/BankAccountCBUIdentifier'
    BankAccountIdentifier_BankAccountCHAPSIdentifier:
      allOf:
      - properties:
          type:
            enum:
            - CHAPS
            example: CHAPS
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/BankAccountCHAPSIdentifier'
    BankAccountIdentifier_BankAccountCVUIdentifier:
      allOf:
      - properties:
          type:
            enum:
            - CVU
            example: CVU
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/BankAccountCVUIdentifier'
    BankAccountIdentifier_BankAccountFPSIdentifier:
      allOf:
      - properties:
          type:
            enum:
            - FPS
            example: FPS
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/BankAccountFPSIdentifier'
    BankAccountIdentifier_BankAccountFedNowIdentifier:
      allOf:
      - properties:
          type:
            enum:
            - FEDNOW
            example: FEDNOW
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/BankAccountFedNowIdentifier'
    BankAccountIdentifier_BankAccountRTPIdentifier:
      allOf:
      - properties:
          type:
            enum:
            - RTP
            example: RTP
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/BankAccountRTPIdentifier'
    BankAccountIdentifier_BankAccountSWIFTIdentifier:
      allOf:
      - properties:
          type:
            enum:
            - SWIFT
            example: SWIFT
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/BankAccountSWIFTIdentifier'
    BankAccountIdentifier_BankAccountWireIdentifier:
      allOf:
      - properties:
          type:
            enum:
            - Wire
            example: Wire
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/BankAccountWireIdentifier'
    BankAccountIdentifier_Iban:
      allOf:
      - properties:
          type:
            enum:
            - SEPA
            example: SEPA
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/Iban'
    BankAccountRTPIdentifier:
      example:
        account_number: '456789123'
        routing_number: '021000021'
      properties:
        account_number:
          description: US account number (4-17 alphanumeric characters)
          pattern: ^[0-9A-Z]{4,17}$
          type: string
        routing_number:
          description: US routing number (exactly 9 digits)
          pattern: ^[0-9]{9}$
          type: string
      required:
      - routing_number
      - account_number
      title: BankAccountRTPIdentifier
      type: object
    BankAccountSWIFTIdentifier:
      example:
        account_number: '1234567890'
        bic: CHASUS33XXX
      properties:
        account_number:
          maxLength: 34
          minLength: 1
          pattern: ^[a-zA-Z0-9 ]*[a-zA-Z0-9]+$
          type: string
        bic:
          type: string
        intermediary_bic:
          description: |-
            BIC of an intermediary correspondent bank in the SWIFT routing chain,
            when the sender wants to override the auto-selected intermediary.
            Optional — most senders leave this unset and let their provider pick.
          type: string
      required:
      - bic
      - account_number
      title: BankAccountSWIFTIdentifier
      type: object
    BankAccountWireIdentifier:
      example:
        account_number: '987654321'
        routing_number: '021000021'
      properties:
        account_number:
          description: US account number (4-17 alphanumeric characters)
          pattern: ^[0-9A-Z]{4,17}$
          type: string
        routing_number:
          description: US routing number (exactly 9 digits)
          pattern: ^[0-9]{9}$
          type: string
      required:
      - routing_number
      - account_number
      title: BankAccountWireIdentifier
      type: object
    BankPostalAddress:
      description: |-
        BankPostalAddress

        The bank's address. Only required for SWIFT accounts.
      properties:
        city:
          description: The city
          maxLength: 100
          minLength: 2
          type: string
        country:
          $ref: '#/components/schemas/Country'
        postal_code:
          description: The postal code
          maxLength: 20
          minLength: 3
          type: string
        state:
          description: The state
          type: string
        street:
          description: The street address
          maxLength: 256
          minLength: 2
          type: string
      required:
      - street
      - city
      - state
      - country
      - postal_code
      title: BankPostalAddress
      type: object
    BankingFeeConfig:
      description: |
        Banking Fee Config Response

        A banking fee config response which can be deducted immediately from the transaction amount or invoiced monthly/separately
      properties:
        billing_type:
          $ref: '#/components/schemas/BillingType'
        fee_amount:
          $ref: '#/components/schemas/Amount'
        fiat_transfer_type:
          $ref: '#/components/schemas/FiatTransfer'
        rail:
          $ref: '#/components/schemas/PaymentNetwork'
        settlement:
          $ref: '#/components/schemas/FeeSettlement'
      required:
      - rail
      - fee_amount
      - fiat_transfer_type
      - billing_type
      - settlement
      title: BankingFeeConfig
      type: object
    BankingFeeConfiguration:
      description: |
        Banking Fee Config Request

        A banking fee config request which can be deducted immediately from the transaction amount
      properties:
        fee_amount:
          description: The fee amount of the banking fee
          format: decimal
          type: string
        fiat_transfer_type:
          $ref: '#/components/schemas/FiatTransfer'
        rail:
          $ref: '#/components/schemas/PaymentNetwork'
      required:
      - rail
      - fee_amount
      - fiat_transfer_type
      title: BankingFeeConfiguration
      type: object
    BeneficiaryIdentity:
      description: |
        Beneficiary Identity Document

        Identity document and biometric information for a person beneficiary.
        Mirrors ApiPersonIdentity but excludes ip_address (collected at the business level).
      properties:
        identity_country_code:
          description: ISO 3166-1 alpha-2 country code of the person's identity document
          type: string
        identity_document_back:
          description: Base64 encoded image of identity document back (10MB max)
          type: string
        identity_document_front:
          description: Base64 encoded image of identity document front (10MB max)
          type: string
        identity_document_type:
          $ref: '#/components/schemas/IdentityDocumentType'
        identity_document_valid_until:
          description: Expiry date of the identity document (YYYY-MM-DD format). Must not be in the past.
          type: string
        identity_number:
          description: The identity number of the document being submitted
          type: string
        nationality:
          description: ISO 3166-1 alpha-2 nationality country code
          type: string
        selfie:
          description: |-
            Base64 encoded selfie image (10MB max).
            Required for Director or Representative beneficiaries outside the US. Optional for
            every role in the US, and for other roles anywhere.
          type: string
        selfie_collected_at:
          description: |-
            timestamp in ISO 8601 format when the selfie was captured.
            Required when selfie is provided.
          type: string
      required:
      - identity_country_code
      - identity_document_type
      - identity_document_front
      - nationality
      title: BeneficiaryIdentity
      type: object
    BeneficiaryUboSubtype:
      description: |
        Beneficial Owner Subtype

        The basis on which an UltimateBeneficialOwner qualifies as one. Required for every
        UltimateBeneficialOwner and rejected on any other beneficiary. `Control` is only
        accepted on root-level person beneficiaries of a company that isn't a sole
        proprietorship. Available from API version 2026-10-15; earlier versions reject it.
      enum:
      - Ownership
      - Control
      type: string
    BillingType:
      description: |
        Billing Type

        The type of billing for the partner fee
      enum:
      - One Time
      - Monthly
      - Quarterly
      - Annual
      - Semi Annual
      - Per Transaction
      type: string
    BipsFeeRequest:
      description: |
        Bips Fee Request

        The request for a bips fee
      properties:
        bips:
          deprecated: true
          description: |-
            The bips fee value, rounded to the nearest whole bip. Deprecated: use
            `bips_decimal` instead, which is always populated going forward.
            Still always populated here too (including in responses) for backward
            compatibility with existing integrations.
          format: uint32
          type: integer
        bips_decimal:
          default: null
          description: |-
            The precise bips fee value. Takes precedence over `bips` when both are
            set on a request; always populated on a response.
          format: decimal
          type: string
      required:
      - bips
      title: BipsFeeRequest
      type: object
    BipsFeeWithMinimum:
      properties:
        bips:
          deprecated: true
          description: |-
            Rounded to the nearest whole bip. Deprecated: use `bips_decimal`
            instead, which is always populated going forward; when both are set
            on a request, `bips_decimal` wins. Still always populated here too for
            backward compatibility with existing integrations.
          format: uint32
          type: integer
        bips_decimal:
          default: null
          description: The precise bips value. Always populated.
          format: decimal
          type: string
        monthly_minimum_scope:
          allOf:
          - $ref: '#/components/schemas/MinimumScope'
          - default: null
            description: What usage reduces the minimum (unset = all orchestration fees).
          default: null
          description: What usage reduces the minimum (unset = all orchestration fees).
        monthly_minimum_usd:
          default: null
          description: Monthly minimum in USD (usage-reduced top-up).
          format: decimal
          type: string
      required:
      - bips
      title: BipsFeeWithMinimum
      type: object
    BirthPlace:
      description: |
        Birth place

        The place of birth of the person
      properties:
        country:
          description: ISO 3166-1 alpha-2 (2 letter) country code of the place of birth
          type: string
        place:
          description: place of birth
          type: string
        state:
          description: |-
            state of birth. Required only for countries with ISO 3166-2
            administrative subdivisions (e.g. not required for countries with
            none, like Vatican City).
          type: string
      required:
      - place
      - country
      title: BirthPlace
      type: object
    Blockchain:
      description: |
        Blockchain

        A type of blockchain
      enum:
      - Solana
      - Ethereum
      - Polygon
      - Arbitrum
      - Base
      - Stellar
      - Citrea
      - Plasma
      - Avalanche
      - Moca
      - Monad
      - Tempo
      - Tron
      - Bsc
      - Seismic
      - Arc
      - Optimism
      type: string
    BrlAbilities:
      properties:
        pix:
          $ref: '#/components/schemas/AbilityStatus'
        pix_thirdparty:
          $ref: '#/components/schemas/AbilityStatus'
      required:
      - pix
      - pix_thirdparty
      title: BrlAbilities
      type: object
    BusinessBeneficiaryInfo:
      description: |
        Business Beneficiary Info

        A company that itself owns or controls the parent business. Carries the
        same `ApiCompanyData` as the root identification: company info, its own
        beneficiaries (which may include further nested businesses up to the
        configured depth limit), and supporting documents.
      properties:
        company_data:
          $ref: '#/components/schemas/CompanyData'
      required:
      - company_data
      title: BusinessBeneficiaryInfo
      type: object
    BusinessEstimatedAnnualRevenue:
      description: |
        Estimated Annual Revenue

        Company's estimated annual revenue. The numbers are band boundaries, not a currency
        requirement: read them in the currency the business reports in, so a company reporting
        2,000,000 USD sends From1MTo10M. Do not convert at an FX rate. There is no separate
        band set per currency.
      enum:
      - Under100K
      - From100KTo1M
      - From1MTo10M
      - From10MTo50M
      - From50MTo250M
      - Over250M
      type: string
    BusinessEstimatedMonthlyTransactions:
      description: |
        Estimated Monthly Transaction Count

        Expected number of transactions per month
      enum:
      - LessThanTen
      - TenToTwentyFive
      - TwentyFiveToFifty
      - FiftyToOneHundred
      - MoreThanOneHundred
      type: string
    BusinessEstimatedMonthlyVolume:
      description: |
        Estimated Monthly Transaction Volume

        Expected monthly transaction volume. The numbers are band boundaries, not a currency
        requirement: read them in the currency the business reports in, so a company reporting
        60,000 USD sends FiftyToOneHundredThousand. Do not convert at an FX rate. There is no
        separate band set per currency.
      enum:
      - TenToTwentyFiveThousand
      - TwentyFiveToFiftyThousand
      - FiftyToOneHundredThousand
      - OneHundredToTwoHundredFiftyThousand
      - TwoHundredFiftyToFiveHundredThousand
      - MoreThanFiveHundredThousand
      type: string
    BusinessIdentificationStepStatus:
      properties:
        company_beneficiaries:
          $ref: '#/components/schemas/VerificationStepDetail'
        company_data:
          $ref: '#/components/schemas/VerificationStepDetail'
        company_documents:
          $ref: '#/components/schemas/VerificationStepDetail'
        questionnaire:
          $ref: '#/components/schemas/VerificationStepDetail'
      title: BusinessIdentificationStepStatus
      type: object
    BusinessIndustryType:
      description: |
        Industry Type

        Business industry/sector classification
      enum:
      - Agriculture
      - Automotive
      - BankingAndFinancialServices
      - ConstructionAndRealEstate
      - CryptocurrencyAndBlockchain
      - CryptocurrencyMining
      - DecentralisedFinance
      - NftPlatforms
      - CryptoPaymentProcessors
      - CryptoWalletProviders
      - CryptoExchanges
      - CryptoCustodyServices
      - EcommerceAndOnlineMarketplaces
      - EducationAndTraining
      - EnergyAndUtilities
      - EntertainmentAndMedia
      - GamingAndEsports
      - HealthcareAndPharmaceuticals
      - HospitalityAndTourism
      - InformationTechnologyAndSoftware
      - Insurance
      - LegalAndProfessionalServices
      - LogisticsAndTransportation
      - ManufacturingAndIndustrial
      - MetaversePlatforms
      - MiningAndNaturalResources
      - NonProfitAndCharitable
      - RetailAndWholesaleTrade
      - Telecommunications
      - VentureCapitalAndPrivateEquity
      - CasinosAndGambling
      - MoneyServiceBusinesses
      - SocialMediaAndNetworking
      - CrowdfundingPlatforms
      - RegTech
      - Other
      type: string
    BusinessIndustryV2:
      description: |
        Industry (V2)

        Full granular business industry/sector classification, matching Sumsub's live industry
        dropdown 1:1. Supersedes `ApiBusinessIndustryType`, which only covers 36 broad categories.
      enum:
      - AdultEntertainment
      - Advertising
      - Aerospace
      - AgricultureAndFarming
      - Alcohol
      - AntiquesAndCollectibles
      - ArmoredCourierServices
      - Art
      - ArtificialIntelligence
      - ATMs
      - AuctioneersAndBrokers
      - BailBondsmanBailiffServices
      - BankingAsAService
      - BinaryOptions
      - Biotechnology
      - BlockchainAdTech
      - BlockchainAssetManagement
      - BlockchainDeveloperTech
      - BlockchainUtilities
      - BuildingMaterialsAndSupplies
      - BusinessServices
      - BuyNowPayLaterBNPL
      - Cannabis
      - CarDealership
      - CashFundedRemittances
      - CentralizedCryptoExchangesAndTrading
      - Chemical
      - CleaningProductsAndServices
      - CloudComputing
      - CollectibleCards
      - CommissionAgents
      - Commodities
      - ComputerHardware
      - Consulting
      - ConsumerElectronics
      - ConsumerGoods
      - ConsumerProducts
      - Crafts
      - CreditServices
      - CryptoExchange
      - CryptoHedgeFund
      - CryptoMining
      - CryptoNews
      - CryptoPayroll
      - Culture
      - CustodialWallet
      - Cybersecurity
      - DataStorageAndManagement
      - DatingServices
      - DecentralizedCryptoExchangeAndTrading
      - DefenseMilitary
      - DeFiDecentralizedFinance
      - Design
      - DiamondIndustry
      - DigitalBrokerage
      - ElectricVehicles
      - EmbassiesConsulatesMissions
      - EnvironmentalServices
      - EscrowServices
      - Events
      - ExoticAnimals
      - FabricsAndTextiles
      - Fashion
      - Fintech
      - FoodAndBeverage
      - ForeignCorrespondentBanking
      - FXTrading
      - GamblingHostingEnvironmentsWebsites
      - GamblingPaymentProcessors
      - GamblingSoftware
      - GemsOrPreciousMetalsDealership
      - Government
      - GovernmentIDsDocumentsUniforms
      - Heavy
      - HighNetWorthIndividualExclusiveServices
      - Hospitality
      - ImmersiveExperience
      - InformationTechnology
      - JewelryOrWatches
      - LeisureAndRecreation
      - LicensedPharmaceuticals
      - LogisticsAndSupplyChain
      - LoyaltyRewardsAndUserEngagementTool
      - LuxuryGoods
      - MachineryAndHeavyEquipmentManufacturing
      - Media
      - MedicalDevicesAndSupplies
      - Miscellaneous
      - MultiLevelMarketing
      - Music
      - NeobanksChallengerBanks
      - NFTMarketplace
      - NomineeShareholderBearerShareEntities
      - NonCustodialWallet
      - Nutraceuticals
      - OTCTrading
      - PawnBrokers
      - PersonalServices
      - PetCareAndSupplies
      - Pharmaceutical
      - Photography
      - PoliticalOrganizationsPACs
      - PrePaidCards
      - PredictionMarkets
      - Printing
      - PrivateBankingWealthManagement
      - PrivateMilitaryOrSecurity
      - ProfessionalServices
      - Publishing
      - RealEstate
      - RestaurantsAndFoodServices
      - Retail
      - Robotics
      - ScrapyardDealers
      - Security
      - SexualServices
      - SkinsLootBoxTrading
      - Software
      - Space
      - SportsAndFitness
      - SustainableAndEthical
      - Technology
      - Telecom
      - ThirdPartyPaymentProcessors
      - TicketBrokersAgencies
      - Timeshare
      - TobaccoNicotineVapes
      - ToolsAndHardware
      - ToysAndGames
      - TraditionalProducts
      - Transportation
      - TravelAndTourism
      - TrustAndCompanyServiceProvidersTCSP
      - Utilities
      - WasteManagement
      - WeaponsKnivesGuns
      type: string
    BusinessName:
      example:
        name: Aperture Science
      properties:
        name:
          maxLength: 50
          minLength: 1
          type: string
      required:
      - name
      title: BusinessName
      type: object
    BusinessPurposeAndIntendedUse:
      description: |
        Purpose and Intended Use

        The intended purpose of the business account
      enum:
      - ReceivingBusinessIncome
      - BusinessPurchasesAndExpenses
      - EmployeeAndContractorPayouts
      - EcommerceSales
      - TreasuryManagement
      - PaymentIntermediary
      - Investments
      - TaxPlanning
      - AssetProtection
      - Other
      type: string
    BusinessQuestionnaire:
      anyOf:
      - $ref: '#/components/schemas/BusinessQuestionnaire_GenericBusinessQuestionnaire'
      - $ref: '#/components/schemas/BusinessQuestionnaire_SolePropBusinessQuestionnaire'
      description: |
        KYB compliance questionnaire

        Use `GenericBusinessQuestionnaire` for all company types except sole proprietorships.
        Use `SolePropBusinessQuestionnaire` for sole proprietorships.
      discriminator:
        mapping:
          Generic: '#/components/schemas/BusinessQuestionnaire_GenericBusinessQuestionnaire'
          SoleProp: '#/components/schemas/BusinessQuestionnaire_SolePropBusinessQuestionnaire'
        propertyName: type
      type: object
    BusinessQuestionnaireBusinessDetails:
      description: |
        Business Details Section

        Industry classification and operational information about the company
      properties:
        business_model_description:
          description: Description of business model and target clients
          type: string
        has_licenses_or_registrations:
          description: Does the company maintain any licenses or registrations
          type: boolean
        industry:
          $ref: '#/components/schemas/BusinessIndustryV2'
        industry_type:
          allOf:
          - $ref: '#/components/schemas/BusinessIndustryType'
          - deprecated: true
            description: |-
              Deprecated — use `industry` instead. Coarse 36-value classification; `industry`
              exposes Sumsub's full granular taxonomy. Ignored when `industry` is provided.
          deprecated: true
          description: |-
            Deprecated — use `industry` instead. Coarse 36-value classification; `industry`
            exposes Sumsub's full granular taxonomy. Ignored when `industry` is provided.
        license_details:
          description: |-
            Additional information about maintained licenses or registrations. Required when
            has_licenses_or_registrations is true.
          type: string
        main_business_countries:
          description: Main countries of business operation (ISO 3166-1 alpha-2 codes)
          items:
            type: string
          type: array
      required:
      - business_model_description
      - main_business_countries
      - has_licenses_or_registrations
      title: BusinessQuestionnaireBusinessDetails
      type: object
    BusinessQuestionnairePlannedActivities:
      description: |
        Planned Activities Section

        Information about the company's intended account use and transaction patterns
      properties:
        estimated_monthly_transactions:
          $ref: '#/components/schemas/BusinessEstimatedMonthlyTransactions'
        estimated_monthly_volume:
          $ref: '#/components/schemas/BusinessEstimatedMonthlyVolume'
        flow_of_funds_diagram:
          description: Base64 encoded flow of funds diagram (required when sends_funds_on_customer_behalf is true)
          type: string
        purpose_and_intended_use:
          $ref: '#/components/schemas/BusinessPurposeAndIntendedUse'
        sends_funds_on_customer_behalf:
          description: Does the company send funds on behalf of customers/third parties
          type: boolean
        sends_funds_on_customer_behalf_description:
          description: Description of how funds are sent on customer behalf (required if sends_funds_on_customer_behalf is true)
          type: string
        source_of_funds_document:
          description: Base64 encoded source of funds supporting document (required when sends_funds_on_customer_behalf is true)
          type: string
      required:
      - purpose_and_intended_use
      - estimated_monthly_volume
      - estimated_monthly_transactions
      - sends_funds_on_customer_behalf
      title: BusinessQuestionnairePlannedActivities
      type: object
    BusinessQuestionnaireSourceOfFunds:
      description: |
        Source of Funds Section

        Information about where the company's funds originate
      properties:
        source_of_funds:
          $ref: '#/components/schemas/RevenueSource'
        source_of_funds_description:
          description: Detailed description of source of funds (required)
          type: string
      required:
      - source_of_funds
      - source_of_funds_description
      title: BusinessQuestionnaireSourceOfFunds
      type: object
    BusinessQuestionnaire_GenericBusinessQuestionnaire:
      allOf:
      - properties:
          type:
            enum:
            - Generic
            example: Generic
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/GenericBusinessQuestionnaire'
      description: |
        KYB compliance questionnaire

        Use `GenericBusinessQuestionnaire` for all company types except sole proprietorships.
        Use `SolePropBusinessQuestionnaire` for sole proprietorships.
    BusinessQuestionnaire_SolePropBusinessQuestionnaire:
      allOf:
      - properties:
          type:
            enum:
            - SoleProp
            example: SoleProp
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/SolePropBusinessQuestionnaire'
      description: |
        KYB compliance questionnaire

        Use `GenericBusinessQuestionnaire` for all company types except sole proprietorships.
        Use `SolePropBusinessQuestionnaire` for sole proprietorships.
    ChapsDepositInfo:
      example:
        account_number: '12345678'
        bank_address: 2 Thomas More Square, London, E1W 1YN
        bank_name: Banking Circle UK
        beneficiary_name: Alan Turing
        sort_code: 20-00-00
      properties:
        account_number:
          type: string
        bank_address:
          type: string
        bank_name:
          type: string
        beneficiary_name:
          description: The beneficiary name (account holder) for the GBP account. For Fiat Republic this is the customer name.
          type: string
        sort_code:
          type: string
      required:
      - sort_code
      - account_number
      title: ChapsDepositInfo
      type: object
    ChapsFpsDepositInfo:
      example:
        account_number: '55779911'
        bank_address: 2 Thomas More Square, London, E1W 1YN
        bank_name: Banking Circle UK
        beneficiary_name: Alan Turing
        sort_code: 20-00-00
      properties:
        account_number:
          type: string
        bank_address:
          type: string
        bank_name:
          type: string
        beneficiary_name:
          type: string
        sort_code:
          type: string
      required:
      - sort_code
      - account_number
      title: ChapsFpsDepositInfo
      type: object
    CompanyBeneficiary:
      description: |
        Company Beneficial Owner

        The beneficial owner of the company
      properties:
        attested_at:
          description: |-
            When the beneficiary certified the information (RFC 3339, in the past).
            Required when attesting_party is true.
          type: string
        attesting_party:
          description: |-
            Marks this beneficiary as certifying the beneficial-ownership information
            (31 CFR 1010.230). Root-level person holding a Director role only. Required
            (exactly one beneficiary must set this to true) for every US
            non-sole-proprietorship business — Iron always generates and submits the
            certification on the attesting party's behalf, satisfying the Ownership
            Structure document requirement. Before setting this flag, present the
            collected beneficial-ownership information to this beneficiary and obtain
            their confirmation that it is complete and correct — Iron renders a
            certification naming them from the submitted data. Limited to simple
            ownership structures (at most three levels of beneficiaries: root, a
            nested business, and that business's own nested business); deeper
            structures cannot use this endpoint.
          type: boolean
        beneficiary_info:
          $ref: '#/components/schemas/CompanyBeneficiaryInfo'
        nature_of_control:
          description: |-
            How a Control UBO exercises control, e.g. voting rights or a trust relationship
            (max 255 characters). Available from API version 2026-10-15. Required for
            Control and rejected otherwise.
          type: string
        roles:
          description: The primary role of the beneficial owner
          items:
            $ref: '#/components/schemas/CompanyPrimaryBeneficiaryRole'
          type: array
        share_percentage:
          description: |-
            Share percentage of the beneficial owner (0-100). The combined shares of
            UltimateBeneficialOwner beneficiaries must not exceed 100 per company.
          format: decimal
          type: string
        ubo_subtype:
          $ref: '#/components/schemas/BeneficiaryUboSubtype'
      required:
      - roles
      - beneficiary_info
      title: CompanyBeneficiary
      type: object
    CompanyBeneficiaryInfo:
      anyOf:
      - $ref: '#/components/schemas/PersonBeneficiaryInfo'
      - $ref: '#/components/schemas/BusinessBeneficiaryInfo'
      description: |
        Company Beneficiary Info

        The beneficiary info of the company
      type: object
    CompanyData:
      description: |
        Company Data

        Full company submission: identifying info, beneficiaries, and supporting
        documents. Reused by the root identification request and by each nested
        business beneficiary.
      properties:
        beneficiaries:
          description: |-
            The beneficiaries of the company. UBOs, Directors, and Representatives
            are permitted at every level. For a US non-sole-proprietorship, the
            root level must designate exactly one Director as the CDD attesting
            party. Any root company other than a sole proprietorship needs at least
            one root Director and must list every person owning 25% or more (or, if
            nobody does, 10% or more) as an UltimateBeneficialOwner. From API version
            2026-10-15 every UltimateBeneficialOwner sets `ubo_subtype`, and the
            company needs at least one: where nobody owns enough to qualify, submit the
            individual who controls the company as a `Control` beneficiary. Before
            2026-10-15, a single Director with no UltimateBeneficialOwner is accepted
            when nobody owns 10% or more, and outside the US a PrivateFoundation
            owner needs no root-level person owner. A nested business beneficiary's own
            `beneficiaries` carries no such requirement and is informational only.
          items:
            $ref: '#/components/schemas/CompanyBeneficiary'
          type: array
        company_info:
          $ref: '#/components/schemas/CompanyInfo'
        documents:
          description: |-
            The company documents (max 8). Structurally optional at submission, but an
            incomplete set for the company's region is rejected with a 400 — see
            `missing_document_categories`.
          items:
            $ref: '#/components/schemas/CompanyDocParams'
          type: array
      required:
      - company_info
      - beneficiaries
      - documents
      title: CompanyData
      type: object
    CompanyDocParams:
      description: |
        Company document params

        The params required to create a company document
      properties:
        country:
          description: ISO 3166-1 alpha-2 (2 letter) country code of the country that issued the document
          type: string
        file:
          description: Base64 encoded document without prefix (10MB max)
          type: string
        type:
          $ref: '#/components/schemas/CompanyDocType'
      required:
      - type
      - country
      - file
      title: CompanyDocParams
      type: object
    CompanyDocType:
      description: |
        Company document type

        The type of company document
      enum:
      - PowerOfAttorney
      - TransparencyRegistryExtract
      - DirectorsRegistry
      - GoodStandingCert
      - IncorporationArticles
      - IncorporationCert
      - IncumbencyCert
      - InformationStatement
      - PartnershipAgreement
      - ProofOfAddress
      - ProofOfNatureOfBusiness
      - RegulatoryLicense
      - SelfDeclarationForm
      - ShareholderRegistry
      - StateRegistry
      - TradeLicense
      - TrustAgreement
      - Other
      - AmlCftPolicy
      type: string
    CompanyInfo:
      description: |
        Company Info

        Identifying details about a company. Shared between the root identification
        request and any nested business beneficiaries so the same fields are
        collected at every level of the corporate structure.
      properties:
        address:
          $ref: '#/components/schemas/Address'
        alternative_names:
          description: The list of alternative names for the company
          items:
            type: string
          type: array
        company_name:
          description: The legal name of the company
          type: string
        company_type:
          $ref: '#/components/schemas/CompanyType'
        country:
          description: The ISO 3166-1 alpha-2 (2 letter) country code where the company is legally registered
          type: string
        email:
          description: The email address of the company
          type: string
        incorporation_date:
          description: The date of legal incorporation in YYYY-MM-DD format
          type: string
        legal_address:
          description: The address used during legal registration
          type: string
        postal_address:
          description: The postal address of the company
          type: string
        registration_number:
          description: The unique number assigned to the company when legally registered
          type: string
        tax_identification_number:
          description: |-
            The tax identification number of the company. Not needed for companies registered in
            a jurisdiction that doesn't issue TINs: any value sent is then ignored and the
            `registration_number` is used instead.
          type: string
        website:
          description: |-
            The website of the company. Required everywhere except a nested business
            beneficiary holding the Shareholder role, where it's optional — a
            corporate shareholder (e.g. a holding company) need not operate a website.
          type: string
      required:
      - company_name
      - registration_number
      - country
      - incorporation_date
      - legal_address
      - postal_address
      - address
      - email
      - company_type
      title: CompanyInfo
      type: object
    CompanyPrimaryBeneficiaryRole:
      description: |
        Beneficial Owner Role

        The role of the beneficial owner in the company
      enum:
      - UltimateBeneficialOwner
      - Representative
      - Director
      - Shareholder
      type: string
    CompanyType:
      description: |
        Company Type

        The type of company
      enum:
      - LimitedLiabilityCompany
      - PubliclyListedCompany
      - SoleProprietorship
      - Partnership
      - Corporation
      - Trust
      - PrivateFoundation
      - Charity
      - NonprofitCorporation
      - NonprofitOrganization
      - PublicAgenciesOrAuthorities
      - StockCorporationOutOfStock
      - GeneralCorporation
      type: string
    CompleteRequirement:
      properties:
        code:
          $ref: '#/components/schemas/VerificationRequirementCode'
        description:
          type: string
      required:
      - code
      - description
      title: CompleteRequirement
      type: object
    ComplianceQuestionaire:
      description: |
        V1 Compliance Questionnaire

        Legacy compliance questionnaire format
      properties:
        employment_status:
          $ref: '#/components/schemas/EmploymentStatus'
        expected_monthly_volume:
          $ref: '#/components/schemas/PersonProfileExpectedMonthlyTransactionVolume'
        id:
          format: uuid
          type: string
        intended_use:
          $ref: '#/components/schemas/IntendedUse'
        monthly_income:
          $ref: '#/components/schemas/PersonProfileMonthlyIncome'
        occupation:
          $ref: '#/components/schemas/Occupation'
        source_of_funds:
          $ref: '#/components/schemas/PersonProfileSourceOfFunds'
        source_of_funds_proof:
          type: string
      required:
      - id
      - intended_use
      title: ComplianceQuestionaire
      type: object
    Country:
      description: A country
      example:
        code: DE
      properties:
        code:
          description: The ISO_3166-1 Alpha-2 country code, e.g. "DE"
          maxLength: 2
          minLength: 2
          type: string
      required:
      - code
      title: Country
      type: object
    CountrySubdivision:
      properties:
        code:
          type: string
        name:
          type: string
      required:
      - code
      - name
      title: CountrySubdivision
      type: object
    CreateAutoramp:
      description: Either a set of market parameters or a signed quote. Optionally include a `type` field (`market` | `quote`) to get precise validation errors.
      oneOf:
      - allOf:
        - $ref: '#/components/schemas/CreateAutorampParameters'
        - properties:
            type:
              description: Optional discriminator. When present, the body is parsed as this variant and validation errors point at the offending field instead of the whole payload.
              enum:
              - market
              type: string
          type: object
      - allOf:
        - $ref: '#/components/schemas/SignedAutorampQuote'
        - properties:
            type:
              description: Optional discriminator. When present, the body is parsed as this variant and validation errors point at the offending field instead of the whole payload.
              enum:
              - quote
              type: string
          type: object
    CreateAutorampBrCodeRequest:
      description: Parameters for generating a Pix BR code for an autoramp
      properties:
        amount:
          description: |-
            Fixed amount to request, in BRL, minimum 0.01 and at most 2 decimal
            places. Omit to let the payer choose the amount.
          format: decimal
          type: string
        reference:
          description: |-
            Your reference for the payment, 1 to 19 alphanumeric characters. It is
            returned to us with the payment and shown as the transaction's
            inbound payment reference.
          maxLength: 19
          minLength: 1
          pattern: ^[a-zA-Z0-9]+$
          type: string
      required:
      - reference
      title: CreateAutorampBrCodeRequest
      type: object
    CreateAutorampOpenBankingPayment:
      description: |
        Create Autoramp Payment Link Payload

        The parameters for creating an autoramp payment link
      properties:
        amount_in:
          $ref: '#/components/schemas/Amount'
        callback_url:
          type: string
      required:
      - amount_in
      - callback_url
      title: CreateAutorampOpenBankingPayment
      type: object
    CreateAutorampParameters:
      description: |
        Create Autoramp Parameters

        The parameters required to create a autoramp
      properties:
        ach_payment_reference:
          description: reference message attached to outgoing ACH transfers (max 10 chars)
          maxLength: 10
          minLength: 1
          pattern: ^[A-Za-z0-9 /\-?:().+]*$
          type: string
        additional_partner_fee_in_bips:
          deprecated: true
          description: The additional partner fee in bips. This will be added to the fee. This is deprecated, use the partner fee configs instead.
          format: decimal
          type: string
        batch_payout:
          description: |-
            If true, payouts for this autoramp will be batched and sent once per day instead of individually.
            Only supported for fiat destination currencies.
          type: boolean
        customer_id:
          description: The customer id
          format: uuid
          type: string
        destination_currency:
          $ref: '#/components/schemas/Currency'
        external_id:
          description: External ID for the autoramp, provided by the partner
          type: string
        fee_profile_id:
          description: The fee profile id to use for the autoramp. If not provided, the default fee profile for the partner will be used.
          format: uuid
          type: string
        fps_payment_reference:
          description: reference message attached to outgoing FPS transfers (max 18 chars)
          maxLength: 18
          minLength: 6
          pattern: ^[A-Za-z]*$
          type: string
        name:
          description: The name of the autoramp
          type: string
        pay_by_reference:
          default: null
          description: If true, a payment reference will be generated for the autoramp. Defaults to false if not provided.
          type: boolean
        recipient_account:
          $ref: '#/components/schemas/Account'
        sepa_payment_reference:
          description: reference message attached to outgoing SEPA transfers (max 140 chars)
          maxLength: 140
          minLength: 6
          pattern: ^[A-Za-z0-9 /\-?:().+]*$
          type: string
        source_currencies:
          description: The list of source currencies
          items:
            $ref: '#/components/schemas/Currency'
          type: array
        source_is_third_party:
          description: |-
            Allow this autoramp to be funded by someone other than the customer,
            for example a fiat account that accepts 3pp payments. Only meaningful on
            onramps, where the source is a deposit account. Defaults to `false`.
            Setting it also opts this autoramp's deposits into third-party
            classification, reported as `third_party_classification` on the
            transaction.
          type: boolean
        swift_payment_reference:
          description: reference message attached to outgoing SWIFT transfers (max 4 lines, 35 chars per line)
          maxLength: 140
          minLength: 1
          pattern: ^[A-Za-z0-9 /\-?:().+]*$
          type: string
        wire_message:
          description: reference message attached to outgoing wire transfers (max 4 lines, 35 chars per line)
          maxLength: 140
          minLength: 1
          pattern: ^[A-Za-z0-9 /\-?:().+\n]*$
          type: string
      required:
      - source_currencies
      - destination_currency
      - recipient_account
      - customer_id
      title: CreateAutorampParameters
      type: object
    CreateCustomerParams:
      description: |
        Customer Params

        Parameters for creating a customer
      properties:
        customer_type:
          $ref: '#/components/schemas/CustomerType'
        email:
          description: |-
            The primary point of contact email address for the customer
            Note that this email address will be used for all API authorization (e.g. 2FA)
          type: string
        external_id:
          description: External ID for the customer, provided by the partner
          type: string
        name:
          description: The name of the customer
          type: string
      required:
      - customer_type
      - email
      title: CreateCustomerParams
      type: object
    CreatePartnerFeeProfileRequest:
      description: |-
        Create Partner Fee Profile Request

        Parameters for creating a new transactional fee profile as a partner.
        Iron fee settings (including whether the on-chain network fee is enabled)
        are inherited from the partner's invoicing fee profile.
      properties:
        banking_fee_configs:
          description: |-
            Banking fee configurations. Each entry's fee currency is constrained
            by its rail to avoid FX exposure:
            SEPA→EUR, FPS/CHAPS→GBP, PIX→BRL, SPEI→MXN, all other rails (ACH,
            WIRE, RTP, SWIFT, CHATS, AFRICAN_BANK_TRANSFER, MOBILE_MONEY)→USD.
          items:
            $ref: '#/components/schemas/BankingFeeConfiguration'
          type: array
        name:
          description: The name of the fee profile
          type: string
        network_fee_settlement:
          $ref: '#/components/schemas/FeeSettlement'
        transaction_fee_bips:
          deprecated: true
          description: |-
            Transaction fee in basis points (bps), rounded to the nearest whole
            bip. 100 bps = 1%. Deprecated: prefer setting
            `transaction_fee_bips_decimal` instead; it takes precedence when both
            are set. Still required on every request for backward compatibility
            with existing integrations.
          format: uint32
          type: integer
        transaction_fee_bips_decimal:
          default: null
          description: |-
            The precise transaction fee in basis points. Prefer this going
            forward over the deprecated `transaction_fee_bips`.
          format: decimal
          type: string
      required:
      - name
      - network_fee_settlement
      - transaction_fee_bips
      - banking_fee_configs
      title: CreatePartnerFeeProfileRequest
      type: object
    CreateSandboxTransactionParams:
      properties:
        amount:
          description: The amount to deposit (in the autoramp's input currency)
          format: decimal
          type: string
        amount_out:
          description: 'Optional: Specify the output amount directly (if not provided, calculated from amount, fee, and fx_rate)'
          format: decimal
          type: string
        autoramp_id:
          description: The autoramp ID to use for the transaction
          format: uuid
          type: string
        deposit_id:
          description: 'Optional: Specify a deterministic deposit ID instead of generating one'
          format: uuid
          type: string
        fee:
          description: 'Optional: Specify the fee amount (defaults to 0.25% of amount)'
          format: decimal
          type: string
        fx_rate:
          description: |-
            Optional: Specify the exchange rate. If omitted, the live mid-market rate from the
            fx feed service is used for the input/output currency pair.
          format: decimal
          type: string
        initial_state:
          $ref: '#/components/schemas/SandboxTransactionState'
        input_currency:
          $ref: '#/components/schemas/Currency'
        source:
          $ref: '#/components/schemas/RampTransactionSource'
        transaction_id:
          description: 'Optional: Specify a deterministic transaction ID instead of generating one'
          format: uuid
          type: string
      required:
      - autoramp_id
      - amount
      title: CreateSandboxTransactionParams
      type: object
    Crypto:
      description: A cryptocurrency
      example:
        blockchain: Solana
        token: USDC
      properties:
        blockchain:
          $ref: '#/components/schemas/Blockchain'
        token:
          description: The ticker of the token e.g. 'USDC'
          type: string
      required:
      - token
      - blockchain
      title: Crypto
      type: object
    CryptoCurrency:
      properties:
        address:
          description: The address that this currency has on the `chain`
          type: string
        chain:
          description: The chain for this currency
          type: string
        code:
          description: The ticker of the cryptocurrency. E.g. USDC
          type: string
        mint_only:
          description: Whether this currency can only be minted (not autoramped)
          type: boolean
        name:
          description: An optional name of the cryptocurrency. E.g. `USD Coin`
          type: string
      required:
      - code
      - chain
      - mint_only
      title: CryptoCurrency
      type: object
    CryptoWallet:
      description: |
        Crypto Wallet

        The crypto wallet for the autoramp
      properties:
        address:
          description: The address of the crypto account
          type: string
        chain:
          $ref: '#/components/schemas/Blockchain'
      required:
      - chain
      - address
      title: CryptoWallet
      type: object
    Currency:
      anyOf:
      - $ref: '#/components/schemas/Currency_Crypto'
      - $ref: '#/components/schemas/Currency_Fiat'
      description: |
        Currency

        Can be either crypto or fiat
      discriminator:
        mapping:
          Crypto: '#/components/schemas/Currency_Crypto'
          Fiat: '#/components/schemas/Currency_Fiat'
        propertyName: type
      type: object
    CurrencyAbility:
      description: What a customer can do with a single currency.
      properties:
        counterparts:
          description: |-
            Valid mint/redeem counterpart currencies (the other side of the pair).
            Populated only for mint-only brand tokens (PYUSDx, M0 extensions); empty
            for every other currency. Mint and redeem are symmetric: the same set.
          items:
            $ref: '#/components/schemas/Currency'
          type: array
        currency:
          $ref: '#/components/schemas/Currency'
        flows:
          description: The flows available for this currency.
          items:
            $ref: '#/components/schemas/AutorampType'
          type: array
      required:
      - currency
      - flows
      - counterparts
      title: CurrencyAbility
      type: object
    CurrencyPair:
      description: |
        Currency Pair

        A currency pair for a fee profile rule
      properties:
        from_currency:
          $ref: '#/components/schemas/Currency'
        to_currency:
          $ref: '#/components/schemas/Currency'
      required:
      - from_currency
      - to_currency
      title: CurrencyPair
      type: object
    CurrencyType:
      description: |
        Currency Type

        The type of currency
      enum:
      - fiat
      - crypto
      type: string
    Currency_Crypto:
      allOf:
      - properties:
          type:
            enum:
            - Crypto
            example: Crypto
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/Crypto'
      description: |
        Currency

        Can be either crypto or fiat
    Currency_Fiat:
      allOf:
      - properties:
          type:
            enum:
            - Fiat
            example: Fiat
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/Fiat'
      description: |
        Currency

        Can be either crypto or fiat
    Customer:
      description: |
        Customer

        The customer object in Iron
      properties:
        active_email:
          description: Active email for receiving transaction emails (if different from primary email)
          type: string
        created_at:
          description: Created at timestamp of Customer
          format: date-time
          type: string
        customer_type:
          $ref: '#/components/schemas/CustomerType'
        email:
          description: Email of Customer, collected during identification process
          type: string
        external_id:
          description: External ID for the customer, provided by the partner
          type: string
        id:
          description: Unique ID of Customer
          format: uuid
          type: string
        identification_ids:
          description: Identifications associated with Customer
          items:
            format: uuid
            type: string
          type: array
        identification_status:
          allOf:
          - $ref: '#/components/schemas/IdentificationStatus'
          - deprecated: true
            description: |-
              Deprecated — always null. Mixed the Identification resource into Customer;
              use `identification_ids` with `GET /identifications/{id}` to read status instead.
          deprecated: true
          description: |-
            Deprecated — always null. Mixed the Identification resource into Customer;
            use `identification_ids` with `GET /identifications/{id}` to read status instead.
        name:
          description: Name of Customer
          type: string
        partner_id:
          description: Partner ID of the customer
          format: uuid
          type: string
        signing_ids:
          description: Signings associated with Customer
          items:
            format: uuid
            type: string
          type: array
        spending_limit_euro:
          deprecated: true
          description: |-
            Deprecated — always null. Spending limits are dynamic per customer and per
            direction; use `GET /customers/{id}/spending-limit` (`threshold_eur`) instead.
          type: string
        status:
          $ref: '#/components/schemas/CustomerStatus'
        updated_at:
          description: Updated at timestamp of Customer
          format: date-time
          type: string
      required:
      - id
      - customer_type
      - identification_ids
      - signing_ids
      - created_at
      - updated_at
      - status
      - name
      - email
      - partner_id
      title: Customer
      type: object
    CustomerAbilities:
      description: |
        Customer Abilities

        Represents the abilities/capabilities that a customer has
      properties:
        blocking_abilities:
          additionalProperties:
            type: string
          description: |-
            Reasons for any rail the synchronous rule-engine preflight gate
            definitively ruled out at the customer's latest identification's
            creation time, keyed by rail name (e.g. "ach", "sepa_thirdparty").
            These rails are also reflected as `Unavailable` directly on
            `fiat_deposit`/`fiat_payout` above — this map exists only to explain
            *why*. Empty when the customer has no identification yet, or its
            latest one predates this gate.
          type: object
        currencies:
          description: |-
            What the customer can do with each currency (mint / redeem / onramp /
            offramp / swap). Only currencies the customer can currently use are listed.
          items:
            $ref: '#/components/schemas/CurrencyAbility'
          type: array
        fiat_deposit:
          $ref: '#/components/schemas/ApiFiatAbilities'
        fiat_payout:
          $ref: '#/components/schemas/ApiFiatAbilities'
      required:
      - fiat_deposit
      - fiat_payout
      - currencies
      - blocking_abilities
      title: CustomerAbilities
      type: object
    CustomerRequirements:
      description: |-
        Bridge-style requirements view of a customer. All four buckets are
        always present (may be empty). `requirements_due` is a quick coarse
        summary — partners can use it to decide whether any action is needed
        before drilling into the detail buckets.
      properties:
        complete:
          description: Requirements the customer has satisfied.
          items:
            $ref: '#/components/schemas/RequirementItem'
          type: array
        issues:
          description: |-
            Submitted requirements that were rejected or could not be processed.
            Inspect `retryable` to distinguish correctable from terminal issues.
          items:
            $ref: '#/components/schemas/RequirementItem'
          type: array
        missing:
          description: Requirements the customer has never submitted.
          items:
            $ref: '#/components/schemas/RequirementItem'
          type: array
        pending:
          description: Requirements the customer has submitted, awaiting review.
          items:
            $ref: '#/components/schemas/RequirementItem'
          type: array
        preflight_summary:
          $ref: '#/components/schemas/IdentificationPreflightSummary'
        requirements_due:
          description: |-
            Sorted, deduplicated set of categories that have at least one
            non-complete item. Empty for fully-onboarded customers.
          items:
            $ref: '#/components/schemas/RequirementCategory'
          type: array
      required:
      - requirements_due
      - complete
      - pending
      - missing
      - issues
      title: CustomerRequirements
      type: object
    CustomerRequirementsBody:
      oneOf:
      - $ref: '#/components/schemas/CustomerRequirements'
      - $ref: '#/components/schemas/StructuredCustomerRequirements'
      type: object
    CustomerSpendingLimit:
      description: |-
        Customer Spending Limit

        Current usage of the rolling 52-week spending limit split by direction.
      properties:
        crypto_offramp:
          $ref: '#/components/schemas/CustomerSpendingLimitSection'
        fiat_onramp:
          $ref: '#/components/schemas/CustomerSpendingLimitSection'
      required:
      - fiat_onramp
      - crypto_offramp
      title: CustomerSpendingLimit
      type: object
    CustomerSpendingLimitSection:
      description: |-
        Customer Spending Limit Section

        Usage of the rolling 52-week spending limit for a single direction
        (fiat on-ramp or crypto off-ramp).

        Amounts are returned in **EUR cents** as strings

        `threshold_eur` (and therefore `remaining_eur`) is `null` when the customer
        has no enforced cap — for example Business customers or persons with
        `ThresholdKind::Regulated`. A `null` threshold does **not** mean "unknown";
      properties:
        currency:
          $ref: '#/components/schemas/Fiat'
        period_end:
          description: End of the current rolling window for this direction (now).
          format: date-time
          type: string
        period_start:
          description: |-
            Start of the current rolling window for this direction. This is the
            later of "52 weeks ago" and the last `Reset` event for this volume
            kind — fiat and crypto windows are tracked independently and can
            differ if compliance has reset only one bucket.
          format: date-time
          type: string
        remaining:
          description: |-
            `threshold - used`, floored at zero, in `currency` cents as a string.
            `null` iff `threshold` is `null`.
          type: string
        remaining_eur:
          description: 'Deprecated: EUR-converted view of `remaining`. Prefer `remaining`.'
          type: string
        threshold:
          description: |-
            Enforced limit in `currency` cents as a string. `null` when no cap
            applies. This is the authoritative value the limit is enforced against.
          type: string
        threshold_eur:
          description: |-
            Deprecated: EUR-converted view of `threshold` (mid-market rate at read
            time). Prefer `threshold` + `currency`.
          type: string
        used:
          description: Volume consumed in the window in `currency` cents as a string.
          type: string
        used_eur:
          description: 'Deprecated: EUR-converted view of `used`. Prefer `used` + `currency`.'
          type: string
      required:
      - period_start
      - period_end
      - currency
      - used
      - used_eur
      title: CustomerSpendingLimitSection
      type: object
    CustomerStatus:
      description: The status of the Customer.
      enum:
      - UserRequired
      - SigningsRequired
      - IdentificationRequired
      - Active
      - Suspended
      - Archived
      type: string
    CustomerType:
      description: |
        CustomerType

        Customers can either be a commercial business or a natural person
      enum:
      - Business
      - Person
      type: string
    CvuDepositInfo:
      description: Deposit details for an ARS transfer to a CVU (Argentina).
      properties:
        bank_name:
          description: The bank holding the CVU.
          type: string
        cvu:
          description: The 22-digit CVU the payer transfers to.
          type: string
        instruction:
          description: Human-readable payer guidance.
          type: string
      required:
      - cvu
      - instruction
      title: CvuDepositInfo
      type: object
    DepositAccount:
      anyOf:
      - $ref: '#/components/schemas/DepositAccount_IbanDepositInfo'
      - $ref: '#/components/schemas/DepositAccount_AchWireDepositInfo'
      - $ref: '#/components/schemas/DepositAccount_AfricanBankTransferDepositInfo'
      - $ref: '#/components/schemas/DepositAccount_PixDepositInfo'
      - $ref: '#/components/schemas/DepositAccount_SpeiDepositInfo'
      - $ref: '#/components/schemas/DepositAccount_CvuDepositInfo'
      - $ref: '#/components/schemas/DepositAccount_MobileMoneyDepositInfo'
      - $ref: '#/components/schemas/DepositAccount_CryptoWallet'
      - $ref: '#/components/schemas/DepositAccount_ChapsFpsDepositInfo'
      description: |
        DepositAccount

        DEPRECATED: please use the deposit_rails field instead
      discriminator:
        mapping:
          ACHWire: '#/components/schemas/DepositAccount_AchWireDepositInfo'
          AfricanBankTransfer: '#/components/schemas/DepositAccount_AfricanBankTransferDepositInfo'
          CHAPSFPS: '#/components/schemas/DepositAccount_ChapsFpsDepositInfo'
          Crypto: '#/components/schemas/DepositAccount_CryptoWallet'
          Cvu: '#/components/schemas/DepositAccount_CvuDepositInfo'
          MobileMoney: '#/components/schemas/DepositAccount_MobileMoneyDepositInfo'
          Pix: '#/components/schemas/DepositAccount_PixDepositInfo'
          SEPA: '#/components/schemas/DepositAccount_IbanDepositInfo'
          Spei: '#/components/schemas/DepositAccount_SpeiDepositInfo'
        propertyName: type
      type: object
    DepositAccountType:
      enum:
      - Iban
      - Wallet
      - AchWire
      - Pix
      - Spei
      - Cvu
      - AfricanBankTransfer
      - MobileMoney
      - ChapsFps
      type: string
    DepositAccount_AchWireDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - ACHWire
            example: ACHWire
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/AchWireDepositInfo'
      description: |
        DepositAccount

        DEPRECATED: please use the deposit_rails field instead
    DepositAccount_AfricanBankTransferDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - AfricanBankTransfer
            example: AfricanBankTransfer
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/AfricanBankTransferDepositInfo'
      description: |
        DepositAccount

        DEPRECATED: please use the deposit_rails field instead
    DepositAccount_ChapsFpsDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - CHAPSFPS
            example: CHAPSFPS
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/ChapsFpsDepositInfo'
      description: |
        DepositAccount

        DEPRECATED: please use the deposit_rails field instead
    DepositAccount_CryptoWallet:
      allOf:
      - properties:
          type:
            enum:
            - Crypto
            example: Crypto
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/CryptoWallet'
      description: |
        DepositAccount

        DEPRECATED: please use the deposit_rails field instead
    DepositAccount_CvuDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - Cvu
            example: Cvu
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/CvuDepositInfo'
      description: |
        DepositAccount

        DEPRECATED: please use the deposit_rails field instead
    DepositAccount_IbanDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - SEPA
            example: SEPA
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/IbanDepositInfo'
      description: |
        DepositAccount

        DEPRECATED: please use the deposit_rails field instead
    DepositAccount_MobileMoneyDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - MobileMoney
            example: MobileMoney
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/MobileMoneyDepositInfo'
      description: |
        DepositAccount

        DEPRECATED: please use the deposit_rails field instead
    DepositAccount_PixDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - Pix
            example: Pix
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/PixDepositInfo'
      description: |
        DepositAccount

        DEPRECATED: please use the deposit_rails field instead
    DepositAccount_SpeiDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - Spei
            example: Spei
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/SpeiDepositInfo'
      description: |
        DepositAccount

        DEPRECATED: please use the deposit_rails field instead
    DepositRail:
      anyOf:
      - $ref: '#/components/schemas/DepositRail_IbanDepositInfo'
      - $ref: '#/components/schemas/DepositRail_AfricanBankTransferDepositInfo'
      - $ref: '#/components/schemas/DepositRail_PixDepositInfo'
      - $ref: '#/components/schemas/DepositRail_SpeiDepositInfo'
      - $ref: '#/components/schemas/DepositRail_CvuDepositInfo'
      - $ref: '#/components/schemas/DepositRail_MobileMoneyDepositInfo'
      - $ref: '#/components/schemas/DepositRail_CryptoWallet'
      - $ref: '#/components/schemas/DepositRail_FpsDepositInfo'
      - $ref: '#/components/schemas/DepositRail_ChapsDepositInfo'
      - $ref: '#/components/schemas/DepositRail_ACHDepositInfo'
      - $ref: '#/components/schemas/DepositRail_WireDepositInfo'
      - $ref: '#/components/schemas/DepositRail_RtpDepositInfo'
      - $ref: '#/components/schemas/DepositRail_FedNowDepositInfo'
      - $ref: '#/components/schemas/DepositRail_SwiftDepositInfo'
      discriminator:
        mapping:
          ACH: '#/components/schemas/DepositRail_ACHDepositInfo'
          AfricanBankTransfer: '#/components/schemas/DepositRail_AfricanBankTransferDepositInfo'
          CHAPS: '#/components/schemas/DepositRail_ChapsDepositInfo'
          Crypto: '#/components/schemas/DepositRail_CryptoWallet'
          Cvu: '#/components/schemas/DepositRail_CvuDepositInfo'
          FPS: '#/components/schemas/DepositRail_FpsDepositInfo'
          FedNow: '#/components/schemas/DepositRail_FedNowDepositInfo'
          MobileMoney: '#/components/schemas/DepositRail_MobileMoneyDepositInfo'
          Pix: '#/components/schemas/DepositRail_PixDepositInfo'
          RTP: '#/components/schemas/DepositRail_RtpDepositInfo'
          SEPA: '#/components/schemas/DepositRail_IbanDepositInfo'
          SWIFT: '#/components/schemas/DepositRail_SwiftDepositInfo'
          Spei: '#/components/schemas/DepositRail_SpeiDepositInfo'
          Wire: '#/components/schemas/DepositRail_WireDepositInfo'
        propertyName: type
      type: object
    DepositRail_ACHDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - ACH
            example: ACH
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/ACHDepositInfo'
    DepositRail_AfricanBankTransferDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - AfricanBankTransfer
            example: AfricanBankTransfer
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/AfricanBankTransferDepositInfo'
    DepositRail_ChapsDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - CHAPS
            example: CHAPS
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/ChapsDepositInfo'
    DepositRail_CryptoWallet:
      allOf:
      - properties:
          type:
            enum:
            - Crypto
            example: Crypto
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/CryptoWallet'
    DepositRail_CvuDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - Cvu
            example: Cvu
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/CvuDepositInfo'
    DepositRail_FedNowDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - FedNow
            example: FedNow
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/FedNowDepositInfo'
      description: Available from API version 2026-07-01.
    DepositRail_FpsDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - FPS
            example: FPS
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/FpsDepositInfo'
    DepositRail_IbanDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - SEPA
            example: SEPA
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/IbanDepositInfo'
    DepositRail_MobileMoneyDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - MobileMoney
            example: MobileMoney
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/MobileMoneyDepositInfo'
    DepositRail_PixDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - Pix
            example: Pix
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/PixDepositInfo'
    DepositRail_RtpDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - RTP
            example: RTP
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/RtpDepositInfo'
    DepositRail_SpeiDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - Spei
            example: Spei
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/SpeiDepositInfo'
    DepositRail_SwiftDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - SWIFT
            example: SWIFT
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/SwiftDepositInfo'
    DepositRail_WireDepositInfo:
      allOf:
      - properties:
          type:
            enum:
            - Wire
            example: Wire
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/WireDepositInfo'
    DocumentType:
      description: |
        Document Type

        The type of document used in the KYB process
      enum:
      - BusinessRegistrationDocument
      - MemorandumOfAssociation
      - ShareholdersRegistry
      - Other
      - ProofOfAddress
      type: string
    EddQuestionnaire:
      description: |
        EDD Questionnaire

        The questionnaire for a person who is going through Enhanced Due Diligence
      properties:
        approximate_net_worth:
          $ref: '#/components/schemas/ApproximateNetWorth'
        occupation:
          $ref: '#/components/schemas/Occupation'
        source_of_funds_proof:
          description: |-
            Source of funds proof document, provided as a base64-encoded string.
            Supported formats: jpg, png, pdf, doc, docx, xls, xlsx, odt, ods, txt.
            Maximum size: 10MB
          type: string
      required:
      - occupation
      - approximate_net_worth
      - source_of_funds_proof
      title: EddQuestionnaire
      type: object
    EmailAddress:
      description: |
        EmailAddress

        An email address
        An email address
      example:
        email: john.doe@example.com
      properties:
        email:
          description: The email address
          type: string
      required:
      - email
      title: EmailAddress
      type: object
    EmploymentStatus:
      description: |
        Employment Status

        The employment status of the person
      enum:
      - Employed
      - SelfEmployed
      - Unemployed
      - Retired
      - Student
      type: string
    EurAbilities:
      properties:
        sepa:
          $ref: '#/components/schemas/AbilityStatus'
        sepa_thirdparty:
          $ref: '#/components/schemas/AbilityStatus'
        swift:
          $ref: '#/components/schemas/AbilityStatus'
        swift_thirdparty:
          $ref: '#/components/schemas/AbilityStatus'
      required:
      - sepa
      - sepa_thirdparty
      - swift
      - swift_thirdparty
      title: EurAbilities
      type: object
    ExchangeRate:
      description: |
        Exchange Rate

        The exchange rate for a given currency pair
      properties:
        effective_rate:
          description: The effective rate
          format: decimal
          type: string
        fee:
          $ref: '#/components/schemas/Fee'
        from:
          $ref: '#/components/schemas/Currency'
        out_amount:
          $ref: '#/components/schemas/Amount'
        to:
          $ref: '#/components/schemas/Currency'
      required:
      - from
      - to
      - out_amount
      - effective_rate
      - fee
      title: ExchangeRate
      type: object
    FedNowDepositInfo:
      description: Available from API version 2026-07-01.
      example:
        account_number: '456789123'
        bank_address: 1 Chase Manhattan Plaza, New York, NY 10005, US
        bank_name: JPMorgan Chase Bank
        recipient_address: 123 Main Street, New York, NY 10001, US
        recipient_name: Alan Turing
        routing_number: '021000021'
      properties:
        account_number:
          type: string
        bank_address:
          type: string
        bank_name:
          type: string
        recipient_address:
          type: string
        recipient_name:
          type: string
        routing_number:
          type: string
      required:
      - routing_number
      - account_number
      - bank_name
      - bank_address
      - recipient_name
      - recipient_address
      title: FedNowDepositInfo
      type: object
    Fee:
      description: |
        Fee

        The fee for a given currency pair
      properties:
        banking_fee:
          $ref: '#/components/schemas/Amount'
        banking_fee_network:
          $ref: '#/components/schemas/PaymentNetwork'
        deducted_fee:
          allOf:
          - $ref: '#/components/schemas/Amount'
          - deprecated: true
            description: The amount of the fee that was deducted immediately and charged to the end customer. This is deprecated and will be removed in the future. Use transaction_fee instead.
          deprecated: true
          description: The amount of the fee that was deducted immediately and charged to the end customer. This is deprecated and will be removed in the future. Use transaction_fee instead.
        iron_fee:
          $ref: '#/components/schemas/Amount'
        iron_fee_settlement:
          $ref: '#/components/schemas/FeeSettlement'
        network_fee:
          $ref: '#/components/schemas/Amount'
        network_fees:
          deprecated: true
          description: The network fees in source currency
          items:
            $ref: '#/components/schemas/NetworkFee'
          type: array
        network_fees_with_settlement:
          description: The network fees with settlement
          items:
            $ref: '#/components/schemas/NetworkFeeWithSettlement'
          type: array
        partner_fee:
          $ref: '#/components/schemas/Amount'
        partner_fees:
          description: The partner fees
          items:
            $ref: '#/components/schemas/PartnerFee'
          type: array
        total_fee:
          $ref: '#/components/schemas/Amount'
        transaction_fee:
          $ref: '#/components/schemas/Amount'
      required:
      - total_fee
      - iron_fee
      - partner_fee
      - network_fees
      - network_fees_with_settlement
      - partner_fees
      - transaction_fee
      - banking_fee
      - network_fee
      title: Fee
      type: object
    FeeProfile:
      description: |-
        Fee Profile

        A fee profile

        A Fee Profile
      properties:
        banking_fee_configs:
          description: The banking fee configs for the fee profile
          items:
            $ref: '#/components/schemas/BankingFeeConfig'
          type: array
        id:
          description: The id of the fee profile
          format: uuid
          type: string
        iron_fee:
          allOf:
          - $ref: '#/components/schemas/FeeSchedule'
          - deprecated: true
            description: |-
              Deprecated: use `GET /iron-fee-configs` instead, which returns every iron fee
              config for the partner along with the rule that selects each one. This field is
              only ever populated for a fee profile still directly linked to an iron fee config
              (pre-decoupling); it is absent for a profile created after iron fee configs were
              decoupled from fee profiles.
          deprecated: true
          description: |-
            Deprecated: use `GET /iron-fee-configs` instead, which returns every iron fee
            config for the partner along with the rule that selects each one. This field is
            only ever populated for a fee profile still directly linked to an iron fee config
            (pre-decoupling); it is absent for a profile created after iron fee configs were
            decoupled from fee profiles.
        iron_fee_billing_type:
          $ref: '#/components/schemas/BillingType'
        iron_fee_settlement:
          $ref: '#/components/schemas/FeeSettlement'
        is_default:
          description: Is default
          type: boolean
        min_fee:
          $ref: '#/components/schemas/Amount'
        name:
          description: The name of the fee profile
          type: string
        network_fee_enabled:
          description: The network fee enabled flag
          type: boolean
        network_fee_settlement:
          $ref: '#/components/schemas/FeeSettlement'
        non_transactional_partner_fee_configs:
          description: The non-transactional partner fees for the fee profile
          items:
            $ref: '#/components/schemas/NonTransactionalPartnerFeeConfig'
          type: array
        partner_fee_configs:
          description: The additional partner fees for the fee profile
          items:
            $ref: '#/components/schemas/PartnerFeeConfig'
          type: array
        partner_id:
          description: The Id of the partner
          format: uuid
          type: string
        profile_type:
          $ref: '#/components/schemas/FeeProfileType'
        rule:
          $ref: '#/components/schemas/FeeProfileRule'
      required:
      - id
      - name
      - partner_id
      - iron_fee_settlement
      - iron_fee_billing_type
      - min_fee
      - network_fee_enabled
      - network_fee_settlement
      - profile_type
      - is_default
      - partner_fee_configs
      - banking_fee_configs
      - non_transactional_partner_fee_configs
      title: FeeProfile
      type: object
    FeeProfileRule:
      description: |
        Fee Profile Rule

        A rule for a fee profile which limits the fee profile to be used for certain customers, ramp kinds, and currency pairs.
      properties:
        autoramp_source:
          $ref: '#/components/schemas/AutorampSource'
        currency_pairs:
          description: The currency pairs
          items:
            $ref: '#/components/schemas/CurrencyPair'
          type: array
        customer_ids:
          description: The customer ids
          items:
            format: uuid
            type: string
          type: array
        ramp_kinds:
          description: Ramp kinds this rule applies to. Omit or pass an empty list to match any ramp kind.
          items:
            $ref: '#/components/schemas/AutorampType'
          type: array
      title: FeeProfileRule
      type: object
    FeeProfileType:
      description: |
        Fee Profile Type

        The type of fee profile
      enum:
      - Invoicing
      - Transactional
      type: string
    FeeSchedule:
      anyOf:
      - $ref: '#/components/schemas/FeeSchedule_BipsFeeRequest'
      - $ref: '#/components/schemas/FeeSchedule_VariableFee'
      - $ref: '#/components/schemas/FeeSchedule_TimeWindowedFeeSchedule'
      description: |
        Fee Schedule

        The Schedule of Fees associated with a Partner
      discriminator:
        mapping:
          Bips: '#/components/schemas/FeeSchedule_BipsFeeRequest'
          Tiered: '#/components/schemas/FeeSchedule_VariableFee'
          TimeWindowed: '#/components/schemas/FeeSchedule_TimeWindowedFeeSchedule'
        propertyName: type
      type: object
    FeeScheduleWithMinimums:
      anyOf:
      - $ref: '#/components/schemas/FeeScheduleWithMinimums_BipsFeeWithMinimum'
      - $ref: '#/components/schemas/FeeScheduleWithMinimums_TieredFeesWithMinimum'
      - $ref: '#/components/schemas/FeeScheduleWithMinimums_TimeWindowedWithMinimums'
      description: |-
        Fee schedule carrying the optional monthly minimum per shape. Internal (backoffice)
        counterpart of the public `FeeSchedule`, whose projection drops the minimum fields.
      discriminator:
        mapping:
          Bips: '#/components/schemas/FeeScheduleWithMinimums_BipsFeeWithMinimum'
          Tiered: '#/components/schemas/FeeScheduleWithMinimums_TieredFeesWithMinimum'
          TimeWindowed: '#/components/schemas/FeeScheduleWithMinimums_TimeWindowedWithMinimums'
        propertyName: type
      type: object
    FeeScheduleWithMinimums_BipsFeeWithMinimum:
      allOf:
      - properties:
          type:
            enum:
            - Bips
            example: Bips
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/BipsFeeWithMinimum'
      description: |-
        Fee schedule carrying the optional monthly minimum per shape. Internal (backoffice)
        counterpart of the public `FeeSchedule`, whose projection drops the minimum fields.
    FeeScheduleWithMinimums_TieredFeesWithMinimum:
      allOf:
      - properties:
          type:
            enum:
            - Tiered
            example: Tiered
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/TieredFeesWithMinimum'
      description: |-
        Fee schedule carrying the optional monthly minimum per shape. Internal (backoffice)
        counterpart of the public `FeeSchedule`, whose projection drops the minimum fields.
    FeeScheduleWithMinimums_TimeWindowedWithMinimums:
      allOf:
      - properties:
          type:
            enum:
            - TimeWindowed
            example: TimeWindowed
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/TimeWindowedWithMinimums'
      description: |-
        Fee schedule carrying the optional monthly minimum per shape. Internal (backoffice)
        counterpart of the public `FeeSchedule`, whose projection drops the minimum fields.
    FeeSchedule_BipsFeeRequest:
      allOf:
      - properties:
          type:
            enum:
            - Bips
            example: Bips
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/BipsFeeRequest'
      description: |
        Fee Schedule

        The Schedule of Fees associated with a Partner
    FeeSchedule_TimeWindowedFeeSchedule:
      allOf:
      - properties:
          type:
            enum:
            - TimeWindowed
            example: TimeWindowed
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/TimeWindowedFeeSchedule'
      description: |
        Fee Schedule

        The Schedule of Fees associated with a Partner
    FeeSchedule_VariableFee:
      allOf:
      - properties:
          type:
            enum:
            - Tiered
            example: Tiered
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/VariableFee'
      description: |
        Fee Schedule

        The Schedule of Fees associated with a Partner
    FeeSettlement:
      description: |
        Fee Settlement

        The settlement type for the fee
      enum:
      - deductedImmediately
      - settledLater
      type: string
    Fiat:
      description: A fiat currency
      example:
        code: USD
      properties:
        code:
          description: The code of the currency e.g. 'USD'
          type: string
      required:
      - code
      title: Fiat
      type: object
    FiatAccount:
      description: |
        Fiat Account

        The fiat account for the autoramp
      properties:
        account_identifier:
          $ref: '#/components/schemas/BankAccountIdentifier'
      required:
      - account_identifier
      title: FiatAccount
      type: object
    FiatAddress:
      description: |
        Fiat Address

        Response containing fiat address details
      example:
        bank_account_identifier:
          iban: DE89370400440532013000
          type: SEPA
        bank_details:
          account_identifier:
            iban: DE89370400440532013000
            type: SEPA
          address:
            city: London
            country:
              code: GB
            postal_code: SW1A 2AA
            state: England
            street: 10 Downing Street
          bank_address: null
          email_address:
            email: john.doe@example.com
          is_third_party: false
          phone_number: +49-30-12345678
          provider_country:
            code: DE
          provider_name: Iron Bank
          recipient:
            name: Aperture Science
            type: Business
        bank_name: Iron Bank
        country: DE
        created_at: 2024-01-15T10:30:00+00:00
        currency: EUR
        customer_id: 123e4567-e89b-12d3-a456-426614174000
        id: 550e8400-e29b-41d4-a716-446655440000
        is_third_party: false
        label: Primary Business Account
        ownership_verified: true
        status: Registered
        updated_at: 1970-01-01T00:00:00+00:00
      properties:
        bank_account_identifier:
          $ref: '#/components/schemas/BankAccountIdentifier'
        bank_details:
          $ref: '#/components/schemas/RecipientBankAccount'
        bank_name:
          description: The bank name
          type: string
        country:
          description: The country code
          type: string
        created_at:
          description: When the address was created
          format: date-time
          type: string
        currency:
          description: The currency of the bank account
          type: string
        customer_id:
          description: The customer ID
          format: uuid
          type: string
        id:
          description: The ID of the address
          format: uuid
          type: string
        is_third_party:
          description: Is this a third party fiat address
          type: boolean
        label:
          description: Optional label for the address
          type: string
        ownership_verified:
          description: Has the customer verified their ownership of this account
          type: boolean
        status:
          $ref: '#/components/schemas/FiatAddressStatus'
        updated_at:
          description: When the address was last updated
          format: date-time
          type: string
      required:
      - id
      - created_at
      - updated_at
      - customer_id
      - bank_details
      - status
      - currency
      - bank_account_identifier
      - country
      - bank_name
      - ownership_verified
      - is_third_party
      title: FiatAddress
      type: object
    FiatAddressStatus:
      description: |
        Verification Status

        The status of the verification of a fiat address
      enum:
      - AuthorizationRequired
      - AuthorizationFailed
      - RegistrationPending
      - RegistrationFailed
      - Registered
      type: string
    FiatCurrency:
      properties:
        code:
          description: The ISO 4217 code of a currency. E.g. `EUR`
          type: string
        countries:
          description: A list of all the countries where this currency is supported
          items:
            $ref: '#/components/schemas/Country'
          type: array
        name:
          description: The user readable name of a currency. E.g. `Euro`
          type: string
      required:
      - code
      - name
      - countries
      title: FiatCurrency
      type: object
    FiatTransfer:
      description: |
        Fiat Transfer

        The type of fiat transfer
      enum:
      - PayIn
      - PayOut
      type: string
    FpsDepositInfo:
      example:
        account_number: '55779911'
        bank_address: 2 Thomas More Square, London, E1W 1YN
        bank_name: Banking Circle UK
        beneficiary_name: Alan Turing
        sort_code: 20-00-00
      properties:
        account_number:
          type: string
        bank_address:
          type: string
        bank_name:
          type: string
        beneficiary_name:
          type: string
        sort_code:
          type: string
      required:
      - sort_code
      - account_number
      title: FpsDepositInfo
      type: object
    GbpAbilities:
      properties:
        chaps:
          $ref: '#/components/schemas/AbilityStatus'
        chaps_thirdparty:
          $ref: '#/components/schemas/AbilityStatus'
        fps:
          $ref: '#/components/schemas/AbilityStatus'
        fps_thirdparty:
          $ref: '#/components/schemas/AbilityStatus'
        swift:
          $ref: '#/components/schemas/AbilityStatus'
        swift_thirdparty:
          $ref: '#/components/schemas/AbilityStatus'
      required:
      - fps
      - fps_thirdparty
      - chaps
      - chaps_thirdparty
      - swift
      - swift_thirdparty
      title: GbpAbilities
      type: object
    GenericBusinessQuestionnaire:
      description: |
        KYB compliance questionnaire for standard company types
      properties:
        business_details:
          $ref: '#/components/schemas/BusinessQuestionnaireBusinessDetails'
        planned_activities:
          $ref: '#/components/schemas/BusinessQuestionnairePlannedActivities'
        source_of_funds:
          $ref: '#/components/schemas/BusinessQuestionnaireSourceOfFunds'
      required:
      - planned_activities
      - source_of_funds
      - business_details
      title: GenericBusinessQuestionnaire
      type: object
    Iban:
      example:
        iban: DE89370400440532013000
      properties:
        iban:
          type: string
      required:
      - iban
      title: Iban
      type: object
    IbanDepositInfo:
      example:
        address: 10 Downing Street, London, SW1A 2AA, GB
        beneficiary_name: Alan Turing
        bic: COBADEFFXXX
        iban: DE89370400440532013000
        name: Iron Bank
        phone: +44-20-1234-5678
      properties:
        address:
          type: string
        beneficiary_name:
          description: The beneficiary name for the IBAN (account holder). For Monerium/Fiat Republic this is always the customer name.
          type: string
        bic:
          type: string
        iban:
          type: string
        name:
          type: string
        phone:
          type: string
      required:
      - iban
      title: IbanDepositInfo
      type: object
    Identification:
      description: |
        Identification

        The entity wrapping our KYC/KYB process and underlying providers
      properties:
        blocking_abilities:
          additionalProperties:
            type: string
          description: |-
            Rails (e.g. "ach", "sepa_thirdparty") the synchronous rule-engine
            preflight gate definitively ruled out at creation time, keyed to a
            partner-safe reason. Only set on an outsourced Person/Business
            identification (empty otherwise)
          type: object
        created_at:
          format: date-time
          type: string
        customer_id:
          description: Absent on a referral partner's identification (partner-keyed record)
          format: uuid
          type: string
        id:
          format: uuid
          type: string
        partner_id:
          description: The owning partner for partner-keyed (referral) records
          format: uuid
          type: string
        preflight_summary:
          $ref: '#/components/schemas/IdentificationPreflightSummary'
        residence_country:
          description: |-
            ISO 3166-1 alpha-2 (2 letter) country code of the verified residence
            address; only set on the customer's most recent identification while it
            is approved
          type: string
        review_comment:
          type: string
        status:
          $ref: '#/components/schemas/IdentificationStatus'
        step_status:
          allOf:
          - $ref: '#/components/schemas/IdentificationStepStatus'
          deprecated: true
          description: 'Deprecated for customer requirements. Use GET /customers/{id}/requirements with X-API-Version: 2026-10-01. Legacy reads and writes remain supported.'
        updated_at:
          format: date-time
          type: string
        url:
          type: string
        with_edd:
          type: boolean
      required:
      - id
      - status
      - created_at
      - updated_at
      - blocking_abilities
      title: Identification
      type: object
    IdentificationBusinessParams:
      description: |
        Business Identification Params

        The params required to create an identification
      properties:
        company_data:
          $ref: '#/components/schemas/CompanyData'
        ip_address:
          description: The IP address of the device used to submit the identification
          type: string
        phone:
          description: The phone number of the company
          type: string
        questionnaire:
          $ref: '#/components/schemas/BusinessQuestionnaire'
      required:
      - company_data
      - phone
      - ip_address
      - questionnaire
      title: IdentificationBusinessParams
      type: object
    IdentificationConflict:
      description: |
        Identification Conflict

        Returned on a 409 conflict. When a partner re-submits a customer whose
        identification payload matches an existing one, the existing record's ids
        are included so the caller can reconcile the duplicate.
      properties:
        existing_customer_id:
          description: The id of the existing customer the matching identification belongs to
          format: uuid
          type: string
        existing_identification_id:
          description: The id of the existing identification with the matching payload
          format: uuid
          type: string
        external_id:
          description: The partner's own external id for the existing customer, when set
          type: string
        message:
          description: Human-readable explanation of the conflict
          type: string
      required:
      - message
      title: IdentificationConflict
      type: object
    IdentificationCreateParamsV2:
      anyOf:
      - $ref: '#/components/schemas/IdentificationCreateParamsV2_IdentificationLinkparams'
      - $ref: '#/components/schemas/IdentificationCreateParamsV2_IdentificationTokenParams'
      - $ref: '#/components/schemas/IdentificationCreateParamsV2_IdentificationPersonParams'
      - $ref: '#/components/schemas/IdentificationCreateParamsV2_IdentificationBusinessParams'
      description: |
        Identification Create Params V2

        The params required to create an identification v2, we support three types of identification:
        - Link: where a link is provided to the customer for access to the identification process.
        - Token: where a token is provided in the request from which verification data can be extracted and where the token is generated by the third party provider
        - Person: where the identification details of the person for which the identification process is being created are provided in the request
      discriminator:
        mapping:
          Business: '#/components/schemas/IdentificationCreateParamsV2_IdentificationBusinessParams'
          Link: '#/components/schemas/IdentificationCreateParamsV2_IdentificationLinkparams'
          Person: '#/components/schemas/IdentificationCreateParamsV2_IdentificationPersonParams'
          Token: '#/components/schemas/IdentificationCreateParamsV2_IdentificationTokenParams'
        propertyName: type
      type: object
    IdentificationCreateParamsV2_IdentificationBusinessParams:
      allOf:
      - properties:
          type:
            enum:
            - Business
            example: Business
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/IdentificationBusinessParams'
      description: |
        Identification Create Params V2

        The params required to create an identification v2, we support three types of identification:
        - Link: where a link is provided to the customer for access to the identification process.
        - Token: where a token is provided in the request from which verification data can be extracted and where the token is generated by the third party provider
        - Person: where the identification details of the person for which the identification process is being created are provided in the request
    IdentificationCreateParamsV2_IdentificationLinkparams:
      allOf:
      - properties:
          type:
            enum:
            - Link
            example: Link
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/IdentificationLinkparams'
      description: |
        Identification Create Params V2

        The params required to create an identification v2, we support three types of identification:
        - Link: where a link is provided to the customer for access to the identification process.
        - Token: where a token is provided in the request from which verification data can be extracted and where the token is generated by the third party provider
        - Person: where the identification details of the person for which the identification process is being created are provided in the request
    IdentificationCreateParamsV2_IdentificationPersonParams:
      allOf:
      - properties:
          type:
            enum:
            - Person
            example: Person
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/IdentificationPersonParams'
      description: |
        Identification Create Params V2

        The params required to create an identification v2, we support three types of identification:
        - Link: where a link is provided to the customer for access to the identification process.
        - Token: where a token is provided in the request from which verification data can be extracted and where the token is generated by the third party provider
        - Person: where the identification details of the person for which the identification process is being created are provided in the request
    IdentificationCreateParamsV2_IdentificationTokenParams:
      allOf:
      - properties:
          type:
            enum:
            - Token
            example: Token
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/IdentificationTokenParams'
      description: |
        Identification Create Params V2

        The params required to create an identification v2, we support three types of identification:
        - Link: where a link is provided to the customer for access to the identification process.
        - Token: where a token is provided in the request from which verification data can be extracted and where the token is generated by the third party provider
        - Person: where the identification details of the person for which the identification process is being created are provided in the request
    IdentificationError:
      description: |
        Identification Error

        One machine-readable error entry. Always returned inside an array (see
        [`ApiIdentificationErrorBody`]) even though only one entry is populated
        today — validation is fail-fast — so a future move to reporting every
        problem at once doesn't require another breaking response-shape change.
      properties:
        beneficiary_index:
          description: |-
            Zero-based index into `company_data.beneficiaries` when the error
            originated inside a beneficiary. `None` for root-level errors and for
            non-Business identifications.
          format: uint64
          type: integer
        code:
          $ref: '#/components/schemas/ApiIdentificationErrorCode'
        docs_url:
          description: Link to a detailed description of this error code.
          type: string
        message:
          description: Human-readable description of this specific occurrence.
          type: string
      required:
      - code
      - message
      - docs_url
      title: IdentificationError
      type: object
    IdentificationLinkparams:
      description: |
        Direct Identification Params

        The params required to create an identification
      properties:
        with_edd:
          description: whether to initialize the identification with the full EDD process
          type: boolean
      title: IdentificationLinkparams
      type: object
    IdentificationPersonParams:
      description: |
        Person Identification Params

        The params required to create an identification
      properties:
        address:
          $ref: '#/components/schemas/Address'
        consent_collected_at:
          description: |-
            Date and time when explicit consent was given to share identity
            timestamp must be UTC timestamp e.g. 2025-02-01T15:38:21.775210Z
          type: string
        date_of_birth:
          description: date of birth in YYYY-MM-DD format
          type: string
        documents:
          description: documents associated with the person
          items:
            $ref: '#/components/schemas/IdentityDocument'
          type: array
        edd_questionnaire:
          $ref: '#/components/schemas/EddQuestionnaire'
        email_address:
          description: email address of the person
          type: string
        first_name:
          description: first name
          type: string
        full_name:
          description: full name
          type: string
        identity:
          $ref: '#/components/schemas/PersonIdentity'
        intended_use:
          $ref: '#/components/schemas/IntendedUse'
        kyc_questionnaire:
          $ref: '#/components/schemas/KycQuestionnaire'
        last_name:
          description: last name
          type: string
        phone_number:
          description: phone number of the person (E.164 format)
          type: string
        sharing_consent:
          description: explicitly given consent to share identity information with iron
          type: boolean
        tax_identification_number:
          description: |-
            tax identification number. Required for US residents (SSN or TIN).
            Recommended for EEA residents — this is required for EEA residents by the end of 2026.
            Not needed for tax residents of a jurisdiction that doesn't issue TINs: any value
            sent is then ignored and `identity.identity_number` is used instead.
          type: string
        tax_residence_country:
          description: |-
            ISO 3166-1 alpha-2 country of tax residence. Always required from API version
            2026-10-15. On earlier versions, required whenever `tax_identification_number` is set — TIN format is validated against
            this specific country, and it can genuinely differ from the
            customer's physical residence or nationality (the reason DAC8/CARF
            asks for it separately).
          type: string
      required:
      - sharing_consent
      - consent_collected_at
      - first_name
      - last_name
      - full_name
      - date_of_birth
      - phone_number
      - email_address
      - address
      - identity
      - intended_use
      - kyc_questionnaire
      title: IdentificationPersonParams
      type: object
    IdentificationPreflightSummary:
      description: |-
        Curated, partner-safe summary of the async preflight pipeline
        (document/selfie analysis + workflow predictor) — backfilled onto an
        identification once that pipeline finishes. Deliberately narrower than
        the full internal result: no internal level names, trace/correlation ids,
        or per-check evaluation names — those stay internal/backoffice-only.
      properties:
        missingInputs:
          description: |-
            Inputs the workflow predictor couldn't evaluate (e.g. a missing POI
            field) — likely_pass/inconclusive results can hinge on these.
          items:
            type: string
          type: array
        reasons:
          description: |-
            Curated, sanitized reasons the applicant may not pass (document/selfie
            issues, manifest-adjacent errors) — never a raw provider error.
          items:
            type: string
          type: array
        status:
          $ref: '#/components/schemas/ApiPreflightDecision'
        workflowErrors:
          items:
            $ref: '#/components/schemas/IdentificationPreflightWorkflowError'
          type: array
      required:
      - status
      - missingInputs
      - reasons
      - workflowErrors
      title: IdentificationPreflightSummary
      type: object
    IdentificationPreflightWorkflowError:
      properties:
        code:
          type: string
        message:
          type: string
        missingPaths:
          items:
            type: string
          type: array
      required:
      - code
      - message
      title: IdentificationPreflightWorkflowError
      type: object
    IdentificationStatus:
      description: |
        The Process status of the identification

        The various state transitions an identification can go through.
      enum:
      - Pending
      - Processed
      - PendingReview
      - Approved
      - Declined
      - Expired
      - Archived
      type: string
    IdentificationStepStatus:
      anyOf:
      - $ref: '#/components/schemas/BusinessIdentificationStepStatus'
      - $ref: '#/components/schemas/PersonIdentificationStepStatus'
      type: object
    IdentificationTokenParams:
      description: |
        Token Identification Params

        The params required to create an identification
      properties:
        documents:
          description: |-
            documents associated with the person. Only a single `ProofOfAddress`
            document is accepted, mirroring `ApiIdentPersonParams.documents`.
          items:
            $ref: '#/components/schemas/IdentityDocument'
          type: array
        edd_questionnaire:
          $ref: '#/components/schemas/EddQuestionnaire'
        intended_use:
          $ref: '#/components/schemas/IntendedUse'
        ip_address:
          description: |-
            The IP address of the customer associated with the token
            Not required if IP address is passed by token provided
          type: string
        kyc_questionnaire:
          $ref: '#/components/schemas/KycQuestionnaire'
        token:
          description: The shareable token generated by the third party provider
          type: string
      required:
      - token
      - intended_use
      title: IdentificationTokenParams
      type: object
    IdentityDocument:
      description: |
        Identity Document

        A base64 document that can be used to identify the business
      properties:
        file:
          description: Base64 encoded document without prefix (10MB max)
          type: string
        name:
          description: The name of the document with the file extension
          type: string
        type:
          $ref: '#/components/schemas/DocumentType'
      required:
      - name
      - file
      - type
      title: IdentityDocument
      type: object
    IdentityDocumentType:
      description: |
        Identity Document Type

        The type of identity document useful to KYB process
      enum:
      - Passport
      - NationalId
      - DriverLicense
      - ResidencePermit
      - DigitalDriversLicense
      type: string
    IndividualName:
      example:
        family_name: Turing
        given_name: Alan
      properties:
        family_name:
          maxLength: 50
          minLength: 1
          type: string
        given_name:
          maxLength: 50
          minLength: 1
          type: string
      required:
      - given_name
      - family_name
      title: IndividualName
      type: object
    IntendedUse:
      description: |
        Intended Purpose

        The intended purpose the person wants to use the account for
      enum:
      - Investing
      - PaymentToFriendsFamilyorOthers
      - PaymentToFriendsAndFamily
      - PaymentToThirdParties
      - PurchaseDigitalAssets
      - OnlinePurchasesOfGoodsOrServices
      - Trading
      type: string
    IronFeeConfig:
      properties:
        id:
          format: uuid
          type: string
        iron_fee:
          $ref: '#/components/schemas/FeeScheduleWithMinimums'
        is_default:
          type: boolean
        name:
          type: string
        partner_id:
          format: uuid
          type: string
        rule:
          $ref: '#/components/schemas/FeeProfileRule'
      required:
      - id
      - partner_id
      - iron_fee
      - is_default
      title: IronFeeConfig
      type: object
    KycQuestionnaire:
      description: |
        KYC Questionnaire

        The questionnaire for a person
      properties:
        employment_status:
          $ref: '#/components/schemas/EmploymentStatus'
        expected_monthly_transaction_count:
          $ref: '#/components/schemas/PersonProfileExpectedMonthlyTransactionCount'
        expected_monthly_transaction_volume:
          $ref: '#/components/schemas/PersonProfileExpectedMonthlyTransactionVolumeV2'
        source_of_wealth:
          $ref: '#/components/schemas/PersonProfileSourceOfWealth'
        yearly_gross_income:
          $ref: '#/components/schemas/PersonProfileYearlyGrossIncome'
      required:
      - employment_status
      - yearly_gross_income
      - source_of_wealth
      - expected_monthly_transaction_count
      - expected_monthly_transaction_volume
      title: KycQuestionnaire
      type: object
    Microdeposit:
      description: |
        Microdeposit

        A microdeposit record for account verification
      properties:
        amount:
          description: Amount of the microdeposit
          format: decimal
          type: string
        counterparty_name:
          description: Name of the counterparty
          type: string
        created_at:
          description: When the microdeposit was created
          format: date-time
          type: string
        currency_code:
          description: Currency code of the microdeposit
          type: string
      required:
      - amount
      - currency_code
      - created_at
      title: Microdeposit
      type: object
    MinimumScope:
      description: What usage reduces a monthly minimum before the top-up is billed.
      enum:
      - all_orchestration_fees
      - iron_fee_only
      type: string
    MissingQuestion:
      description: |-
        A required questionnaire question the customer has left unanswered, resolved
        against the Sumsub questionnaire definition.
      properties:
        id:
          description: Sumsub questionnaire item id, e.g. `sourceOfFunds`.
          type: string
        section_id:
          description: The questionnaire section the question belongs to, when known.
          type: string
        title:
          description: Human-readable question text the applicant saw.
          type: string
      required:
      - id
      - title
      title: MissingQuestion
      type: object
    MobileMoneyDepositInfo:
      properties:
        instruction:
          type: string
        mobile_number:
          type: string
      required:
      - mobile_number
      title: MobileMoneyDepositInfo
      type: object
    NetworkFee:
      anyOf:
      - $ref: '#/components/schemas/NetworkFee_Amount'
      - $ref: '#/components/schemas/NetworkFee_Amount'
      - $ref: '#/components/schemas/NetworkFee_Amount'
      - $ref: '#/components/schemas/NetworkFee_Amount'
      - $ref: '#/components/schemas/NetworkFee_Amount'
      - $ref: '#/components/schemas/NetworkFee_Amount'
      - $ref: '#/components/schemas/NetworkFee_Amount'
      - $ref: '#/components/schemas/NetworkFee_Amount'
      - $ref: '#/components/schemas/NetworkFee_Amount'
      - $ref: '#/components/schemas/NetworkFee_Amount'
      - $ref: '#/components/schemas/NetworkFee_Amount'
      - $ref: '#/components/schemas/NetworkFee_Amount'
      - $ref: '#/components/schemas/NetworkFee_Amount'
      description: |
        Network Fee

        The network fee for a given currency. This is deprecated and will be removed in the future. Use NetworkFeeWithSettlement instead.
      discriminator:
        mapping:
          AchIn: '#/components/schemas/NetworkFee_Amount'
          AchOut: '#/components/schemas/NetworkFee_Amount'
          CitreaGas: '#/components/schemas/NetworkFee_Amount'
          EthereumGas: '#/components/schemas/NetworkFee_Amount'
          RailFee: '#/components/schemas/NetworkFee_Amount'
          SepaIn: '#/components/schemas/NetworkFee_Amount'
          SepaOut: '#/components/schemas/NetworkFee_Amount'
          SolanaTransactionFee: '#/components/schemas/NetworkFee_Amount'
          StellarTransactionFee: '#/components/schemas/NetworkFee_Amount'
          SwiftIn: '#/components/schemas/NetworkFee_Amount'
          SwiftOut: '#/components/schemas/NetworkFee_Amount'
          WireIn: '#/components/schemas/NetworkFee_Amount'
          WireOut: '#/components/schemas/NetworkFee_Amount'
        propertyName: type
      type: object
    NetworkFeeType:
      description: |
        Network Fee Type

        The type of network fee
      enum:
      - SepaIn
      - SepaOut
      - EthereumGas
      - CitreaGas
      - SolanaTransactionFee
      - StellarTransactionFee
      - PolygonGas
      - BaseGas
      - AvalancheGas
      - TronGas
      - BscGas
      - SeismicExecutionFee
      - RailFee
      - AchIn
      - AchOut
      - WireIn
      - WireOut
      - SwiftIn
      - SwiftOut
      - FpsIn
      - FpsOut
      - ChapsIn
      - ChapsOut
      - RtpIn
      - RtpOut
      - FednowIn
      - FednowOut
      type: string
    NetworkFeeWithSettlement:
      description: |
        Network Fee with Settlement

        The network fee with settlement for a given currency
      properties:
        fee_amount:
          $ref: '#/components/schemas/Amount'
        fee_type:
          $ref: '#/components/schemas/NetworkFeeType'
        settlement:
          $ref: '#/components/schemas/FeeSettlement'
      required:
      - fee_type
      - fee_amount
      title: NetworkFeeWithSettlement
      type: object
    NetworkFee_Amount:
      allOf:
      - properties:
          type:
            enum:
            - SwiftOut
            example: SwiftOut
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/Amount'
      description: |
        Network Fee

        The network fee for a given currency. This is deprecated and will be removed in the future. Use NetworkFeeWithSettlement instead.
    NonTransactionalPartnerFeeConfig:
      description: |
        Non-Transactional Partner Fee Config

        A non-transactional partner fee config
      properties:
        billing_type:
          $ref: '#/components/schemas/BillingType'
        fee_type:
          $ref: '#/components/schemas/PartnerFeeType'
        label:
          $ref: '#/components/schemas/PartnerFeeLabel'
        settlement:
          $ref: '#/components/schemas/FeeSettlement'
      required:
      - label
      - fee_type
      - billing_type
      - settlement
      title: NonTransactionalPartnerFeeConfig
      type: object
    Occupation:
      description: |
        Occupation

        The occupation of the person
      enum:
      - Agriculture
      - ArtsAndEntertainment
      - Construction
      - Education
      - FinancialServices
      - InformationAndTechnology
      - Retail
      - RealEstate
      - Other
      - BusinessOwner
      - Healthcare
      - Industrial
      - LegalServices
      - PublicSector
      - SeniorManagement
      type: string
    OrdinaryPendingRequirementCode:
      enum:
      - kyc_selfie
      - kyc_identity
      - kyc_applicant_data
      - kyc_proof_of_residence
      - kyb_company_data
      - kyb_company_beneficiaries
      - kyb_company_documents
      - identification_kyc
      - identification_kyb
      type: string
    PagedList_ApiAutorampOpenBankingPayment:
      description: |
        PagedList

        A list of items with cursors used to fetch the next or previous page
      properties:
        cursor:
          description: The cursor used to fetch the next page
          format: uuid
          type: string
        items:
          description: The list of items
          items:
            $ref: '#/components/schemas/ApiAutorampOpenBankingPayment'
          type: array
        prev_cursor:
          default: null
          description: The cursor used to fetch the previous page
          format: uuid
          type: string
      required:
      - items
      title: PagedList_ApiAutorampOpenBankingPayment
      type: object
    PagedList_Autoramp:
      description: |
        PagedList

        A list of items with cursors used to fetch the next or previous page
      properties:
        cursor:
          description: The cursor used to fetch the next page
          format: uuid
          type: string
        items:
          description: The list of items
          items:
            $ref: '#/components/schemas/Autoramp'
          type: array
        prev_cursor:
          default: null
          description: The cursor used to fetch the previous page
          format: uuid
          type: string
      required:
      - items
      title: PagedList_Autoramp
      type: object
    PagedList_AutorampTransaction:
      description: |
        PagedList

        A list of items with cursors used to fetch the next or previous page
      properties:
        cursor:
          description: The cursor used to fetch the next page
          format: uuid
          type: string
        items:
          description: The list of items
          items:
            $ref: '#/components/schemas/AutorampTransaction'
          type: array
        prev_cursor:
          default: null
          description: The cursor used to fetch the previous page
          format: uuid
          type: string
      required:
      - items
      title: PagedList_AutorampTransaction
      type: object
    PagedList_Customer:
      description: |
        PagedList

        A list of items with cursors used to fetch the next or previous page
      properties:
        cursor:
          description: The cursor used to fetch the next page
          format: uuid
          type: string
        items:
          description: The list of items
          items:
            $ref: '#/components/schemas/Customer'
          type: array
        prev_cursor:
          default: null
          description: The cursor used to fetch the previous page
          format: uuid
          type: string
      required:
      - items
      title: PagedList_Customer
      type: object
    PagedList_FeeProfile:
      description: |
        PagedList

        A list of items with cursors used to fetch the next or previous page
      properties:
        cursor:
          description: The cursor used to fetch the next page
          format: uuid
          type: string
        items:
          description: The list of items
          items:
            $ref: '#/components/schemas/FeeProfile'
          type: array
        prev_cursor:
          default: null
          description: The cursor used to fetch the previous page
          format: uuid
          type: string
      required:
      - items
      title: PagedList_FeeProfile
      type: object
    PagedList_FiatAddress:
      description: |
        PagedList

        A list of items with cursors used to fetch the next or previous page
      properties:
        cursor:
          description: The cursor used to fetch the next page
          format: uuid
          type: string
        items:
          description: The list of items
          items:
            $ref: '#/components/schemas/FiatAddress'
          type: array
        prev_cursor:
          default: null
          description: The cursor used to fetch the previous page
          format: uuid
          type: string
      required:
      - items
      title: PagedList_FiatAddress
      type: object
    PagedList_Identification:
      description: |
        PagedList

        A list of items with cursors used to fetch the next or previous page
      properties:
        cursor:
          description: The cursor used to fetch the next page
          format: uuid
          type: string
        items:
          description: The list of items
          items:
            $ref: '#/components/schemas/Identification'
          type: array
        prev_cursor:
          default: null
          description: The cursor used to fetch the previous page
          format: uuid
          type: string
      required:
      - items
      title: PagedList_Identification
      type: object
    PagedList_PixAddress:
      description: |
        PagedList

        A list of items with cursors used to fetch the next or previous page
      properties:
        cursor:
          description: The cursor used to fetch the next page
          format: uuid
          type: string
        items:
          description: The list of items
          items:
            $ref: '#/components/schemas/PixAddress'
          type: array
        prev_cursor:
          default: null
          description: The cursor used to fetch the previous page
          format: uuid
          type: string
      required:
      - items
      title: PagedList_PixAddress
      type: object
    PagedList_RfiCustomerGroup:
      description: |
        PagedList

        A list of items with cursors used to fetch the next or previous page
      properties:
        cursor:
          description: The cursor used to fetch the next page
          format: uuid
          type: string
        items:
          description: The list of items
          items:
            $ref: '#/components/schemas/RfiCustomerGroup'
          type: array
        prev_cursor:
          default: null
          description: The cursor used to fetch the previous page
          format: uuid
          type: string
      required:
      - items
      title: PagedList_RfiCustomerGroup
      type: object
    PagedList_Signing:
      description: |
        PagedList

        A list of items with cursors used to fetch the next or previous page
      properties:
        cursor:
          description: The cursor used to fetch the next page
          format: uuid
          type: string
        items:
          description: The list of items
          items:
            $ref: '#/components/schemas/Signing'
          type: array
        prev_cursor:
          default: null
          description: The cursor used to fetch the previous page
          format: uuid
          type: string
      required:
      - items
      title: PagedList_Signing
      type: object
    PagedList_Webhook:
      description: |
        PagedList

        A list of items with cursors used to fetch the next or previous page
      properties:
        cursor:
          description: The cursor used to fetch the next page
          format: uuid
          type: string
        items:
          description: The list of items
          items:
            $ref: '#/components/schemas/Webhook'
          type: array
        prev_cursor:
          default: null
          description: The cursor used to fetch the previous page
          format: uuid
          type: string
      required:
      - items
      title: PagedList_Webhook
      type: object
    PartnerBipsFee:
      description: |
        Partner Bips Fee

        A bips fee for a partner
      properties:
        bips:
          deprecated: true
          description: |-
            The bips fee value, rounded to the nearest whole bip. Deprecated: use
            `bips_decimal` instead, which is always populated going forward. Still
            always populated here too for backward compatibility with existing
            integrations.
          format: uint32
          type: integer
        bips_decimal:
          description: The precise bips fee value. Always populated.
          format: decimal
          type: string
      required:
      - bips
      title: PartnerBipsFee
      type: object
    PartnerFee:
      description: |
        Partner Fee

        A partner fee
      properties:
        fee:
          $ref: '#/components/schemas/Amount'
        label:
          description: The label of the partner fee
          type: string
        settlement:
          $ref: '#/components/schemas/FeeSettlement'
      required:
      - label
      - fee
      - settlement
      title: PartnerFee
      type: object
    PartnerFeeConfig:
      description: |-
        Partner Fee

        A partner fee config which is deducted immediately from the transaction amount

        A Partner Fee
      properties:
        billing_type:
          $ref: '#/components/schemas/BillingType'
        fee_type:
          $ref: '#/components/schemas/PartnerFeeType'
        label:
          $ref: '#/components/schemas/PartnerFeeLabel'
        settlement:
          $ref: '#/components/schemas/FeeSettlement'
      required:
      - label
      - fee_type
      - billing_type
      - settlement
      title: PartnerFeeConfig
      type: object
    PartnerFeeLabel:
      enum:
      - maintenance
      - account_setup
      - onboarding
      - partner
      - customer
      - banking
      - surcharge
      type: string
    PartnerFeeType:
      anyOf:
      - $ref: '#/components/schemas/PartnerFeeType_PartnerFixedFee'
      - $ref: '#/components/schemas/PartnerFeeType_PartnerBipsFee'
      discriminator:
        mapping:
          Bips: '#/components/schemas/PartnerFeeType_PartnerBipsFee'
          Fixed: '#/components/schemas/PartnerFeeType_PartnerFixedFee'
        propertyName: type
      type: object
    PartnerFeeType_PartnerBipsFee:
      allOf:
      - properties:
          type:
            enum:
            - Bips
            example: Bips
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/PartnerBipsFee'
    PartnerFeeType_PartnerFixedFee:
      allOf:
      - properties:
          type:
            enum:
            - Fixed
            example: Fixed
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/PartnerFixedFee'
    PartnerFixedFee:
      description: |
        Partner Fixed Fee

        A fixed fee for a partner
      properties:
        fixed_fee:
          $ref: '#/components/schemas/Amount'
      required:
      - fixed_fee
      title: PartnerFixedFee
      type: object
    PatchAutorampMarketParameters:
      description: |
        Patch Autoramp Market Parameters

        The parameters for patching the autoramp market
      properties:
        customer_id:
          format: uuid
          type: string
        destination_currency:
          $ref: '#/components/schemas/Currency'
        fee_profile_id:
          description: |-
            Change the fee profile applied to this autoramp. Must be a transactional
            profile of the same partner, eligible for the (post-patch) autoramp shape.
            A change requires 2FA confirmation before it takes effect.
          format: uuid
          type: string
        recipient_account:
          $ref: '#/components/schemas/Account'
      required:
      - customer_id
      title: PatchAutorampMarketParameters
      type: object
    PaymentNetwork:
      description: |
        PaymentNetwork

        A payment network
      enum:
      - Sepa
      - Swift
      - Fps
      - Chats
      - Ach
      - Wire
      - Rtp
      - Fednow
      - Pix
      - Spei
      - CbuCvu
      - AfricanBankTransfer
      - MobileMoney
      - Chaps
      type: string
    PaymentTracking:
      description: Tracking information for this transactions' payout. Only populated for completed transactions
      properties:
        ach_payment_reference:
          type: string
        ach_trace_number:
          type: string
        fps_payment_reference:
          type: string
        imad:
          type: string
        omad:
          type: string
        sepa_payment_reference:
          type: string
        swift_payment_reference:
          type: string
        uetr:
          type: string
        wire_message:
          type: string
      title: PaymentTracking
      type: object
    PayoutCryptoTransaction:
      description: |
        Payout Transaction Details

        Details about the blockchain transaction used for crypto payouts
      example:
        transaction_hash: 5J9qvKhKqYbpjhCkqDnKXSp7QqLDBU5iT4VWshsqRdWKHjKdqZqKqYbpjhCkqDnKXSp
      properties:
        transaction_hash:
          description: The blockchain transaction hash
          type: string
      required:
      - transaction_hash
      title: PayoutCryptoTransaction
      type: object
    PendingQuestionnaireRequirement:
      properties:
        code:
          $ref: '#/components/schemas/QuestionnaireRequirementCode'
        description:
          type: string
        missing_questions:
          items:
            $ref: '#/components/schemas/RequirementMissingQuestion'
          type: array
      required:
      - code
      - description
      - missing_questions
      title: PendingQuestionnaireRequirement
      type: object
    PendingRequirement:
      properties:
        code:
          $ref: '#/components/schemas/OrdinaryPendingRequirementCode'
        description:
          type: string
      required:
      - code
      - description
      title: PendingRequirement
      type: object
    PendingRequirementItem:
      oneOf:
      - $ref: '#/components/schemas/PendingRequirement'
      - $ref: '#/components/schemas/PendingQuestionnaireRequirement'
      type: object
    PendingReviewRequirement:
      properties:
        code:
          $ref: '#/components/schemas/VerificationRequirementCode'
        description:
          type: string
      required:
      - code
      - description
      title: PendingReviewRequirement
      type: object
    PersonBeneficiaryInfo:
      description: |
        Company Person Beneficiary Info

        The beneficiary info of the person
      properties:
        address:
          $ref: '#/components/schemas/Address'
        birth_place:
          $ref: '#/components/schemas/BirthPlace'
        date_of_birth:
          description: date of birth in YYYY-MM-DD format
          type: string
        email_address:
          description: email address of the person
          type: string
        first_name:
          description: first name
          type: string
        identity:
          $ref: '#/components/schemas/BeneficiaryIdentity'
        last_name:
          description: last name
          type: string
        middle_name:
          description: middle name
          type: string
        phone_number:
          description: phone number of the person (international format with leading +)
          type: string
        proof_of_address:
          description: |-
            Base64 encoded proof of address document (10MB max).
            Optional for every beneficiary role, in the US and ROW alike. Validated (base64, size)
            when provided, but never required for the identification to be processed.
          type: string
        tax_identification_number:
          description: |-
            tax identification number (SSN for US residents, national TIN otherwise).
            Required for Director and UltimateBeneficialOwner beneficiaries, and for Representative
            beneficiaries outside the US. Always required for the UltimateBeneficialOwner of a sole
            proprietorship. For tax residents of a jurisdiction that doesn't issue TINs, any value
            sent is ignored and `identity.identity_number` is used instead, so it becomes required
            wherever a TIN would be.
          type: string
        tax_jurisdiction_country_code:
          description: ISO 3166-1 alpha-2 country code of the person's tax jurisdiction
          type: string
      required:
      - first_name
      - last_name
      - date_of_birth
      - address
      - email_address
      - phone_number
      - tax_jurisdiction_country_code
      - identity
      title: PersonBeneficiaryInfo
      type: object
    PersonIdentificationStepStatus:
      properties:
        identity:
          $ref: '#/components/schemas/VerificationStepDetail'
        proof_of_residence:
          $ref: '#/components/schemas/VerificationStepDetail'
        questionnaire:
          $ref: '#/components/schemas/VerificationStepDetail'
        selfie:
          $ref: '#/components/schemas/VerificationStepDetail'
      title: PersonIdentificationStepStatus
      type: object
    PersonIdentity:
      description: |
        Person Identity

        The required identity information of a person
      properties:
        identity_country_code:
          description: country (2-character ISO 3166)
          type: string
        identity_document_back:
          description: Base64 encoded image of ident document back without prefix (10MB max)
          type: string
        identity_document_front:
          description: Base64 encoded image of ident document front without prefix (10MB max)
          type: string
        identity_document_type:
          $ref: '#/components/schemas/IdentityDocumentType'
        identity_document_valid_until:
          description: |-
            Expiry date of the identity document (YYYY-MM-DD format), if known.
            Used by the synchronous deposit-rail eligibility check performed at
            identification creation, before the document's real expiry has been
            extracted from the uploaded images.
          type: string
        identity_number:
          description: The identity number or identity document being submitted.
          type: string
        ip_address:
          description: ip address of device used to collect selfie
          type: string
        nationality:
          description: nationality (2-character ISO 3166 country code)
          type: string
        selfie:
          description: Base64 encoded image of selfie without prefix (10MB max)
          type: string
        selfie_collected_at:
          description: timestamp in ISO 8601 format
          type: string
      required:
      - identity_country_code
      - identity_document_type
      - identity_document_front
      - selfie
      - selfie_collected_at
      - ip_address
      - nationality
      title: PersonIdentity
      type: object
    PersonProfileExpectedMonthlyTransactionCount:
      description: |
        Expected Monthly Transaction Count

        The expected monthly transaction volume of the person
      enum:
      - LessThan5
      - Between5And10
      - MoreThan10
      type: string
    PersonProfileExpectedMonthlyTransactionVolume:
      description: |
        Expected Monthly Transaction Volume

        The expected monthly transaction volume of the person
      enum:
      - LessThan1000
      - Between1000And5000
      - Between5000And10000
      - Between10000And20000
      - Over20000
      type: string
    PersonProfileExpectedMonthlyTransactionVolumeV2:
      enum:
      - LessThan500
      - MoreThan500LessThan2000
      - MoreThan2000
      type: string
    PersonProfileMonthlyIncome:
      description: |
        Monthly Income

        The monthly income of the person
      enum:
      - Between1000And2000
      - Between2000And3000
      - Between3000And5000
      - Between5000And10000
      - Over10000
      type: string
    PersonProfileSourceOfFunds:
      description: |
        Source of Funds

        The sources of funds for a person
      enum:
      - SalaryAndWages
      - PersonalSavings
      - PensionOrRetirementPayments
      - ProceedsFromSellingAssets
      - CryptocurrencyTradingOrInvestment
      - InvestmentReturns
      - GamblingOrLotteryWinnings
      - GiftOrInheritanceReceived
      - LoanFromBankOrOtherFinancialInstitution
      type: string
    PersonProfileSourceOfWealth:
      description: |
        Source of Wealth

        The source of wealth of the person
      enum:
      - Salary
      - Savings
      - Investments
      - CryptoTrading
      - Other
      - SaleOfAssetsOrSettlement
      - Pension
      - CompanyProfits
      - SoleProprietorIncome
      - RentalIncome
      - Inheritance
      type: string
    PersonProfileYearlyGrossIncome:
      description: |
        Yearly Gross Income

        The yearly gross income of the person.

        DEPRECATED VALUE: `MoreThan150000` predates the finer bands above 150,000
        and is no longer accepted as-is — submissions containing it are coerced to
        `From150001To200000` on ingest. Use one of `From150001To200000`,
        `From200001To500000` or `MoreThan500000` instead.
      enum:
      - LessThan20000
      - From20001To30000
      - From30001To40000
      - From40001To50000
      - From50001To60000
      - From60001To70000
      - From70001To80000
      - From80001To90000
      - From90001To100000
      - From100001To110000
      - From110001To120000
      - From120001To130000
      - From130001To140000
      - From140001To150000
      - MoreThan150000
      - From150001To200000
      - From200001To500000
      - MoreThan500000
      type: string
    PingWebhookParams:
      properties:
        customer_id:
          description: Customer ID to use for the webhook ping
          format: uuid
          type: string
      required:
      - customer_id
      title: PingWebhookParams
      type: object
    PixAccount:
      description: |-
        PIX Account

        References a previously-registered PIX destination by its id.
      properties:
        id:
          description: The id of a previously-registered PIX destination
          format: uuid
          type: string
      required:
      - id
      title: PixAccount
      type: object
    PixAccountIdentifier:
      anyOf:
      - $ref: '#/components/schemas/PixAccountIdentifier_PixCpfKey'
      - $ref: '#/components/schemas/PixAccountIdentifier_PixCnpjKey'
      - $ref: '#/components/schemas/PixAccountIdentifier_PixEmailKey'
      - $ref: '#/components/schemas/PixAccountIdentifier_PixPhoneKey'
      - $ref: '#/components/schemas/PixAccountIdentifier_PixEvpKey'
      - $ref: '#/components/schemas/PixAccountIdentifier_PixBankDetails'
      description: |-
        PixAccountIdentifier

        How the recipient's PIX account is identified: a DICT key of one of the
        five key types, or full bank account details.
      discriminator:
        mapping:
          BANK_DETAILS: '#/components/schemas/PixAccountIdentifier_PixBankDetails'
          CNPJ: '#/components/schemas/PixAccountIdentifier_PixCnpjKey'
          CPF: '#/components/schemas/PixAccountIdentifier_PixCpfKey'
          EMAIL: '#/components/schemas/PixAccountIdentifier_PixEmailKey'
          EVP: '#/components/schemas/PixAccountIdentifier_PixEvpKey'
          PHONE: '#/components/schemas/PixAccountIdentifier_PixPhoneKey'
        propertyName: type
      type: object
    PixAccountIdentifier_PixBankDetails:
      allOf:
      - properties:
          type:
            enum:
            - BANK_DETAILS
            example: BANK_DETAILS
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/PixBankDetails'
      description: |-
        PixAccountIdentifier

        How the recipient's PIX account is identified: a DICT key of one of the
        five key types, or full bank account details.
    PixAccountIdentifier_PixCnpjKey:
      allOf:
      - properties:
          type:
            enum:
            - CNPJ
            example: CNPJ
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/PixCnpjKey'
      description: |-
        PixAccountIdentifier

        How the recipient's PIX account is identified: a DICT key of one of the
        five key types, or full bank account details.
    PixAccountIdentifier_PixCpfKey:
      allOf:
      - properties:
          type:
            enum:
            - CPF
            example: CPF
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/PixCpfKey'
      description: |-
        PixAccountIdentifier

        How the recipient's PIX account is identified: a DICT key of one of the
        five key types, or full bank account details.
    PixAccountIdentifier_PixEmailKey:
      allOf:
      - properties:
          type:
            enum:
            - EMAIL
            example: EMAIL
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/PixEmailKey'
      description: |-
        PixAccountIdentifier

        How the recipient's PIX account is identified: a DICT key of one of the
        five key types, or full bank account details.
    PixAccountIdentifier_PixEvpKey:
      allOf:
      - properties:
          type:
            enum:
            - EVP
            example: EVP
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/PixEvpKey'
      description: |-
        PixAccountIdentifier

        How the recipient's PIX account is identified: a DICT key of one of the
        five key types, or full bank account details.
    PixAccountIdentifier_PixPhoneKey:
      allOf:
      - properties:
          type:
            enum:
            - PHONE
            example: PHONE
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/PixPhoneKey'
      description: |-
        PixAccountIdentifier

        How the recipient's PIX account is identified: a DICT key of one of the
        five key types, or full bank account details.
    PixAccountType:
      description: |-
        PixAccountType

        The type of a Brazilian bank account.
      enum:
      - CHECKING
      - SAVINGS
      - SALARY
      - TRANSACTION
      type: string
    PixAddress:
      description: |-
        PIX Address

        Response containing PIX destination details.
      example:
        created_at: 2024-01-15T10:30:00+00:00
        customer_id: 123e4567-e89b-12d3-a456-426614174000
        id: 550e8400-e29b-41d4-a716-446655440000
        label: Primary PIX
        recipient:
          account:
            key: '+5511987654321'
            type: PHONE
          recipient:
            family_name: Turing
            given_name: Alan
            type: Individual
        status: Registered
        updated_at: 1970-01-01T00:00:00+00:00
      properties:
        created_at:
          description: When the address was created
          format: date-time
          type: string
        customer_id:
          description: The customer ID
          format: uuid
          type: string
        id:
          description: The ID of the address
          format: uuid
          type: string
        label:
          description: Optional label for the address
          type: string
        recipient:
          $ref: '#/components/schemas/RecipientPix'
        status:
          $ref: '#/components/schemas/PixAddressStatus'
        updated_at:
          description: When the address was last updated
          format: date-time
          type: string
      required:
      - id
      - created_at
      - updated_at
      - customer_id
      - recipient
      - status
      title: PixAddress
      type: object
    PixAddressStatus:
      description: PIX Address Status
      enum:
      - RegistrationPending
      - Registered
      - RegistrationFailed
      type: string
    PixBankDetails:
      description: |-
        PixBankDetails

        Full Brazilian bank account details identifying the recipient's account,
        for recipients without a registered PIX key.
      example:
        account_number: '5678901'
        account_type: CHECKING
        bank_code: '341'
        branch_code: '1234'
        tax_id: '12345678909'
      properties:
        account_number:
          description: |-
            Account number including the verification (check) digit, with no
            separator, e.g. `7140025418`.
          maxLength: 20
          minLength: 1
          type: string
        account_type:
          $ref: '#/components/schemas/PixAccountType'
        bank_code:
          description: 3-digit COMPE bank code or 8-digit ISPB, distinguished by length
          pattern: ^([0-9]{3}|[0-9]{8})$
          type: string
        branch_code:
          description: Branch number without the verification digit
          pattern: ^[0-9]{1,4}$
          type: string
        tax_id:
          description: |-
            The account holder's CPF (11 digits) or CNPJ (14 digits), with or
            without the usual `.`/`-`/`/` formatting.
          pattern: ^([0-9]{11}|[0-9]{14}|[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}|[0-9]{2}\.[0-9]{3}\.[0-9]{3}/[0-9]{4}-[0-9]{2})$
          type: string
      required:
      - tax_id
      - bank_code
      - branch_code
      - account_number
      - account_type
      title: PixBankDetails
      type: object
    PixCnpjKey:
      description: |-
        PixCnpjKey

        A PIX DICT key that is the recipient's CNPJ.
      example:
        key: '12345678000195'
      properties:
        key:
          description: 14-digit CNPJ, with or without the `XX.XXX.XXX/XXXX-XX` formatting
          pattern: ^([0-9]{14}|[0-9]{2}\.[0-9]{3}\.[0-9]{3}/[0-9]{4}-[0-9]{2})$
          type: string
      required:
      - key
      title: PixCnpjKey
      type: object
    PixCpfKey:
      description: |-
        PixCpfKey

        A PIX DICT key that is the recipient's CPF.
      example:
        key: '12345678909'
      properties:
        key:
          description: 11-digit CPF, with or without the `XXX.XXX.XXX-XX` formatting
          pattern: ^([0-9]{11}|[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2})$
          type: string
      required:
      - key
      title: PixCpfKey
      type: object
    PixDepositInfo:
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
        br_code:
          description: |-
            "Pix Copia e Cola" — the EMV BR Code string. The payer pastes it into their
            bank app, or renders it as a QR code to scan.
          type: string
        expires_at:
          description: Expiry of a one-time (dynamic) QR code. Absent for reusable (static) codes.
          format: date-time
          type: string
        instruction:
          description: Human-readable payer guidance.
          type: string
        pix_key:
          description: Bare PIX key for customers who prefer entering a key directly.
          type: string
      required:
      - br_code
      - instruction
      title: PixDepositInfo
      type: object
    PixEmailKey:
      description: |-
        PixEmailKey

        A PIX DICT key that is the recipient's email address.
      example:
        key: joao.silva@example.com
      properties:
        key:
          maxLength: 77
          pattern: ^[^@\s]+@[^@\s]+$
          type: string
      required:
      - key
      title: PixEmailKey
      type: object
    PixEvpKey:
      description: |-
        PixEvpKey

        A random PIX DICT key (EVP) generated by the recipient's bank.
      example:
        key: 123e4567-e89b-12d3-a456-426614174000
      properties:
        key:
          description: A lowercase UUID, e.g. 123e4567-e89b-12d3-a456-426614174000
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
          type: string
      required:
      - key
      title: PixEvpKey
      type: object
    PixKeyInfo:
      description: |-
        PIX Key Info

        Holder/bank info a PIX key resolves to.
      properties:
        bank_name:
          description: Receiving bank's name
          type: string
        ispb:
          description: 8-digit ISPB bank code
          type: string
        name:
          description: Account holder's full name
          type: string
      required:
      - name
      - bank_name
      - ispb
      title: PixKeyInfo
      type: object
    PixPhoneKey:
      description: |-
        PixPhoneKey

        A PIX DICT key that is the recipient's phone number.
      example:
        key: '+5511987654321'
      properties:
        key:
          description: International format with leading `+`, e.g. +5511987654321
          pattern: ^\+[1-9][0-9]{1,14}$
          type: string
      required:
      - key
      title: PixPhoneKey
      type: object
    QuestionnaireRequirementCode:
      enum:
      - kyc_questionnaire
      - kyb_questionnaire
      type: string
    RampTransactionSource:
      anyOf:
      - $ref: '#/components/schemas/ApiWalletDepositSource'
      - $ref: '#/components/schemas/ApiBankAccountSource'
      description: The source of the autoramp transaction
      type: object
    RateExpiryPolicy:
      description: |
        Rate Expiry Policy

        The policy for the rate expiry
      enum:
      - Return
      - Slippage
      type: string
    Recipient:
      anyOf:
      - $ref: '#/components/schemas/Recipient_RecipientBankAccount'
      - $ref: '#/components/schemas/Recipient_RecipientWallet'
      - $ref: '#/components/schemas/Recipient_RecipientPix'
      description: |
        Recipient

        The recipient of the payment
      discriminator:
        mapping:
          BankAccount: '#/components/schemas/Recipient_RecipientBankAccount'
          Pix: '#/components/schemas/Recipient_RecipientPix'
          Wallet: '#/components/schemas/Recipient_RecipientWallet'
        propertyName: type
      type: object
    RecipientBankAccount:
      description: |
        RecipientBankAccount

        A recipient fiat bank account
      example:
        account_identifier:
          iban: DE89370400440532013000
          type: SEPA
        address:
          city: London
          country:
            code: GB
          postal_code: SW1A 2AA
          state: England
          street: 10 Downing Street
        bank_address: null
        email_address:
          email: john.doe@example.com
        is_third_party: false
        phone_number: +49-30-12345678
        provider_country:
          code: DE
        provider_name: Iron Bank
        recipient:
          name: Aperture Science
          type: Business
      properties:
        account_identifier:
          $ref: '#/components/schemas/BankAccountIdentifier'
        address:
          $ref: '#/components/schemas/RecipientPostalAddress'
        bank_address:
          $ref: '#/components/schemas/BankPostalAddress'
        email_address:
          $ref: '#/components/schemas/EmailAddress'
        is_third_party:
          description: Is this a users fiat bank account or a third party fiat bank account
          type: boolean
        phone_number:
          description: The recipient's phone number.
          type: string
        provider_country:
          $ref: '#/components/schemas/Country'
        provider_name:
          description: The name of the provider of the recipient's account
          type: string
        recipient:
          $ref: '#/components/schemas/RecipientName'
      required:
      - recipient
      - provider_name
      - provider_country
      - account_identifier
      - address
      - is_third_party
      title: RecipientBankAccount
      type: object
    RecipientName:
      anyOf:
      - $ref: '#/components/schemas/RecipientName_IndividualName'
      - $ref: '#/components/schemas/RecipientName_BusinessName'
      discriminator:
        mapping:
          Business: '#/components/schemas/RecipientName_BusinessName'
          Individual: '#/components/schemas/RecipientName_IndividualName'
        propertyName: type
      type: object
    RecipientName_BusinessName:
      allOf:
      - properties:
          type:
            enum:
            - Business
            example: Business
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/BusinessName'
    RecipientName_IndividualName:
      allOf:
      - properties:
          type:
            enum:
            - Individual
            example: Individual
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/IndividualName'
    RecipientPix:
      description: |-
        RecipientPix

        A PIX payout recipient.
      example:
        account:
          key: '+5511987654321'
          type: PHONE
        recipient:
          family_name: Turing
          given_name: Alan
          type: Individual
      properties:
        account:
          $ref: '#/components/schemas/PixAccountIdentifier'
        recipient:
          $ref: '#/components/schemas/RecipientName'
      required:
      - recipient
      - account
      title: RecipientPix
      type: object
    RecipientPostalAddress:
      description: |-
        RecipientPostalAddress

        The account holder's address.
      properties:
        city:
          description: The city
          maxLength: 100
          minLength: 2
          type: string
        country:
          $ref: '#/components/schemas/Country'
        postal_code:
          description: The postal code
          maxLength: 20
          minLength: 3
          type: string
        state:
          description: The state
          type: string
        street:
          description: The street address
          maxLength: 256
          minLength: 2
          type: string
      required:
      - street
      - city
      - state
      - country
      - postal_code
      title: RecipientPostalAddress
      type: object
    RecipientWallet:
      description: |
        RecipientWallet

        An on-chain wallet address
      properties:
        address:
          description: The wallet address
          type: string
        blockchain:
          $ref: '#/components/schemas/Blockchain'
      required:
      - blockchain
      - address
      title: RecipientWallet
      type: object
    Recipient_RecipientBankAccount:
      allOf:
      - properties:
          type:
            enum:
            - BankAccount
            example: BankAccount
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/RecipientBankAccount'
      description: |
        Recipient

        The recipient of the payment
    Recipient_RecipientPix:
      allOf:
      - properties:
          type:
            enum:
            - Pix
            example: Pix
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/RecipientPix'
      description: |
        Recipient

        The recipient of the payment
    Recipient_RecipientWallet:
      allOf:
      - properties:
          type:
            enum:
            - Wallet
            example: Wallet
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/RecipientWallet'
      description: |
        Recipient

        The recipient of the payment
    RegisterFiatAddressRequest:
      description: |
        Register Fiat Address Request

        Request to register a fiat (bank) address
      properties:
        bank_details:
          $ref: '#/components/schemas/RecipientBankAccount'
        currency:
          $ref: '#/components/schemas/Fiat'
        customer_id:
          description: The customer ID
          format: uuid
          type: string
        label:
          description: Optional label for the address
          type: string
      required:
      - customer_id
      - bank_details
      - currency
      title: RegisterFiatAddressRequest
      type: object
    RegisterHostedWalletRequest:
      description: |
        Hosted wallet registration request

        Register a VASP-custodied wallet address for Travel Rule compliance
      properties:
        blockchain:
          $ref: '#/components/schemas/Blockchain'
        customer_id:
          description: The customer ID
          format: uuid
          type: string
        name:
          description: Optional display name for this wallet address
          type: string
        vasp_did:
          description: The VASP DID (decentraliced Identifier) that hosts the wallet
          type: string
        wallet_address:
          description: The wallet address at the institution
          type: string
      required:
      - customer_id
      - wallet_address
      - vasp_did
      - blockchain
      title: RegisterHostedWalletRequest
      type: object
    RegisterPixAddressRequest:
      description: |-
        Register PIX Address Request

        Request to register a PIX payout destination (Brazil / BRL).
      properties:
        customer_id:
          description: The customer ID
          format: uuid
          type: string
        label:
          description: Optional label for the address
          type: string
        recipient:
          $ref: '#/components/schemas/RecipientPix'
      required:
      - customer_id
      - recipient
      title: RegisterPixAddressRequest
      type: object
    RegisterSelfAttestedWalletRequest:
      description: |-
        Self-attested wallet registration request

        Register a self-hosted wallet the customer declares as their own, **without** a
        cryptographic signature. For direct customers who can't sign from a custody UI
        (e.g. Fireblocks). Scoped to US and RoW customers.
      properties:
        address:
          description: The address of the wallet
          type: string
        blockchain:
          $ref: '#/components/schemas/Blockchain'
        customer_id:
          description: The customer ID
          format: uuid
          type: string
        name:
          description: Optional display name for this wallet address
          type: string
      required:
      - blockchain
      - customer_id
      - address
      title: RegisterSelfAttestedWalletRequest
      type: object
    RegisterSelfHostedWalletRequest:
      description: |
        Self-hosted wallet registration request

        Proof of wallet ownership to register a self-hosted wallet for Travel Rule compliance
      properties:
        address:
          description: The address of the wallet
          type: string
        blockchain:
          $ref: '#/components/schemas/Blockchain'
        customer_id:
          description: The customer ID
          format: uuid
          type: string
        message:
          description: The message that was signed
          type: string
        name:
          description: Optional display name for this wallet address
          type: string
        signature:
          description: The signature of the message
          type: string
      required:
      - blockchain
      - customer_id
      - address
      - signature
      - message
      title: RegisterSelfHostedWalletRequest
      type: object
    RejectReason:
      description: |-
        A Sumsub rejection reason: the stable code paired with a human-readable
        description, so partners can display the reason without maintaining their
        own code→text mapping.
      properties:
        code:
          description: Stable Sumsub reject-label code, e.g. `UNSATISFACTORY_PHOTOS`.
          type: string
        description:
          description: Human-readable description of the code.
          type: string
      required:
      - code
      - description
      title: RejectReason
      type: object
    RequirementCategory:
      description: |-
        Coarse summary of which areas of the customer's Sumsub KYC/KYB process
        still need attention. Used as a quick filter — full detail lives in the
        four `complete`/`pending`/`missing`/`issues` buckets.
      enum:
      - kyc
      - kyb
      type: string
    RequirementCode:
      description: |-
        Stable, switchable identifier for a single requirement. Partners should
        branch on this rather than parsing `description`, whose display text is
        subject to change without notice.
      enum:
      - kyc_selfie
      - kyc_identity
      - kyc_applicant_data
      - kyc_proof_of_residence
      - kyc_questionnaire
      - kyb_company_data
      - kyb_company_beneficiaries
      - kyb_company_documents
      - kyb_questionnaire
      - identification_kyc
      - identification_kyb
      - kyc_data_missing
      - kyc_data_invalid
      - kyb_data_missing
      - kyb_data_invalid
      type: string
    RequirementIssue:
      oneOf:
      - $ref: '#/components/schemas/VerificationIssue'
      type: object
    RequirementItem:
      description: |-
        A single requirement entry returned in one of the four buckets on
        `ApiCustomerRequirements`.
      properties:
        code:
          $ref: '#/components/schemas/RequirementCode'
        description:
          description: |-
            Human-readable display reason: a sanitized Iron validation message,
            Sumsub moderation comments, specific unanswered questionnaire
            questions, or a synthesized identification-level note. May be `null`.
            *IMPORTANT*: This field is subject to change without notice — switch
            on `code` (and `reject_labels`), not on this string.
          type: string
        identification_id:
          description: The identification that produced this item, when applicable.
          format: uuid
          type: string
        missing_questions:
          description: |-
            Required questionnaire questions the customer left unanswered, resolved
            against the Sumsub questionnaire definition (so `title` is the question
            text the applicant saw). Only populated for the questionnaire codes
            (`kyc_questionnaire` / `kyb_questionnaire`); empty otherwise.
          items:
            $ref: '#/components/schemas/MissingQuestion'
          type: array
        reject_labels:
          description: |-
            Coded Sumsub rejection reasons for this step (e.g. `SCREENSHOTS`,
            `UNSATISFACTORY_PHOTOS`) — the pills shown in the Sumsub dashboard.
            On a rejected KYB company-documents step this also includes the
            failed `idDocSubType` codes (e.g. `SHAREHOLDER_REGISTRY`).
            Empty when the step carries no labels.
          items:
            type: string
          type: array
        reject_reasons:
          description: |-
            Same reasons as `reject_labels`, each paired with a human-readable
            description. Prefer this for display; `reject_labels` stays the stable
            set of codes to switch on. Empty when the step carries no labels.
          items:
            $ref: '#/components/schemas/RejectReason'
          type: array
        retryable:
          description: |-
            `true` when the customer can submit or resubmit to clear this item.
            `false` for terminal/Final issues. `null` when retryability is unknown
            or does not apply (`complete`/`pending`).
          type: boolean
      required:
      - code
      - reject_labels
      - reject_reasons
      - missing_questions
      title: RequirementItem
      type: object
    RequirementMissingQuestion:
      properties:
        id:
          type: string
        section_id:
          nullable: true
          type: string
        title:
          type: string
      required:
      - id
      - title
      - section_id
      title: RequirementMissingQuestion
      type: object
    RequirementRejectReason:
      properties:
        description:
          type: string
        error_code:
          type: string
      required:
      - error_code
      - description
      title: RequirementRejectReason
      type: object
    RequirementStep:
      properties:
        description:
          type: string
        id:
          format: uuid
          type: string
        name:
          type: string
        reject_reasons:
          items:
            $ref: '#/components/schemas/RequirementRejectReason'
          type: array
        review_comment:
          nullable: true
          type: string
      required:
      - id
      - name
      - description
      - review_comment
      - reject_reasons
      title: RequirementStep
      type: object
    RevenueSource:
      description: |
        Revenue Source

        Primary source of company funds
      enum:
      - BusinessRevenue
      - ShareholderFunds
      - VcPrivateEquity
      - AssetSale
      - IcoProceeds
      - CryptoActivityProceeds
      - LoanProceeds
      - Other
      type: string
    Rfi:
      description: |-
        Partner-visible RFI state. Internal analyst and resolution details are
        deliberately excluded, and so is the outcome: a failed FIU or fraud RFI
        can tip off the customer.
      properties:
        closed_at:
          format: date-time
          type: string
        created_at:
          format: date-time
          type: string
        customer_id:
          format: uuid
          type: string
        id:
          format: uuid
          type: string
        liveness_url:
          description: |-
            Sumsub verification link for a liveness RFI. Read live from the
            customer's latest identification, so it never goes stale. Absent on
            every other RFI type.
          type: string
        partner_note:
          description: Note from MoonPay about a completed RFI. Present only on some closed RFIs.
          type: string
        response_received_at:
          format: date-time
          type: string
        rfi_type:
          $ref: '#/components/schemas/RfiType'
        rounds:
          items:
            $ref: '#/components/schemas/RfiRound'
          type: array
        sent_at:
          format: date-time
          type: string
        status:
          $ref: '#/components/schemas/RfiStatus'
        transaction_id:
          format: uuid
          type: string
        updated_at:
          format: date-time
          type: string
      required:
      - id
      - customer_id
      - rfi_type
      - status
      - rounds
      - sent_at
      - created_at
      - updated_at
      title: Rfi
      type: object
    RfiAnswer:
      properties:
        boolean_value:
          type: boolean
        explanation:
          type: string
        question_id:
          type: string
        text_value:
          type: string
      required:
      - question_id
      title: RfiAnswer
      type: object
    RfiAnswerType:
      enum:
      - text
      - yes_no
      type: string
    RfiCustomerGroup:
      properties:
        customer_email:
          type: string
        customer_id:
          format: uuid
          type: string
        customer_name:
          type: string
        customer_type:
          $ref: '#/components/schemas/CustomerType'
        oldest_sent_at:
          format: date-time
          type: string
        rfis:
          items:
            $ref: '#/components/schemas/Rfi'
          type: array
      required:
      - customer_id
      - customer_name
      - customer_type
      - oldest_sent_at
      - rfis
      title: RfiCustomerGroup
      type: object
    RfiDocument:
      description: A file uploaded for a round. Only the backoffice can download it.
      properties:
        content_type:
          type: string
        file_name:
          type: string
        id:
          format: uuid
          type: string
        size_bytes:
          format: int64
          type: integer
        uploaded_at:
          format: date-time
          type: string
      required:
      - id
      - file_name
      - content_type
      - size_bytes
      - uploaded_at
      title: RfiDocument
      type: object
    RfiListState:
      description: Which RFIs a partner list returns.
      enum:
      - open
      - completed
      type: string
    RfiQuestion:
      properties:
        answer_type:
          $ref: '#/components/schemas/RfiAnswerType'
        id:
          type: string
        prompt:
          type: string
        required:
          type: boolean
        transaction_id:
          description: The transaction this question asks about, for a source of funds RFI.
          format: uuid
          type: string
      required:
      - id
      - prompt
      - answer_type
      - required
      title: RfiQuestion
      type: object
    RfiRound:
      properties:
        answers:
          items:
            $ref: '#/components/schemas/RfiAnswer'
          type: array
        document_instructions:
          type: string
        document_link_opened_at:
          format: date-time
          type: string
        document_upload_url:
          type: string
        documents:
          items:
            $ref: '#/components/schemas/RfiDocument'
          type: array
        documents_requested:
          type: boolean
        id:
          format: uuid
          type: string
        questions:
          items:
            $ref: '#/components/schemas/RfiQuestion'
          type: array
        response_received_at:
          format: date-time
          type: string
        round_number:
          format: int32
          type: integer
        sent_at:
          format: date-time
          type: string
      required:
      - id
      - round_number
      - questions
      - documents_requested
      - documents
      - sent_at
      title: RfiRound
      type: object
    RfiStatus:
      enum:
      - waiting_on_response
      - needs_review
      - closed
      type: string
    RfiType:
      enum:
      - probing_questions
      - source_of_funds
      - liveness
      type: string
    RtpDepositInfo:
      example:
        account_number: '456789123'
        bank_address: 1 Chase Manhattan Plaza, New York, NY 10005, US
        bank_name: JPMorgan Chase Bank
        recipient_address: 123 Main Street, New York, NY 10001, US
        recipient_name: Alan Turing
        routing_number: '021000021'
      properties:
        account_number:
          type: string
        bank_address:
          type: string
        bank_name:
          type: string
        recipient_address:
          type: string
        recipient_name:
          type: string
        routing_number:
          type: string
      required:
      - routing_number
      - account_number
      - bank_name
      - bank_address
      - recipient_name
      - recipient_address
      title: RtpDepositInfo
      type: object
    SandboxSandboxTransaction:
      properties:
        amount_in:
          description: The amount deposited
          format: decimal
          type: string
        amount_out:
          description: The amount to be paid out
          format: decimal
          type: string
        autoramp_id:
          description: The autoramp ID used
          format: uuid
          type: string
        created_at:
          description: When the transaction was created
          format: date-time
          type: string
        currency_in:
          description: The input currency
          type: string
        currency_out:
          description: The output currency
          type: string
        customer_id:
          description: The customer ID
          format: uuid
          type: string
        id:
          description: The ID of the created ramp transaction
          format: uuid
          type: string
        state:
          description: The initial state
          type: string
      required:
      - id
      - autoramp_id
      - amount_in
      - currency_in
      - amount_out
      - currency_out
      - customer_id
      - state
      - created_at
      title: SandboxSandboxTransaction
      type: object
    SandboxTransactionState:
      enum:
      - Pending
      - Completed
      - Failed
      type: string
    SelfHostedWalletResponse:
      description: |
        Self-Hosted Wallet Response

        Response containing self-hosted wallet details
      properties:
        address:
          description: The address that was proven
          type: string
        created_at:
          description: When the wallet was registered
          format: date-time
          type: string
        customer_id:
          description: The customer ID
          type: string
        disabled:
          description: Whether the address is disabled
          type: boolean
        id:
          description: The ID of the self-hosted wallet
          type: string
        name:
          description: Optional display name for this wallet address
          type: string
        signature:
          description: The signature that was submitted
          type: string
      required:
      - id
      - address
      - signature
      - created_at
      - customer_id
      - disabled
      title: SelfHostedWalletResponse
      type: object
    SetIdentificationStatusParams:
      properties:
        status:
          $ref: '#/components/schemas/IdentificationStatus'
      required:
      - status
      title: SetIdentificationStatusParams
      type: object
    SignedAutorampQuote:
      description: |
        Signed Autoramp Quote

        The signed autoramp quote
      properties:
        ach_payment_reference:
          description: a message to include in outgoing ACH transfers (max 10 characters)
          maxLength: 10
          minLength: 1
          pattern: ^[A-Za-z0-9 /\-?:().+]*$
          type: string
        additional_in_currencies:
          description: |-
            Additional input currencies to allow on the autoramp beyond `source_currency`.

            Each entry must share the same chain as `source_currency` and the list must
            not include `source_currency` itself. After autoramp creation, further quotes
            can be obtained for these currencies via `POST /autoramps/:id/quotes`.
          items:
            $ref: '#/components/schemas/Currency'
          type: array
        amount_in:
          $ref: '#/components/schemas/Amount'
        amount_out:
          $ref: '#/components/schemas/Amount'
        batch_payout:
          description: |-
            If true, payouts for this autoramp will be batched and sent once per day instead of individually.
            Only supported for fiat destination currencies.
          type: boolean
        customer_id:
          description: The customer id
          format: uuid
          type: string
        deposit_account_type:
          $ref: '#/components/schemas/DepositAccountType'
        destination_currency:
          $ref: '#/components/schemas/Currency'
        external_id:
          description: The external id
          type: string
        fee:
          $ref: '#/components/schemas/Fee'
        fee_profile_id:
          description: The fee profile id to use for the autoramp. If not provided, the default fee profile for the partner will be used.
          format: uuid
          type: string
        fee_settlement:
          $ref: '#/components/schemas/FeeSettlement'
        fps_payment_reference:
          description: a message to include in outgoing FPS transfers (max 18 characters)
          maxLength: 18
          minLength: 6
          pattern: ^[A-Za-z]*$
          type: string
        is_third_party:
          description: |-
            Whether the autoramp created from this quote accepts third-party
            payments. Echoed from the `is_third_party` query parameter used to
            request the quote, and becomes the autoramp's `is_third_party`.
          type: boolean
        pay_by_reference:
          description: |-
            If true, a payment reference will be generated for the autoramp on
            inbound matching (pay-by-reference). Defaults to false if not provided.
          type: boolean
        quote_id:
          description: The id of the quote
          format: uuid
          type: string
        rate:
          description: The rate
          format: decimal
          type: string
        rate_expiry_policy:
          $ref: '#/components/schemas/RateExpiryPolicy'
        rate_lock_valid_until:
          description: The rate lock valid until
          format: date-time
          type: string
        recipient_account:
          $ref: '#/components/schemas/Account'
        sepa_payment_reference:
          description: a message to include in outgoing SEPA transfers (max 140 characters)
          maxLength: 140
          minLength: 6
          pattern: ^[A-Za-z0-9 /\-?:().+]*$
          type: string
        signature:
          description: The signature
          type: string
        slippage_tolerance_in_bips:
          description: The slippage tolerance in bips
          format: decimal
          type: string
        source_currency:
          $ref: '#/components/schemas/Currency'
        swift_payment_reference:
          description: a message to include in outgoing SWIFT transfers (max 4 lines, 35 chars per line)
          maxLength: 140
          minLength: 1
          pattern: ^[A-Za-z0-9 /\-?:().+]*$
          type: string
        valid_until:
          description: The valid until
          format: date-time
          type: string
        wire_message:
          description: a message to include in outgoing wire transfers (max 4 lines, 35 chars per line)
          maxLength: 140
          minLength: 1
          pattern: ^[A-Za-z0-9 /\-?:().+\n]*$
          type: string
      required:
      - quote_id
      - source_currency
      - destination_currency
      - recipient_account
      - customer_id
      - amount_in
      - amount_out
      - rate
      - rate_expiry_policy
      - fee
      - fee_settlement
      - valid_until
      - signature
      - is_third_party
      title: SignedAutorampQuote
      type: object
    SignedAutorampRateQuote:
      description: |-
        Signed rate quote for an existing autoramp.

        Contains only pricing fields — the autoramp's currencies, recipient, etc. are already known.

        Deposits are matched to the newest active quote whose `amount_in` value and
        currency equal the deposit. Attaching a quote that overlaps an existing one
        on those fields supersedes it for new deposits; all of the newer quote's
        terms apply (rate lock, expiry policy, slippage tolerance, fees).
      properties:
        amount_in:
          $ref: '#/components/schemas/Amount'
        amount_out:
          $ref: '#/components/schemas/Amount'
        autoramp_id:
          description: The autoramp this quote is for
          format: uuid
          type: string
        destination_currency:
          $ref: '#/components/schemas/Currency'
        fee:
          $ref: '#/components/schemas/Fee'
        fee_settlement:
          $ref: '#/components/schemas/FeeSettlement'
        payment_reference:
          description: |-
            An optional payout reference used when paying out transactions matched to
            this quote. Overrides the autoramp's payment reference.
          maxLength: 140
          minLength: 1
          pattern: ^[A-Za-z0-9 /\-?:().+]*$
          type: string
        quote_id:
          description: The id of the quote
          format: uuid
          type: string
        rate:
          description: The rate
          format: decimal
          type: string
        rate_expiry_policy:
          $ref: '#/components/schemas/RateExpiryPolicy'
        rate_lock_valid_until:
          description: The rate lock valid until
          format: date-time
          type: string
        signature:
          description: The signature
          type: string
        slippage_tolerance_in_bips:
          description: The slippage tolerance in bips
          format: decimal
          type: string
        source_currency:
          $ref: '#/components/schemas/Currency'
        valid_until:
          description: The valid until
          format: date-time
          type: string
      required:
      - quote_id
      - autoramp_id
      - source_currency
      - destination_currency
      - amount_in
      - amount_out
      - rate
      - rate_lock_valid_until
      - rate_expiry_policy
      - fee
      - fee_settlement
      - valid_until
      - signature
      title: SignedAutorampRateQuote
      type: object
    Signing:
      description: |
        Signing

        A signing of a document by a customer
      properties:
        content_id:
          description: unique UUID of the content signed by Customer
          format: uuid
          type: string
        created_at:
          description: created_at timestamp of Signing
          format: date-time
          type: string
        customer_id:
          description: unique UUID of the Customer who signed
          format: uuid
          type: string
        document_id:
          description: unique UUID of the Document signed by Customer (Soon to be deprecated, use content_id & content_type instead)
          format: uuid
          type: string
        id:
          description: unique UUID of Signing
          format: uuid
          type: string
        updated_at:
          description: updated_at timestamp of Signing
          format: date-time
          type: string
      required:
      - id
      - customer_id
      - created_at
      - updated_at
      title: Signing
      type: object
    SigningCreateParams:
      description: Params for Creating a Signing
      example:
        content_id: 01a1460d-3ec6-7531-81c5-b3d621fe3fd3
        signed: true
      properties:
        content_id:
          description: unique UUID of the content signed by Customer
          format: uuid
          type: string
        signed:
          description: Explicit signing consent
          type: boolean
      required:
      - signed
      title: SigningCreateParams
      type: object
    SolePropBusinessDetails:
      description: |
        Sole Prop Business Details Section
      properties:
        business_model_description:
          description: Description of business model and target clients
          type: string
        estimated_annual_revenue:
          $ref: '#/components/schemas/BusinessEstimatedAnnualRevenue'
        industry:
          $ref: '#/components/schemas/BusinessIndustryV2'
        industry_type:
          allOf:
          - $ref: '#/components/schemas/BusinessIndustryType'
          - deprecated: true
            description: |-
              Deprecated — use `industry` instead. Coarse 36-value classification; `industry`
              exposes Sumsub's full granular taxonomy. Ignored when `industry` is provided.
          deprecated: true
          description: |-
            Deprecated — use `industry` instead. Coarse 36-value classification; `industry`
            exposes Sumsub's full granular taxonomy. Ignored when `industry` is provided.
        main_business_countries:
          description: Main countries of business operation (ISO 3166-1 alpha-2 codes)
          items:
            type: string
          type: array
      required:
      - business_model_description
      - main_business_countries
      - estimated_annual_revenue
      title: SolePropBusinessDetails
      type: object
    SolePropBusinessQuestionnaire:
      description: |
        KYB compliance questionnaire for sole proprietorships
      properties:
        business_details:
          $ref: '#/components/schemas/SolePropBusinessDetails'
        planned_activities:
          $ref: '#/components/schemas/SolePropPlannedActivities'
        source_of_funds:
          $ref: '#/components/schemas/SolePropSourceOfFunds'
      required:
      - planned_activities
      - source_of_funds
      - business_details
      title: SolePropBusinessQuestionnaire
      type: object
    SolePropPlannedActivities:
      description: |
        Sole Prop Planned Activities Section
      properties:
        estimated_monthly_transactions:
          $ref: '#/components/schemas/BusinessEstimatedMonthlyTransactions'
        estimated_monthly_volume:
          $ref: '#/components/schemas/BusinessEstimatedMonthlyVolume'
        purpose_and_intended_use:
          $ref: '#/components/schemas/BusinessPurposeAndIntendedUse'
      required:
      - purpose_and_intended_use
      - estimated_monthly_volume
      - estimated_monthly_transactions
      title: SolePropPlannedActivities
      type: object
    SolePropSourceOfFunds:
      description: |
        Sole Prop Source of Funds Section
      properties:
        source_of_funds:
          $ref: '#/components/schemas/RevenueSource'
      required:
      - source_of_funds
      title: SolePropSourceOfFunds
      type: object
    SortOrder:
      enum:
      - asc
      - desc
      type: string
    SpeiDepositInfo:
      properties:
        clabe:
          type: string
        instruction:
          type: string
      required:
      - clabe
      - instruction
      title: SpeiDepositInfo
      type: object
    StructuredCustomerRequirements:
      description: Available from API version 2026-10-01.
      properties:
        complete:
          items:
            $ref: '#/components/schemas/CompleteRequirement'
          type: array
        general_review_comment:
          nullable: true
          type: string
        identification_id:
          format: uuid
          nullable: true
          type: string
        issues:
          items:
            $ref: '#/components/schemas/RequirementIssue'
          type: array
        pending:
          items:
            $ref: '#/components/schemas/PendingRequirementItem'
          type: array
        pendingReview:
          items:
            $ref: '#/components/schemas/PendingReviewRequirement'
          type: array
        preflight_summary:
          allOf:
          - $ref: '#/components/schemas/IdentificationPreflightSummary'
          - nullable: true
          nullable: true
        requirements_due:
          items:
            $ref: '#/components/schemas/RequirementCategory'
          type: array
      required:
      - complete
      - pendingReview
      - pending
      - issues
      - requirements_due
      - preflight_summary
      - identification_id
      - general_review_comment
      title: StructuredCustomerRequirements
      type: object
    SubmitAuthenticationCodeParams:
      description: |
        Authentication Code Params

        Parameters for submitting an authentication code
      properties:
        code:
          description: The code to submit
          format: int32
          type: integer
      required:
      - code
      title: SubmitAuthenticationCodeParams
      type: object
    SubmitRfiResponse:
      properties:
        answers:
          items:
            $ref: '#/components/schemas/RfiAnswer'
          type: array
        documents_uploaded:
          type: boolean
      required:
      - answers
      - documents_uploaded
      title: SubmitRfiResponse
      type: object
    SwiftDepositInfo:
      example:
        account_number: '1234567890'
        bank_address: 1 Chase Manhattan Plaza, New York, NY 10005, US
        bank_name: JPMorgan Chase Bank
        bic: CHASUS33XXX
        recipient_address: 123 Main Street, New York, NY 10001, US
        recipient_name: Alan Turing
      properties:
        account_number:
          type: string
        bank_address:
          type: string
        bank_name:
          type: string
        bic:
          type: string
        memo:
          type: string
        recipient_address:
          type: string
        recipient_name:
          type: string
      required:
      - bic
      - account_number
      - bank_name
      - bank_address
      - recipient_name
      - recipient_address
      title: SwiftDepositInfo
      type: object
    TermsAndConditionsLink:
      description: A terms and conditions link
      example:
        display_name: Terms and Conditions
        id: 01a1460d-3ec6-7531-81c5-b3d56a91fa93
        url: https://www.google.com/terms-and-conditions
      properties:
        display_name:
          description: the display name of the terms and conditions
          type: string
        id:
          description: The unique identifier for the terms and conditions url
          format: uuid
          type: string
        url:
          description: The URL of the terms and conditions
          type: string
      required:
      - id
      - url
      - display_name
      title: TermsAndConditionsLink
      type: object
    TieredFee:
      description: |
        Tiered Fee

        A Tiered Fee associated with a Partner based on volume thresholds
      properties:
        fee_value_in_bips:
          deprecated: true
          description: |-
            Fee value for this tier as a percentage in bips, rounded to the
            nearest whole bip. Deprecated: use `fee_value_in_bips_decimal`
            instead, which is always populated going forward. Still always
            populated here too for backward compatibility with existing
            integrations.
          format: uint32
          type: integer
        fee_value_in_bips_decimal:
          default: null
          description: |-
            The precise fee value for this tier. Takes precedence over
            `fee_value_in_bips` when both are set on a request; always populated
            on a response.
          format: decimal
          type: string
        volume_threshold:
          description: Minimum volume required to qualify for this fee tier
          format: decimal
          type: string
      required:
      - volume_threshold
      - fee_value_in_bips
      title: TieredFee
      type: object
    TieredFeesWithMinimum:
      properties:
        monthly_minimum_scope:
          allOf:
          - $ref: '#/components/schemas/MinimumScope'
          - default: null
          default: null
        monthly_minimum_usd:
          default: null
          format: decimal
          type: string
        volume_tiers:
          items:
            $ref: '#/components/schemas/TieredFee'
          type: array
      required:
      - volume_tiers
      title: TieredFeesWithMinimum
      type: object
    TimeWindowedFee:
      properties:
        fee:
          $ref: '#/components/schemas/WindowFee'
        valid_from:
          description: Empty only for an open-past first window.
          format: date-time
          type: string
        valid_to:
          format: date-time
          type: string
      required:
      - fee
      title: TimeWindowedFee
      type: object
    TimeWindowedFeeSchedule:
      properties:
        windows:
          description: Non-overlapping, sorted windows; the last must be open-ended (`valid_to == None`).
          items:
            $ref: '#/components/schemas/TimeWindowedFee'
          type: array
      required:
      - windows
      title: TimeWindowedFeeSchedule
      type: object
    TimeWindowedFeeWithMinimum:
      properties:
        fee:
          $ref: '#/components/schemas/WindowFee'
        monthly_minimum_scope:
          allOf:
          - $ref: '#/components/schemas/MinimumScope'
          - default: null
            description: What usage reduces the minimum; windows can flip the scope over time.
          default: null
          description: What usage reduces the minimum; windows can flip the scope over time.
        monthly_minimum_usd:
          default: null
          description: Monthly minimum in USD applying while this window is active.
          format: decimal
          type: string
        valid_from:
          description: Empty only for an open-past first window.
          format: date-time
          type: string
        valid_to:
          format: date-time
          type: string
      required:
      - fee
      title: TimeWindowedFeeWithMinimum
      type: object
    TimeWindowedWithMinimums:
      properties:
        windows:
          description: Non-overlapping, sorted windows.
          items:
            $ref: '#/components/schemas/TimeWindowedFeeWithMinimum'
          type: array
      required:
      - windows
      title: TimeWindowedWithMinimums
      type: object
    UpdateCustomerParams:
      description: |
        Update Customer Params

        Parameters for updating a customer
      properties:
        email:
          description: The email address of the customer
          type: string
        external_id:
          description: Optional external ID for the customer. Provide to update; omit to leave unchanged.
          type: string
      required:
      - email
      title: UpdateCustomerParams
      type: object
    UpdateDisabledStatusRequest:
      description: Request to update the disabled status of a verified crypto address
      properties:
        customer_id:
          description: The customer ID
          format: uuid
          type: string
        disabled:
          description: Whether to disable the address
          type: boolean
      required:
      - customer_id
      - disabled
      title: UpdateDisabledStatusRequest
      type: object
    UpdateIdentificationDataParams:
      description: |-
        Update Identification Data Params

        Partial update for a person customer's existing KYC record. Only
        non-null fields are applied; today only the tax identification number
        is supported.
      properties:
        tax_identification_number:
          description: |-
            Tax identification number (e.g. SSN for US, national TIN for EEA
            residents). Patched directly onto the customer's existing KYC
            record — does not trigger re-verification, so an already-approved
            customer's status is unaffected.
          type: string
        tax_residence_country:
          description: |-
            ISO 3166-1 alpha-2 country of tax residence. Required whenever
            `tax_identification_number` is set — TIN format is validated against
            this specific country, and it can genuinely differ from the
            customer's physical residence or nationality (the reason DAC8/CARF
            asks for it separately).
          type: string
      title: UpdateIdentificationDataParams
      type: object
    UpdatePendingIdentificationParams:
      properties:
        approved:
          description: Whether the identification should be approved or rejected
          type: boolean
      required:
      - approved
      title: UpdatePendingIdentificationParams
      type: object
    UpdateRampTransactionStateParams:
      properties:
        state:
          $ref: '#/components/schemas/SandboxTransactionState'
      required:
      - state
      title: UpdateRampTransactionStateParams
      type: object
    UpdateWebhookRequest:
      description: |
        Update Webhook Request

        Request to update an existing webhook
      properties:
        enabled:
          description: Optional enabled status
          type: boolean
        label:
          description: Optional new label for the webhook
          type: string
        topics:
          description: Optional new topics for the webhook
          items:
            $ref: '#/components/schemas/WebhookEventType'
          type: array
        url:
          description: Optional new URL for the webhook
          type: string
      title: UpdateWebhookRequest
      type: object
    UsdAbilities:
      properties:
        ach:
          $ref: '#/components/schemas/AbilityStatus'
        ach_thirdparty:
          $ref: '#/components/schemas/AbilityStatus'
        fednow:
          $ref: '#/components/schemas/AbilityStatus'
        fednow_thirdparty:
          $ref: '#/components/schemas/AbilityStatus'
        rtp:
          $ref: '#/components/schemas/AbilityStatus'
        rtp_thirdparty:
          $ref: '#/components/schemas/AbilityStatus'
        swift:
          $ref: '#/components/schemas/AbilityStatus'
        swift_thirdparty:
          $ref: '#/components/schemas/AbilityStatus'
        wire:
          $ref: '#/components/schemas/AbilityStatus'
        wire_thirdparty:
          $ref: '#/components/schemas/AbilityStatus'
      required:
      - ach
      - ach_thirdparty
      - wire
      - wire_thirdparty
      - swift
      - swift_thirdparty
      - rtp
      - rtp_thirdparty
      - fednow
      - fednow_thirdparty
      title: UsdAbilities
      type: object
    VariableFee:
      description: |
        Variable Fee

        A Variable Fee associated with a Partner based on a variable fee schedule
      properties:
        volume_tiers:
          description: The variable fees
          items:
            $ref: '#/components/schemas/TieredFee'
          type: array
      required:
      - volume_tiers
      title: VariableFee
      type: object
    VaspSuggestion:
      description: Minimal VASP suggestion for hosted wallet providers
      properties:
        country:
          description: Country if available
          type: string
        did:
          description: Notabene DID of the VASP
          type: string
        name:
          description: Display name
          type: string
        website:
          description: Website URL
          type: string
      required:
      - did
      - name
      title: VaspSuggestion
      type: object
    VerificationIssue:
      properties:
        code:
          $ref: '#/components/schemas/VerificationRequirementCode'
        description:
          type: string
        reject_reasons:
          items:
            $ref: '#/components/schemas/RequirementRejectReason'
          type: array
        retryable:
          nullable: true
          type: boolean
        review_comment:
          nullable: true
          type: string
        steps:
          items:
            $ref: '#/components/schemas/RequirementStep'
          type: array
      required:
      - code
      - description
      - review_comment
      - retryable
      - reject_reasons
      - steps
      title: VerificationIssue
      type: object
    VerificationRequirementCode:
      enum:
      - kyc_selfie
      - kyc_identity
      - kyc_applicant_data
      - kyc_proof_of_residence
      - kyc_questionnaire
      - kyb_company_data
      - kyb_company_beneficiaries
      - kyb_company_documents
      - kyb_questionnaire
      - identification_kyc
      - identification_kyb
      type: string
    VerificationStepDetail:
      properties:
        comment:
          type: string
        result:
          $ref: '#/components/schemas/IdentificationStatus'
        retry:
          type: boolean
      required:
      - result
      - retry
      title: VerificationStepDetail
      type: object
    VerifiedAddressResponse:
      description: |
        Verified Address Response

        Response containing verified address details
      example:
        address_type: SelfHosted
        blockchain: Solana
        created_at: 2024-01-15T10:30:00+00:00
        disabled: false
        id: 7c9e6679-7425-40de-944b-e07fc1f90ae7
        is_self: true
        name: Primary Solana wallet
        proof_message: I hereby verify that I own this wallet address
        proof_signature: 5J9qvKhKqYbpjhCkqDnKXSp7QqLDBU5iT4VWshsqRdWKHjKdqZqKqYbpjhCkqDnKXSp...
        vasp_did: null
        wallet_address: 7QqLDBU5iT4VWshsqRdWKHjKdqZqKqYbpjhCkqDnKXSp
      properties:
        address_type:
          $ref: '#/components/schemas/AddressType'
        blockchain:
          $ref: '#/components/schemas/Blockchain'
        created_at:
          description: When the address was verified
          format: date-time
          type: string
        disabled:
          description: Whether the address is disabled
          type: boolean
        id:
          description: The ID of the verified address
          format: uuid
          type: string
        is_self:
          description: Whether the wallet belongs to the customer themselves (true) or a third party
          type: boolean
        name:
          description: Optional display name for this wallet address
          type: string
        proof_message:
          description: The proof message
          type: string
        proof_signature:
          description: The proof signature
          type: string
        vasp_did:
          description: The VASP DID (decentralized Identifier) for hosted wallets
          type: string
        wallet_address:
          description: The wallet address
          type: string
      required:
      - id
      - created_at
      - wallet_address
      - address_type
      - blockchain
      - disabled
      - is_self
      title: VerifiedAddressResponse
      type: object
    Webhook:
      description: |
        Webhook

        Response containing webhook details
      properties:
        created_at:
          description: When the webhook was created
          format: date-time
          type: string
        enabled:
          description: Whether the webhook is enabled
          type: boolean
        id:
          description: The ID of the webhook
          format: uuid
          type: string
        label:
          description: A descriptive label for the webhook
          type: string
        last_failure:
          description: The last time the webhook was executed with an error
          format: date-time
          type: string
        last_failure_reason:
          description: The reason for the last failure
          type: string
        partner_id:
          description: The partner ID that owns this webhook
          format: uuid
          type: string
        topics:
          description: The topics this webhook subscribes to
          items:
            $ref: '#/components/schemas/WebhookEventType'
          type: array
        updated_at:
          description: When the webhook was last updated
          format: date-time
          type: string
        url:
          description: The URL to send webhook events to
          type: string
      required:
      - id
      - label
      - url
      - partner_id
      - topics
      - created_at
      - updated_at
      - enabled
      title: Webhook
      type: object
    WebhookAutorampStatusMessage:
      description: |
        Webhook Autoramp Status Message

        Contains details about an autoramp status change
      properties:
        id:
          description: Unique identifier for the autoramp
          format: uuid
          type: string
        status:
          $ref: '#/components/schemas/AutorampStatus'
      required:
      - id
      - status
      title: WebhookAutorampStatusMessage
      type: object
    WebhookContainer:
      description: |
        Webhook Container

        Top-level container for webhook notifications
      properties:
        data:
          $ref: '#/components/schemas/WebhookNotification'
        timestamp:
          description: ISO timestamp when the notification was sent
          type: string
        type:
          description: The type of notification
          type: string
      required:
      - type
      - timestamp
      - data
      title: WebhookContainer
      type: object
    WebhookCustomerFiatAbilitiesMessage:
      description: |
        Webhook Customer Fiat Abilities Message

        Contains the customer's current fiat deposit and payout abilities
      properties:
        fiat_deposit:
          $ref: '#/components/schemas/ApiFiatAbilities'
        fiat_payout:
          $ref: '#/components/schemas/ApiFiatAbilities'
        id:
          description: Unique identifier for the customer
          format: uuid
          type: string
      required:
      - id
      - fiat_deposit
      - fiat_payout
      title: WebhookCustomerFiatAbilitiesMessage
      type: object
    WebhookCustomerStatusMessage:
      description: |
        Webhook Customer Status Message

        Contains details about a customer status change
      properties:
        id:
          description: Unique identifier for the customer
          format: uuid
          type: string
        status:
          $ref: '#/components/schemas/CustomerStatus'
      required:
      - id
      - status
      title: WebhookCustomerStatusMessage
      type: object
    WebhookEventKind:
      description: |
        Webhook Event Kind

        Types of events that can be included in webhook notifications
      enum:
      - Transaction
      - NewBankAccount
      - NewAutoramp
      - DepositAddressCreated
      - CustomerCreated
      type: string
    WebhookEventMessage:
      description: |
        Webhook Event Message

        Contains details about a general event notification
      properties:
        id:
          description: Unique identifier for the event
          format: uuid
          type: string
        kind:
          $ref: '#/components/schemas/WebhookEventKind'
      required:
      - id
      - kind
      title: WebhookEventMessage
      type: object
    WebhookEventType:
      description: |
        Webhook Event Types

        Represents the different types of webhook events that can be sent
      enum:
      - Transaction
      - NewBankAccount
      - NewAutoramp
      - DepositAddressCreated
      - RegisterFiatAddressStatus
      - RegisterAutorampStatus
      - TransactionStatus
      - TransactionRefunded
      - CustomerCreated
      - CustomerStatus
      - CustomerFiatAbilities
      - IdentificationStatus
      - Ping
      type: string
    WebhookFiatAddressStatusMessage:
      description: |
        Webhook Fiat Address Status Message

        Contains details about a fiat address status change
      properties:
        id:
          description: Unique identifier for the fiat address
          format: uuid
          type: string
        status:
          $ref: '#/components/schemas/FiatAddressStatus'
      required:
      - id
      - status
      title: WebhookFiatAddressStatusMessage
      type: object
    WebhookIdentificationStatusMessage:
      description: |
        Webhook Identification Status Message

        Contains details about an identification status change
      properties:
        id:
          description: Unique identifier for the identification
          format: uuid
          type: string
        status:
          $ref: '#/components/schemas/IdentificationStatus'
      required:
      - id
      - status
      title: WebhookIdentificationStatusMessage
      type: object
    WebhookMessage:
      anyOf:
      - $ref: '#/components/schemas/WebhookEventMessage'
      - $ref: '#/components/schemas/WebhookFiatAddressStatusMessage'
      - $ref: '#/components/schemas/WebhookAutorampStatusMessage'
      - $ref: '#/components/schemas/WebhookTransactionStatusMessage'
      - $ref: '#/components/schemas/WebhookTransactionRefundedMessage'
      - $ref: '#/components/schemas/WebhookCustomerStatusMessage'
      - $ref: '#/components/schemas/WebhookCustomerFiatAbilitiesMessage'
      - $ref: '#/components/schemas/WebhookIdentificationStatusMessage'
      - $ref: '#/components/schemas/WebhookPingMessage'
      description: |
        Webhook Message

        Union type representing different kinds of webhook messages
      type: object
    WebhookNotification:
      description: |
        Webhook Notification

        Notification sent to a webhook subscriber containing event details
      properties:
        customer_id:
          description: The ID of the customer associated with this notification
          format: uuid
          type: string
        message:
          $ref: '#/components/schemas/WebhookMessage'
      required:
      - customer_id
      - message
      title: WebhookNotification
      type: object
    WebhookPingMessage:
      description: |
        Webhook Ping Message

        A test message sent to verify webhook functionality
      properties:
        id:
          description: Unique identifier for the ping message
          format: uuid
          type: string
      required:
      - id
      title: WebhookPingMessage
      type: object
    WebhookTransactionRefundedMessage:
      description: |
        Webhook Transaction Refunded Message

        Identifies a newly recorded refund and its transaction.
      properties:
        refund_id:
          description: Unique identifier for the refund
          format: uuid
          type: string
        transaction_id:
          description: Unique identifier for the refunded transaction
          format: uuid
          type: string
      required:
      - refund_id
      - transaction_id
      title: WebhookTransactionRefundedMessage
      type: object
    WebhookTransactionStatusMessage:
      description: |
        Webhook Transaction Status Message

        Contains details about a transaction status change
      properties:
        id:
          description: Unique identifier for the transaction
          format: uuid
          type: string
        status:
          allOf:
          - $ref: '#/components/schemas/AutorampTransactionState'
          - deprecated: true
            description: 'Current status of the transaction. DEPRECATED: use ''transaction_status'''
          deprecated: true
          description: 'Current status of the transaction. DEPRECATED: use ''transaction_status'''
        transaction_hash:
          description: The blockchain transaction hash for crypto payouts (when available)
          type: string
        transaction_status:
          $ref: '#/components/schemas/AutorampTransactionStatus'
      required:
      - id
      - status
      - transaction_status
      title: WebhookTransactionStatusMessage
      type: object
    WindowFee:
      anyOf:
      - $ref: '#/components/schemas/WindowFee_BipsFeeRequest'
      - $ref: '#/components/schemas/WindowFee_VariableFee'
      discriminator:
        mapping:
          Bips: '#/components/schemas/WindowFee_BipsFeeRequest'
          Tiered: '#/components/schemas/WindowFee_VariableFee'
        propertyName: type
      type: object
    WindowFee_BipsFeeRequest:
      allOf:
      - properties:
          type:
            enum:
            - Bips
            example: Bips
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/BipsFeeRequest'
    WindowFee_VariableFee:
      allOf:
      - properties:
          type:
            enum:
            - Tiered
            example: Tiered
            type: string
        required:
        - type
        type: object
      - $ref: '#/components/schemas/VariableFee'
    WireDepositInfo:
      example:
        account_number: '987654321'
        bank_address: 1 Chase Manhattan Plaza, New York, NY 10005, US
        bank_name: JPMorgan Chase Bank
        recipient_address: 123 Main Street, New York, NY 10001, US
        recipient_name: Alan Turing
        routing_number: '021000021'
      properties:
        account_number:
          type: string
        bank_address:
          type: string
        bank_name:
          type: string
        recipient_address:
          type: string
        recipient_name:
          type: string
        routing_number:
          type: string
      required:
      - routing_number
      - account_number
      - bank_name
      - bank_address
      - recipient_name
      - recipient_address
      title: WireDepositInfo
      type: object
  securitySchemes:
    ApiKeyAuth:
      description: API Key
      in: header
      name: X-API-Key
      type: apiKey
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
- description: Operations on Autoramp
  name: Autoramp
- description: Operations on Chronicle collateral
  name: ChronicleCollateral
- description: Operations on Currencies
  name: Currencies
- description: Operations on Customers
  name: Customer
- description: Operations on Exchange Rate
  name: ExchangeRate
- description: Operations on Fee Profiles
  name: FeeProfiles
- description: Operations for Sandbox Testing
  name: Sandbox
- description: Operations on SSE
  name: Sse
- description: Operations on Terms and Conditions
  name: TermsAndConditions
- description: Operations on Webhooks
  name: Webhooks
webhooks:
  new_event:
    post:
      description: |-
        This webhook is triggered when a significant event occurs within the system
        that a partner might be interested in. The payload contains details about the
        event type and the associated data.

        ## Request

        The webhook will be sent as an HTTP `POST` request to the URL configured
        for the webhook. The body of the request will be a JSON payload
        (`application/json`) containing an `ApiWebhookContainer`.

        ## Headers

        The following headers will be included in the request, adhering to [the
        Standard Webhooks specification](https://github.com/standard-webhooks/standard-webhooks/blob/main/spec/standard-webhooks.md):

        - `content-type: application/json`: Indicates the payload format.
        - `user-agent: MoonPay-Enterprise-Webhooks/1.0`: Identifies the sender. Match on
        the `MoonPay-Enterprise-Webhooks/` prefix if you allowlist it.
        - `webhook-id`: A unique UUID identifying the event. It stays the same
        across all retries of the same event, so use it to deduplicate.
        - `webhook-timestamp`: A string representing the Unix timestamp (seconds since epoch)
        of when the webhook notification was sent.
        - `webhook-signature`: A signature to verify the authenticity and integrity
        of the payload. The format is `v1=<signature>`, where `<signature>` is
        an HMAC-SHA256 hash.

        ## Signature Verification

        To verify the signature:
        1. Extract the `webhook-timestamp` from the header.
        2. Extract the `webhook-signature` from the header and remove the `v1=` prefix.
        3. Concatenate the `webhook-timestamp` string and the raw request body.
        4. Calculate the HMAC-SHA256 hash of the concatenated string using your
        webhook's secret key.
        5. Compare the calculated hash (hex-encoded) with the signature extracted
        from the header. They should match.

        It is crucial to use a constant-time comparison function when comparing
        signatures to prevent timing attacks.
        (See the examples for more details)
      operationId: newEvent
      requestBody:
        content:
          application/json; charset=utf-8:
            schema:
              $ref: '#/components/schemas/WebhookContainer'
        required: true
      responses:
        '200':
          description: ''
      summary: Dispatches an event notification to a configured webhook endpoint.
      tags:
      - Webhooks
