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

# Create crypto settlements

> Register one or more crypto settlement destinations for the merchant. Each entry pairs a [CAIP-19](https://chainagnostic.org/CAIPs/caip-19) `asset` with a [CAIP-10](https://chainagnostic.org/CAIPs/caip-10) `destination` wallet on the same chain. Each `(merchant, asset)` pair must be unique — registering the same asset twice returns `settlement_asset_conflict`.



## OpenAPI

````yaml api/2026-02-18.json POST /v1/merchants/{merchantId}/settlements/crypto
openapi: 3.1.0
info:
  title: WalletConnect Pay API
  version: '2026-02-18'
servers:
  - url: https://api.pay.walletconnect.com
security:
  - API Key: []
  - ApiKey: []
  - AppId: []
tags:
  - name: Gateway
  - name: Payments
  - name: Refunds
  - name: Merchant Management
  - name: Settlements
  - name: Crypto Settlement
paths:
  /v1/merchants/{merchantId}/settlements/crypto:
    post:
      tags:
        - Crypto Settlement
      summary: Create crypto settlements
      description: >-
        Register one or more crypto settlement destinations for the merchant.
        Each entry pairs a [CAIP-19](https://chainagnostic.org/CAIPs/caip-19)
        `asset` with a [CAIP-10](https://chainagnostic.org/CAIPs/caip-10)
        `destination` wallet on the same chain. Each `(merchant, asset)` pair
        must be unique — registering the same asset twice returns
        `settlement_asset_conflict`.
      operationId: CryptoSettlement_create
      parameters:
        - name: Idempotency-Key
          in: header
          required: true
          description: >-
            Unique key to ensure idempotent request processing. Max 255
            characters.
          schema:
            type: string
            maxLength: 255
        - schema:
            type: string
          in: path
          name: merchantId
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settlements:
                  minItems: 1
                  maxItems: 50
                  type: array
                  items:
                    type: object
                    properties:
                      asset:
                        type: string
                        minLength: 1
                        maxLength: 256
                        pattern: >-
                          ^[-a-zA-Z0-9]{3,8}:[-a-zA-Z0-9]{1,32}\/[-a-zA-Z0-9]{3,8}:[-a-zA-Z0-9]{1,128}$
                        description: >-
                          [CAIP-19](https://chainagnostic.org/CAIPs/caip-19)
                          asset identifier for the token to settle in. Format:
                          `<namespace>:<chain_reference>/<asset_namespace>:<asset_reference>`.
                          For example, USDC on Base is
                          `eip155:8453/erc20:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`.
                        examples:
                          - >-
                            eip155:8453/erc20:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
                      destination:
                        type: string
                        minLength: 1
                        maxLength: 256
                        pattern: >-
                          ^[-a-zA-Z0-9]{3,8}:[-a-zA-Z0-9]{1,32}:[-a-zA-Z0-9]{1,128}$
                        description: >-
                          [CAIP-10](https://chainagnostic.org/CAIPs/caip-10)
                          account identifier for the wallet that should receive
                          the settled funds. Format:
                          `<namespace>:<chain_reference>:<address>`. The chain
                          (`<namespace>:<chain_reference>`) must match the chain
                          of the corresponding `asset`.
                        examples:
                          - >-
                            eip155:8453:0x1234567890abcdef1234567890abcdef12345678
                    required:
                      - asset
                      - destination
                  description: >-
                    List of asset/destination pairs to register. Up to 50
                    entries per request.
              required:
                - settlements
              examples:
                - settlements:
                    - asset: >-
                        eip155:8453/erc20:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
                      destination: eip155:8453:0x1234567890abcdef1234567890abcdef12345678
                    - asset: >-
                        eip155:1/erc20:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
                      destination: eip155:1:0x1234567890abcdef1234567890abcdef12345678
      responses:
        '201':
          description: Crypto settlements created
          content:
            application/json:
              schema:
                type: object
                properties:
                  settlements:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Crypto settlement ID
                          examples:
                            - crypto_Xk7nWp8XmQj2YrTv6
                        asset:
                          type: string
                          minLength: 1
                          maxLength: 256
                          pattern: >-
                            ^[-a-zA-Z0-9]{3,8}:[-a-zA-Z0-9]{1,32}\/[-a-zA-Z0-9]{3,8}:[-a-zA-Z0-9]{1,128}$
                          description: >-
                            [CAIP-19](https://chainagnostic.org/CAIPs/caip-19)
                            asset identifier for the token to settle in. Format:
                            `<namespace>:<chain_reference>/<asset_namespace>:<asset_reference>`.
                            For example, USDC on Base is
                            `eip155:8453/erc20:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`.
                          examples:
                            - >-
                              eip155:8453/erc20:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
                        destination:
                          type: string
                          minLength: 1
                          maxLength: 256
                          pattern: >-
                            ^[-a-zA-Z0-9]{3,8}:[-a-zA-Z0-9]{1,32}:[-a-zA-Z0-9]{1,128}$
                          description: >-
                            [CAIP-10](https://chainagnostic.org/CAIPs/caip-10)
                            account identifier for the wallet that should
                            receive the settled funds. Format:
                            `<namespace>:<chain_reference>:<address>`. The chain
                            (`<namespace>:<chain_reference>`) must match the
                            chain of the corresponding `asset`.
                          examples:
                            - >-
                              eip155:8453:0x1234567890abcdef1234567890abcdef12345678
                      required:
                        - id
                        - asset
                        - destination
                required:
                  - settlements
              example:
                settlements:
                  - id: crypto_Xk7nWp8XmQj2YrTv6
                    asset: >-
                      eip155:8453/erc20:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
                    destination: eip155:8453:0x1234567890abcdef1234567890abcdef12345678
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable error message
                  code:
                    type: string
                    enum:
                      - params_validation
                      - invalid_params
                      - missing_idempotency_key
                    description: Machine-readable error code
                  details:
                    description: Additional structured error details
                    type: object
                    propertyNames:
                      type: string
                    additionalProperties: {}
                  issues:
                    type: array
                    description: >-
                      Field-level validation issues (present on validation
                      errors)
                    items:
                      type: object
                      required:
                        - field
                        - message
                      properties:
                        field:
                          type: string
                        message:
                          type: string
                required:
                  - message
                  - code
              examples:
                params_validation:
                  summary: Validation failed
                  value:
                    code: params_validation
                    message: Validation failed
                invalid_params:
                  summary: Invalid request parameters
                  value:
                    code: invalid_params
                    message: Invalid request parameters
                missing_idempotency_key:
                  summary: Missing Idempotency-Key header
                  value:
                    code: missing_idempotency_key
                    message: Missing Idempotency-Key header
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable error message
                  code:
                    type: string
                    enum:
                      - missing_api_key
                      - invalid_api_key
                    description: Machine-readable error code
                  details:
                    description: Additional structured error details
                    type: object
                    propertyNames:
                      type: string
                    additionalProperties: {}
                required:
                  - message
                  - code
              examples:
                missing_api_key:
                  summary: Missing API key
                  value:
                    code: missing_api_key
                    message: Missing API key
                invalid_api_key:
                  summary: Invalid API key
                  value:
                    code: invalid_api_key
                    message: Invalid API key
        '404':
          description: Merchant not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable error message
                  code:
                    type: string
                    const: not_found
                    description: Machine-readable error code
                  details:
                    description: Additional structured error details
                    type: object
                    propertyNames:
                      type: string
                    additionalProperties: {}
                required:
                  - message
                  - code
              examples:
                not_found:
                  summary: Not Found
                  value:
                    code: not_found
                    message: Not Found
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable error message
                  code:
                    type: string
                    enum:
                      - idempotency_conflict
                      - settlement_asset_conflict
                    description: Machine-readable error code
                  details:
                    description: Additional structured error details
                    type: object
                    propertyNames:
                      type: string
                    additionalProperties: {}
                required:
                  - message
                  - code
              examples:
                idempotency_conflict:
                  summary: >-
                    Idempotency key conflict: same key was used with a different
                    request body
                  value:
                    code: idempotency_conflict
                    message: >-
                      Idempotency key conflict: same key was used with a
                      different request body
                settlement_asset_conflict:
                  summary: A settlement already exists for this asset
                  value:
                    code: settlement_asset_conflict
                    message: A settlement already exists for this asset
components:
  securitySchemes:
    API Key:
      type: apiKey
      in: header
      name: Api-Key
    ApiKey:
      type: apiKey
      in: header
      name: Api-Key
      description: Private API key for wallet authentication
    AppId:
      type: apiKey
      in: header
      name: App-Id
      description: >-
        Public App ID for wallet authentication. When using this auth mode, the
        Client-Id header is also required.

````