Stripe
- Cards
- Digital Wallets
- Bank Transfer
- Direct Debit
- Buy Now Pay Later
Stripe is a payment provider used by businesses to accept and manage online payments across cards and supported local payment methods.
Struggling with your approval ratio for this payment provider?
contact SmartRetry team →- Published
- Last updated

Proceed payment with
Features
Card and local payment method acceptance
Accept major card brands and selected local payment methods depending on your region and account. Useful for ecommerce, subscriptions, and platform use cases.
Authorization and capture controls
Supports common authorization flows and capture timing options. Helps align payment collection with fulfillment and service delivery.
Optimization for authorization success
Includes tools and data signals that can help monitor approval rates and investigate card declines. Provides decline insights to support troubleshooting with issuers and customers.
Authentication and SCA support
Offers support for 3D Secure and region-specific Strong Customer Authentication requirements. Helps reduce friction by applying authentication where needed.
Security and compliance features
Provides tokenization and security controls designed to help reduce PCI scope when used as intended. Includes risk and fraud tooling options depending on your setup.
Disputes and chargeback handling
Centralized dispute intake, evidence submission, and tracking. Helps teams manage chargebacks and representments with consistent workflows.
Reliability and operational tooling
Provides dashboards, logs, and webhooks for payment monitoring and incident response. Supports reporting and reconciliation for finance and ops teams.
💡Tip from SmartRetry For card declines, segment results by decline code, issuer country, and card type before making changes; then A/B test adjustments (e.g., retries or 3DS settings) on a small traffic slice.
Currencies
Available in
- 🌍Global
FAQ
Statuses
| Code | Description | Level | Frequency | Resolution |
|---|---|---|---|---|
| PaymentIntent Status | ||||
| requires_payment_method | Requires Payment Method The PaymentIntent has been created but no payment method has been attached yet, or the previous payment attempt failed and a new payment method is needed. The merchant/developer must collect and attach a payment method before proceeding. | Pending | Common | T0 |
| requires_confirmation | Requires Confirmation A payment method has been attached to the PaymentIntent but it has not yet been confirmed. The server must explicitly call the confirm endpoint to initiate the payment attempt. Common in manual confirmation_method flows. | Pending | Occasional | T0 |
| requires_action | Requires Action The payment requires additional customer action to proceed, such as 3D Secure authentication, a bank redirect, or providing a one-time code. The next_action field on the PaymentIntent describes what the customer must do. Merchants must handle this client-side. | Pending, Info | Common | T0 |
| processing | Processing The payment has been initiated and Stripe is waiting for confirmation from the payment method provider. Common for asynchronous payment methods like ACH debits or bank transfers, which can take days to settle. For cards, this state is typically very brief. | Pending | Occasional | T0 |
| requires_capture | Requires Capture The payment has been authorized and funds are on hold, but have not yet been captured. This occurs when capture_method is set to 'manual'. The merchant must explicitly call the capture endpoint. Uncaptured PaymentIntents auto-cancel after 7 days by default. | Pending, Info | Occasional | T0 |
| succeeded | Succeeded The payment has been successfully completed and funds are secured in the merchant's Stripe account. This is a terminal success state. The merchant can now safely fulfill the order. No further action is needed on the PaymentIntent. | Success | Common | T0 |
| canceled | Canceled The PaymentIntent has been canceled and no further charges will be made. This is a terminal state. Cancellation can be triggered by the merchant (duplicate, fraudulent, requested_by_customer, abandoned) or automatically by Stripe (failed_invoice, void_invoice, automatic, expired). Any held funds are released. | Error, Info | Occasional | T0 |
| Charge Status | ||||
| succeeded | Charge Succeeded The Charge object status indicating the charge was successfully processed and funds were captured from the customer's payment method. The merchant can confirm payment was collected. | Success | Common | T0 |
| PENDING | Charge Pending The Charge object status indicating the charge has been submitted but awaiting final confirmation from the bank or payment network. Common with ACH/bank debit methods that require days to clear. The charge may still fail. | Pending | Occasional | T0 |
| failed | Charge Failed The Charge object status indicating the charge attempt was declined or failed. Common causes include insufficient funds, invalid card details, or issuer decline. The merchant should prompt the customer to try a different payment method. | Error | Common | T2 |
| Refund Status | ||||
| PENDING | Refund Pending The refund has been created and submitted but has not yet been confirmed by the card network or bank. Refunds typically appear on the customer's statement within 5-10 business days. The merchant should not re-issue the refund while in this state. | Pending | Common | T0 |
| succeeded | Refund Succeeded The refund has been successfully processed and the funds have been returned to the customer's original payment method. This is the terminal success state for a refund. | Success | Common | T0 |
| failed | Refund Failed The refund attempt failed. Possible failure reasons include: lost_or_stolen_card, expired_or_canceled_card, charge_for_pending_refund_disputed, insufficient_funds, declined, merchant_request, or unknown. Merchants should check the failure_reason field and may need to refund via alternative means. | Error | Occasional | T1 |
| requires_action | Refund Requires Action The refund requires additional customer action before it can be processed. This occurs for payment methods without native refund support (e.g., Konbini, PromptPay), where Stripe must collect bank account details from the customer via email. The merchant should ensure the customer receives and acts on the instructions email. | Pending, Info | Rare | T0 |
| canceled | Refund Canceled The refund was canceled before it reached the customer. Only refunds in requires_action state (awaiting customer banking info) or certain card refunds within a short window can be canceled. Treated as a refund failure; failure_reason and failure_balance_transaction are populated. | Error, Info | Rare | T0 |
| SetupIntent Status | ||||
| requires_payment_method | SetupIntent Requires Payment Method The SetupIntent has been created but no payment method is attached, or the previous setup attempt failed. The customer must provide their payment credentials before the setup can proceed. | Pending | Common | T0 |
| requires_confirmation | SetupIntent Requires Confirmation A payment method has been attached to the SetupIntent but it has not yet been confirmed. The server must call the confirm endpoint to proceed with saving the payment method. | Pending | Occasional | T0 |
| requires_action | SetupIntent Requires Action The payment method setup requires additional customer action, such as 3D Secure authentication or a bank redirect. The next_action field specifies what the customer needs to do. This is common for cards in SCA-regulated regions. | Pending, Info | Occasional | T0 |
| processing | SetupIntent Processing The SetupIntent has been confirmed and Stripe is processing the setup with the payment method provider. This state is brief for most payment methods. | Pending | Rare | T0 |
| canceled | SetupIntent Canceled The SetupIntent has been canceled. Setup is abandoned and any further operations on it will fail. Can only be canceled when in requires_payment_method, requires_confirmation, or requires_action states. Cannot be reversed. | Error, Info | Occasional | T0 |
| succeeded | SetupIntent Succeeded The payment method has been successfully saved and is ready for future off-session or on-session payments. This is the terminal success state of the SetupIntent lifecycle. | Success | Common | T0 |
| Error & Decline Codes | ||||
| account_closed | Account Closed The customer's bank account has been closed. A different payment method is required. | Error, Hard decline | Occasional | T3 |
| account_country_invalid_address | Account Country Invalid Address The country of the business address provided doesn't match the country of the Stripe account. Businesses must be located in the same country as their account. | Error | Rare | T1 |
| account_error_country_change_requires_additional_steps | Account Country Change Requires Steps The account has already onboarded as a Connect platform. Changing the country requires contacting Stripe support. | Error | Rare | T1 |
| account_holder_name_verification_failed | Account Holder Name Verification Failed The account holder name provided doesn't match the name on file for the bank account. Common with Bacs Direct Debits and Pay.UK payer name verification. | Error, Decline | Occasional | T0 |
| account_invalid | Account Invalid The account ID provided in the Stripe-Account header is invalid. Verify the account ID in your requests. | Error | Occasional | T1 |
| account_number_invalid | Account Number Invalid The bank account number is invalid, e.g. missing digits. Validate against country-specific bank account formats. | Error | Occasional | T0 |
| acss_debit_session_incomplete | ACSS Debit Session Incomplete The ACSS debit session isn't ready to transition to complete status. Retry the request later. | Error | Rare | T0 |
| alipay_upgrade_required | Alipay Upgrade Required This method for creating Alipay payments is no longer supported. Upgrade the integration to use Sources. | Error | Rare | T1 |
| amount_too_large | Amount Too Large The specified charge amount exceeds the maximum allowed. Use a lower amount and retry. | Error | Occasional | T0 |
| amount_too_small | Amount Too Small The specified charge amount is below the minimum allowed for the currency. Use a higher amount and retry. | Error | Occasional | T0 |
| api_key_expired | API Key Expired The API key provided has expired. Obtain current keys from the Stripe Dashboard and update the integration. | Error | Rare | T1 |
| authentication_required | Authentication Required The payment requires 3D Secure or other authentication to proceed. For off-session payments, notify the customer to return and authenticate. | Decline, Soft decline | Common | T0 |
| balance_insufficient | Balance Insufficient The transfer or payout failed because the associated Stripe account doesn't have sufficient available balance. | Error | Occasional | T1 |
| balance_invalid_parameter | Balance Invalid Parameter An invalid parameter was provided in the balance method object. Check API documentation for context. | Error | Rare | T0 |
| bank_account_bad_routing_numbers | Bank Account Bad Routing Numbers The bank account is known to not support the specified currency. | Error | Rare | T0 |
| bank_account_declined | Bank Account Declined The bank account can't be charged because it isn't verified yet or isn't supported. | Error, Decline | Occasional | T0 |
| bank_account_exists | Bank Account Exists The bank account already exists on the specified Customer object. Use the existing bank account or attach it to a different customer. | Error | Occasional | T0 |
| bank_account_restricted | Bank Account Restricted The customer's bank account can't be used with this payment method. | Error, Decline | Rare | T2 |
| bank_account_verification_failed | Bank Account Verification Failed The bank account can't be verified because the microdeposit amounts don't match or too many verification attempts have failed. | Error | Occasional | T0 |
| bank_account_unusable | Bank Account Unusable The bank account can't be used at all and a different bank account must be provided. | Error, Hard decline | Rare | T3 |
| bank_account_unverified | Bank Account Unverified A Connect platform is attempting to share an unverified bank account with a connected account. | Error | Rare | T1 |
| billing_invalid_mandate | Billing Invalid Mandate A Subscription or Invoice attempted payment on a PaymentMethod without an active mandate. Confirm the payment method on-session first. | Error | Occasional | T0 |
| bitcoin_upgrade_required | Bitcoin Upgrade Required This method for creating Bitcoin payments is no longer supported. Upgrade the integration to use Sources. | Error | Rare | T1 |
| card_decline_rate_limit_exceeded | Card Decline Rate Limit Exceeded This card has been declined too many times. The card can be retried after 24 hours. Contact the customer to verify their card details. | Error, Hard decline | Occasional | T2 |
| card_declined | Card Declined The card has been declined. Inspect the decline_code field on the error for the specific issuer reason. | Decline | Common | T2 |
| cardholder_phone_number_required | Cardholder Phone Number Required A phone_number on file is required for Issuing Cardholders creating EU cards due to 3DS requirements. | Error | Rare | T0 |
| capture_charge_authorization_expired | Capture Authorization Expired The charge can't be captured because the authorization has expired. A new authorization is needed. | Error | Occasional | T0 |
| capture_unauthorized_payment | Capture Unauthorized Payment The charge being captured has not been authorized for payment capture. | Error | Rare | T0 |
| charge_already_captured | Charge Already Captured The charge has already been captured. Update the request to use an uncaptured charge ID. | Error | Occasional | T0 |
| charge_already_refunded | Charge Already Refunded The charge has already been fully refunded. Use a different charge ID that hasn't been refunded. | Error | Occasional | T0 |
| charge_disputed | Charge Disputed The charge has been charged back (disputed). Handle through the Stripe Disputes flow rather than refunding. | Error | Occasional | T1 |
| charge_exceeds_source_limit | Charge Exceeds Source Limit This charge would exceed the rolling-window processing limit for this source type. Retry later or contact Stripe for a higher limit. | Error | Rare | T1 |
| charge_exceeds_transaction_limit | Charge Exceeds Transaction Limit This charge would exceed the processing limit for this payment type. Contact Stripe to request a higher limit. | Error | Rare | T1 |
| charge_expired_for_capture | Charge Expired for Capture The auth-and-capture charge can't be captured because the authorization window (default 7 days) has elapsed. | Error | Occasional | T0 |
| charge_invalid_parameter | Charge Invalid Parameter One or more parameters are not allowed for the given operation on the Charge object. Check the API reference. | Error | Occasional | T0 |
| clearing_code_unsupported | Clearing Code Unsupported The clearing code provided isn't supported for this transaction. | Error | Rare | T0 |
| country_code_invalid | Country Code Invalid The country code provided is not a valid ISO 3166-1 alpha-2 code. | Error | Occasional | T0 |
| country_unsupported | Country Unsupported The platform attempted to create a custom Connect account in an unsupported country. | Error | Rare | T3 |
| coupon_expired | Coupon Expired The coupon applied to the subscription or order has expired. Create a new coupon or use a valid one. | Error | Occasional | T0 |
| customer_max_payment_methods | Customer Max Payment Methods The customer has reached the maximum number of PaymentMethods. Detach some before adding new ones. | Error | Rare | T0 |
| customer_max_subscriptions | Customer Max Subscriptions The maximum number of subscriptions for a customer has been reached. Contact Stripe support. | Error | Rare | T1 |
| customer_tax_location_invalid | Customer Tax Location Invalid The customer address is missing or invalid for tax calculation purposes. Provide at minimum a country and postal code. | Error | Occasional | T0 |
| debit_not_authorized | Debit Not Authorized The customer notified their bank that this ACH or direct debit payment was unauthorized. | Decline, Hard decline | Occasional | T2 |
| email_invalid | Email Invalid The email address is invalid or improperly formatted. | Error | Occasional | T0 |
| expired_card | Expired Card The card has expired. The customer should use a different card or update their card details. | Decline, Hard decline | Common | T3 |
| financial_connections_account_inactive | Financial Connections Account Inactive Data can't be refreshed on inactive Financial Connections accounts. | Error | Rare | T2 |
| financial_connections_no_successful_transaction_refresh | Financial Connections No Transaction Refresh Transaction data can only be retrieved for accounts that have had at least one successful transaction refresh. | Error | Rare | T0 |
| forwarding_api_inactive | Forwarding API Inactive The Vault and Forward API is not accessible with this account configuration. Contact Stripe support. | Error | Rare | T1 |
| forwarding_api_invalid_parameter | Forwarding API Invalid Parameter An invalid parameter was provided in a Vault and Forward API request. | Error | Rare | T0 |
| forwarding_api_retryable_upstream_error | Forwarding API Retryable Upstream Error The destination endpoint is offline or unresponsive. Retry the request later. | Error | Rare | T0 |
| forwarding_api_upstream_connection_error | Forwarding API Upstream Connection Error Stripe received no response from the destination endpoint, likely a problem with the destination. | Error | Rare | T1 |
| forwarding_api_upstream_connection_timeout | Forwarding API Upstream Timeout The request to the destination endpoint timed out, likely a problem with the destination. | Error | Rare | T1 |
| forwarding_api_upstream_error | Forwarding API Upstream Error The destination endpoint is offline or unresponsive. Bytes may have been sent; check third-party state before retrying. | Error | Rare | T1 |
| idempotency_key_in_use | Idempotency Key In Use The idempotency key is currently being used in another concurrent request. Avoid duplicate simultaneous requests. | Error | Occasional | T0 |
| incorrect_address | Incorrect Address The billing address provided does not match the card issuer's records. Customer should re-enter the correct address. | Decline, Soft decline | Common | T0 |
| incorrect_cvc | Incorrect CVC The CVC/CVV security code is incorrect. Customer should re-enter the correct CVC. | Decline, Soft decline | Common | T0 |
| incorrect_number | Incorrect Number The card number is incorrect. Customer should retry with the correct card number. | Decline, Hard decline | Common | T0 |
| incorrect_zip | Incorrect ZIP The postal/ZIP code is incorrect. Customer should retry with the correct billing postal code. | Decline, Soft decline | Common | T0 |
| instant_payouts_config_disabled | Instant Payouts Config Disabled The connected account isn't eligible for Instant Payouts. The platform must enable Instant Payouts for the account. | Error | Rare | T1 |
| instant_payouts_limit_exceeded | Instant Payouts Limit Exceeded The daily processing limit for Instant Payouts has been reached. | Error | Occasional | T2 |
| instant_payouts_unsupported | Instant Payouts Unsupported Instant Payouts aren't available for this request. Check Stripe's Instant Payout requirements and supported configurations. | Error | Rare | T3 |
| insufficient_funds | Insufficient Funds The customer's account or card doesn't have enough funds to complete the purchase. | Decline, Soft decline | Common | T3 |
| intent_invalid_state | Intent Invalid State The PaymentIntent or SetupIntent is not in the required state to perform this operation. | Error | Occasional | T0 |
| intent_verification_method_missing | Intent Verification Method Missing - | Error | Rare | T0 |
| invalid_card_type | Invalid Card Type The card provided as an external account isn't supported for payouts. Use a non-prepaid debit card. | Error | Rare | T3 |
| invalid_characters | Invalid Characters A field value contains characters that are unsupported for that field. | Error | Occasional | T0 |
| invalid_charge_amount | Invalid Charge Amount The charge amount is not a positive integer in the smallest currency unit, or exceeds allowed min/max amounts. | Error | Occasional | T0 |
| invalid_cvc | Invalid CVC The CVC security code is invalid. Customer should check their card and retry with the correct code. | Decline, Soft decline | Common | T0 |
| invalid_expiry_month | Invalid Expiry Month The card's expiration month is invalid. Customer should verify and re-enter the correct expiration date. | Decline, Error | Occasional | T0 |
| invalid_expiry_year | Invalid Expiry Year The card's expiration year is invalid. Customer should verify and re-enter the correct expiration date. | Decline, Error | Occasional | T0 |
| invalid_mandate_reference_prefix_format | Invalid Mandate Reference Prefix Format The prefix used to generate the mandate reference is invalid. | Error | Rare | T0 |
| invalid_number | Invalid Number The card number is invalid (fails Luhn check or wrong format). Customer should check and re-enter card details. | Decline, Error | Common | T0 |
| invalid_source_usage | Invalid Source Usage The source can't be used because it's in the wrong state (e.g., pending, failed, or consumed). Check the source status before charging. | Error | Occasional | T0 |
| invalid_tax_location | Invalid Tax Location The location specified is invalid for tax calculation. Check Stripe's supported address formats. | Error | Occasional | T0 |
| invoice_no_customer_line_items | Invoice No Customer Line Items An invoice can't be generated for this customer because there are no pending invoice items. | Error | Rare | T0 |
| invoice_no_payment_method_types | Invoice No Payment Method Types An invoice can't be finalized because no payment method types are available due to invoice template or payment settings restrictions. | Error | Rare | T1 |
| invoice_no_subscription_line_items | Invoice No Subscription Line Items An invoice can't be generated for this subscription because there are no pending invoice items. | Error | Rare | T0 |
| invoice_not_editable | Invoice Not Editable The invoice can no longer be edited. Add invoice items to the next billing cycle instead. | Error | Occasional | T0 |
| invoice_on_behalf_of_not_editable | Invoice On-Behalf-Of Not Editable The on_behalf_of property of an invoice can't be updated after the invoice has been assigned a number. | Error | Rare | T0 |
| invoice_payment_intent_requires_action | Invoice Payment Intent Requires Action The invoice payment requires additional customer action (e.g., 3DS). Complete via the associated PaymentIntent. | Error, Soft decline | Occasional | T0 |
| invoice_upcoming_none | Invoice Upcoming None There is no upcoming invoice to preview for this customer. Only customers with active subscriptions or pending items have previewable invoices. | Error | Rare | T0 |
| livemode_mismatch | Livemode Mismatch Test and live mode API keys and objects are only usable within their respective modes. Don't mix test and live resources. | Error | Occasional | T1 |
| lock_timeout | Lock Timeout The object can't be accessed because another API request is currently using it. Retry the request or serialize concurrent access. | Error | Occasional | T0 |
| missing | Missing Source on Customer Both a customer ID and a source ID were provided but the source hasn't been saved to the customer. Save the card first. | Error | Occasional | T0 |
| no_account | No Account The bank account couldn't be located. Verify the routing and account numbers. | Error, Decline | Occasional | T0 |
| not_allowed_on_standard_account | Not Allowed on Standard Account Transfers and payouts on behalf of Standard connected accounts aren't permitted. | Error | Rare | T1 |
| out_of_inventory | Out of Inventory One or more line items are out of stock. Update inventory quantities before retrying. | Error | Occasional | T0 |
| parameter_invalid_empty | Parameter Invalid Empty One or more required values weren't provided. Ensure all required parameters are included in the request. | Error | Common | T0 |
| parameter_invalid_integer | Parameter Invalid Integer A parameter requires an integer but received a different type. Check the API reference for expected data types. | Error | Occasional | T0 |
| parameter_invalid_string_blank | Parameter Invalid String Blank One or more values contain only whitespace. Provide non-whitespace string values. | Error | Occasional | T0 |
| parameter_invalid_string_empty | Parameter Invalid String Empty One or more required string values are empty. Strings must contain at least one character. | Error | Common | T0 |
| parameter_missing | Parameter Missing One or more required values are absent. Check the API documentation for required fields on the requested resource. | Error | Common | T0 |
| parameter_unknown | Parameter Unknown The request contains unexpected parameters not recognized by the endpoint. Remove them and retry. | Error | Occasional | T0 |
| parameters_exclusive | Parameters Exclusive Two or more mutually exclusive parameters were provided together. Only one may be used at a time. | Error | Occasional | T0 |
| payment_intent_amount_reconfirmation_required | Payment Intent Amount Reconfirmation Required The total amount changed and must be shown to the customer and reconfirmed before proceeding. | Error | Occasional | T0 |
| payment_intent_action_required | Payment Intent Action Required The payment method requires customer action but error_on_requires_action was set. Upgrade the integration to handle actions. | Error, Soft decline | Occasional | T0 |
| payment_intent_authentication_failure | Payment Intent Authentication Failure The payment method failed authentication on this PaymentIntent. Provide a new payment method to retry. | Decline, Soft decline | Occasional | T0 |
| payment_intent_automatic_tax_incomplete | Payment Intent Automatic Tax Incomplete Insufficient location information was provided to calculate taxes when automatic_tax is enabled. | Error | Occasional | T0 |
| payment_intent_incompatible_payment_method | Payment Intent Incompatible Payment Method The PaymentIntent expected a payment method with different properties than what was provided. | Error | Occasional | T0 |
| payment_intent_invalid_parameter | Payment Intent Invalid Parameter One or more parameters aren't allowed for the given operation on this PaymentIntent. Check the API reference. | Error | Occasional | T0 |
| payment_intent_konbini_rejected_confirmation_number | Konbini Rejected Confirmation Number The konbini confirmation_number was rejected by the processing partner at PaymentIntent confirmation time. | Decline, Error | Rare | T0 |
| payment_intent_mandate_invalid | Payment Intent Mandate Invalid The mandate provided is invalid and can't be used for this PaymentIntent. | Error | Rare | T0 |
| payment_intent_payment_attempt_expired | Payment Intent Attempt Expired The latest payment attempt has expired. Check last_payment_error and provide a new payment method to retry. | Error | Occasional | T0 |
| payment_intent_payment_attempt_failed | Payment Intent Attempt Failed The latest payment attempt failed. Inspect last_payment_error for details and provide a new payment method. | Error, Decline | Common | T2 |
| payment_intent_unexpected_state | Payment Intent Unexpected State The PaymentIntent is in a state incompatible with the requested operation. Check the intent's status before proceeding. | Error | Occasional | T0 |
| payment_method_bank_account_already_verified | Bank Account Already Verified This bank account has already been verified and doesn't need to go through verification again. | Info | Rare | T0 |
| payment_method_bank_account_blocked | Bank Account Blocked The bank account has failed verification too many times and is blocked. Contact Stripe support to attempt re-use. | Error, Hard decline | Rare | T1 |
| payment_method_billing_details_address_missing | Billing Details Address Missing The PaymentMethod's billing details is missing required address fields. Add the missing fields and retry. | Error | Occasional | T0 |
| payment_method_currency_mismatch | Payment Method Currency Mismatch The currency specified doesn't match the currency of the payment method. A payment must be in the same currency as its payment method. | Error | Occasional | T0 |
| payment_method_customer_decline | Payment Method Customer Decline The customer actively declined the payment (e.g., in a bank redirect flow). Provide a new payment method. | Decline, Soft decline | Occasional | T3 |
| payment_method_invalid_parameter | Payment Method Invalid Parameter An invalid parameter was provided in the payment method object. | Error | Occasional | T0 |
| payment_method_invalid_parameter_testmode | Payment Method Invalid Parameter Testmode The parameter provided for the payment method isn't allowed in test mode. | Error | Rare | T0 |
| payment_method_microdeposit_failed | Microdeposit Failed Microdeposits failed to deposit into the customer's bank account. Check account, institution, and transit numbers. | Error | Occasional | T0 |
| payment_method_microdeposit_processing_error | Microdeposit Processing Error Microdeposit transfers can't be sent right now. Retry later. | Error | Rare | T0 |
| payment_method_microdeposit_verification_amounts_invalid | Microdeposit Verification Amounts Invalid Exactly two microdeposit amounts must be provided for verification. | Error | Occasional | T0 |
| payment_method_microdeposit_verification_amounts_mismatch | Microdeposit Amounts Mismatch The amounts provided don't match the actual microdeposit amounts sent to the bank account. | Error | Occasional | T0 |
| payment_method_microdeposit_verification_attempts_exceeded | Microdeposit Verification Attempts Exceeded The maximum number of allowed microdeposit verification attempts has been exceeded. | Error, Hard decline | Rare | T1 |
| payment_method_microdeposit_verification_descriptor_code_mismatch | Microdeposit Descriptor Code Mismatch The descriptor code provided for verification doesn't match the code sent to the bank account. | Error | Occasional | T0 |
| payment_method_microdeposit_verification_timeout | Microdeposit Verification Timeout The payment method was not verified with microdeposits within the required timeframe. | Error, Hard decline | Occasional | T1 |
| payment_method_not_available | Payment Method Not Available The payment processor for this payment method is temporarily unavailable. Retry later or use a different payment method. | Error, Soft decline | Occasional | T0 |
| payment_method_provider_decline | Payment Method Provider Decline The payment or setup attempt was declined by the issuer or customer. Check last_payment_error or last_setup_error and provide a new payment method. | Decline, Soft decline | Common | T2 |
| payment_method_provider_timeout | Payment Method Provider Timeout The payment method failed due to a provider timeout. Check last_payment_error or last_setup_error and retry. | Error, Soft decline | Occasional | T0 |
| payment_method_unactivated | Payment Method Unactivated The payment method hasn't been activated in the Stripe Dashboard. Activate it before using it in production. | Error | Rare | T1 |
| payment_method_unexpected_state | Payment Method Unexpected State The payment method is in a state incompatible with this operation. Verify the payment method's state before proceeding. | Error | Occasional | T0 |
| payment_method_unsupported_type | Payment Method Unsupported Type The API only supports payment methods of specific types. The provided type isn't supported for this operation. | Error | Occasional | T3 |
| payouts_limit_exceeded | Payouts Limit Exceeded The daily processing limit for this payout type has been reached. | Error | Occasional | T2 |
| payouts_not_allowed | Payouts Not Allowed Payouts are disabled on the connected account, possibly due to pending identity verification or another compliance issue. | Error | Occasional | T1 |
| platform_account_required | Platform Account Required Only Stripe Connect platforms can work with other accounts. Set up a Connect platform in the Dashboard. | Error | Rare | T1 |
| platform_api_key_expired | Platform API Key Expired The API key provided by the Connect platform has expired, possibly because a new key was generated or the account was disconnected. | Error | Rare | T1 |
| postal_code_invalid | Postal Code Invalid The postal code provided was incorrect. Customer should verify and re-enter the correct billing postal code. | Decline, Soft decline | Common | T0 |
| processing_error | Processing Error An error occurred while processing the card. Retry later or use a different payment method. | Error, Soft decline | Occasional | T0 |
| product_inactive | Product Inactive The product this SKU belongs to is no longer available for purchase. | Error | Rare | T3 |
| progressive_onboarding_limit_exceeded | Progressive Onboarding Limit Exceeded The progressive onboarding limit for the Connect platform has been reached. | Error | Rare | T1 |
| promotion_code_customer_missing_first_time | Promotion Code Customer Missing First Time A customer must be specified when redeeming a promotion code restricted to first-time transactions. | Error | Rare | T0 |
| promotion_code_customer_not_first_time | Promotion Code Not First Time The promotion code can't be redeemed because the customer has prior transactions and the code is restricted to first-time customers. | Error | Occasional | T0 |
| rate_limit | Rate Limit Too many API requests were made too quickly. Implement exponential backoff to reduce request rate. | Error | Occasional | T0 |
| refer_to_customer | Refer to Customer The customer stopped the ACH/direct debit payment with their bank. Contact the customer to arrange an alternative payment. | Decline, Hard decline | Occasional | T2 |
| refund_disputed_payment | Refund Disputed Payment A disputed payment can't be directly refunded. Manage it through the Stripe Disputes process. | Error | Occasional | T1 |
| resource_already_exists | Resource Already Exists A resource with this user-specified ID (e.g., plan or coupon) already exists. Use a unique ID and retry. | Error | Occasional | T0 |
| resource_missing | Resource Missing The provided ID is invalid or the resource doesn't exist. Verify the ID matches the correct resource type. | Error | Common | T0 |
| return_intent_already_processed | Return Intent Already Processed The refund has already been processed and can't be confirmed again. | Error | Rare | T0 |
| routing_number_invalid | Routing Number Invalid The bank routing number provided is invalid. Verify the routing number before retrying. | Error | Occasional | T0 |
| secret_key_required | Secret Key Required A publishable key was used where a secret key is required. Use the correct secret key from the Stripe Dashboard. | Error | Occasional | T1 |
| sepa_unsupported_account | SEPA Unsupported Account The Stripe account doesn't support SEPA payments. Enable SEPA in account settings. | Error | Rare | T1 |
| setup_attempt_failed | Setup Attempt Failed The latest setup attempt for the SetupIntent failed. Check last_setup_error and provide a new payment method. | Error, Decline | Occasional | T0 |
| setup_intent_authentication_failure | Setup Intent Authentication Failure The payment method failed authentication on this SetupIntent. Provide a new payment method. | Decline, Soft decline | Occasional | T0 |
| setup_intent_invalid_parameter | Setup Intent Invalid Parameter One or more parameters aren't allowed for the given operation on this SetupIntent. | Error | Occasional | T0 |
| setup_intent_mandate_invalid | Setup Intent Mandate Invalid The mandate provided is invalid and can't be used for this SetupIntent. | Error | Rare | T0 |
| setup_intent_setup_attempt_expired | Setup Intent Attempt Expired The latest setup attempt has expired. Check last_setup_error and retry with a new payment method. | Error | Occasional | T0 |
| setup_intent_unexpected_state | Setup Intent Unexpected State The SetupIntent is in a state incompatible with the requested operation. | Error | Occasional | T0 |
| shipping_address_invalid | Shipping Address Invalid The shipping address can't be used to accurately calculate tax rates. Verify zip code, state, or province fields. | Error | Occasional | T0 |
| shipping_calculation_failed | Shipping Calculation Failed Shipping calculation failed because the provided information was incorrect or couldn't be verified. | Error | Occasional | T0 |
| sku_inactive | SKU Inactive The SKU is inactive and no longer available for purchase. Use a different SKU or reactivate the current one. | Error | Rare | T3 |
| state_unsupported | State Unsupported The state provided for a U.S. custom Connect account legal entity isn't supported. Applies to territories and associated states. | Error | Rare | T3 |
| status_transition_invalid | Status Transition Invalid The requested status transition isn't valid for the resource's current state. | Error | Occasional | T0 |
| stripe_tax_inactive | Stripe Tax Inactive Stripe Tax hasn't been activated on the account. Complete the Stripe Tax setup in the Dashboard. | Error | Rare | T1 |
| tax_id_invalid | Tax ID Invalid The tax ID number is invalid, e.g., missing digits. Must be at least 9 digits. | Error | Occasional | T0 |
| tax_id_prohibited | Tax ID Prohibited A tax identifier may not be provided on this payment method as it isn't required. | Error | Rare | T0 |
| taxes_calculation_failed | Taxes Calculation Failed Tax calculation for the order failed. Verify the tax configuration and customer address. | Error | Occasional | T0 |
| terminal_location_country_unsupported | Terminal Location Country Unsupported Stripe Terminal isn't available in the account's country. Terminal locations can't be created in live mode for this country. | Error | Rare | T3 |
| terminal_reader_busy | Terminal Reader Busy The card reader is currently processing another request. Implement proper error handling per Terminal integration guide. | Error | Occasional | T0 |
| terminal_reader_hardware_fault | Terminal Reader Hardware Fault An unrecoverable hardware fault has been detected on the reader. Contact Stripe support with the reader's serial number for replacement. | Error, Hard decline | Rare | T1 |
| terminal_reader_invalid_location_for_activation | Terminal Reader Invalid Location for Activation The reader can't be activated at its currently registered location. Register it to a new location. | Error | Rare | T1 |
| terminal_reader_invalid_location_for_payment | Terminal Reader Invalid Location for Payment The reader can't accept payments at its currently registered location. Register it to a new valid location. | Error | Rare | T1 |
| terminal_reader_offline | Terminal Reader Offline The reader is offline. Ensure it's powered on and connected to the internet before retrying. | Error | Occasional | T0 |
| terminal_reader_timeout | Terminal Reader Timeout The command to the reader timed out. Handle as per the Terminal integration guide. | Error | Occasional | T0 |
| testmode_charges_only | Testmode Charges Only The account is only enabled for test charges. Complete Stripe account onboarding in the Dashboard to process live payments. | Error | Occasional | T1 |
| tls_version_unsupported | TLS Version Unsupported The integration is using an unsupported TLS version. Upgrade to TLS 1.2 or higher. | Error | Rare | T1 |
| token_already_used | Token Already Used The token has already been used. Tokens are single-use; generate a new one before retrying. | Error | Occasional | T0 |
| token_in_use | Token In Use The token is currently being used in another concurrent request. Avoid duplicate simultaneous requests. | Error | Occasional | T0 |
| transfer_source_balance_parameters_mismatch | Transfer Source Balance Parameters Mismatch When creating a Transfer with issuing balance type, the payments parameter in source_balance must not be passed. | Error | Rare | T0 |
| transfers_not_allowed | Transfers Not Allowed The requested transfer can't be created. Contact Stripe support for assistance. | Error | Rare | T1 |
| url_invalid | URL Invalid The URL provided is not valid. Check the format and ensure it includes the correct scheme. | Error | Occasional | T0 |
| authentication_not_handled | Authentication Not Handled A retry was attempted without performing the required 3DS/SCA authentication after an authentication_required decline. Run the EMV 3DS or SCA flow before retrying. | Decline, Soft decline | Occasional | T0 |
| approve_with_id | Approve With ID The payment can't be authorized. Retry; if still failing, the customer should contact their card issuer. | Decline, Soft decline | Rare | T2 |
| call_issuer | Call Issuer The card was declined for an unknown reason. The customer must contact their card issuer for more information. | Decline, Hard decline | Occasional | T2 |
| card_not_supported | Card Not Supported The card doesn't support this type of purchase. Customer should contact their issuer to confirm the card can be used for this purchase type. | Decline, Hard decline | Occasional | T3 |
| card_velocity_exceeded | Card Velocity Exceeded The customer has exceeded the balance, credit limit, or transaction amount limit on their card. Customer should contact their issuer. | Decline, Soft decline | Common | T2 |
| currency_not_supported | Currency Not Supported The card doesn't support the specified currency. Customer should check with their issuer whether the card supports this currency. | Decline, Hard decline | Occasional | T3 |
| do_not_honor | Do Not Honor The card was declined for an unknown reason. Customer must contact their card issuer for more information. | Decline, Hard decline | Common | T2 |
| do_not_try_again | Do Not Try Again (Deprecated) Deprecated decline code. The card was declined for an unknown reason. Customer must contact their card issuer. | Decline, Hard decline | Rare | T2 |
| duplicate_transaction | Duplicate Transaction A transaction with identical amount and card information was submitted very recently. Check whether a recent payment already exists before retrying. | Decline, Error | Occasional | T0 |
| fraudulent | Fraudulent Stripe suspects the payment is fraudulent. Do not reveal this reason to the customer; present as a generic decline instead. | Decline, Hard decline | Occasional | T3 |
| generic_decline | Generic Decline The card was declined for an unknown reason, or Stripe Radar or Adaptive Acceptance blocked the payment. Customer should contact their card issuer. | Decline, Soft decline | Common | T2 |
| incorrect_pin | Incorrect PIN The PIN entered is incorrect (card-present only). Customer should retry with the correct PIN. | Decline, Soft decline | Occasional | T0 |
| invalid_account | Invalid Account The card or associated account is invalid. Customer should contact their card issuer. | Decline, Hard decline | Occasional | T2 |
| invalid_amount | Invalid Amount The payment amount is invalid or exceeds the limit allowed. Customer should contact their issuer if the amount appears correct. | Decline, Error | Occasional | T0 |
| invalid_pin | Invalid PIN The PIN entered is incorrect. Customer should retry with the correct PIN. | Decline, Soft decline | Occasional | T0 |
| issuer_not_available | Issuer Not Available The card issuer couldn't be reached to authorize the payment. Retry; if still failing, the customer should contact their issuer. | Decline, Soft decline | Occasional | T0 |
| lost_card | Lost Card The payment was declined because the card is reported lost. Do not reveal this to the customer; present as a generic decline. | Decline, Hard decline | Rare | T3 |
| merchant_blacklist | Merchant Blocklist The payment matches a value on the Stripe user's block list. Do not reveal this reason; present as a generic decline. | Decline, Hard decline | Occasional | T1 |
| new_account_information_available | New Account Information Available The card or associated account is invalid; new account information may be available from the issuer. | Decline, Soft decline | Rare | T2 |
| no_action_taken | No Action Taken The card was declined for an unknown reason. Customer should contact their card issuer. | Decline, Soft decline | Rare | T2 |
| not_permitted | Not Permitted The payment is not permitted by the issuer. Customer should contact their card issuer. | Decline, Hard decline | Occasional | T2 |
| offline_pin_required | Offline PIN Required The card was declined because it requires an offline PIN. Customer should insert the card and enter a PIN. | Decline, Soft decline | Rare | T0 |
| online_or_offline_pin_required | Online or Offline PIN Required The card requires a PIN. If the reader supports Online PIN, prompt for PIN in-place; otherwise the customer should insert the card and enter a PIN. | Decline, Soft decline | Rare | T0 |
| pickup_card | Pickup Card The card can't be used for this payment, possibly reported lost or stolen. Customer should contact their issuer. | Decline, Hard decline | Rare | T3 |
| pin_try_exceeded | PIN Try Exceeded The maximum number of PIN entry attempts has been exceeded. Customer must use another card or payment method. | Decline, Hard decline | Rare | T3 |
| reenter_transaction | Reenter Transaction The payment couldn't be processed for an unknown issuer reason. Retry; if still failing, the customer should contact their issuer. | Decline, Soft decline | Rare | T0 |
| restricted_card | Restricted Card The card can't be used for this payment, possibly reported lost or stolen. Customer should contact their issuer. | Decline, Hard decline | Rare | T2 |
| revocation_of_all_authorizations | Revocation of All Authorizations The card was declined because all authorizations have been revoked. Customer should contact their issuer. | Decline, Hard decline | Rare | T2 |
| revocation_of_authorization | Revocation of Authorization The card was declined because the specific authorization was revoked. Customer should contact their issuer. | Decline, Hard decline | Rare | T2 |
| security_violation | Security Violation The card was declined due to a security violation flagged by the issuer. Customer should contact their issuer. | Decline, Hard decline | Rare | T2 |
| service_not_allowed | Service Not Allowed The card was declined because the service is not allowed. Customer should contact their issuer. | Decline, Hard decline | Occasional | T2 |
| stolen_card | Stolen Card The payment was declined because the card is reported stolen. Do not reveal this to the customer; present as a generic decline. | Decline, Hard decline | Rare | T3 |
| stop_payment_order | Stop Payment Order The card was declined because a stop payment order is in effect. Customer should contact their issuer. | Decline, Hard decline | Rare | T2 |
| testmode_decline | Test Mode Decline A Stripe test card number was used in a live mode request. Use a genuine card for live payments. | Decline, Error | Occasional | T1 |
| transaction_not_allowed | Transaction Not Allowed The card was declined because this type of transaction is not permitted. Customer should contact their issuer. | Decline, Hard decline | Occasional | T2 |
| try_again_later | Try Again Later (Deprecated) Deprecated. The card was declined for an unknown reason. Customer should retry; if still failing, contact their issuer. | Decline, Soft decline | Rare | T0 |
| withdrawal_count_limit_exceeded | Withdrawal Count Limit Exceeded The customer has exceeded the withdrawal count or transaction limit on their card. Customer should use an alternative payment method. | Decline, Soft decline | Occasional | T2 |
| mobile_device_authentication_required | Mobile Device Authentication Required The card was declined because the transaction requires mobile device authentication. Customer should retry by tapping their mobile device again. | Decline, Soft decline | Rare | T0 |
| partner_generic_decline | LPM Partner Generic Decline The local payment method (LPM) provider declined the payment for an unspecified reason. | Decline, Soft decline | Occasional | T2 |
| invalid_customer_account | LPM Invalid Customer Account The customer's account with the LPM provider can't be charged. Retry may succeed after the customer resolves the account issue. | Decline, Soft decline | Occasional | T2 |
| payment_limit_exceeded | LPM Payment Limit Exceeded The order exceeds a limit on the customer's LPM account. Retry may succeed after the customer resolves the limit issue. | Decline, Soft decline | Occasional | T2 |
| invalid_billing_agreement | LPM Invalid Billing Agreement The customer's billing agreement with the LPM provider is invalid. Retries won't succeed; a new payment method is required. | Decline, Hard decline | Rare | T3 |
| invalid_business_account | LPM Invalid Business Account The merchant's LPM business account is deactivated. If reactivated, retries may succeed. | Decline, Hard decline | Rare | T1 |
| partner_high_risk_customer | LPM Partner High Risk Customer The LPM provider has flagged this customer as high risk and declined the payment. | Decline, Hard decline | Rare | T3 |
| compliance_violation | LPM Compliance Violation The payment violates the LPM provider's terms of service, program rules, or applicable laws. Retries won't succeed. | Decline, Hard decline | Rare | T3 |
| payment_disputed | LPM Payment Disputed There is a dispute over the LPM payment. Retries may succeed if the dispute resolves in the merchant's favor. | Decline, Error | Rare | T1 |
| invalid_authorization | LPM Invalid Authorization The payment didn't receive authorization from the LPM provider or authorization was revoked. Retries won't succeed. | Decline, Hard decline | Rare | T3 |
| invalid_payment_information | LPM Invalid Payment Information The LPM payment has invalid information. Retries won't succeed; correct the payment details. | Decline, Hard decline | Rare | T0 |
| partner_payment_not_found | LPM Partner Payment Not Found The LPM provider can't locate this payment. | Decline, Error | Rare | T1 |
| expired_payment_information | LPM Expired Payment Information The underlying LPM payment instrument has expired. Retries may succeed after the customer updates their payment information. | Decline, Soft decline | Occasional | T3 |
| recurring_not_supported_by_bank | Recurring Not Supported by Bank The customer's bank doesn't support recurring payments for this LPM payment method. Prompt the customer to select a bank that supports recurring payments. | Decline, Hard decline | Rare | T3 |
Payment providers you might find interesting:
View allUnionPay
UnionPay is a global card payment network used by issuers, acquirers, and merchants to accept UnionPay-branded card payments.
Authorize.Net
Authorize.Net is a payment gateway that helps merchants accept card and bank-account payments through supported merchant accounts and e‑/m‑/
Klarna
Klarna is a payment provider that lets merchants offer buy now, pay later and flexible payment options at checkout.
Paysafe Group
Paysafe Group is a payments provider supporting merchants with payment processing and related tools for accepting and managing transactions.
Articles you may find interesting:
View all
June 18, 2026
Why Issuer Decline Codes Are Inconsistent and How to Build Smarter Payment Recovery
This article explains why issuer decline codes are unreliable and how payment teams can use better customer messaging, smarter retries, and context-aware optimization to recover revenue and reduce false failure handling.

June 11, 2026
Why Payment Routing Changes Trigger Approval Rate Drops and How to Recover
This article explains why issuer trust breaks during payment routing changes and how operators can restore performance with gradual traffic shifts, cleaner auth data, and smarter decline recovery to protect revenue.

June 4, 2026
When Issuers Build Around Customer Money Flows, Authorization Performance Improves
This article explains how issuers use deposit timing, recurring behavior, and better signals to approve more payments. For operators, the payoff is fewer false declines, smarter retries, and stronger recurring revenue retention.

May 9, 2026
How to Avoid Payment Declines at the 2026 FIFA World Cup
This article explains how merchants can reduce cross-border declines during the World Cup through smarter routing, richer auth data, and recovery tactics that protect revenue and lift approval rates.