AltorLabFree Scan →
HomeGlossaryPayment Intent
Glossary

What is Payment Intent?

A PaymentIntent is Stripe's state-machine object for a single payment attempt. It tracks the lifecycle of a charge from requires_payment_method to requires_confirmation, requires_action, processing, and finally succeeded or canceled. For subscription merchants, the PaymentIntent is the most important Stripe object for understanding whether a renewal failed because of missing payment details, required 3D Secure authentication, processing delay, or a terminal cancellation.

What statuses does a Stripe PaymentIntent move through?

A PaymentIntent starts by collecting or referencing a payment method, then moves through states such as requires_payment_method, requires_confirmation, and requires_action when customer authentication is needed. After confirmation it may enter processing before resolving as succeeded or canceled.

These states matter because each one implies a different next action. requires_payment_method means the stored card or wallet details are unusable. requires_action means the issuer is demanding authentication. processing means the payment is not final yet, so merchants should avoid assuming failure or success too early.

Why do subscription merchants need PaymentIntent visibility?

Subscription failures often get flattened into generic labels in merchant dashboards, but the PaymentIntent preserves the exact Stripe lifecycle. If a renewal is stuck in requires_action, the merchant should send a customer authentication flow, not retry blindly through dunning.

PaymentIntent visibility is also critical for reconciliation. Shopify or a subscription app may show a failed billing attempt, while Stripe reveals whether the underlying charge is still processing, permanently canceled, or blocked by authentication. That difference changes the correct operational response.

Frequently asked questions

What is the difference between a PaymentIntent and a Charge in Stripe?

The PaymentIntent is the higher-level object that manages the full payment lifecycle and state transitions. A Charge is the resulting transaction record created when the payment is actually attempted. For modern Stripe integrations, the PaymentIntent is the source of truth for status, next actions, and authentication requirements.

Why does requires_action matter so much for subscriptions?

requires_action usually means the issuer wants 3D Secure or another customer authentication step. Off-session subscription renewals cannot complete that automatically, so retries alone will fail repeatedly. The merchant needs to send the customer into an authentication flow or fix the original setup so future renewals can qualify for MIT treatment.

Related guides

Detect subscription failures automatically

Free cross-stack scan. Find revenue leaks in 60 seconds.

Run Free Scan →