Country presets, tax fields and tax-inclusive pricing
What the country dropdown actually changes, what the business and tax registration fields are for, how this tool applies a rate you set, and why tax-inclusive pricing is calculated differently.
What the country dropdown changes, and what it does not
Choosing a country sets four things: the currency the document starts in, the name of the consumption tax ("GST", "VAT", "IVA", "Moms", "Consumption tax"), a suggested rate to start from, and what the two optional identifier fields are called. That is the whole of it.
It does not change the arithmetic. Every country uses the same order of operations and the same exact integer-cent maths, because that part is arithmetic rather than law. It does not decide whether you must charge tax, it does not file anything, and it does not validate an identifier against any register.
Currency and country are separate choices on purpose. Invoicing a client abroad in their currency while remaining registered at home is ordinary freelance practice, so changing the country sets a sensible default currency and then leaves the currency dropdown alone for you to override.
This tool never picks a tax rate for you
The rate box starts with a suggested value for the selected country, and that value does nothing until you tick the box confirming it is correct for your document. Nothing is applied before that. Change the rate and the confirmation resets, because a number you confirmed is not the number you have now. Change the country and the confirmation resets too: a rate you confirmed for one jurisdiction says nothing about another.
That design is deliberate. Tax rates change, and they change on a date set by a government rather than by a software release. A tool that hardcodes a rate keeps producing confident, wrong invoices long after the rate has moved. Every suggested rate in this tool is a starting point to be verified with the tax authority for your country, which is named in the help text under the rate field.
Two entries in the list pre-fill nothing at all. The United States has no single national rate — sales tax is set by state and locality, and many professional services are not taxable. Hong Kong levies no general consumption tax, so most freelance invoices there carry no tax line. Leaving those blank is more honest than inventing a number.
Whether you should charge tax at all is a separate question from what the rate is, and it depends on your own registration status. This tool cannot know that, and does not guess, in any country.
The two identifier fields
Every country names its identifiers differently, so the tool renames the fields rather than showing you someone else’s. The first is the registered-entity identifier: a UEN in Singapore, an ABN in Australia, an EIN in the United States, a SIRET in France, a KVK number in the Netherlands, a CNPJ in Brazil, a company number in the United Kingdom.
The second is the tax-registration identifier, and it is a different thing: a VAT or GST registration number that exists only if the entity is registered for that tax. Putting one on a document is a statement that you are registered.
Both fields are optional and blank by default, in every country, precisely because many freelancers legitimately have neither. If you are unsure which apply to you, that is a question for your tax authority or an accountant, not for an invoice generator.
How the tax is calculated here
Tax is applied to the discounted subtotal, not to the raw subtotal. The full order is: each line total, then per-line discounts, then the subtotal, then the invoice-level discount, then tax on what remains, then the final total.
That ordering is not a stylistic choice. Taxing before a discount overstates the tax, and the customer’s own calculation will not match yours — which is exactly the kind of discrepancy that gets an invoice queried instead of paid.
If some lines are not subject to tax — a disbursement you are recharging at cost, for instance — untick "Subject to tax" on that line. The invoice-level discount is then split across your lines in proportion to their value, so the taxable base reflects the discount fairly. That split is done with whole minor units and always adds back up to the discount exactly; no cent is invented or lost.
One rate applies per document. Where a country splits a single tax across several lines on the paperwork — India’s CGST and SGST, for instance, or a state and a city sales tax in the United States — this tool shows one combined line, which may not match the layout your authority expects.
Tax-exclusive and tax-inclusive are not the same sum
Tax-exclusive means your prices are before tax, and the tax is added on top. If the taxable base is 100.00 and the rate is 9%, the tax is 9.00 and the total is 109.00.
Tax-inclusive means your prices already contain the tax, and it has to be extracted rather than added. The tax inside a tax-inclusive 109.00 at 9% is 9.00 — and the total stays 109.00.
The arithmetic that trips people up is the extraction. The tax inside a tax-inclusive amount is gross x rate / (100 + rate), not gross x rate / 100. Using the second formula on a tax-inclusive 109.00 gives 9.81, which overstates the tax by 81 cents and makes the numbers on the page stop adding up. This tool uses the first formula, and there is a unit test asserting exactly that difference.
Which of the two is normal depends on where you are and who you are billing. Consumer-facing prices are commonly quoted inclusive in much of Europe and the Asia-Pacific; business-to-business invoices are commonly exclusive. The tool follows the tick box, not a guess about your market.
Why the totals are computed in whole minor units
Computers store most decimal fractions approximately. The classic demonstration is that 0.1 + 0.2 does not equal 0.3 in ordinary floating-point arithmetic, and that multiplying 1.005 by 100 gives 100.49999999999999 rather than 100.5 — so the "obvious" way of rounding a price to cents silently rounds it down.
Every amount in this tool is held as a whole number of minor units — cents for the dollar and euro currencies, whole yen, won or dong for the currencies with no subunit — and every intermediate multiplication and division is done in exact integer arithmetic. Rounding happens once, at defined points, using the commercial convention of rounding a half away from zero.
The practical effect: a hundred-line invoice adds up to the same number your customer gets when they check it with a calculator, and switching country or currency never nudges a figure you already typed.
What to check before you send
The tool shows warnings above the document when something needs your attention — an unconfirmed tax rate, a discount that had to be capped at the line total, or a quantity it could not read as a number. None of those stop you exporting, because it is your document; they are there so nothing surprises you after it has gone.
- Check the country dropdown shows the country you invoice from, not the one your client is in.
- Confirm the tax rate is the current one, from the authority rather than from memory.
- Check that tax-inclusive is ticked if, and only if, your prices already include tax.
- Check any line you marked as not subject to tax is genuinely outside scope.
- Read the totals block: subtotal, discount, taxable base, tax, total.
- Export the JSON as well as the PDF, so you can reopen and amend the document later.
Questions
Why will the tool not just use the current rate for my country automatically?
Because it cannot know whether the rate it shipped with is still current, and a stale hardcoded rate produces confidently wrong invoices. The rate is yours to set and confirm, and changing either the rate or the country clears the confirmation so it is always a deliberate act.
My country is not in the dropdown. Can I still use this?
Yes. Choose "Other / not listed": it uses neutral labels and pre-fills no rate, and every field — the tax label, the rate, both identifiers, the payment reference — is free text you can set to whatever your country uses.
I am not registered for VAT or GST. What should I do with these fields?
Leave the tax registration number blank and leave "Charge tax on this document" switched off. That is the default state of a new document in every country. Whether you are required to register is a question for your tax authority or an accountant.
Can it generate a payment QR code — PayNow, PromptPay, UPI, Pix?
No, and that is deliberate in every country. Those payloads are bank-specified formats, and a subtly malformed one could send a payment to the wrong place. The payment reference field is plain text — a number, an ID or an IBAN you type — so the customer initiates the transfer themselves.
Does the tool round differently from my accounting software?
It rounds halves away from zero, the usual commercial convention, and it rounds at the line level and again on the tax. Some systems use banker’s rounding or round only at the end, which can differ by a cent on some documents. If yours does, check a sample document before relying on the two agreeing exactly.
Limitations
- Nothing on this page is tax advice, and no rate shown anywhere in this tool should be treated as current or as applying to you.
- Country presets change labels, a default currency and a suggested rate. They encode no tax rules and validate no identifier.
- The tool does not determine your registration status, your place of supply, or whether a transaction is zero-rated, exempt or out of scope.
- Reverse-charge, partial exemption, margin schemes, withholding and retention lines, and cross-border VAT/GST rules are not modelled.
- Only one tax rate applies per document. Documents that mix several rates, or jurisdictions that require the tax split across separate lines, are not supported.
- Country-specific mandatory formats — e-invoicing schemas, clearance or fiscalisation requirements, prescribed numbering rules — are not implemented. The output is a plain PDF.
- Currency conversion is not performed. A document is denominated in the single currency you choose.
Last reviewed 2026-09-14.