> ## 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.

# Get the payment status

> Retrieves the status of a payment by its ID. Returns a polling delay to wait
before checking the status again.



## OpenAPI

````yaml api/2026-02-18.json GET /v1/gateway/payment/{id}/status
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/gateway/payment/{id}/status:
    get:
      tags:
        - Gateway
      summary: Get the payment status
      description: >-
        Retrieves the status of a payment by its ID. Returns a polling delay to
        wait

        before checking the status again.
      operationId: gatewayGetPaymentStatus
      parameters:
        - name: Api-Key
          in: header
          required: false
          schema:
            type:
              - string
              - 'null'
        - name: App-Id
          in: header
          required: false
          schema:
            type:
              - string
              - 'null'
        - name: Client-Id
          in: header
          required: false
          schema:
            type:
              - string
              - 'null'
        - name: WCP-Version
          in: header
          required: false
          schema:
            type:
              - string
              - 'null'
        - name: Sdk-Name
          in: header
          required: false
          schema:
            type:
              - string
              - 'null'
        - name: Sdk-Version
          in: header
          required: false
          schema:
            type:
              - string
              - 'null'
        - name: Sdk-Platform
          in: header
          required: false
          schema:
            type:
              - string
              - 'null'
        - name: id
          in: path
          description: Payment ID
          required: true
          schema:
            $ref: '#/components/schemas/PaymentId'
        - name: maxPollMs
          in: query
          description: Maximum time to long-poll for payment status, in milliseconds.
          required: false
          schema:
            type:
              - integer
              - 'null'
            format: int64
            minimum: 0
      responses:
        '200':
          description: Payment status retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPaymentStatusResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Payment not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    PaymentId:
      type: string
      description: Payment ID
      examples:
        - pay_7fa2ecc101ARZ3NDEKTSV4RRFFQ69G5FAV
    GetPaymentStatusResponse:
      type: object
      required:
        - status
        - isFinal
      properties:
        failureCode:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/PaymentFailureCode'
              description: >-
                Machine-readable reason identifying why the payment failed.
                Present

                only when `status == "failed"`.
        info:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/PaymentInformation'
              description: >-
                Payment information (transaction hash, amount). Present when
                status is

                Succeeded, null otherwise.
        isFinal:
          type: boolean
          description: >-
            True if the payment is in a final state and no longer requires
            polling
        pollInMs:
          type:
            - integer
            - 'null'
          format: int64
          description: |-
            Time to poll for payment status, in milliseconds. Not present if the
            payment is in a final state.
          minimum: 0
        status:
          $ref: '#/components/schemas/PaymentStatus'
          description: Payment status
      example:
        info:
          optionAmount:
            display:
              assetName: USD Coin
              assetSymbol: USDC
              decimals: 6
              iconUrl: https://assets.walletconnect.com/usdc.png
              networkIconUrl: https://assets.walletconnect.com/base.png
              networkName: Base
            unit: >-
              caip19/eip155:8453/erc20:0x0000000000000000000000000000000000000000
            value: '1000000'
          txId: 0xabc123...
        isFinal: true
        pollInMs: null
        status: succeeded
    ErrorResponse:
      type: object
      description: Standard error response structure for API errors.
      required:
        - code
        - message
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode'
        message:
          type: string
    PaymentFailureCode:
      type: string
      description: >-
        Machine-readable code identifying why a payment reached `Failed`.


        Two distinct string forms exist per variant:

        - **Strum** (`Display`/`AsRefStr`/`EnumString`): the DynamoDB storage
        form
          written to the `failure_reason` column. Preserves the existing on-disk
          value for rows written before this type existed.
        - **Serde** (`Serialize`/`Deserialize`): the public API form.
        Deliberately
          decoupled from the internal term so that compliance-specific wording
          isn't surfaced to external consumers.
      enum:
        - declined_user
    PaymentInformation:
      type: object
      description: Payment information returned when payment succeeds
      required:
        - txId
        - optionAmount
      properties:
        optionAmount:
          $ref: '#/components/schemas/Amount'
          description: Amount paid in token units
        txId:
          type: string
          description: Transaction identifier (hash)
      example:
        optionAmount:
          display:
            assetName: USD Coin
            assetSymbol: USDC
            decimals: 6
            iconUrl: https://assets.walletconnect.com/usdc.png
            networkIconUrl: https://assets.walletconnect.com/base.png
            networkName: Base
          unit: caip19/eip155:8453/erc20:0x0000000000000000000000000000000000000000
          value: '1000000'
        txId: 0xabc123...
    PaymentStatus:
      type: string
      description: |-
        Payment status representing the lifecycle of a payment.

        Payments progress through these states from creation to terminal status.
        Some states are specific to the payment source (pull vs push).
      enum:
        - requires_action
        - processing
        - succeeded
        - failed
        - expired
        - cancelled
    ErrorCode:
      type: string
      description: |-
        Standard error codes for API responses.

        This prevents typos like "invlaid_params" from reaching production.
      enum:
        - rate_limited
        - invalid_params
        - params_validation
        - payment_not_found
        - idempotency_conflict
        - internal_error
        - invalid_api_key
        - unauthorized
        - forbidden
        - invalid_state
        - payment_expired
        - quote_expired
        - missing_api_key
        - missing_merchant_api_key
        - missing_merchant_id
        - header_not_ascii
        - not_sandbox_api_key
        - merchant_not_found
        - merchant_exists
        - api_key_not_found
        - partner_not_found
        - customer_not_found
        - wallet_not_found
        - executor_not_found
        - missing_app_id
        - missing_client_id
        - invalid_app_id
        - conflicting_auth_headers
        - missing_auth_headers
        - invalid_api_version
        - unknown_api_version
        - api_version_downgrade
        - sanctioned_user
        - payment_not_succeeded
        - already_refunded
    Amount:
      type: object
      required:
        - unit
        - value
        - display
      properties:
        display:
          $ref: '#/components/schemas/AmountDisplay'
          description: Display information for the amount
        unit:
          type: string
          description: Currency unit, prefixed with either "iso4217/" or "caip19/"
          example: iso4217/USD
        value:
          type: string
          description: Amount value, in the currency unit's minor units
      example:
        display:
          assetName: USD Coin
          assetSymbol: USDC
          decimals: 6
          iconUrl: https://assets.walletconnect.com/usdc.png
          networkIconUrl: https://assets.walletconnect.com/base.png
          networkName: Base
        unit: caip19/eip155:8453/erc20:0x0000000000000000000000000000000000000000
        value: '1000000'
    AmountDisplay:
      type: object
      required:
        - assetSymbol
        - assetName
        - decimals
      properties:
        assetName:
          type: string
          description: Full name of the asset
        assetSymbol:
          type: string
          description: Ticker/symbol of the asset
        decimals:
          type: integer
          format: int32
          description: Number of minor decimals of the asset
          minimum: 0
        iconUrl:
          type:
            - string
            - 'null'
          description: URL of the icon of the asset (if token)
        networkIconUrl:
          type:
            - string
            - 'null'
          description: URL of the icon of the network (if token)
        networkName:
          type:
            - string
            - 'null'
          description: Name of the network of the asset (if token)
      example:
        assetName: USD Coin
        assetSymbol: USDC
        decimals: 6
        iconUrl: https://assets.walletconnect.com/usdc.png
        networkIconUrl: https://assets.walletconnect.com/base.png
        networkName: Base
  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.

````