Error codes
Learn more about error codes and how to resolve them.
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_
attribute with the reason why the card was declined. Refer to our decline codes documentation to learn more.code cardholder_
phone_ number_ required You must have a
phone_
on file for Issuing Cardholders who will be creating EU cards. You cannot create EU cards without anumber phone_
on file for the cardholder. See the 3D Secure Documenation for more details.number 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
, orconsumed
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_
might be restricting which payment methods are available, or you might need to activate more payment methods in the Dashboard.settings 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_
property of an invoice after the invoice has been assigned a number.behalf_ of 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.
not_
allowed_ on_ standard_ account Transfers and payouts on behalf of a Standard connected account are not allowed.
out_
of_ inventory One or more line item(s) are out of stock. If more stock is available, update the inventory’s orderable quantity and try again.
ownership_
declaration_ not_ allowed Company ownership declaration is allowed only during account updates and accounts created via account tokens.
parameter_
invalid_ empty One or more required values were not provided. Make sure requests include all required parameters.
parameter_
invalid_ integer One or more of the parameters requires an integer, but the values provided were a different type. Make sure that only supported values are provided for each attribute. Refer to our API documentation to look up the type of data each attribute supports.
parameter_
invalid_ string_ blank One or more values provided only included whitespace. Check the values in your request and update any that contain only whitespace.
parameter_
invalid_ string_ empty One or more required string values is empty. Make sure that string values contain at least one character.
parameter_
missing One or more required values are missing. Check our API documentation to see which values are required to create or modify the specified resource.
parameter_
unknown The request contains one or more unexpected parameters. Remove these and try again.
parameters_
exclusive Two or more mutually exclusive parameters were provided. Check our API documentation or the returned error message to see which values are permitted when creating or modifying the specified resource.
payment_
intent_ action_ required The provided payment method requires customer actions to complete, but
error_
was set. If you’d like to add this payment method to your integration, we recommend that you first upgrade your integration to handle actions.on_ requires_ action payment_
intent_ authentication_ failure The provided payment method has failed authentication. Provide a new payment method to attempt to fulfill this PaymentIntent again.
payment_
intent_ incompatible_ payment_ method The PaymentIntent expected a payment method with different properties than what was provided.
payment_
intent_ invalid_ parameter One or more provided parameters was not allowed for the given operation on the PaymentIntent. Check our API reference or the returned error message to see which values were not correct for that PaymentIntent.
payment_
intent_ konbini_ rejected_ confirmation_ number The
confirmation_
provided innumber payment_
was rejected by the processing partner at time of PaymentIntent confirmation.method_ options[konbini] payment_
intent_ mandate_ invalid The provided mandate is invalid and can not be used for the payment intent.
payment_
intent_ payment_ attempt_ expired The latest payment attempt for the PaymentIntent has expired. Check the
last_
property on the PaymentIntent for more details, and provide a new payment method to attempt to fulfill this PaymentIntent again.payment_ error payment_
intent_ payment_ attempt_ failed The latest payment attempt for the PaymentIntent has failed. Check the
last_
property on the PaymentIntent for more details, and provide a new payment method to attempt to fulfill this PaymentIntent again.payment_ error payment_
intent_ unexpected_ state The PaymentIntent’s state was incompatible with the operation you were trying to perform.
payment_
method_ bank_ account_ already_ verified This bank account has already been verified.
payment_
method_ bank_ account_ blocked This bank account has failed verification in the past and can not be used. Contact us if you wish to attempt to use these bank account credentials.
payment_
method_ billing_ details_ address_ missing The PaymentMethod’s billing details is missing address details. Please update the missing fields and try again.
payment_
method_ configuration_ failures Attempt to create or modify Payment Method Configuration was unsuccessful.
payment_
method_ currency_ mismatch The currency specified does not match the currency for the attached payment method. A payment can only be created for the same currency as the corresponding payment method.
payment_
method_ customer_ decline The customer did not approve the payment. Please provide a new payment method to attempt to fulfill this intent again.
payment_
method_ invalid_ parameter Invalid parameter was provided in the payment method object. Check our API documentation or the returned error message for more context.
payment_
method_ invalid_ parameter_ testmode The parameter provided for payment method is not allowed to be used in testmode. Check our API documentation or the returned error message for more context.
payment_
method_ microdeposit_ failed Microdeposits were failed to be deposited into the customer’s bank account. Please check the account, institution and transit numbers as well as the currency type.
payment_
method_ microdeposit_ verification_ amounts_ invalid You must provide exactly two microdeposit amounts.
payment_
method_ microdeposit_ verification_ amounts_ mismatch The amounts provided do not match the amounts that were sent to the bank account.
payment_
method_ microdeposit_ verification_ attempts_ exceeded You have exceeded the number of allowed verification attempts.
payment_
method_ microdeposit_ verification_ descriptor_ code_ mismatch The verification code provided does not match the one sent to the bank account.
payment_
method_ microdeposit_ verification_ timeout Payment method should be verified with microdeposits within the required period.
payment_
method_ not_ available The payment processor for the provided payment method is temporarily unavailable. Please try a different payment method or retry later with the same payment method.
payment_
method_ provider_ decline The payment or setup attempt was declined by the issuer or customer. Check the
last_
orpayment_ error last_
property on the PaymentIntent or SetupIntent respectively for more details, and provide a new payment method to attempt to fulfill this intent again.setup_ error payment_
method_ provider_ timeout The payment method failed due to a timeout. Check the
last_
orpayment_ error last_
property on the PaymentIntent or SetupIntent respectively for more details, and provide a new payment method to attempt to fulfill this intent again.setup_ error payment_
method_ unactivated The operation cannot be performed as the payment method used has not been activated. Activate the payment method in the Dashboard, then try again.
payment_
method_ unexpected_ state The provided payment method’s state was incompatible with the operation you were trying to perform. Confirm that the payment method is in an allowed state for the given operation before attempting to perform it.
payment_
method_ unsupported_ type The API only supports payment methods of certain types.
payout_
reconciliation_ not_ ready Reconciliation for this payout is still in progress.
payouts_
limit_ exceeded You have reached your daily processing limits for this payout type.
payouts_
not_ allowed Payouts have been disabled on the connected account. Check the connected account’s status to see if any additional information needs to be provided, or if payouts have been disabled for another reason.
platform_
account_ required Only Stripe Connect platforms can work with other accounts. If you need to setup a Stripe Connect platform, you can do so in the dashboard.
platform_
api_ key_ expired The API key provided by your Connect platform has expired. This occurs if your platform has either generated a new key or the connected account has been disconnected from the platform. Obtain your current API keys from the Dashboard and update your integration, or reach out to the user and reconnect the account.
postal_
code_ invalid The postal code provided was incorrect.
processing_
error An error occurred while processing the card. Try again later or with a different payment method.
product_
inactive The product this SKU belongs to is no longer available for purchase.
progressive_
onboarding_ limit_ exceeded Progressive onboarding limit has been reached for the platform.
rate_
limit Too many requests hit the API too quickly. We recommend an exponential backoff of your requests.
refer_
to_ customer The customer has stopped the payment with their bank. Contact them for details and to arrange payment.
refund_
disputed_ payment You cannot refund a disputed payment.
resource_
already_ exists A resource with a user-specified ID (e.g., plan or coupon) already exists. Use a different, unique value for
id
and try again.resource_
missing The ID provided is not valid. Either the resource does not exist, or an ID for a different resource has been provided.
return_
intent_ already_ processed You cannot confirm this refund as it is already processed.
routing_
number_ invalid The bank routing number provided is invalid.
secret_
key_ required The API key provided is a publishable key, but a secret key is required. Obtain your current API keys from the Dashboard and update your integration to use them.
sepa_
unsupported_ account Your account does not support SEPA payments.
setup_
attempt_ failed The latest setup attempt for the SetupIntent has failed. Check the
last_
property on the SetupIntent for more details, and provide a new payment method to attempt to set it up again.setup_ error setup_
intent_ authentication_ failure The provided payment method has failed authentication. Provide a new payment method to attempt to fulfill this SetupIntent again.
setup_
intent_ invalid_ parameter One or more provided parameters was not allowed for the given operation on the SetupIntent. Check our API reference or the returned error message to see which values were not correct for that SetupIntent.
setup_
intent_ mandate_ invalid The provided mandate is invalid and can not be used for the setup intent.
setup_
intent_ setup_ attempt_ expired The latest setup attempt for the SetupIntent has expired. Check the
last_
property on the SetupIntent for more details, and provide a new payment method to attempt to complete this SetupIntent again.setup_ error setup_
intent_ unexpected_ state The SetupIntent’s state was incompatible with the operation you were trying to perform.
shipping_
address_ invalid The shipping address information cannot be used to accurately determine tax rates. Verify that address fields such as zip code, state, or province have been added correctly.
shipping_
calculation_ failed Shipping calculation failed as the information provided was either incorrect or could not be verified.
sku_
inactive The SKU is inactive and no longer available for purchase. Use a different SKU, or make the current SKU active again.
state_
unsupported Occurs when providing the
legal_
information for a U.S. custom account, if the provided state is not supported. (This is mostly associated states and territories.)entity status_
transition_ invalid The requested status transition is not valid.
stripe_
tax_ inactive Stripe Tax has not been activated on your account. Check the setup documentation to get started.
tax_
id_ invalid The tax ID number provided is invalid (e.g., missing digits). Tax ID information varies from country to country, but must be at least nine digits.
taxes_
calculation_ failed Tax calculation for the order failed.
terminal_
location_ country_ unsupported Terminal is currently only available in some countries. Locations in your country cannot be created in livemode.
terminal_
reader_ busy Reader is currently busy processing another request. Please reference the integration guide for details on how to handle this error.
terminal_
reader_ hardware_ fault Reader can no longer accept payments as an unrecoverable hardware fault has been detected. Please reach out to Stripe support at https://support.stripe.com/contact/email and provide your reader’s serial number for replacement.
terminal_
reader_ invalid_ location_ for_ activation Reader can’t be activated in the currently registered Location. Please register the reader to a new Location. See Manage locations for more information.
terminal_
reader_ invalid_ location_ for_ payment Reader can’t take payments in the currently registered Location. Please register the reader to a new Location. See Manage locations for more information.
terminal_
reader_ offline Reader is currently offline, please ensure the reader is powered on and connected to the internet before retrying your request. Reference the integration guide for details on how to handle this error.
terminal_
reader_ timeout There was a timeout when sending this command to the reader. Please reference the integration guide for details on how to handle this error.
testmode_
charges_ only Your account has not been activated and can only make test charges. Activate your account in the Dashboard to begin processing live charges.
tls_
version_ unsupported Your integration is using an older version of TLS that is unsupported. You must be using TLS 1.2 or above.
token_
already_ used The token provided has already been used. You must create a new token before you can retry this request.
token_
card_ network_ invalid Invalid card network parameter was provided in the card token object. Check our API documentation or the returned error message for more context.
token_
in_ use The token provided is currently being used in another request. This occurs if your integration is making duplicate requests simultaneously.
transfer_
source_ balance_ parameters_ mismatch When creating a Transfer, the
payments
parameter insource_
should not be passed in when balancebalance type
is set toissuing
.transfers_
not_ allowed The requested transfer cannot be created. Contact us if you are receiving this error.
url_
invalid The URL provided is invalid.