An invoice is a tax document, and different parts of the world expect different things on it. Get the tax presentation wrong and your customers’ accountants bounce it back, or worse, your own filing doesn’t reconcile. Here is what WooCommerce needs to put on the invoice PDF for the three big tax systems, and the fields that matter wherever you sell.
VAT, GST and sales tax are not the same document
- VAT (EU, UK, and much of the world): the invoice must show your VAT registration number, the net amount, the VAT rate and amount, and the gross total. For B2B sales across EU borders, it usually must also show the customer’s VAT number and a reverse-charge note.
- GST (Australia, India, Canada, New Zealand, Singapore): many of these require the document to be labelled a “Tax Invoice”, show your GST/ABN/GSTIN number, and break out the GST amount. India’s GST in particular is strict about the seller and buyer identifiers.
- US sales tax: simpler on the invoice itself (typically the tax line and total), but which rate applies depends on nexus and the ship-to location.
What has to be on the PDF wherever you are
Regardless of system, a defensible invoice shows: your business name, address and tax number; the customer’s details; a unique sequential invoice number (see why order numbers aren’t enough); the invoice date; a per-line breakdown; and the tax shown as its own line with the rate, not baked silently into the price.
Cross-border B2B: the reverse charge
The single most common way a compliant-looking invoice becomes a problem is a B2B sale across a border. When you sell to a VAT-registered business in another EU member state, you generally do not charge VAT; the buyer accounts for it themselves under the reverse charge. But that only holds if the paperwork proves it, which means the invoice has to carry three things: your VAT number, the customer’s valid VAT number, and an explicit statement such as “Reverse charge: VAT to be accounted for by the recipient.”
“Valid” is doing real work in that sentence. A VAT number the customer typed into a checkout field is a claim, not a fact. If it turns out to be invalid or belongs to someone else, the unpaid VAT is generally your liability, not theirs. That’s why validating against the official registry at checkout, and storing the result with the order, matters far more than it looks: you’re preserving the evidence that you were entitled to zero-rate the sale.
Digital goods move where the tax is owed
Sell a physical product and tax usually follows the shipping address. Sell a download, a subscription or a service and the rules change under place of supply: for EU consumers, VAT is generally due at the customer’s rate in their country, not yours. That’s the entire reason the OSS scheme exists: so you can report all of it through one return instead of registering in each state you sell into.
The United States runs on completely different logic. There’s no VAT; there’s sales tax set by thousands of overlapping state and local jurisdictions, and your obligation depends on economic nexus, typically crossing a revenue or transaction threshold in a state, at which point you must register and collect there. Practical upshot: the same order data has to produce a VAT invoice for one buyer and a sales-tax receipt for another, and hardcoding one country’s assumptions into your template is how stores end up reissuing a year of documents.
Getting it out of WooCommerce
WooCommerce already calculates the tax per line and per order and stores it. The job of the invoice plugin is to render that breakdown faithfully on the PDF (the net, the rate, the tax amount and the gross), and to place your tax registration number and (for B2B) a field for the customer’s. Watch for two things: the currency symbol must render correctly for international buyers (a surprising number of plugins mangle non-dollar symbols), and the tax breakdown must survive multiple tax rates on one order.
Tax rules change and vary by jurisdiction; confirm your local requirements with an accountant. The plugin’s job is to make WooCommerce’s numbers show up correctly and completely on a document you can hand to one.
An invoice plugin that gets the details right
Rebel Studios Invoice Documents for WooCommerce puts your tax breakdown, tax ID and totals on a clean PDF, assigns stable sequential invoice numbers stored on the order, and attaches to your order emails automatically. Free, with bulk printing in Pro.
Related reading: sequential invoice numbering for tax compliance and attaching the invoice to order emails, and bulk-printing a whole day’s invoices at once.
