payments
Stripe Errors
Stripe processes payments for millions of businesses. Its API surfaces decline reasons, webhook signatures, idempotency conflicts, and rate limits as structured error codes.
Stripe error codes split into card errors (`card_declined`, `expired_card`, `insufficient_funds`), API errors (`api_connection_error`, `idempotency_error`), webhook errors (`signature_verification_failed`), and rate limits (HTTP 429). Most production incidents trace to webhook signature drift, idempotency key reuse, or PaymentIntent state mismatches.
Authentication (2)
-
api_key_invalid401Invalid API Key ProvidedThe API key you sent in the `Authorization: Bearer ...` header doesn't match any active Stripe key — usually because of a test/live mode mismatch, a deleted or rolled key, copy-paste corruption, or a missing environment variable falling through to `undefined`. -
authentication_required402SCA RequiredThe card issuer requires the customer to complete 3D Secure (SCA / PSD2) authentication, but the PaymentIntent was confirmed without the customer completing the 3DS challenge — usually because you're using a bare Card element instead of the Payment Element or didn't handle `requires_action`.
Billing & quota (2)
-
card_declined402Card Was DeclinedThe customer's card issuer refused to authorise the charge. Stripe relays the issuer's decline reason in `decline_code` (e.g., `insufficient_funds`, `lost_card`, `do_not_honor`). -
insufficient_funds402Insufficient FundsThe customer's card issuer declined the charge because the account doesn't have enough available balance to cover the amount, including any pending authorisations and holds.
Webhooks (1)
Official docs
https://stripe.com/docs/error-codes
Status page
https://status.stripe.com/
Support
https://support.stripe.com/