3DS 2.0 VerifyCard Issue.
See original GitHub issueHi there!
We were just about to update our vaulting processes to match the new SCA regulations. The docs show that there should be an option which can be used to verify Cards with 3DSecure 2.0 without passing a specific amount. This feature would be quite critical for all who want to vault a payment method and reuse it later (ex. after a service has been provided) because the amount was unknown during the booking flow.
However: We really tried every verification option and always get the same error while verifying a card, even if we set the challengeRequested: true
option.
code: "THREEDS_MISSING_VERIFY_CARD_OPTION"
details: undefined
message: "verifyCard options must include an amount.
Thank you for any help and inputs. Would be great if we could resolve this issue.
Recurring transactions
The recommended flow for recurring billing would be to request a cardholder challenge to establish SCA when the card is first authorized as part of storing it to the Braintree vault. This can be with a verification, or the first transaction of a recurring billing event. By applying 3D Secure to the first transaction or verification, you signal to the card issuer that you have established a mandate between you and your customer to charge their payment method for subsequent recurring payments as detailed in your terms and conditions. Such subsequent transactions are exempt from PSD2 SCA requirements.
Establishing SCA on verifications will be useful for scenarios where the cardholder will not be present when the charge is issued, and the amount isn’t known when the payment method is stored. For example, if you have a metered billing flow and invoice customers at the end of a month based on their usage, you can use 3D Secure on your initial card verification to establish a mandate to create future merchant initiated transactions (MIT)
.
Requesting a cardholder challenge
To override the default behavior of 3DS 2 and request the cardholder’s bank to issue an authentication challenge, pass challengeRequested: true on the verifyCard() call.
I was just assuming that we would have to do the following somehow, even with the dropin ui. But in regards to:
As far as your actual question goes, it should automatically run the vaulted nonce through the 3ds flow:
Considering the above recommends we override the default behavior and force an auth challenge, how would the dropin ui know to do that? Forgive my ignorance, perhaps I’m just not understanding this correctly. I’m fairly new to working with Braintree.
Issue Analytics
- State:
- Created 4 years ago
- Reactions:1
- Comments:6 (4 by maintainers)
Top GitHub Comments
0.00 verifications with 3DS are something we’re working on. Contact our support team to request to be part of the beta: https://help.braintreepayments.com/
@christianverardi Actually, now I recall there should already be support for this, but you’ll have to pass the amount in as a string, so use
"0.00"
instead of a number0.00
.