---
title: "Confirm a payment"
method: POST
path: "/v1/gateway/payment/{id}/confirm"
tags: ["Gateway"]
---

# Confirm a payment

`POST /v1/gateway/payment/{id}/confirm`

This endpoint confirms a payment and submits it to the blockchain for processing.

## Path parameters

- `id` string, required — Payment ID

## Query parameters

- `maxPollMs` integer, nullable

## Headers

- `Api-Key` string, nullable
- `App-Id` string, nullable
- `Client-Id` string, nullable
- `WCP-Version` string, nullable
- `Sdk-Name` string, nullable
- `Sdk-Version` string, nullable
- `Sdk-Platform` string, nullable

## Request body

- ConfirmPaymentRequest
  - `collectedData` CollectDataResult
    - `fields` CollectDataFieldResult[], required
      - `id` string, required
      - `value` string, required
  - `optionId` string, required — ID of the option to confirm
  - `results` ConfirmPaymentResult[], required
    - `data` unknown[], required
      - unknown
    - `type` 'walletRpc', required

## Response `200`

Payment confirmed successfully

- ConfirmPaymentResponse
  - `info` GatewayPaymentInformation — Payment information returned when a gateway 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)
  - `isFinal` boolean, required — True if the payment is in a final state and no longer requires polling
  - `pollInMs` integer, nullable — Time to poll for payment status, in milliseconds. Not present if the payment is in a final state.
  - `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)
