# Error codes Learn more about error codes and how to resolve them. Stripe logs every successful or failed API request your integration makes. Use [Workbench](https://dashboard.stripe.com/workbench) to review errors and monitor your integration. Some [Errors](https://docs.stripe.com/api/errors.md) include an [error code](https://docs.stripe.com/api/errors.md#errors-code)—a short string with a brief explanation. These codes can help you [handle errors](https://docs.stripe.com/error-handling.md), such as [payment errors](https://docs.stripe.com/error-handling.md#payment-errors). The following is a list of Stripe error codes, their descriptions, and occasionally information about how to resolve them. Every `Error` object links to this list in its [doc_url](https://docs.stripe.com/api/errors.md#errors-doc_url) attribute. You can also trigger certain [specific error codes](https://docs.stripe.com/testing.md#declined-payments) for testing purposes. | Error code | Description | | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `account_closed` | The customer’s bank account has been closed. | | `account_country_invalid_address` | The country of the business address provided doesn’t match the country of the account. Businesses must be located in the same country as the account. | | `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_error_country_change_requires_additional_steps` | Your account has already onboarded as a Connect platform. Changing your country requires additional steps. Contact Stripe support for more information. | | `account_number_invalid` | The bank account number provided is invalid (for example, missing digits). Bank account information varies from country to country. We recommend creating validations in your entry forms based on the [bank account formats](https://docs.stripe.com/connect/payouts-bank-accounts.md) we provide. | | `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](https://dashboard.stripe.com/apikeys) and update your integration to use them. | | `authentication_required` | The payment requires authentication to proceed. If your customer is [off session](https://docs.stripe.com/api/payment_intents/confirm.md#confirm_payment_intent-off_session), notify your customer to return to your application and complete the payment. If you provided the [error_on_requires_action](https://docs.stripe.com/payments/without-card-authentication.md) parameter, then your customer should try another card that doesn’t require authentication. | | `balance_insufficient` | The transfer or payout couldn’t be completed because the associated account doesn’t 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’t be used to charge, either because it isn’t verified yet or it isn’t supported. | | `bank_account_exists` | The bank account provided already exists on the specified [Customer](https://docs.stripe.com/api.md#update_customer-source) 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_verification_failed` | The bank account can’t be verified, either because the microdeposit amounts provided don’t match the actual amounts, or because verification has failed too many times. | | `bank_account_unusable` | The bank account provided can’t 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. | | `capture_charge_authorization_expired` | The charge can’t 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’ve entered all of their information correctly and that there are no issues with their card. | | `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](https://docs.stripe.com/refunds.md) 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](https://docs.stripe.com/refunds.md) has been charged back. See [Disputes](https://docs.stripe.com/disputes.md) 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. Retry the charge later, or [contact us](https://support.stripe.com/email) to request a higher processing limit. | | `charge_exceeds_transaction_limit` | This charge would cause you to exceed your processing limit for this payment type. [Contact us](https://support.stripe.com/contact/login) to request a higher processing limit. | | `charge_invalid_parameter` | One or more provided parameters was not allowed for the given operation on the Charge. See our [API reference](https://docs.stripe.com/api/charges.md) or the returned error message to see which values weren’t correct for that Charge. | | `country_unsupported` | Your platform attempted to create a custom account in a country that’s not yet supported. Make sure that users can only sign up in [countries supported by custom accounts](https://docs.stripe.com/connect/custom-accounts.md#country). | | `country_code_invalid` | The country code provided was invalid. | | `coupon_expired` | The [coupon](https://docs.stripe.com/api.md#coupons) provided for a [subscription](https://docs.stripe.com/api.md#subscriptions) or [order](https://docs.stripe.com/api.md#orders) has expired. Either create a new coupon, or use an existing one that’s valid. | | `customer_max_subscriptions` | The maximum number of subscriptions for a customer has been reached. [Contact us](https://support.stripe.com/email) if you’re receiving this error. | | `customer_max_payment_methods` | The maximum number of [PaymentMethods](https://docs.stripe.com/api/payment_methods.md) for this [Customer](https://docs.stripe.com/api/customers.md) has been reached. Either [detach](https://docs.stripe.com/api/payment_methods/detach.md) some PaymentMethods from this Customer or proceed with a different Customer. | | `customer_tax_location_invalid` | The customer address is missing or not valid for tax purposes. Make sure to provide a [country](https://docs.stripe.com/api/customers/object.md#customer_object-address-country) as a two-letter [ISO code](https://en.wikipedia.org/wiki/ISO_3166-1) and also a [postal_code](https://docs.stripe.com/api/customers/object.md#customer_object-address-postal_code), at minimum. See how to [collect customer addresses](https://docs.stripe.com/tax/customer-locations.md). | | `shipping_address_invalid` | The shipping address information can’t be used to accurately determine tax rates. Verify that address fields such as zip code, state, or province have been added correctly. | | `billing_invalid_mandate` | The Subscription or Invoice attempted payment on a PaymentMethod without an active mandate. To create Subscription or Invoice payments with this PaymentMethod, it must be confirmed on-session with a PaymentIntent or SetupIntent first. | | `email_invalid` | The email address is invalid (for example, not properly formatted). Check that the email address is properly formatted and only includes [allowed characters](https://en.wikipedia.org/wiki/Email_address#Local-part). | | `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. | | `financial_connections_account_inactive` | Data can’t 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. | | `instant_payouts_unsupported` | Instant Payouts are not available for this request. See [Instant payouts](https://support.stripe.com/topics/instant-payouts) for detailed requirements and supported configurations. | | `instant_payouts_limit_exceeded` | You’ve reached your daily processing limits for Instant Payouts. | | `instant_payouts_config_disabled` | This connected account isn’t eligible for Instant Payouts. Ask the platform to enable Instant Payouts. | | `payouts_limit_exceeded` | You’ve reached your daily processing limits for this payout type. | | `insufficient_funds` | The customer’s account has insufficient funds to cover this payment. | | `invalid_characters` | This value provided to the field contains characters that are unsupported by the field. | | `invalid_card_type` | The card provided as an [external account](https://stripe.com/api#external_accounts) isn’t supported for payouts. Provide a non-prepaid debit card instead. | | `invoice_no_customer_line_items` | An invoice can’t be generated for the specified customer as there are no pending invoice items. Verify that the correct customer is being specified or create any necessary invoice items first. | | `invoice_on_behalf_of_not_editable` | You can’t update the `on_behalf_of` property of an invoice after the invoice has been assigned a number. | | `invoice_no_payment_method_types` | An invoice can’t be finalized because there are no payment method types available to process the payment. Your [invoice template settings](https://dashboard.stripe.com/settings/billing/invoice) or the invoice’s [payment_settings](https://docs.stripe.com/api/invoices/object.md#invoice_object-payment_settings) might be restricting which payment methods are available, or you might need to activate more [payment methods](https://dashboard.stripe.com/settings/payments) in the Dashboard. | | `invoice_no_subscription_line_items` | An invoice can’t be generated for the specified subscription as there are no pending invoice items. Verify 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](https://docs.stripe.com/billing/invoices/subscription.md#adding-upcoming-invoice-items) that will be applied to the next invoice. You can either [manually generate](https://docs.stripe.com/billing/invoices/subscription.md#generating-invoices) the next invoice or wait for it to be automatically generated at the end of the billing cycle. | | `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. | | `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. | | `no_account` | The bank account couldn’t be located. | | `debit_not_authorized` | The customer has notified their bank that this payment was unauthorized. | | `bank_account_restricted` | The customer’s account can’t be used with the payment method. | | `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. | | `parameter_invalid_empty` | One or more required values weren’t 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 the [API reference](https://docs.stripe.com/api.md) to see 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](https://docs.stripe.com/api.md) 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. See the [API reference](https://docs.stripe.com/api.md) or the returned error message to see which values are permitted when creating or modifying the specified resource. | | `acss_debit_session_incomplete` | The ACSS debit session isn’t ready to transition to complete status yet. Try the request again later. | | `payment_method_billing_details_address_missing` | The PaymentMethod’s billing details is missing address details. Update the missing fields and try again. | | `payment_method_unsupported_type` | The API only supports payment methods of certain types. | | `payment_method_customer_decline` | The customer didn’t approve the payment. Provide a new payment method to attempt to fulfill this intent again. | | `payment_method_microdeposit_verification_attempts_exceeded` | You’ve exceeded the number of allowed verification attempts. | | `intent_invalid_state` | Intent isn’t in the state that’s required to perform the operation. | | `intent_verification_method_missing` | Intent doesn’t have verification method specified in its `PaymentMethodOptions` object. | | `payment_method_invalid_parameter` | Invalid parameter was provided in the payment method object. See the [API reference](https://docs.stripe.com/api.md) or the returned error message for more context. | | `payment_method_invalid_parameter_testmode` | The parameter provided for payment method isn’t allowed to be used in testmode. See the [API reference](https://docs.stripe.com/api.md) or the returned error message for more context. | | `payment_method_provider_timeout` | The payment method failed due to a timeout. Check the [last_payment_error](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-last_payment_error) or [last_setup_error](https://docs.stripe.com/api/setup_intents/object.md#setup_intent_object-last_setup_error) property on the PaymentIntent or SetupIntent respectively for more details, and provide a new payment method to attempt to fulfill this intent again. | | `payment_method_provider_decline` | The payment or setup attempt was declined by the issuer or customer. Check the [last_payment_error](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-last_payment_error) or [last_setup_error](https://docs.stripe.com/api/setup_intents/object.md#setup_intent_object-last_setup_error) property on the PaymentIntent or SetupIntent respectively for more details, and provide a new payment method to attempt to fulfill this intent again. | | `payment_method_microdeposit_verification_amounts_mismatch` | The amounts provided don’t match the amounts that were sent to the bank account. | | `payment_method_microdeposit_verification_descriptor_code_mismatch` | The verification code provided doesn’t match the one sent to the bank account. | | `payment_method_microdeposit_verification_amounts_invalid` | You must provide exactly two microdeposit amounts. | | `payment_method_microdeposit_failed` | Microdeposits were failed to be deposited into the customer’s bank account. Check the account, institution, transit numbers, and currency type. | | `payment_method_microdeposit_verification_timeout` | Payment method should be verified with microdeposits within the required period. | | `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’t be used. [Contact us](https://support.stripe.com/email) if you want to attempt to use these bank account credentials. | | `payment_method_unactivated` | The operation can’t be performed because the payment method used hasn’t been activated. Activate the payment method in the [Dashboard](https://dashboard.stripe.com/account/payments/settings), then try again. | | `payment_method_currency_mismatch` | The currency specified doesn’t 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_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_not_available` | The payment processor for the provided payment method is temporarily unavailable. Try a different payment method or retry later with the same payment method. | | `payment_intent_unexpected_state` | The PaymentIntent’s state was incompatible with the operation you were trying to perform. | | `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. See the [API reference](https://docs.stripe.com/api/payment_intents.md) or the returned error message to see which values weren’t correct for that PaymentIntent. | | `payment_intent_mandate_invalid` | The provided mandate is invalid and can’t be used for the payment intent. | | `setup_intent_mandate_invalid` | The provided mandate is invalid and can’t be used for the setup intent. | | `invalid_mandate_reference_prefix_format` | The provided prefix used to generate the mandate reference is invalid. | | `payment_intent_konbini_rejected_confirmation_number` | The `confirmation_number` provided in `payment_method_options[konbini]` was rejected by the processing partner at time of PaymentIntent confirmation. | | `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_payment_attempt_failed` | The latest payment attempt for the PaymentIntent has failed. See the [last_payment_error](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-last_payment_error) property on the PaymentIntent for more details, and provide a new payment method to attempt to fulfill this PaymentIntent again. | | `payment_intent_payment_attempt_expired` | The latest payment attempt for the PaymentIntent has expired. Check the [last_payment_error](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-last_payment_error) property on the PaymentIntent for more details, and provide a new payment method to attempt to fulfill this PaymentIntent again. | | `setup_intent_setup_attempt_expired` | The latest setup attempt for the SetupIntent has expired. Check the [last_setup_error](https://docs.stripe.com/api/setup_intents/object.md#setup_intent_object-last_setup_error) property on the SetupIntent for more details, and provide a new payment method to attempt to complete this SetupIntent again. | | `payment_intent_amount_reconfirmation_required` | You provided information that changed the total amount of your PaymentIntent. Show the updated amount to your customer and try again. | | `payment_intent_automatic_tax_incomplete` | When `automatic_tax[enabled]=true`, you must provide enough location information to accurately determine tax rates for the buyer to confirm the PaymentIntent and collect taxes. | | `payment_intent_action_required` | The provided payment method requires customer actions to complete, but `error_on_requires_action` was set. To add this payment method to your integration, we recommend that you first [upgrade your integration to handle actions](https://docs.stripe.com/payments/payment-intents/upgrade-to-handle-actions.md). | | `platform_account_required` | Only Stripe Connect platforms can work with other accounts. You can set up a Stripe Connect platform in the [Dashboard](https://dashboard.stripe.com/account/applications/settings). | | `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_unexpected_state` | The SetupIntent’s state was incompatible with the operation you were trying to perform. | | `setup_intent_invalid_parameter` | One or more provided parameters was not allowed for the given operation on the SetupIntent. See the [API reference](https://docs.stripe.com/api/setup_intents.md) or the returned error message to see which values weren’t correct for that SetupIntent. | | `setup_attempt_failed` | The latest setup attempt for the SetupIntent has failed. Check the `last_setup_error` property on the SetupIntent for more details, and provide a new payment method to attempt to set it up again. | | `status_transition_invalid` | The requested status transition isn’t valid. | | `payouts_not_allowed` | Payouts have been disabled on the connected account. Check the connected account’s status to see if any [additional information](https://docs.stripe.com/connect/identity-verification.md) needs to be provided, or if payouts have been disabled for [another reason](https://docs.stripe.com/connect/handling-api-verification.md). | | `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](https://dashboard.stripe.com/account/apikeys) and update your integration, or contact the user and reconnect the account. | | `postal_code_invalid` | The postal code provided was incorrect. | | `refer_to_customer` | The customer has stopped the payment with their bank. Contact them for details and to arrange payment. | | `resource_already_exists` | A resource with a user-specified ID (for example, plan or coupon) already exists. Use a different, unique value for `id` and try again. | | `resource_missing` | The ID provided isn’t valid. Either the resource doesn’t exist, or an ID for a different resource has been provided. | | `routing_number_invalid` | The bank routing number provided is invalid. | | `stripe_tax_inactive` | Stripe Tax hasn’t been activated on your account. See the [setup documentation](https://docs.stripe.com/tax/set-up.md) to get started. | | `clearing_code_unsupported` | The clearing code provided isn’t supported. | | `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](https://dashboard.stripe.com/account/apikeys) and update your integration to use them. | | `state_unsupported` | Occurs when providing the `legal_entity` information for a U.S. custom account, if the provided state isn’t supported. (This is mostly associated states and territories.) | | `tax_id_invalid` | The tax ID number provided is invalid (for example, missing digits). Tax ID information varies from country to country, but must be at least nine digits. | | `tax_id_prohibited` | A tax identifier may not be provided on this payment method as it isn’t required. | | `terminal_location_country_unsupported` | Terminal is currently only available in some countries. Locations in your country can’t be created in live mode. | | `terminal_reader_offline` | Reader is currently offline. Ensure the reader is powered on and connected to the internet before retrying your request. See the [integration guide](https://docs.stripe.com/terminal/payments/collect-card-payment.md?terminal-sdk-platform=server-driven#handle-errors) for details on how to handle this error. | | `terminal_reader_timeout` | There was a timeout when sending this command to the reader. See the [integration guide](https://docs.stripe.com/terminal/payments/collect-card-payment.md?terminal-sdk-platform=server-driven#handle-errors) for details on how to handle this error. | | `terminal_reader_busy` | Reader is currently busy processing another request. See the [integration guide](https://docs.stripe.com/terminal/payments/collect-card-payment.md?terminal-sdk-platform=server-driven#handle-errors) 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. Contact [Stripe support](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. Register the reader to a new Location. See [Manage locations](https://stripe.com/terminal/fleet/locations) for more information. | | `terminal_reader_invalid_location_for_payment` | Reader can’t take payments in the currently registered Location. Register the reader to a new Location. See [Manage locations](https://stripe.com/terminal/fleet/locations) for more information. | | `tls_version_unsupported` | Your integration is using an older version of [TLS](https://docs.stripe.com/security.md) that’s 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_in_use` | The token provided is currently being used in another request. This occurs if your integration is making duplicate requests simultaneously. | | `transfers_not_allowed` | The requested transfer can’t be created. [Contact us](https://support.stripe.com/email) if you’re receiving this error. | | `transfer_source_balance_parameters_mismatch` | When creating a Transfer, the `payments` parameter in `source_balance` shouldn’t be passed in when balance `type` is set to `issuing`. | | `url_invalid` | The URL provided is invalid. | | `not_allowed_on_standard_account` | Transfers and payouts on behalf of a Standard connected account aren’t allowed. | | `lock_timeout` | This object can’t 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 [Object lock timeouts](https://docs.stripe.com/rate-limits.md#object-lock-timeouts) for more details. | | `cardholder_phone_number_required` | You must have a `phone_number` on file for Issuing Cardholders who will be creating EU cards. You can’t create EU cards without a `phone_number` on file for the cardholder. See the [3DS Secure](https://docs.stripe.com/issuing/3d-secure.md) for more details. | | `return_intent_already_processed` | You can’t confirm this refund as it’s already processed. | | `refund_disputed_payment` | You can’t refund a disputed payment. | | `progressive_onboarding_limit_exceeded` | Progressive onboarding limit has been reached for the platform. | | `forwarding_api_inactive` | The Vault and Forward API is currently not accessible with this account and configuration. [Contact us](https://support.stripe.com/contact) if you’re 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_timeout` | The request to the destination endpoint timed out. This typically indicates a problem with the destination endpoint, rather than with Stripe. | | `forwarding_api_upstream_connection_error` | Stripe didn’t receive a response from the destination endpoint. This typically indicates a problem with the destination endpoint, rather than with Stripe. | | `forwarding_api_retryable_upstream_error` | The destination endpoint appears to be offline or unresponsive, preventing Stripe from completing the request. Retry the request later. | | `forwarding_api_upstream_error` | The destination endpoint appears to be offline or unresponsive, preventing Stripe from completing the request. You might want to investigate the state of the request on the third party because bytes might have been sent and the third-party state could be indeterminate. | | `alipay_upgrade_required` | This method for creating Alipay payments isn’t supported anymore. Upgrade your integration to use [Sources](https://docs.stripe.com/sources/alipay.md) instead. | | `bitcoin_upgrade_required` | This method for creating Bitcoin payments isn’t supported anymore. Upgrade your integration to use [Sources](https://docs.stripe.com/sources.md) instead. | | `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. To learn more, see [decline codes](https://docs.stripe.com/declines/codes.md). | | `charge_expired_for_capture` | The charge can’t be captured because the authorization has expired. Authorization and capture charges must be captured within a set number of days (7 by default). | | `expired_card` | The card has expired. Check the expiration date or use a different card. | | `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. | | `invalid_tax_location` | The specified location is invalid. Check the [Supported address formats](https://docs.stripe.com/tax/customer-locations.md#supported-formats) for the address formats supported when calculating tax. | | `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](https://docs.stripe.com/currencies.md#minimum-and-maximum-charge-amounts). | | `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_number` | The card number is invalid. Check the card details or use a different card. | | `invalid_source_usage` | The source can’t be used because it isn’t in the correct state (for example, a charge request is trying to use a source with a `pending`, `failed`, or `consumed` status). Check the [status](https://docs.stripe.com/api.md#source_object-status) of the source you’re attempting to use. | | `livemode_mismatch` | Test and live mode API keys, requests, and objects are only available within the corresponding mode. | | `missing` | Both a customer and source ID have been provided, but the source hasn’t been saved to the customer. To create a charge for a customer with a specified source, you must first save the card details. | | `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. | | `rate_limit` | Too many requests hit the API too quickly. We recommend an exponential backoff of your requests. | | `sepa_unsupported_account` | Your account doesn’t support [SEPA](https://docs.stripe.com/sources/sepa-debit.md) payments. | | `shipping_calculation_failed` | Shipping calculation failed because the information provided was either incorrect or couldn’t 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. | | `taxes_calculation_failed` | Tax calculation for the order failed. | | `testmode_charges_only` | Your account hasn’t been activated and can only make test charges. [Activate your account](https://dashboard.stripe.com/account/onboarding) in the Dashboard to begin processing live charges. |