javascriptstripe-paymentsstripe-payments-js

Stripe Payments: Disable microdeposit flow when collecting a new bank account


tl; dr;

The modal stripe provides for collecting a customer's bank account information has 2 options to verify the account:

I would like to disable the microdeposit verification and only allow customers to do instant verification. Can I remove/disable the microdeposit verification option?


I'm collecting a user's bank account information using the Stripe-provided modal from the javascript API:

const stripe = window.Stripe('pk_test_***************');
stripe.collectBankAccountForPayment({
    clientSecret, // payment intent
    params: {
        payment_method_type: 'us_bank_account',
        payment_method_data: {
            billing_details: {
                name: 'John Doe',
                email: 'jdoe@example.com',
            },
        },
    },
    expand: ['payment_method'],
})

I get the below modal (attached at the bottom):

If they click "Agree and continue" it does the instant verification flow. If they click "Manually verify instead" it takes them to a screen to enter their account information. Currently, once they go through that screen, I can capture the event, and they get an error that microdeposits are not supported. But they still have to go through that screen.

Is it possible to remove the "Manually verify instead" link? The modal is served from an off-site iframe, so there's no way to edit it with DOM manipulation that I'm aware of.

enter image description here


Solution

  • You can require that your customers only use instant verification.

    You specify this when you are creating your Payment Intent. You set the payment_method_options.us_bank_account.verification_method to 'instant' and when the modal window is presented you won't see the "Manually verify instead" text at the bottom.