Skip to main content
POST
/
v1
/
payment-intents
/
{id}
/
cancel
curl -X POST https://api.stablegenius.co/v1/payment-intents/pi_xyz789/cancel \
  -H "Authorization: Bearer sk_test_abc123"
const response = await fetch(
  'https://api.stablegenius.co/v1/payment-intents/pi_xyz789/cancel',
  {
    method: 'POST',
    headers: { Authorization: 'Bearer sk_test_abc123' },
  }
);

const cancelledIntent = await response.json();
{
  "id": "pi_xyz789",
  "object": "payment_intent",
  "status": "cancelled",
  "amount": 4.50,
  "currency": "usd",
  "merchant_id": "mer_abc123",
  "cancelled_at": "2026-04-01T20:02:30Z",
  "metadata": { "order_id": "order_456" },
  "created_at": "2026-04-01T20:00:00Z"
}
{
  "error": {
    "type": "invalid_request_error",
    "message": "Cannot cancel a payment intent with status 'confirmed'",
    "code": "intent_not_cancellable"
  }
}

Cancel Payment Intent

Cancels a payment intent that is in awaiting_payment status. Cannot cancel intents that have already been confirmed, expired, or settled.

Path Parameters

id
string
required
The payment intent ID (format: pi_*).
curl -X POST https://api.stablegenius.co/v1/payment-intents/pi_xyz789/cancel \
  -H "Authorization: Bearer sk_test_abc123"
const response = await fetch(
  'https://api.stablegenius.co/v1/payment-intents/pi_xyz789/cancel',
  {
    method: 'POST',
    headers: { Authorization: 'Bearer sk_test_abc123' },
  }
);

const cancelledIntent = await response.json();
{
  "id": "pi_xyz789",
  "object": "payment_intent",
  "status": "cancelled",
  "amount": 4.50,
  "currency": "usd",
  "merchant_id": "mer_abc123",
  "cancelled_at": "2026-04-01T20:02:30Z",
  "metadata": { "order_id": "order_456" },
  "created_at": "2026-04-01T20:00:00Z"
}
{
  "error": {
    "type": "invalid_request_error",
    "message": "Cannot cancel a payment intent with status 'confirmed'",
    "code": "intent_not_cancellable"
  }
}