Calculating VAT


when I sell a subscription, I have to charge VAT, at least for my home country and for subscribers who live in the European Union.

How do I configure that in the Ghost members module?

1 Like

Managing VAT is something you would do at an accounting level. Payment handling for Members is all done through Stripe. Here’s what they say you should do:

Unfortunately, this is not as easy as it seems.

  • When I sell to someone in Germany, I have to charge them the usual 19% VAT on top of the net price.
  • When I sell to someone in the U.S., I must not charge them VAT.
  • When I sell to a business in the E.U., they have to pay the VAT to their country by themselves.
  • When I sell to a consumer in the E.U., I have to charge them the VAT.

How on earth shall I handle this in Ghost?

Hi there :wave:t3:

Ghost as a platform allows you to publish content and run a paid publication - but in terms of payments it integrates with external payment gateways. Detailed customer information that you’d need for VAT purposes is never passed into the Ghost dashboard.

If you’re using the Stripe integration there are lots of accounting tools that integrate directly with Stripe for this exact purpose. I’d recommend contacting their support team for further information about that :blush:

You may already know this, but some publishers who are creating email newsletters and digital publications have found they are exempt from VAT. Here’s some further reading for the UK, for example. If you haven’t already, we always advise speaking with a professional accountant about how VAT applies to your individual circumstances.


As far as I understand it Stripe accounting tools do not solve the problem. Before you can report taxes you have to collect them and this requires a modification of the Stripe payment form. Is there any guide how add a vat field to the Ghost checkout form? Has anyone done this successfully?

A much simpler solution would be an integration with a reseller like Paddle or Gumroad that handles all the VAT tax issues for you instead of Stripe. However, so far I wasn’t able to find a way to make this work properly.

I’ve found this relevant item in the Stripe help: Charging sales tax, GST, or VAT on payments : Stripe: Help & Support

When making charge requests, Stripe does not automatically calculate any tax information for you. The amount you specify must be the total amount to charge the customer, inclusive of any fees or taxes that they should be charged. This will need to be done manually, or you can build support to include taxes in your charge request amounts in your integration’s backend.

So, the total amount has to come from the Ghost side, it looks like.

And, maybe publications are VAT-exempt, but I don’t think that’s the case with HST, unfortunately. As long as a business’s income is under $30K per year, we don’t have to charge it, but once we go over that magic number, charging sales tax is required. I hope Ghost is looking into integrating this feature! It’s pretty necessary on the global scale.

1 Like

Charging VAT is not a simple accounting problem, nor can it be left to the payment processor. The pricing must include VAT, and that depends on the location and B2B/B2C status of the customer. In case of B2B customers in the EU, one must also collect, validate and store the VAT ID of the customer. And, finally, correct invoices with tax information must be produced for customer and seller’s accounting.

I wish there was a solution with Stripe, … but there isn’t. The core functionality must start in Ghost.

Stripe has acquired TaxJar and is actively building VAT functionality, which is currently being beta tested. If you want early access to this, you can reach out to the Stripe team to ask for it to be enabled on your account. It’s in beta, so adjust expectations accordingly.