Error codes

Learn more about error codes and how to resolve them.

Reviewing errors

Stripe logs every successful or failed API request your integration makes. Use the Developers section of the Dashboard to review errors and monitor your integration.

Some Errors include an error code —a short string with a brief explanation. These codes play a role in our recommended error handling techniques . See the documentation on payment errors for an example.

Below is a list of possible error codes, along with additional information about how to resolve them. For convenience, every Error object links to this list in its doc_url attribute.

You can also trigger some specific error codes for test purposes.

account _ closed

The customer’s bank account has been closed.

account _ country _ invalid _ address

The country of the business address provided does not match the country of the account. Businesses must be located in the same country as the account.

account _ error _ country _ change _ requires _ additional _ steps

Your account has already onboarded as a Connect platform. Changing your country requires additional steps. Please reach out to Stripe support for more information.

account _ information _ mismatch

Some account information mismatches with one another. For example, some banks might require that the business_profile.name must match the account holder name.

account _ invalid

The account ID provided as a value for the Stripe-Account header is invalid. Check that your requests are specifying a valid account ID.

account _ number _ invalid

The bank account number provided is invalid (e.g., missing digits). Bank account information varies from country to country. We recommend creating validations in your entry forms based on the bank account formats we provide.

acss _ debit _ session _ incomplete

The ACSS debit session is not ready to transition to complete status yet. Please try again the request later.

alipay _ upgrade _ required

This method for creating Alipay payments is not supported anymore. Please upgrade your integration to use Sources instead.

amount _ too _ large

The specified amount is greater than the maximum amount allowed. Use a lower amount and try again.

amount _ too _ small

The specified amount is less than the minimum amount allowed. Use a higher amount and try again.

api _ key _ expired

The API key provided has expired. Obtain your current API keys from the Dashboard and update your integration to use them.

application _ fees _ not _ allowed

The proposed money movement could not be completed due to regulatory reasons.

authentication _ required

The payment requires authentication to proceed. If your customer is off session , notify your customer to return to your application and complete the payment. If you provided the error_on_requires_action parameter, then your customer should try another card that does not require authentication.

balance _ insufficient

The transfer or payout could not be completed because the associated account does not have a sufficient balance available. Create a new transfer or payout using an amount less than or equal to the account’s available balance.

balance _ invalid _ parameter

Invalid parameter was provided in the balance method object. Check our API documentation or the returned error message for more context.

bank _ account _ bad _ routing _ numbers

The bank account is known to not support the currency in question.

bank _ account _ declined

The bank account provided can not be used to charge, either because it is not verified yet or it is not supported.

bank _ account _ exists

The bank account provided already exists on the specified Customer object. If the bank account should also be attached to a different customer, include the correct customer ID when making the request again.

bank _ account _ restricted

The customer’s account cannot be used with the payment method.

bank _ account _ unusable

The bank account provided cannot be used. A different bank account must be used.

bank _ account _ unverified

Your Connect platform is attempting to share an unverified bank account with a connected account.

bank _ account _ verification _ failed

The bank account cannot be verified, either because the microdeposit amounts provided do not match the actual amounts, or because verification has failed too many times.

billing _ invalid _ mandate

The Subscription or Invoice attempted payment on a PaymentMethod without an active mandate. In order to create Subscription or Invoice payments with this PaymentMethod, it must be confirmed on-session with a PaymentIntent or SetupIntent first.

bitcoin _ upgrade _ required

This method for creating Bitcoin payments is not supported anymore. Please upgrade your integration to use Sources instead.

capture _ charge _ authorization _ expired

The charge cannot be captured as the authorization has expired. Refer to the payment method’s documentation to learn more.

capture _ unauthorized _ payment

The charge you’re attempting to capture has not been authorized for capturing payment.

card _ decline _ rate _ limit _ exceeded

This card has been declined too many times. You can try to charge this card again after 24 hours. We suggest reaching out to your customer to make sure they have entered all of their information correctly and that there are no issues with their card.

card _ declined

The card has been declined. When a card is declined, the error returned also includes the decline _ code attribute with the reason why the card was declined. Refer to our decline codes documentation to learn more.

cardholder _ phone _ number _ required

You must have a phone _ number on file for Issuing Cardholders who will be creating EU cards. You cannot create EU cards without a phone _ number on file for the cardholder. See the 3D Secure Documenation for more details.

charge _ already _ captured

The charge you’re attempting to capture has already been captured. Update the request with an uncaptured charge ID.

charge _ already _ refunded

The charge you’re attempting to refund has already been refunded. Update the request to use the ID of a charge that has not been refunded.

charge _ disputed

The charge you’re attempting to refund has been charged back. Check the disputes documentation to learn how to respond to the dispute.

charge _ exceeds _ source _ limit

This charge would cause you to exceed your rolling-window processing limit for this source type. Please retry the charge later, or contact us to request a higher processing limit.

charge _ exceeds _ transaction _ limit

This charge would cause you to exceed your processing limit for this payment type. Please contact us to request a higher processing limit.

charge _ expired _ for _ capture

The charge cannot be captured as the authorization has expired. Auth and capture charges must be captured within a set number of days (7 by default).

charge _ invalid _ parameter

One or more provided parameters was not allowed for the given operation on the Charge. Check our API reference or the returned error message to see which values were not correct for that Charge.

charge _ not _ refundable

Attempt to refund a charge was unsuccessful because the charge is no longer refundable.

clearing _ code _ unsupported

The clearing code provided is not supported.

country _ code _ invalid

The country code provided was invalid.

country _ unsupported

Your platform attempted to create a custom account in a country that is not yet supported. Make sure that users can only sign up in countries supported by custom accounts .

coupon _ expired

The coupon provided for a subscription or order has expired. Either create a new coupon, or use an existing one that is valid.

customer _ max _ payment _ methods

The maximum number of PaymentMethods for this Customer has been reached. Either detach some PaymentMethods from this Customer or proceed with a different Customer.

customer _ max _ subscriptions

The maximum number of subscriptions for a customer has been reached. Contact us if you are receiving this error.

customer _ tax _ location _ invalid

The customer address is missing or not valid for tax purposes. Make sure to provide a country as a two-letter ISO code and also a postal_code , at minimum. See how to collect customer addresses .

debit _ not _ authorized

The customer has notified their bank that this payment was unauthorized.

email _ invalid

The email address is invalid (e.g., not properly formatted). Check that the email address is properly formatted and only includes allowed characters .

expired _ card

The card has expired. Check the expiration date or use a different card.

financial _ connections _ account _ inactive

Data cannot be refreshed on inactive Financial Connections accounts.

financial _ connections _ no _ successful _ transaction _ refresh

Transaction data can only be retrieved for accounts that have at least one successful transaction refresh.

forwarding _ api _ inactive

The vault and forward API is currently not accessible with this account and/or config. Please contact us if you are receiving this error.

forwarding _ api _ invalid _ parameter

Invalid parameter was provided in the vault and forward API. Check our API documentation or the returned error message for more context.

forwarding _ api _ upstream _ connection _ error

Stripe did not receive a response from the destination endpoint. This typically indicates a problem with the destination endpoint, rather than with Stripe.

forwarding _ api _ upstream _ connection _ timeout

The request to the destination endpoint timed out. This typically indicates a problem with the destination endpoint, rather than with Stripe.

idempotency _ key _ in _ use

The idempotency key provided is currently being used in another request. This occurs if your integration is making duplicate requests simultaneously.

incorrect _ address

The card’s address is incorrect. Check the card’s address or use a different card.

incorrect _ cvc

The card’s security code is incorrect. Check the card’s security code or use a different card.

incorrect _ number

The card number is incorrect. Check the card’s number or use a different card.

incorrect _ zip

The card’s postal code is incorrect. Check the card’s postal code or use a different card.

instant _ payouts _ config _ disabled

This connected account is not eligible for Instant Payouts. Ask the platform to enable Instant Payouts.

instant _ payouts _ currency _ disabled

This connected account is not eligible for Instant Payouts in this currency. Ask the platform to enable Instant Payouts in this currency.

instant _ payouts _ limit _ exceeded

You have reached your daily processing limits for Instant Payouts.

instant _ payouts _ unsupported

This card is not eligible for Instant Payouts. Try a debit card from a supported bank .

insufficient _ funds

The customer’s account has insufficient funds to cover this payment.

intent _ invalid _ state

Intent is not in the state that is required to perform the operation.

intent _ verification _ method _ missing

Intent does not have verification method specified in its PaymentMethodOptions object.

invalid _ card _ type

The card provided as an external account is not supported for payouts. Provide a non-prepaid debit card instead.

invalid _ characters

This value provided to the field contains characters that are unsupported by the field.

invalid _ charge _ amount

The specified amount is invalid. The charge amount must be a positive integer in the smallest currency unit, and not exceed the minimum or maximum amount .

invalid _ cvc

The card’s security code is invalid. Check the card’s security code or use a different card.

invalid _ expiry _ month

The card’s expiration month is incorrect. Check the expiration date or use a different card.

invalid _ expiry _ year

The card’s expiration year is incorrect. Check the expiration date or use a different card.

invalid _ mandate _ reference _ prefix _ format

The provided prefix used to generate the mandate reference is invalid.

invalid _ number

The card number is invalid. Check the card details or use a different card.

invalid _ source _ usage

The source cannot be used because it is not in the correct state (e.g., a charge request is trying to use a source with a pending , failed , or consumed source). Check the status of the source you are attempting to use.

invalid _ tax _ location

The specified location is invalid. Check the Supported address formats for the address formats supported when calculating tax.

invoice _ no _ customer _ line _ items

An invoice cannot be generated for the specified customer as there are no pending invoice items. Check that the correct customer is being specified or create any necessary invoice items first.

invoice _ no _ payment _ method _ types

An invoice cannot be finalized because there are no payment method types available to process the payment. Your invoice template settings or the invoice’s payment _ settings might be restricting which payment methods are available, or you might need to activate more payment methods in the Dashboard.

invoice _ no _ subscription _ line _ items

An invoice cannot be generated for the specified subscription as there are no pending invoice items. Check that the correct subscription is being specified or create any necessary invoice items first.

invoice _ not _ editable

The specified invoice can no longer be edited. Instead, consider creating additional invoice items that will be applied to the next invoice. You can either manually generate the next invoice or wait for it to be automatically generated at the end of the billing cycle.

invoice _ on _ behalf _ of _ not _ editable

You cannot update the on _ behalf _ of property of an invoice after the invoice has been assigned a number.

invoice _ payment _ intent _ requires _ action

This payment requires additional user action before it can be completed successfully. Payment can be completed using the PaymentIntent associated with the invoice. See this page for more details.

invoice _ upcoming _ none

There is no upcoming invoice on the specified customer to preview. Only customers with active subscriptions or pending invoice items have invoices that can be previewed.

livemode _ mismatch

Test and live mode API keys, requests, and objects are only available within the mode they are in.

lock _ timeout

This object cannot be accessed right now because another API request or Stripe process is currently accessing it. If you see this error intermittently, retry the request. If you see this error frequently and are making multiple concurrent requests to a single object, make your requests serially or at a lower rate. See the rate limit documentation for more details.

missing

Both a customer and source ID have been provided, but the source has not been saved to the customer. To create a charge for a customer with a specified source, you must first save the card details .

no _ account

The bank account could not be located.