Request: Include 3DS error codes in verifyPayload
daelmaak opened this issue · 2 comments
General information
- SDK version: 3.96.0
- Environment: all
Issue description
When user is required to complete a challenge, and fails the challenge, we don't get the 3DS error code back in the payload produced by verifyCard
.
Detailed description
After user submits the challenge, https://api.sandbox.braintreegateway.com/merchants/{merchantId}/client_api/v1/payment_methods/{methodId}/three_d_secure/authenticate_from_jwt
is called. That endpoint can return response like this:
{
"errors": [
{
"attribute": "three_d_secure_token",
"message": "Failed to authenticate, please try a different form of payment.",
"model": "transaction",
"type": "user",
"code": "81571"
}
],
"threeDSecureInfo": {
"liabilityShifted": false,
"liabilityShiftPossible": true
}
}
This response contains the 3DS code "code": "81571"
and nicely shows what went wrong. However this code is not present in the verifyPayload so we can't use it. I also didn't find any other property that'd communicate it precisely.
@daelmaak Thanks for writing in.
The payload should have the lookup.transStatus
and lookup.transStatusReason
properties on the threeDSecureInfo
returned in the verifyCard
payload.
If you are having trouble getting those values returned feel free to write into our Tech Support team for more integration issues.
Hi @jplukarski , yes those properties are indeed in the payload object but don't convey the same information I am requesting, eg.:
"lookup": {
"transStatus": "N",
"transStatusReason": "01"
},
It just informs about the generic status but doesn't convey the precise "text" nor "explanation" as defined in the docs.