Mavenseed works together with Stripe Tax in order to provide support for Sales Tax, VAT, and GST. At a high level this involves syncing your Products with an accompanying Stripe Product, then setting a default Product Tax Category in Stripe.

Before continuing, activate Stripe Tax within both your Stripe Dashboard, and within your site settings under admin/settings/taxes.


It's helpful to first understand how Products and Prices work with Stripe, and their limitations. If you haven't already, here's a great guide to read from Stripe:

When you mark a Download, Course, or Live Stream for sale, we create a Product behind the scenes (you really never see this but it's ultimately what customers purchase). The Products price, title, and thumbnail are sent to your Stripe Account and an accompanying Stripe Product is created automatically.

Once created, we add the Stripe Price ID to your Mavenseed Product. This can be seen in the Sell tab when viewing your Content.

That little check mark indicates that your Product is in sync with the Stripe Product. If it's not in sync, you'll see an exclamation warning symbol, and it will offer you the option to automatically create a new product on Stripe and fill in the new Stripe Price ID.

In most cases this should never be out of sync once the Stripe Product is created, and the new price id is filled in.

Try It

Create a new Download under admin/downloads/new

Under the Sell tab, under Paid Access, give it a price, then create the product.

Log in to your Stripe Account, and click the Products tab. At the top will be the product that you just created. If you click the product you will see the Prices that Stripe has listed for this product.

Note: it's normal for the Stripe Price ID field on your Product in Mavenseed to be empty when it's first created, however upon refresh you should see it.

Stripe Price Gotchas

It is expected to see the Stripe Price ID change often on your Mavenseed Product, especially when you update the price of your product in the app. Since Stripe does not allow the Price on a Product to be changed (nor do they allow deleting), we have to create a new Price, then we set that as the default price in Stripe.

Therefore it's normal to see something like below:

In this case the original price was $5.00 (bottom). Then, the price was changed to $7.00 (middle). Finally, the price was changed back to 5.00 (top). This may look like duplicates, but the API ID's are all different if you were to view them fully (the end of the ID's are cut off).

And since Stripe doesn't allow us to delete Prices through the API, this is considered normal.

So long as the default API ID matches the Stripe Price ID on your product in Mavenseed, or, so long as the Sync utility has a green check mark, you'll be good to go.

Taxes on Orders

Stripe will apply your chosen Default Product Tax Category to all products. This category can be changed in your Stripe account. Currently Mavenseed does not support a per product tax code, but this is something that will be introduced in a future update.

Taxes are calculated and handled in Stripe Checkout for both Orders and Subscriptions. In all cases, Stripe uses the billing address to calculate tax. Once a customer completes a purchase, Stripe will use the billing address that it has on file for that Customer to calculate future taxes. This works for both Sales Tax, VAT, and GST.

Taxes on Subscription Payments

Stripe will use the address on file for the Customer to calculate taxes, and Stripe will only calculate the taxes if the address has been validated. Here's a guide on that:

If Stripe cannot validate the Customer address when the recurring invoice is set to be charged, there are two options that the app will take; Bypass Taxes or Require Billing. This Tax Billing Behavior is a setting that you can change within admin/settings/taxes.

Bypass Taxes

If the address isn't verified by Stripe, then we will turn off tax collection for this Stripe Subscription and the Stripe Customer. By doing so, Stripe will not collect tax but will proceed to charge the customer.

This is the default option.

Require Billing

If you toggle this option, then Stripe will not charge the customer until their Billing Address is verified by Stripe.

Address Validation

Customers have the ability to update their Billing Address from within their Customer Account. Once the Customer updates their Billing, we immediately verify this address with Stripe. If all goes well, then we'll let the customer know that their address is verified. We'll also turn on Tax collection (if you have enabled this in Stripe) for all future recurring invoices.

If this address is not verified by Stripe, we'll still save the address, but we'll warn the customer that their billing address isn't recognized. At this time we'll also turn off tax collection IF you have changed your Tax Billing Behavior to Requires Billing. This will allow Stripe to continue to charge the customer, but skipping the attempt at tax collection.

This can be confirmed in Stripe but checking the customers Tax location status.

This is also reflected on the Customer Details card as shown below.

In our experience, you have to really butcher the address for it to not be recognized, so this should not be common.

However, we realize the potential loss of revenue here depending on your Billing Behavior preferences, so we will also show a warning when viewing this customer within your admin.

Last updated