Cancel payment
Cancels payment by string payment_details_id code.
Endpoint​
POST /payments/cancel
Query Parameters​
version(string, required) - API contract version. Use exactly 2024-10-01.diagnostics(boolean, optional) - Non-production docs only. Set true to include extra diagnostic metadata (for example observed_client_ip).
Header Parameters​
PW-subscription-key(string, required)PW-origin-country(string, required)PW-request-date(string, required) - UTC request timestamp formatted asYYYY-MM-DD HH:mm:ss.PW-ip-address(string, required)User-Agent(string, required)
Header Constraints​
| Key | Description | Example | Data type | Requirement | Field Length |
|---|---|---|---|---|---|
PW-subscription-key | Developer key available after portal registration. Production key is shared on request. | eed0d85c530c4b26a91d09b783d8fab3 | string | mandatory | 32 |
PW-origin-country | ISO Alpha-2 country code where the transaction is created. | TT | string | mandatory | 2 |
PW-request-date | Current request timestamp. Format: YYYY-MM-DD HH:mm:ss (UTC). | 2014-10-08 16:01:31 | string | mandatory | 19 |
PW-ip-address | Fixed institution IP used for PayWise network-level validation. | 255.255.255.255 | string | conditional | 8-16 |
User-Agent | In programmable environments, this avoids running into Cloudflare issues. | Mozilla/5.0 (Windows NT 10.0; Win64; x64) | string | mandatory | 255 |
Request Body​
{
"api_key": "api_key_redacted",
"payment_details_id": "pay9x7Q"
}
Downloads​
- Download Postman-ready request body
- Download Postman-ready response (200)
- Download Postman-ready response (400 error)
Responses​
200 - Wrapper-normalized response envelope (success cases).​
Example: success​
{
"status": "success",
"code": 200,
"message": "Payment Cancelled",
"request_id": "request-example-cancel-card",
"payment_details": {
"id": "opaque-payment-id-cancel-card",
"transaction_id": "journey-card-cancel-20260814a",
"amount": "25.00",
"payments_status": {
"paid": "0.00 TTD",
"remaining": "25.00 TTD",
"metadata": []
},
"fees": {
"total": "3.91",
"card_processing": "3.91",
"platform_processing": "0.00",
"agent_processing": "0.00",
"payer_pays": "0.00",
"payee_pays": "0.00",
"merchant_pays": "3.91",
"convenience": "0.00"
},
"currency": "TTD",
"status": "Cancelled",
"timestamps": {
"created_time": "2026-08-14 13:19:00",
"updated_time": "2026-08-14 13:20:00",
"expire_time": "2026-08-14 16:19:00"
},
"payers": [
{
"mobile_number": "+1XXXXXXXXXX",
"amount": "25.00",
"payment_channel": "payment_link",
"payment_method": "card",
"fee": "0.00",
"tip": "0.00",
"tax": "0.00",
"convenience_fee": "0.00",
"status": "Cancelled",
"expire_time": "2026-08-14 16:19:00",
"metadata": "",
"url": "https://sandbox.paywise.co/example-hosted-payment",
"expire_date_time": "2026-08-14 16:19:00"
}
],
"payees": [
{
"mobile_number": "+1XXXXXXXXXX",
"amount": "21.09",
"delay_days": 0,
"fees_covered": 0,
"fee": "3.91"
}
],
"fraud_check_status": "passed"
}
}
400 - Wrapper-normalized response envelope (400)​
Example: error​
{
"status": "error",
"code": 400,
"message": "payment_details_id is required",
"request_id": "f1297691-052b-485d-8474-045b40ea29f9",
"timestamp": "2026-02-11T03:59:45.739Z",
"observed_client_ip": {
"request_ip": "172.64.80.1",
"socket_remote_address": "172.64.80.1"
}
}
Notes​
This endpoint page is generated from openapi/pw-wrappers.2024-10-01.yaml.