Cancel payment
Cancels a payment that has not yet been captured. Valid for payments in processing, requires_action, or requires_capture status — cancellation voids the authorization without creating a refund. Returns 409 if the payment is already captured or in a terminal state.
Authorization
bearer In: header
Path Parameters
Response Body
application/json
curl -X POST "https://<api-host>/v1/payments/string/cancel"{
"data": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
"livemode": true,
"status": "processing",
"merchantId": "c3073b9d-edd0-49f2-a28d-b7ded8ff9a8b",
"amount": {
"currency": "string",
"valueMinor": 9007199254740991
},
"amountBreakdown": {
"authorized": {
"currency": "string",
"valueMinor": 9007199254740991
},
"captured": {
"currency": "string",
"valueMinor": 9007199254740991
},
"refunded": {
"currency": "string",
"valueMinor": 9007199254740991
},
"fee": {
"currency": "string",
"valueMinor": 9007199254740991
},
"net": {
"currency": "string",
"valueMinor": 9007199254740991
}
},
"captureMethod": "automatic",
"merchantReference": "string",
"checkoutSessionId": "e4b3bd08-5189-40bd-bc1b-0dd256297c90",
"paymentMethodType": "string",
"action": {
"type": "redirect",
"url": "http://example.com",
"data": {
"threeDSToken": "string",
"authenticationMethod": "string",
"displayMessage": "string",
"expiresIn": 0
}
},
"errorCode": "string",
"errorMessage": "string",
"approved": true,
"providerReference": "string",
"threeDSResult": {
"version": "1.0",
"status": "authenticated",
"statusReason": "string",
"eci": "string",
"cavv": "string",
"xid": "string",
"dsTransId": "string",
"enrolled": "Y",
"liabilityShift": true,
"challengeFlow": "frictionless",
"challenged": true,
"challengeCancelled": true,
"exemptionApplied": "low_value",
"messageVersion": "string",
"serverTransId": "string",
"acsTransId": "string"
},
"metadata": {
"property1": "string",
"property2": "string"
},
"createdAt": "string",
"updatedAt": "string"
}
}List available payment methods
Returns payment methods available to the caller for the current checkout context. Two auth flows are supported: (1) client_secret — the session derives currency, merchant, and country; query params are ignored. (2) publishable_key — the `currency` query parameter is REQUIRED and the merchant is taken from the API key owner. Use this endpoint to render payment method selection in HPP or SDK flows.
Capture payment
Captures an authorized payment. Only valid for payments created with `captureMethod: "manual"` that are currently in the `requires_capture` status. Captures the full authorized amount — partial captures are not currently supported. Returns 409 if the payment is not in `requires_capture` status.