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_actionvalue 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.