A Figure With No Owner
A tax amount that does not record which government it is owed to is a correct number and an anonymous one — and in a country with five revenue authorities, anonymity is the whole problem.
Most conversations about multi-jurisdiction tax are really about rates: this province charges that, this one charges something else, where do I configure it. Pakistan is a good place to notice that the rate is rarely the hard part. The hard part is that a single business can owe sales tax to five different governments depending on what it sold, and a tax figure in most systems does not record which one.
The divide is constitutional, not accounting
Sales tax on goods is federal, charged at 18% under the Sales Tax Act and filed with the Federal Board of Revenue. Sales tax on services is a provincial subject — Sindh, Punjab, Khyber Pakhtunkhwa, Balochistan and the Islamabad Capital Territory each levy their own, through their own revenue authority, at their own rate, on their own return.
That is not a variation within one system. It is a different government with a different registration and a different filing obligation, and the thing that decides which one applies is whether what you sold was a good or a service. A question that sounds like a product-catalogue detail is in fact the routing rule for the money.
Not the same as the Brazilian problem
We wrote separately about Brazil, where a single invoice line carries several taxes at once. That is a problem of composition — one figure where several are owed. Pakistan is a problem of destination — one tax, but which government. A system could solve either without touching the other, and it is worth keeping them apart because they get conflated into a vague "multi-jurisdiction support" that means neither.
What our own invoice line records
A tax rate. That is the whole of it. There is no field naming the authority the resulting figure is owed to, and nothing on the line recording a jurisdiction — our per-organization rate carries a country, a region and a city, and all three describe the organization's own address rather than the transaction's destination.
And the property that decides everything, goods versus services, is not held in a form the tax calculation can see. An item has a free-text category and a tax treatment of standard, zero-rated or exempt. Neither of those is the constitutional distinction, and a category label chosen by whoever created the product is not a safe basis for deciding which government you owe.
A third input, which is stranger
There is also a further tax on supplies made to a person who has not obtained a registration number or is not on the active taxpayer list. So what you charge can depend on the status of the party you are charging — a fact about somebody else, which changes over time without you doing anything.
Our customer record has no tax registration field and no status field. Not a weak screen — no column. So the input to that decision is not merely unverified, it is unrecordable, and any business relying on it is keeping the information somewhere other than in the system that raises the invoice.
Where the cost actually shows up
Not on the invoice. The invoice is fine — charge the right amount and the document is correct. The cost lands at month end, when one month of trading has to become several returns, and the split has to be produced from data that does not carry the split. That is a separate problem worth its own post, because the interesting failure is not that it is hard. It is that it is not reproducible.
The question worth asking any vendor
Ask what a stored tax amount knows about its own destination. Not "do you support Pakistani sales tax" — that invites a story. Ask whether the figure records the authority it belongs to. It is a yes-or-no question, and the answer decides whether your month end is a query or a spreadsheet.
Ours is no, and the work to change it is on our list with a specification and a price: a jurisdiction and an authority carried on the tax figure itself. It is not a large piece of work, which is worth saying plainly — a small undone thing is a more honest disclosure than a large promised one.