The 3DS flow for Ingenico differs from that used with other acquirers in some significant aspects, which are outlined in this article.
When building their integration to APEXX, merchants using Ingenico as an acquirer will need to take into consideration the points at which Ingenico's 3DS flow deviates from that of other payment processors.
Enrolment request (3DSEnrol):
If you want to request 3D Secure authentication for a transaction, the first step to take is to verify whether authentication is supported for the card being used. This is done by making an enrolment request (3DSEnrol) along with term_url sent in the enrolment request. This request will return an ACSURL (the 3D Secure authentication redirect URL) if the card is enrolled.
If the card is enrolled, the next step is to redirect the customer on authentication page ACSURL served by the card issuer via GET method.
After the customer successfully completes the authentication process, the 3D Secure server will make a POST request to the URL you specified in term_url field in the enrolment request. The url parameter will contain the following parameter which is required for authorisation:
· paymentId: The payment ID generated by Ingenico.
· Id: Transaction id generated by Apexx which can be used in the verify authentication request.
Initiating the transaction (3DSVerifyAuthentication):
Send the Original Transaction Id (3DSEnrol response _id or id received from the acsURL) and paymentId (received during the redirection from acsURL above) values in _id and paRes respectively as a new request to 3DSVerifyAuthentication API. If the authentication is valid, we will process the payment and respond with Success/Declined/Failure status.
|Ingenico||Other Payment Service Providers|
|1. Term URL||Enrolment request requires the merchant to send term_url in the request where the customer will be redirected after authentication is completed.||Enrolment request does not require term_url in the request. Term_url needs to be passed during the redirection to the acsURL.|
|2. Enrolment Response||Receives only acs_URL (Ingenico server URL) in response to enrolment request.||Receives PaReq, psp_3d_id and ACSURL (ACS server URL) in response to enrolment request.|
|3. Redirection||Redirection is done via GET method without any extra value passed in the request. ||Redirection is done via POST method along with PaReq, TermUrl and MD (optional).|
|4. Redirection Response||Redirection response from acsURL includes ref, returnmac, paymentid, pretransid and id in path parameter. ||Redirection response from acs server includes MD and PaRes|
|5. 3DS Verify||Need to send original transaction id received in enrolment response and paymentId value in _id and paRes fields respectively as a new request in 3DSVerifyAuthentication API to Apexx for payment processing.||Need to send original transaction id received in enrolment response and PaRes value in _id and paRes fields respectively as a new request in 3DSVerifyAuthentication API to Apexx for payment processing.|