Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
About Stripe payments
Upgrade your integration
Payments analytics
Online payments
OverviewFind your use caseManaged Payments
Use Payment Links
Build a checkout page
Build an advanced integration
    Overview
    Quickstart
    Design an advanced integration
    Customize look and feel
    Manage payment methods
    Collect additional information
      Collect physical addresses and phone numbers
      Customize billing details collection
      Listen for address input
    Collect taxes on your payments
    Save the payment method used for a payment
    Save a payment method without making a payment
    Send receipts and paid invoices
Build an in-app integration
Payment methods
Add payment methods
Manage payment methods
Faster checkout with Link
Payment interfaces
Payment Links
Checkout
Web Elements
In-app Elements
Payment scenarios
Custom payment flows
Flexible acquiring
Orchestration
In-person payments
Terminal
Other Stripe products
Financial Connections
Crypto
Climate
HomePaymentsBuild an advanced integrationCollect additional information

Control billing details collection

Customize the billing details you collect within the Payment Element.

Copy page

You can collect billing details several ways with the Payment Element:

  • never: Don’t collect any billing details in the Payment Element. You can set this for all fields or on specific fields subcomponents, like name, email, and address.
  • if_required: Collect only the address fields required for each payment method to complete the payment.
  • auto (default): Stripe determines which billing fields to collect based on customer friction and authorization success rate for each payment method. You don’t need to pass in additional billing details at confirm time for this mode.

By default, all fields are set to auto. This balances minimizing customer friction and maintaining optimal authorization rates.

Hide billing details

If you’re collecting billing details elsewhere outside of the Payment Element, you can use never to avoid collecting billing details entirely or to skip specific billing fields. Fields that are set to never are hidden for all the payment methods. Here’s an example:

const paymentElement = elements.create('payment', { fields: { billingDetails: { // No address field will be collected in any of the payment method forms address: 'never', } } });

When never is set, you must manually pass in the omitted billing fields at the confirmation time:

stripe.confirmPayment({ //...Other values payment_method: { billing_details: { address: { line1: '123 Main Street', city: 'Anytown', country: 'US', postal_code: '12345' }, } } });

Collect minimal billing details

Specify if_required to collect only the billing address fields needed to complete payment for each payment method.

This option helps reduce customer friction but might come with certain trade-offs, such as higher network fees, for users on a network cost plus pricing plan, and potential impacts on authorization rates.

const paymentElement = elements.create('payment', { fields: { billingDetails: { address: 'if_required', } } });

Advanced: using Address Element in billing mode

If your business requires collecting the full billing address, you can use the Address Element billing mode in combination with the Payment Element. The billing details gathered in Address Element are automatically attached at the confirmation time.

Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access program.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc