---
title: "Get payment details"
method: GET
path: "/v1/payments/{id}"
tags: ["Payments"]
---

# Get payment details

`GET /v1/payments/{id}`

Retrieves the full details of a payment by its ID, including settlement
information when available.

## Path parameters

- `id` string, required — Payment ID

## Headers

- `Api-Key` string, required
- `Merchant-Id` string, required
- `WCP-Version` string, nullable
- `Sdk-Name` string, nullable
- `Sdk-Version` string, nullable
- `Sdk-Platform` string, nullable
- `Idempotency-Key` string, nullable

## Response `200`

Payment details retrieved successfully

- PaymentsGetPaymentResponse
  - `failureCode` 'declined_user' — 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.
  - `info` PaymentInformation — Payment information returned when payment succeeds
    - `optionAmount` Amount, required
      - `display` AmountDisplay, required
        - `assetName` string, required — Full name of the asset
        - `assetSymbol` string, required — Ticker/symbol of the asset
        - `decimals` integer, required — Number of minor decimals of the asset
        - `iconUrl` string, nullable — URL of the icon of the asset (if token)
        - `networkIconUrl` string, nullable — URL of the icon of the network (if token)
        - `networkName` string, nullable — Name of the network of the asset (if token)
      - `unit` string, required — Currency unit, prefixed with either "iso4217/" or "caip19/"
      - `value` string, required — Amount value, in the currency unit's minor units
    - `txId` string, required — Transaction identifier (hash)
  - `referenceId` string, required — Merchant-provided reference ID for this payment, as supplied during payment creation
  - `settlement` PaymentsSettlementInformation — Settlement metadata returned for MTA-based payments. Only present once the settlement transfer has completed on-chain.
    - `successful` PaymentsSettlementSuccessful — Details of a successful settlement transfer.
      - `amount` PaymentsSettlementAmount, required — Amount information for a successful settlement transfer.
        - `unit` string, required — Settlement unit — the asset or currency used in the settlement transfer. Uses the same unit format as payment amounts (e.g. "caip19/eip155:1/erc20:0xA0b86..." for crypto, "iso4217/USD" for fiat).
      - `txId` string, required — Transaction hash of the MTA → settlement destination transfer.
  - `status` 'requires_action' | 'processing' | 'succeeded' | 'failed' | 'expired' | 'cancelled', required — 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).

## Other responses

- `400` — Invalid request
- `401` — Invalid API key
- `404` — Payment not found
- `500` — Internal error

---

[API](https://skmtc.net/walletconnect/apis/walletconnect-pay-api.md) · [All operations](https://skmtc.net/walletconnect/apis/walletconnect-pay-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/walletconnect/walletconnect-pay-api/versions/8e5708191dde/schema)
