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

# POST /v1/gateway/payment/{id}/cancel

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

## Path parameters

- `id` string, required — Payment ID

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

## Response `200`

Payment cancelled successfully

- GatewayCancelPaymentResponse
  - `cancelledAt` string, required
  - `cancelledReason` string, required
  - `paymentId` string, required — Payment ID
  - `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` — Payment cannot be cancelled
- `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)
