4

I would like to implement Stripe checkout for subscriptions. I have followed the guidance here and everything works. However, the checkout form that Stripe provides requires the user to enter (i) the name on the card and also (ii) the user's email.

Is there a way to remove these two items, so that the user does not need to enter them? Is it acceptable (in terms of security) to remove these items?

The goal here is to make it easy for users to go through the payment flow, and also to limit the information I have access to about the user.

I am using Node.

Note that I will be collecting the user's email elsewhere in the signup process, so showing the email on the Checkout form is redundant (even if I can prefill it).

Here are a few more details:

When I use Stripe Elements instead of Checkout, everything seems to work fine without requiring the customer's name.

I had also thought the old Checkout did not require name--I believe the old modal did not have a name field. And many credit card forms I have completed over the years that had the Stripe styling did not require name or email in the credit card form.

And according to this answer, name is often not required by forms because it is generally not actually used in the verification process (though that answer is a few years old).

I see an answer here from 2017 stating that the email field is required. I am wondering if this is still the case.

EDIT: I understand that if I want to use a fully customizable form, then I can use Elements. But this question is about Checkout. The form that Elements loads does not require users to enter their names, and Checkout did not previously require users enter their names. If Checkout does require names now, has Stripe ever explained why?

SeanRtS
  • 1,005
  • 1
  • 13
  • 31
  • This question may help you [here](https://stackoverflow.com/questions/46827460/difference-between-https-checkout-stripe-com-checkout-js-and-https-js-stripe) Checkout is a ready to use form. And in order to create your own custom payment form, you should use Stripe Elements. – Karim Chaari Jan 08 '20 at 15:35

1 Answers1

4

Checkout currently supports pre-filling your user's email using the customer_email field when creating a CheckoutSession [0] but Checkout doesn't support not collecting email.

The "name" input field is not configurable and cannot be pre-filled. You might have to create your own custom form using Stripe.js and Elements to not collect your user's email and name.

[0] https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-customer_email

hmunoz
  • 2,791
  • 5
  • 11