Cancel a Payment Session

Cancel a PENDING payment session, transitioning it to EXPIRED.

curl -X POST "https://api.catalystpay.com/api/v1/payment-sessions/ps_abc123def456/cancel/" \
  -H "Authorization: Bearer rk_your_api_key"
import requests

response = requests.post(
    f"https://api.catalystpay.com/api/v1/payment-sessions/{token}/cancel/",
    headers={"Authorization": "Bearer rk_your_api_key"},
)

result = response.json()
print(result["status"])  # "EXPIRED"
const response = await fetch(
  `https://api.catalystpay.com/api/v1/payment-sessions/${token}/cancel/`,
  {
    method: 'POST',
    headers: { 'Authorization': 'Bearer rk_your_api_key' },
  }
);

const result = await response.json();
console.log(result.status); // "EXPIRED"

Response:

{
  "session_token": "ps_abc123def456",
  "status": "EXPIRED"
}

Only sessions in PENDING status can be cancelled. Terminal states (COMPLETED, FAILED, EXPIRED) return 410 Gone. In-progress states (PAYMENT_IN_PROGRESS, AWAITING_VERIFICATION) return 409 Conflict. No request body is needed.