# Collect surcharges Offset your card processing costs in the form of surcharges. > This feature is in private preview. Automatic surcharge adds a surcharge to your Checkout payments based on your customer’s card details, including card brand, funding type, and issuing country. Surcharging laws vary by jurisdiction. Stripe enables the ability to seamlessly use a third-party surcharging provider to compliantly calculate the surcharge amount. ## Compliance requirements If you impose a surcharge on your customers, you must comply with all applicable laws and card network rules. Surcharging requirements vary across regions and card types. Some jurisdictions prohibit surcharging entirely. Where surcharging is permissible, you must accurately calculate the surcharge so it doesn’t exceed surcharge limits imposed by relevant card networks, or your cost of payment acceptance. Depending on the network, card network requirements might include obligations to: - Accurately calculate surcharge amounts. - Notify your acquirer or the card network of your intent to surcharge. - Surcharge consistently across card networks or card products. - Conspicuously disclose details of your surcharging or total costs (including any applied surcharge) to the cardholder ahead of purchase, and reflect the surcharge separately on the transaction receipt. - After surcharge disclosure, provide the ability to cancel the transaction, or choose a different payment method, before confirmation. > You’re fully responsible for any fines, penalties, or losses arising in connection with your failure to adhere to applicable surcharging requirements. The information provided on this page relating to your compliance with these requirements is for your general guidance, and isn’t legal, tax, accounting, or other professional advice. Consult a professional if you’re unsure about your obligations. ## Install a surcharge provider app Before you can use automatic surcharge, install a surcharge provider’s Stripe App from the Dashboard App Marketplace and complete the onboarding process. Stripe supports [Yeeld](https://marketplace.stripe.com/apps/yeeld) and [InterPayments](https://marketplace.stripe.com/apps/interpayments) to provide surcharges. > You’re responsible for verifying your provider is calculating surcharges in compliance with applicable laws and card network rules in each jurisdiction where you operate. ## Create a Checkout Session > #### API version > > This feature requires a preview API version. Set the `Stripe-Version` header to a preview API version when initializing your Stripe client. Automatic surcharge is available in `payment` mode only. It also isn’t compatible with [Adaptive Pricing](https://docs.stripe.com/payments/checkout/localize-prices/adaptive-pricing.md). Set [automatic_surcharge[enabled]](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-automatic_surcharge-enabled) to `true` when creating a Checkout Session, along with an `automatic_surcharge[calculation_basis]`. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -H "Stripe-Version: 2026-04-22.preview" \ -d "line_items[0][price]={{PRICE_ID}}" \ -d "line_items[0][quantity]=1" \ -d "automatic_surcharge[enabled]=true" \ -d "automatic_surcharge[calculation_basis]=total_before_tax" \ -d mode=payment \ --data-urlencode "success_url=https://example.com/success" ``` ### Calculation basis The [automatic_surcharge[calculation_basis]](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-automatic_surcharge-calculation_basis) determines which amount is used as the basis for calculating the surcharge. | Value | Description | Use when | | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | | `total_before_tax` | Calculates the surcharge on the subtotal before taxes. For example, a 3% surcharge on a 100 USD order with 10 USD tax = 3.00 USD surcharge. | Regulations or business policy require surcharging only on the pre-tax amount. | | `total_after_tax` | Calculates the surcharge on the total after taxes. For example, a 3% surcharge on a 100 USD order with 10 USD tax = 3.30 USD surcharge (calculated on 110 USD). | You want the surcharge to cover payment processing costs on the full charged amount. | ### Tax compatibility Automatic surcharge is compatible with [Stripe Tax](https://docs.stripe.com/tax.md) using automatic tax, which you can configure in the Dashboard. To override this, use [automatic_surcharge[tax_behavior]](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-automatic_surcharge-tax_behavior) to manually control whether the surcharge is calculated inclusive or exclusive of tax. Manual tax rates aren’t supported. ## Optional: Check the response To see the results of the surcharge calculation, retrieve the Checkout Session after the customer completes checkout. The [automatic_surcharge.status](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-automatic_surcharge) property shows whether the surcharge was successfully calculated (`complete`) or couldn’t be applied (`failed`). When `status` is `complete`, the [surcharge_cost](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-surcharge_cost) property shows the breakdown, including `amount_subtotal`, `amount_tax`, and `amount_total`. > During this private preview, automatic surcharge is only supported in the United States. Supported payment methods are cards and Apple Pay. Transactions with a non-supported payment method don’t have any applicable surcharge.