Saving Card For Later Use When Creating Payment

After adding support for SCA I’m having issues with a workflow that would allow a user to save their card for future purchases while making the payment. Is there a way to save the card during the create payment call? Currently the only way I can see to do this is to add the card to the customer (which will give them an SCA challenge). I then have to make a separate call to create the payment, but unless I challenge the user again, this fails due to verification being required. Is there a single process to create a payment and save the card as I don’t want to challenge the user twice?

Related to this, I am unable to use this card to make cardholder not present payments as it always fails because verification required. I’m struggling to find a way to do regular offline backend payments.

Hi @RichMercer, welcome to the forums!

Unfortunately this is a known friction point, but as far as I understand this is more of a requirement within SCA’s actual policy (outside of Square). Right now it is required that you ask for a SCA challenge for both saving a card on file and charging the card, even if you’re doing both back to back. In real-world scenarios, it’s actually up to the customer’s bank on whether or not they get challenged, or if the verification just passes without a challenge, so I suspect in a real world scenario (although I cannot guarantee this of course), that the bank would hopefully not issue a challenge on both the saving and charging of the card.

In that case for testing scenarios it would be good to have a test card that requires a challenge on the initial use and then works on subsequent charges, like other providers. I cannot test the backend process as it will always fail as the card used will be declined as authorisation is required. I’ll test the theory above in a production environment to see if I get challenged on the charge after the card is saved.