Integrate Leaky Paywall with Stripe Tax
Setting Up Stripe Tax with Leaky Paywall
Stripe Tax automatically calculates and collects the correct tax on subscriptions and one-time payments based on your customer's location. This guide walks you through enabling it for your site.
Prerequisites
- Leaky Paywall 5.0.4 or later
- Stripe as your payment gateway (Stripe Elements or Stripe Checkout)
- A Stripe account with Stripe Tax activated
Step 1: Activate Stripe Tax in Your Stripe Dashboard
- Log in to your Stripe Dashboard
- Go to Settings > Tax or visit stripe.com/dashboard/settings/tax/activate
- Follow the prompts to activate Stripe Tax
Step 2: Add Your Tax Registrations
Tax registrations tell Stripe where you're legally required to collect tax.
- In the Stripe Dashboard, go to Tax > Registrations
- Click Add registration
- Select the country/state where you're registered to collect tax
- Enter your tax registration number if required
- Repeat for each jurisdiction where you collect tax
For example, if you're a US publisher in Colorado, you'd add a registration for Colorado. Stripe will then calculate the correct state and local tax rates for customers in Colorado.
Important: Stripe will only calculate tax for jurisdictions where you have an active registration. Customers in other locations will not be charged tax.
Step 3: Assign Product Tax Codes
For recurring subscriptions, Stripe uses the tax code assigned to the product/price in your Stripe Dashboard:
- Go to Products in the Stripe Dashboard
- Find the product associated with your subscription level (Leaky Paywall creates these automatically)
- Edit the product and set the Tax code — for digital news/content subscriptions, use "Digital goods - News" or the appropriate category
- Save
For one-time payments, Leaky Paywall handles this automatically using the Tax Behavior setting (see below).
Step 4: Configure Leaky Paywall Settings
- In WordPress, go to Leaky Paywall > Settings > Payments
- Under the Stripe section, enable these settings:
Automatic Tax — Check this box to enable automatic tax calculation on all transactions.
Tax Behavior — Choose how tax is applied to one-time payments:
- Exclusive (recommended): Tax is added on top of the subscription price. A $19.99 subscription with 8.3% tax charges $21.65.
- Inclusive: The price already includes tax. A $19.99 subscription always charges $19.99, with the tax portion calculated from within that amount.
Note: For recurring subscriptions, tax behavior is set on the price in the Stripe Dashboard, not here.
Billing Address — This is automatically enabled when you turn on Automatic Tax. The billing address is required so Stripe can determine the customer's tax jurisdiction.
How It Works for Your Subscribers
When a subscriber registers on your site:
- They fill out their account details (name, email, password) and click Next
- On the payment step, they see the Billing Address form first
- After entering their address, an Order Summary appears showing:
- Subtotal (your subscription price)
- Tax (calculated based on their address)
- Total (what they'll be charged)
- They enter their payment details and click Subscribe
- Stripe charges the tax-inclusive total
If a subscriber is in a jurisdiction where you don't have a tax registration, tax will show as $0.00 and they'll only be charged the base price.

Viewing Tax on Transactions
After a subscriber completes a purchase, the tax breakdown is visible in two places:
- Individual Transaction: Go to Leaky Paywall > Transactions, click on a transaction. The header shows the total amount charged with a subtotal and tax breakdown underneath.
- Transaction List: The Price column on the transactions list shows the tax-inclusive total.
Tax on Recurring Renewals
Once a subscription is created with Stripe Tax enabled, all future renewals automatically include tax. If a subscriber's address changes, Stripe recalculates the tax on their next billing cycle.
Stripe Checkout vs Stripe Elements
Both payment modes support Stripe Tax:
- Stripe Elements (default): The tax preview and order summary are built into the Leaky Paywall registration form as described above.
- Stripe Checkout: Stripe's hosted checkout page handles the tax display automatically — no additional configuration needed beyond the settings above.
Troubleshooting
Tax shows as $0.00 for all addresses:
- Verify you have active tax registrations in the Stripe Dashboard for the customer's jurisdiction
- Check that your product has a tax code assigned in the Stripe Dashboard
"Customer's location isn't recognized" error:
- Make sure Billing Address is enabled in Leaky Paywall settings
- The subscriber must complete the full billing address before submitting
Tax preview not appearing on the registration form:
- Confirm both Automatic Tax and Billing Address are enabled
- Clear any page caching on your registration page
- Check for JavaScript errors in the browser console — a conflicting plugin may be interfering
Tax not showing on the transaction in WordPress:
- Tax data is captured when the transaction is created. Transactions created before enabling Stripe Tax will not have tax data.