Stripe uses conventional HTTP response codes to indicate the success or failure of an API request. In general: Codes in the 2xx
range indicate success. Codes in the 4xx
range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a charge failed, etc.). Codes in the 5xx
range indicate an error with Stripe’s servers (these are rare).
Some 4xx
errors that could be handled programmatically (e.g., a card is declined) include an error code that briefly explains the error reported.
Attributes
- codenullable string
For some errors that could be handled programmatically, a short string indicating the error code reported.
- decline_
codenullable string For card errors resulting from a card issuer decline, a short string indicating the card issuer’s reason for the decline if they provide one.
- messagenullable string
A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.
- paramnullable string
If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field.
- payment_
intentnullable object The PaymentIntent object for errors returned on a request involving a PaymentIntent.
- typeenum
The type of error returned. One of
api_
,error card_
,error idempotency_
, orerror invalid_
request_ error Possible enum valuesapi_
error card_
error idempotency_
error invalid_
request_ error
More
- advice_
codenullable string For card errors resulting from a card issuer decline, a short string indicating how to proceed with an error if they provide one.
- chargenullable string
For card errors, the ID of the failed charge.
- doc_
urlnullable string A URL to more information about the error code reported.
- network_
advice_ codenullable string For card errors resulting from a card issuer decline, a 2 digit code which indicates the advice given to merchant by the card network on how to proceed with an error.
- network_
decline_ codenullable string For payments declined by the network, an alphanumeric code which indicates the reason the payment failed.
- payment_
methodnullable object The PaymentMethod object for errors returned on a request involving a PaymentMethod.
- payment_
method_ typenullable string If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors.
- request_
log_ urlnullable string A URL to the request log entry in your dashboard.
- setup_
intentnullable object The SetupIntent object for errors returned on a request involving a SetupIntent.
- sourcenullable object
The source object for errors returned on a request involving a source.
200 | OK | Everything worked as expected. |
400 | Bad Request | The request was unacceptable, often due to missing a required parameter. |
401 | Unauthorized | No valid API key provided. |
402 | Request Failed | The parameters were valid but the request failed. |
403 | Forbidden | The API key doesn’t have permissions to perform the request. |
404 | Not Found | The requested resource doesn’t exist. |
409 | Conflict | The request conflicts with another request (perhaps due to using the same idempotent key). |
424 | External Dependency Failed | The request couldn’t be completed due to a failure in a dependency external to Stripe. |
429 | Too Many Requests | Too many requests hit the API too quickly. We recommend an exponential backoff of your requests. |
500, 502, 503, 504 | Server Errors | Something went wrong on Stripe’s end. (These are rare.) |
api_ | API errors cover any other type of problem (e.g., a temporary problem with Stripe’s servers), and are extremely uncommon. |
card_ | Card errors are the most common type of error you should expect to handle. They result when the user enters a card that can’t be charged for some reason. |
idempotency_ | Idempotency errors occur when an Idempotency-Key is re-used on a request that does not match the first request’s API endpoint and parameters. |
invalid_ | Invalid request errors arise when your request has invalid parameters. |