I recently integrated Cybersource into my system and encountered an issue with 3D Secure payment authentication. Here's a brief overview of the situation:
Initial Test:
Added a test card in Cybersource. Performed a simple payment, and it worked seamlessly. 3D Secure Setup Steps:
**Set up 3D Secure payment with the following steps: ** Step 1: Setup Service Step 2: Device Data Collection Step 3: Payer Authentication Check Enrollment Service Received "AUTHENTICATION_SUCCESSFUL" after the 3rd step.
Current Problem:
When attempting to process a payment, I receive a "DECLINED" status.
Payload for 3Ds Payment:
{
"processingInformation": {
"actionList": [
"VALIDATE_CONSUMER_AUTHENTICATION"
],
"capture": true
},
"paymentInformation": {
"paymentInstrument": {
"id": "ad5a4da4dad5d4a4d5a4d54d"
}
},
"orderInformation": {
"amountDetails": {
"totalAmount": "",
"currency": ""
},
"billTo": {
"firstName": "John",
"lastName": "Smith",
"address1": "201 S. Division St._1",
"locality": "Foster City",
"administrativeArea": "CA",
"postalCode": "94404",
"country": "US",
"email": "[email protected]",
"phoneNumber": "6504327113"
}
},
"consumerAuthenticationInformation": {
"authenticationTransactionId": "OiCtXA1j1AxtSNDh5lt1"
}
}
The error information is as follows:
"errorInformation": {
"$id": "2",
"reason": "CONSUMER_AUTHENTICATION_FAILED",
"message": "Encountered a Payer Authentication problem. Payer could not be authenticated."
}
I have ensured that the payer authentication was successful, yet the payment is being declined due to a "CONSUMER_AUTHENTICATION_FAILED" reason.
If anyone has faced a similar issue or has expertise in Cybersource 3D Secure payments, your insights and assistance would be greatly appreciated. I'm eager to resolve this and ensure a smooth payment process.
Thank you in advance for your help!
In case you or anyone needs help with this:
Remove the actionList array from processingInformation, you only need to validate the authentication when there's a challenge for the payer to authenticated before the payment, if you do/get a successful Frictionless Authentication then you're good to go. And, if you try to validate a successful frictionless authentication you'll get that error message of "Encountered a Payer Authentication problem. Payer could not be authenticated."
If you go to your Cybersource account you can check the details of the transaction for the Validate Authentication and there you'll see on the details that it says that you're not sending the consumerAuthenticationInformation.authenticationTransactionId which is not the case, but the enrollment/authentication was successful.
The Payer Authentication Check Enrollment already returns an status of "AUTHENTICATION_SUCCESSFUL", also on that same response check the values for the paresStatus and the veresEnrolled, both should return "Y" or similar.
The full response for a successful frictionless authentication looks something like this (I removed any tokens and IDs):
}
You can also check the status of the enrollment on on the Cybersource panel from your account.
Also, remember to include the processingInformation.capture field on the payload and set it to true for the settlement to be performed on the same request as the payment. If you set it to false, you can settle the transactions later from your Cybersource account.
Hope it helps.