If a payment requires 3D Secure authentication but we are unable to initiate it, we will make a final attempt to complete the payment without authentication. The results from this fallback charge updates the PaymentIntent status to one of the following:
succeeded
: The payment completed, creating a Charge with the supplied payment method. No further steps are required.
requires_capture
: The request completed without authentication, allowing you to continue to capture the funds.
requires_payment_method
: The charge failed potentially requiring a another payment method
Typically, a payment that triggers 3D Secure will result in a PaymentIntent with a status of requires_action
. Here is a walkthrough of a typical payment flow that requests 3D Secure:
requires_action
.
If steps 4 or 5 is not successful, then the above payment flow would change to look something like this:
succeeded
, requires_capture
, or requires_payment_method
depending on the outcome of the payment.
The reason we attempt this instead of immediately blocking the payment or returning an error, is that we are choosing to optimize for conversion.
If the fallback charge fails, then the PaymentIntent status updates to requires_payment_method
. In the event that this fallback charge is successful, the charge is not covered by liability shift, unless the fallback charge has an attempt_acknowledged
status on payment_method_details.card.three_d_secure.result
.
For more information on unauthenticated payments and Liability Shift see Using Radar for Fraud Teams to prevent charges without Liability Shift