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.
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
Stripe Company Overview
Payment ProcessorFeatures
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.
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. | Processing | 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. | Processing | 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. | Processing, 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. | Processing | 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. | Processing, 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. | Approved | 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 | T3 |
| 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. | Approved | 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. | Processing | 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 | T3 |
| 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. | Processing | 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. | Approved | 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. | Processing, 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 | T1 |
| Refund Failure Reason | ||||
| lost_or_stolen_card | Lost or Stolen Card The refund could not be completed because the card was reported lost or stolen. Stripe doesn't distinguish lost vs. stolen in this field. | Error | Rare | T3 |
| expired_or_canceled_card | Expired or Canceled Card The refund could not be completed because the card has expired or been canceled. | Error | Occasional | T3 |
| charge_for_pending_refund_disputed | Charge Disputed The refund could not be completed because the underlying charge is under dispute. | Error | Rare | T1 |
| insufficient_funds | Insufficient Funds The refund could not be completed due to insufficient funds in the merchant's Stripe balance, not the payer's account. | Error | Occasional | T0 |
| declined | Declined The refund was declined by the card network or issuing bank. | Error, Declined | Occasional | T2 |
| merchant_request | Merchant Request The refund failed at the merchant's own request (e.g., cancellation). | Error | Rare | T0 |
| unknown | Unknown The refund failed for an unspecified reason. | Error | Rare | T1 |
| 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. | Processing | 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. | Processing | 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. | Processing, 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. | Processing | 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 | T3 |
| 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. | Approved | Common | T0 |
| Dispute Status | ||||
| warning_needs_response | Warning — Needs Response An early inquiry (pre-dispute warning) that requires a response. Submitting evidence at this stage can prevent it from escalating into a formal dispute. | Processing, Info | Occasional | T0 |
| warning_under_review | Warning — Under Review An early inquiry under review after evidence submission. Awaiting the outcome; no further action is typically needed until the review completes. | Processing, Info | Rare | T0 |
| warning_closed | Warning — Closed An inquiry that closed without becoming a formal dispute. No chargeback resulted; no further action required. | Info | Occasional | T0 |
| needs_response | Needs Response A formal dispute that requires a response. The merchant must submit evidence before the due date or the dispute is automatically lost. | Processing, Error | Common | T1 |
| under_review | Under Review A dispute under review by the card network after evidence submission. Awaiting the final decision. | Processing, Info | Occasional | T0 |
| won | Won The dispute was resolved in the merchant's favor. Funds are returned to the merchant. Terminal state. | Approved | Occasional | T0 |
| lost | Lost The dispute was resolved in the customer's favor. The disputed amount and any fees are not returned. Terminal state. | Error | Occasional | T3 |
| prevented | Prevented The dispute was prevented from becoming a formal chargeback (e.g. resolved via an early-warning or fraud-prevention program). Terminal state. | Approved, Info | Rare | T0 |
| Payout Status | ||||
| pending | Payout Pending The payout has been created but not yet submitted to the bank. It remains pending until Stripe submits it to the destination bank account. | Processing | Common | T0 |
| in_transit | Payout In Transit The payout has been submitted to the destination bank and is on its way. Funds have left Stripe but have not yet arrived in the bank account. | Processing | Common | T0 |
| paid | Payout Paid The payout succeeded and funds were credited to the destination bank account. Terminal success state. Note: some payouts that ultimately fail may briefly show as paid before changing to failed. | Approved | Common | T0 |
| failed | Payout Failed The payout failed to reach the destination bank account. Inspect failure_code / failure_message for the reason and verify the bank account details. | Error | Occasional | T1 |
| canceled | Payout Canceled The payout was canceled (typically within 5 business days of creation, before it settled). Funds return to the available balance. | Info | Occasional | T0 |
| Mandate Status | ||||
| active | Mandate Active The mandate can be used to initiate a payment. | Approved | Common | T0 |
| inactive | Mandate Inactive The mandate was rejected, revoked, or previously used, and may not be used to initiate future payments. | Error, Info | Occasional | T3 |
| pending | Mandate Pending The mandate is newly created and is not yet active or inactive. | Processing | Occasional | T0 |
| Error Code | ||||
| account_closed | Account Closed The customer's bank account has been closed. A different payment method is required. | Error | Occasional | T3 |
| 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, Declined | 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 |
| 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 |
| anomalous_money_movement_request | Anomalous Money Movement Request The request was blocked because Stripe's anomaly detection system flagged it as anomalous. To retry, disable anomaly detection in the Dashboard under Settings > Developers > Manage API keys > Anomaly detection. | Error | Rare | T1 |
| 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. | Declined | 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, Declined | 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, Declined | 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 | 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 |
| 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 | Occasional | T2 |
| card_declined | Card Declined The card has been declined. Inspect the decline_code field on the error for the specific issuer reason. | Declined | Common | T2 |
| 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 |
| 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 |
| debit_not_authorized | Debit Not Authorized The customer notified their bank that this ACH or direct debit payment was unauthorized. | Declined | 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. | Declined | Common | T3 |
| 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. | Declined | Common | T0 |
| incorrect_cvc | Incorrect CVC The CVC/CVV security code is incorrect. Customer should re-enter the correct CVC. | Declined | Common | T0 |
| incorrect_number | Incorrect Number The card number is incorrect. Customer should retry with the correct card number. | Declined | Common | T0 |
| incorrect_zip | Incorrect ZIP The postal/ZIP code is incorrect. Customer should retry with the correct billing postal code. | Declined | Common | T0 |
| insufficient_funds | Insufficient Funds The customer's account or card doesn't have enough funds to complete the purchase. | Declined | 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 The intent doesn't have a verification method specified in its payment_method_options object. Set the verification method on the PaymentIntent or SetupIntent's payment_method_options and retry. | 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. | Declined | 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. | Declined, 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. | Declined, 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. | Declined, 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 |
| 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, Declined | 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 | 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. | Declined | 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. | Declined, 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, Declined | 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 | 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. | Declined | 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 | 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 | 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 | 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. | Declined | 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 | 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 |
| postal_code_invalid | Postal Code Invalid The postal code provided was incorrect. Customer should verify and re-enter the correct billing postal code. | Declined | Common | T0 |
| processing_error | Processing Error An error occurred while processing the card. Retry later or use a different payment method. | 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. | Declined | 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, Declined | Occasional | T0 |
| setup_intent_authentication_failure | Setup Intent Authentication Failure The payment method failed authentication on this SetupIntent. Provide a new payment method. | Declined | 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 |
| 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 |
| 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 |
| url_invalid | URL Invalid The URL provided is not valid. Check the format and ensure it includes the correct scheme. | Error | Occasional | T0 |
| Decline Code | ||||
| 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. | Declined | 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. | Declined | Rare | T2 |
| call_issuer | Call Issuer The card was declined for an unknown reason. The customer must contact their card issuer for more information. | Declined | 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. | Declined | 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. | Declined | 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. | Declined | 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. | Declined | 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. | Declined | 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. | Declined, 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. | Declined | 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. | Declined | Common | T2 |
| incorrect_pin | Incorrect PIN The PIN entered is incorrect (card-present only). Customer should retry with the correct PIN. | Declined | Occasional | T0 |
| invalid_account | Invalid Account The card or associated account is invalid. Customer should contact their card issuer. | Declined | 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. | Declined, Error | Occasional | T0 |
| invalid_pin | Invalid PIN The PIN entered is incorrect. Customer should retry with the correct PIN. | Declined | 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. | Declined | 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. | Declined | 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. | Declined | 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. | Declined | Rare | T2 |
| no_action_taken | No Action Taken The card was declined for an unknown reason. Customer should contact their card issuer. | Declined | Rare | T2 |
| not_permitted | Not Permitted The payment is not permitted by the issuer. Customer should contact their card issuer. | Declined | 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. | Declined | 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. | Declined | 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. | Declined | 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. | Declined | 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. | Declined | 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. | Declined | 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. | Declined | Rare | T2 |
| revocation_of_authorization | Revocation of Authorization The card was declined because the specific authorization was revoked. Customer should contact their issuer. | Declined | Rare | T2 |
| security_violation | Security Violation The card was declined due to a security violation flagged by the issuer. Customer should contact their issuer. | Declined | Rare | T2 |
| service_not_allowed | Service Not Allowed The card was declined because the service is not allowed. Customer should contact their issuer. | Declined | 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. | Declined | 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. | Declined | 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. | Declined, 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. | Declined | 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. | Declined | 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. | Declined | 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. | Declined | Rare | T0 |
| partner_generic_decline | LPM Partner Generic Decline The local payment method (LPM) provider declined the payment for an unspecified reason. | Declined | 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. | Declined | 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. | Declined | 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. | Declined | Rare | T3 |
| invalid_business_account | LPM Invalid Business Account The merchant's LPM business account is deactivated. If reactivated, retries may succeed. | Declined | 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. | Declined | 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. | Declined | 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. | Declined, 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. | Declined | Rare | T3 |
| invalid_payment_information | LPM Invalid Payment Information The LPM payment has invalid information. Retries won't succeed; correct the payment details. | Declined | Rare | T0 |
| partner_payment_not_found | LPM Partner Payment Not Found The LPM provider can't locate this payment. | Declined, 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. | Declined | 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. | Declined | Rare | T3 |
| PaymentIntent Capture Method | ||||
| automatic | Automatic Stripe automatically captures funds when the customer authorizes the payment. | - | - | - |
| automatic_async | Automatic Async Default. Stripe asynchronously captures funds when the customer authorizes the payment. Recommended over 'automatic' due to improved latency. | - | - | - |
| manual | Manual Places a hold on the funds when the customer authorizes the payment, but doesn't capture the funds until later. Not all payment methods support this. | - | - | - |
| PaymentIntent Confirmation Method | ||||
| automatic | Automatic Default. The PaymentIntent can be confirmed using a publishable key. After next_actions are handled, no additional confirmation is required to complete the payment. | - | - | - |
| manual | Manual All payment attempts must be made using a secret key. The PaymentIntent returns to the 'requires_confirmation' state after handling next_actions, and requires the server to initiate each payment attempt with an explicit confirmation. | - | - | - |
| PaymentIntent Setup Future Usage | ||||
| on_session | On Session Use when intending to accept on-session payments only, payments that occur while the customer is actively in the checkout flow and able to authenticate. | - | - | - |
| off_session | Off Session Use when intending to accept off-session payments, payments that occur without direct customer involvement using previously-collected payment information. Also covers on-session payments. | - | - | - |
| PaymentIntent Cancellation Reason | ||||
| abandoned | Abandoned The PaymentIntent was abandoned by the merchant. | - | - | - |
| automatic | Automatic Stripe automatically canceled the PaymentIntent, for example after it went uncaptured too long. | - | - | - |
| duplicate | Duplicate The PaymentIntent was a duplicate of another payment attempt. | - | - | - |
| expired | Expired The PaymentIntent expired before it could be completed. | - | - | - |
| failed_invoice | Failed Invoice The associated invoice failed, causing the PaymentIntent to be canceled. | - | - | - |
| fraudulent | Fraudulent The PaymentIntent was flagged as fraudulent and canceled. | - | - | - |
| requested_by_customer | Requested By Customer The customer requested the payment be canceled. | - | - | - |
| void_invoice | Void Invoice The associated invoice was voided, causing the PaymentIntent to be canceled. | - | - | - |
| SetupIntent Cancellation Reason | ||||
| abandoned | Abandoned The SetupIntent was abandoned by the merchant. | - | - | - |
| duplicate | Duplicate The SetupIntent was a duplicate of another setup attempt. | - | - | - |
| requested_by_customer | Requested By Customer The customer requested the setup be canceled. | - | - | - |
| Charge Outcome Type | ||||
| authorized | Authorized The payment was authorized. | Approved | Common | T0 |
| manual_review | Manual Review The payment is under manual review by Stripe. | Processing | Rare | T0 |
| issuer_declined | Issuer Declined The payment was declined by the card issuer. | Declined | Common | T2 |
| blocked | Blocked The payment was blocked by Stripe's risk checks (e.g. Radar). | Declined | Occasional | T3 |
| invalid | Invalid The payment could not be authorized due to invalid data. | Error | Rare | T0 |
| Payout Failure Code | ||||
| account_closed | Account Closed The bank account has been closed. | Error | Occasional | T3 |
| account_frozen | Account Frozen The bank account has been frozen. | Error | Rare | T3 |
| bank_account_restricted | Bank Account Restricted The bank account has restrictions that prevent this payout. | Error | Rare | T2 |
| bank_account_unusable | Bank Account Unusable The bank account details are invalid, for example the account number doesn't correspond to the specified bank. | Error | Occasional | T3 |
| bank_ownership_changed | Bank Ownership Changed The destination bank account is no longer valid because its branch has changed ownership. | Error | Rare | T3 |
| could_not_process | Could Not Process The bank could not process this payout. | Error | Occasional | T1 |
| debit_not_authorized | Debit Not Authorized Debit transactions are not approved on the bank account. | Error, Declined | Rare | T2 |
| declined | Declined The bank has declined this transfer, the merchant should contact the bank for more information. | Error, Declined | Occasional | T2 |
| incorrect_account_holder_address | Incorrect Account Holder Address The account holder address does not match what the bank has on file. | Error | Rare | T0 |
| incorrect_account_holder_name | Incorrect Account Holder Name The account holder name does not match what the bank has on file. | Error | Rare | T0 |
| incorrect_account_holder_tax_id | Incorrect Account Holder Tax ID The tax ID provided does not match what the bank has on file. | Error | Rare | T0 |
| incorrect_account_type | Incorrect Account Type Your Stripe account is not compatible with the bank account type. | Error | Rare | T1 |
| insufficient_funds | Insufficient Funds The Stripe balance doesn't have sufficient funds to cover the payout. | Error | Occasional | T0 |
| invalid_account_number | Invalid Account Number The bank account number failed validation. | Error | Occasional | T0 |
| invalid_account_number_length | Invalid Account Number Length The bank account number has an incorrect length for its country. | Error | Rare | T0 |
| invalid_currency | Invalid Currency The bank was unable to process this payout because of its currency, likely because the bank account cannot accept payments in that currency. | Error | Rare | T3 |
| no_account | No Account The bank account details on file for this payout are probably incorrect, and no bank account could be located matching those details. | Error | Occasional | T0 |
| unsupported_card | Unsupported Card The card is not supported for payouts. | Error | Rare | T3 |
| Mandate Type | ||||
| multi_use | Multi Use Represents permission given for multiple payments. | - | - | - |
| single_use | Single Use Represents a one-time permission given for a single payment. | - | - | - |
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
July 21, 2026
MOTO Payments Explained: How Manually Keyed Transactions Affect Approvals, Costs, and Revenue Recovery
This article explains why manually keyed MOTO transactions face higher scrutiny, more downgrades, and more avoidable declines, and how payment teams can tighten controls to protect revenue.

July 16, 2026
Why Payment Trust Is Breaking Down and How Merchants Can Recover More Declines
This article explains how rising issuer skepticism drives false declines and what payment operators can do with orchestration, better data, and targeted retries to protect revenue and reduce churn.

July 16, 2026
BNPL Regulation Is Reshaping Checkout, Declines, and Recovery Strategy
This article explains how regulated BNPL adds checkout friction, new decline points, and stricter recovery rules. Payment teams can use it to protect conversion, improve approval performance, and manage installment failures compliantly.

July 12, 2026
The Blueprint for Frictionless Value: How Swift’s Blockchain Ledger Is Rewiring Global Payments
This article explains how Swift’s move toward shared ledgers could make cross-border payments faster, more transparent, and easier to recover operationally, helping merchants reduce friction and protect revenue.