Get Payment Intent
Check the status of a payment. Use as a fallback if your webhook didn't arrive.
GET
/payment-intents/{paymentIntentId}Retrieves a Payment Intent by ID. Use this to check if a payment succeeded — especially as a fallback when you haven't received a webhook.
When to use this: You created a checkout session, the customer completed payment, but your webhook hasn't arrived after 5 minutes. Poll this endpoint.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
paymentIntentId | string | The Payment Intent ID (pi_...). You got this from the checkout session response. |
Response 200
{
"id": "pi_01JQX...",
"object": "payment_intent",
"status": "succeeded",
"amount": 5000,
"currency": "USD",
"metadata": { "order_id": "ORD-123" },
"livemode": false,
"created_at": "2026-04-07T18:30:00.000Z"
}Status Values
| Status | Meaning | Action |
|---|---|---|
succeeded | Payment captured. Money is yours. | Fulfill the order |
processing | Payment submitted, waiting on network | Check again in a minute |
requires_payment_method | Waiting for customer to pay | Customer hasn't completed checkout yet |
requires_action | 3DS challenge in progress | We're handling it — wait |
canceled | Payment was canceled | No action needed |
expired | Payment Intent expired | Create a new checkout session |
requires_capture | Auth succeeded, awaiting capture | Capture when ready (manual capture flow) |
Errors
| Status | Meaning |
|---|---|
401 | Auth failed |
404 | Payment Intent not found — check the ID |
429 | Rate limited |
Try It
GET
/payment-intents/pi_01JQX...test