Troubleshooting reference
FBR invoice rejected? What the error means
FBR names the field that failed, but not always the reason it failed. This is what each message actually means and what to change.
The reference
Errors, grouped by what causes them
FBR’s message text is quoted as it is returned. Codes are included where they are unambiguous — trust the message string in your own response over any published table, including this one.
Who is selling and who is buying
Identity errors are the most common cause of a rejected invoice, and the most commonly misdiagnosed — the message usually names the field, not the reason the value is wrong.
| Code | What FBR returns | What it means and what to change |
|---|---|---|
| 0001 | Seller not registered for sales tax, please provide valid registration/NTN | The seller registration number sent does not resolve to an active sales tax registration. Check you are sending the right entity — a group with several registrations needs the token and the number to belong to the same one. |
| 0002 | Invalid Buyer Registration No or NTN | FBR expects a buyer registration of 13 digits, or an NTN of 7 or 9 digits, as bare digits. The usual culprit is an STRN pasted into the buyer field: strip its punctuation and it becomes exactly 13 characters, so it passes a naive length check, transmits cleanly, and fails here. |
| 0057 | Self-invoicing not allowed | Buyer and seller carry the same registration number. Branch transfers, stock movements and own-consumption postings have to be filtered out before transmission — they are not supplies to a third party. |
| — | Buyer Registration Type is invalid | The buyer type must be one of FBR’s accepted values (registered or unregistered). A blank, or a value carried over from your own customer master, fails. |
Product codes and units
The HS code is where most integration-time failures land, because the code has to exist in FBR’s own list and agree with the sale type you chose.
| Code | What FBR returns | What it means and what to change |
|---|---|---|
| 0019 | HS Code cannot be empty, please provide valid HS Code | Every line needs a code. Services are not exempt from this — they use the same field with a Chapter 98 code. |
| 0052 | HS Code that does not match with provided sale type | The code exists but contradicts the sale type on the same line — for example a standard-rate goods code sent against a services sale type. This is the single most common integration-time rejection. Resolve both from FBR’s reference lists rather than setting either by hand. |
| — | Unit of measurement not allowed for this HS code | The unit field is case-sensitive and validated against the specific code: some codes accept exactly one unit. Resolve the permitted unit from FBR’s HS-to-unit lookup instead of using your own product master’s unit. |
Rates, tax and schedules
Rates are a function of sale type, province and invoice date. Hardcoding a rate works until the first line that is not standard-rated.
| Code | What FBR returns | What it means and what to change |
|---|---|---|
| 0046 | Provide rate | The rate is missing, or is not written the way FBR expects for that sale type and date. FBR returns rates as descriptions — sometimes a plain percentage, sometimes a fuller phrase — and expects the same string back. |
| 0008 | ST withheld at source should either be zero or same as sales tax | Partial withholding is refused. The value must be either zero or the entire sales tax amount for that line. |
| 0091 | Extra tax must be empty | A field that does not apply to the sale type has been sent as 0 rather than left blank. FBR distinguishes between "not applicable" and "zero". |
| 0090 | Please provide Fixed / notified value or Retail Price | Third Schedule goods are taxed on the notified retail price, not the sale value. Send the retail price, and calculate the tax on it — FBR recomputes and rejects a mismatch. |
| 0077 | Provide SRO/Schedule No | Any rate other than the standard rate makes the SRO or schedule number mandatory. |
| 0078 | Provide Item Sr No | Naming an SRO makes its item serial number mandatory too, and the serial must belong to the SRO you named. |
| — | If value of sales exceeds the threshold, that rate is not allowed | Some reduced rates are capped by invoice value. Above the threshold the reduced rate is refused and the standard rate applies. |
Dates, numbers and places
Format errors are trivial to fix and account for a surprising share of failed go-lives.
| Code | What FBR returns | What it means and what to change |
|---|---|---|
| 0005 | Provide invoice date in YYYY-MM-DD format | Any other date shape is refused, including the DD/MM/YYYY most Pakistani systems display. |
| — | Alphanumeric and (-) contained invoice No | Your own invoice number may contain letters, digits and hyphens, with the hyphen between alphanumeric characters. ERP series using slashes — INV/2026/001 — must be transformed before transmission. |
| 0074 | Provide Sale Origination Province of Supplier | A city fails here: "Karachi" is refused, "Sindh" is accepted. Because province drives the applicable rate, this often surfaces later as a rate mismatch rather than as an address problem. |
| 0075 | Provide Destination of Supply | The buyer-side province, also as a province rather than a city. |
Credit and debit notes
Notes are validated against the original invoice, so most failures here are about the reference rather than the note itself.
| Code | What FBR returns | What it means and what to change |
|---|---|---|
| 0056 | Reference Invoice does not exist | A note must carry the FBR invoice number of the original. Your own invoice number will not resolve — which is why FBR’s number has to be stored against the invoice on the day it is submitted. |
| 0027 | Reason is required | Notes require a reason from FBR’s accepted list, and a free-text remark alongside it. |
| — | Debit or credit note can only be added within 180 days of the original invoice | There is a hard 180-day window from the original invoice date. Later adjustments are not a note — take advice on the correct treatment. |
| — | Reference invoice already exists | A note has already been raised against that invoice. Check before issuing a second one. |
Sector-specific rules
A few sale types carry extra conditions that only appear once you select them, and are easy to hit unexpectedly.
| Code | What FBR returns | What it means and what to change |
|---|---|---|
| 0053 | For sale type Cotton ginners, Sales Tax Withheld must be equal to Sales Tax or zero | Cotton ginner sales are also restricted to registered buyers. |
| 0073 | Buyer not exists in steel sector | Steel-sector sale types validate that the buyer is registered within that sector, not merely that the buyer is registered. |
Reference compiled 12 August 2026 from FBR’s digital invoicing technical documentation and observed API responses. FBR adds and renumbers codes without announcement, so treat this as a working reference rather than a definitive list.
FAQ
Frequently Asked Questions
Why was my FBR invoice rejected?
Almost always a field-level data problem rather than anything conceptual. The most common causes are a buyer registration number in the wrong format, an HS code that does not agree with the sale type on the same line, a hardcoded tax rate, or a city where FBR expects a province. Read the message against the specific line — FBR names the field that failed.
Does a rejected invoice mean a penalty?
No. A rejection is a validation failure: the invoice was not accepted, so it was never filed. Penalty exposure under the Sales Tax Act arises from failing to integrate or failing to issue electronic invoices at all, not from an invoice that bounced and was corrected. An unresolved rejection left outstanding is a different matter.
Can I check an invoice before submitting it?
Yes. FBR publishes a validation method that takes the identical invoice, runs the same checks and returns the same errors, but creates no record and issues no invoice number. It is the cheapest way to catch a bad code or rate before the invoice becomes a permanent filing.
The response looked successful but the invoice was rejected. Why?
A rejection arrives over a perfectly normal successful connection, and FBR’s own documentation shows a response whose top-level status reads as accepted while the real error sits against a single line. Treat an invoice as filed only when a non-empty FBR invoice number came back and every line reports clean.
What if I resubmit and it creates a duplicate?
There is no duplicate protection on submission. If a response never reached you, FBR may still have accepted the invoice — search for it before sending again, because an accidental duplicate then has to be cancelled out of a limited allowance.
Continue
Related guides
PCT and HS codes explained
The code errors above, in full — format, lists, and services.
Read morePenalties & rejections
Why a rejection is not a penalty, and where exposure actually sits.
Read moreSandbox to go-live
Catch these in testing rather than on live customer invoices.
Read moreWhat is FBR digital invoicing?
How submission and validation work end to end.
Read moreReady to simplify your FBR digital invoicing?
Join 2000+ businesses using eInvoicePro for real-time FBR integration and automated tax compliance.