question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

3DS 2.0 VerifyCard Issue.

See original GitHub issue

Hi 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

https://developers.braintreepayments.com/guides/3d-secure/migration/javascript/v3#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

https://developers.braintreepayments.com/guides/3d-secure/migration/javascript/v3#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:closed
  • Created 4 years ago
  • Reactions:1
  • Comments:6 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
crookedneighborcommented, Nov 19, 2019

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/

0reactions
crookedneighborcommented, Nov 30, 2020

@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 number 0.00.

Read more comments on GitHub >

github_iconTop Results From Across the Web

3DS2 (3D Secure 2.0) - Everything You Need to Know
3DS stands for Three-Domain Secure. Visa created the authentication protocol in 1999, to help merchants and issuing banks authenticate cardholders' identity ...
Read more >
ThreeDSecure - Documentation - Braintree Open Source
Verifying a payment method nonce with 3DS 2.0 var my3DSContainer; // set up listener after initialization threeDSecure.on(('lookup-complete', function (data ...
Read more >
3D Secure 2.0 - HackMD
The verifyCard process implies two things: 2.1 Braintree do a lookup to find out if the card admits 3D Secure and liability shifting....
Read more >
3D Secure 2.0 card payments with Braintree | by Stephan Bester
Verify the card using 3D Secure. The verifyCard method of the 3D Secure component ( threeDSecureInstance in the code above) is used to...
Read more >
Migrating to 3D Secure 2 - Braintree Developer Documentation
This new version of 3DS is designed to primarily do two things: First and foremost, the protocol allows more data elements to be...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found