3DS Hosted Page
Server-to-server 3DS continuation flow
When you attempt an authorization via your backend for a server-to-server flow, a soft decline may be returned. This soft-decline is returned when it is noted that 3DS authentication is required to complete the payment. We recommend utilizing our front-end SDKs to conduct payments so this can be seamlessly handled automatically. However, we understand that this may not always be possible. Therefore, we have a dedicated hosted page flow to handle the 3DS aspect for you.
This flow is useful when either a soft decline is returned from the payment service provider or your routing rules are defined to trigger 3DS on the transaction.
Pre-requisites
- To ensure the customer has a seamless experience, you must set the
return_url
parameter on the invoice object during creation. This will ensure we redirect the customer back to the context of your website.
API Response
ProcessOut will return the customer_action
object as part of the API response when a transaction is soft declined and can be continued by authenticating the customer:
{
"customer_action": {
"type": "redirect",
"value": "https://checkout.processout.com/project_id/gateway_conf_id/hosted-payment-page/?source=source_id?url_params",
"metadata": null
},
"error_type": "card.needs-authentication", // This could be any error code
"message": "3DS authentication is required.", // This could be any error message
"success": false
// ... Misc transaction related data may also be returned here if on a non error scenario.
}
To continue with authentication, redirect the customer on the front end to the URL denoted in the customer_action
→value
parameter. This will redirect the customer to a ProcessOut hosted page, which utilizes ProcessOut's JS library to continue the flow.
This removes the need for the merchant to utilize ProcessOut's JS library on your pages to conduct the flow from the front end.
Updated about 2 months ago