When FBR rejects an invoice, it sends back an error message. Sometimes the message is clear. Often it names the field that failed, but not why it failed, and the fix isn't obvious.
This page is a complete reference library of FBR digital invoicing error messages. Find the message you received, see what it actually means, and fix it at the source so it doesn't happen again.
How to use this page: press Ctrl+F (or Cmd+F on Mac) and paste part of your error message. Each error is listed under its exact message text.
Looking for the most common errors in a shorter read? See our guide to common FBR integration errors and how to fix them.
Before You Start: How FBR Errors Work
A rejected invoice is not a penalty. A rejection means the invoice failed validation and was never accepted. Fix the data and resubmit.
Read the error against the specific line. FBR validates each invoice line separately. An invoice can fail because of one line out of twenty.
Trust the message, not just the code. FBR has added and renumbered error codes over time, and published lists don't always agree. The message text in your own response is the most reliable guide. Codes in this library are shown as commonly reported.
Fix the master data, not just the invoice. Most errors come from product, customer or tax setup. Correcting only the failed invoice means the same error returns tomorrow.
Check before resubmitting. If a request timed out, FBR may have accepted the invoice even though you didn't receive the response. Search for it before resending, or you risk a duplicate.
What a rejection looks like:
json
{
"validationResponse": {
"statusCode": "01",
"status": "Invalid",
"errorCode": "0052",
"error": "HS Code does not match with provided sale type. Please refer to relevant reference API in the technical document for DI API for valid HS Code against sale type.",
"invoiceStatuses": null
}
}A successful invoice returns an FBR invoice number for the invoice and a valid status for every line. Only treat an invoice as filed when you have that number.
Quick Reference Table
Category | Typical error message | Most likely fix |
|---|---|---|
HS code | HS Code does not match with provided sale type | Pick the HS code and sale type from FBR's reference lists |
HS code | HS Code cannot be empty | Add an HS code to every item, including services |
Unit | UoM is not allowed against the provided HS Code | Use the unit FBR allows for that HS code |
Seller | Seller not registered for sales tax | Check the seller NTN and token belong to the same registration |
Buyer | Invalid Buyer Registration No or NTN | Send digits only, in the right length |
Buyer | Registration type does not match buyer's profile | Re-verify buyer as registered or unregistered |
Buyer | Self-invoicing not allowed | Don't send internal transfers to FBR |
Sale type | Provided sale type is not valid / not provided | Use a sale type from FBR's reference list |
Rate | Provide rate | Use the rate description returned by FBR, not a typed value |
SRO | Provide SRO/Schedule No / Provide Item Sr No | Add SRO and serial for non-standard rates |
Tax fields | ST withheld at source should be zero or same as sales tax | Withhold all or nothing |
Tax fields | Extra tax must be empty | Leave non-applicable fields blank, not zero |
Third Schedule | Provide Fixed / notified value or Retail Price | Send the printed retail price |
Date | Provide invoice date in YYYY-MM-DD format | Change the date format |
Invoice number | Alphanumeric and (-) contained invoice No | Remove slashes and special characters |
Province | Provide Sale Origination Province / Destination of Supply | Send the province, not the city |
Notes | Reference Invoice does not exist | Use FBR's invoice number, not your own |
Notes | Reason is required | Choose a reason from FBR's list |
Notes | Can only be added within 180 days | Notes are limited to 180 days from the original invoice |
Connection | 401 Unauthorized / invalid token | Renew or correct the API token |
1. HS Code and Unit of Measure Errors
These are the most common errors during integration and go-live.
"HS Code does not match with provided sale type" (0052)
Full message: HS Code does not match with provided sale type. Please refer to relevant reference API in the technical document for DI API for valid HS Code against sale type.
What it means: the HS code exists, but it isn't allowed for the sale type on the same line. For example, a goods HS code sent with a services sale type, or a standard-rate code sent with a reduced-rate or Third Schedule sale type.
How to fix it:
Check which sale type is set on the failed line.
Look up the HS codes FBR allows for that sale type using FBR's reference data.
Correct either the HS code or the sale type so they match.
Update the item master so future invoices use the right combination.
Prevent it: don't let users type HS codes or sale types freely. Map each item to an FBR-valid HS code and sale type once, and let the system apply them automatically.
"HS Code cannot be empty, please provide valid HS Code"
What it means: an invoice line has no HS code, or the code isn't in FBR's list.
How to fix it: add a valid HS code to the item. Services need an HS code too, usually from Chapter 98.
Prevent it: make the HS code a mandatory field on every sellable item.
"Provide proper HS Code with invoice no."
What it means: the HS code is missing or in the wrong format.
How to fix it: use the full FBR format with the dot, for example 0101.2100, exactly as it appears in FBR's reference list.
"Provided UoM is not allowed against the provided HS Code"
What it means: the unit of measure on the line isn't valid for that HS code. Some HS codes accept only one specific unit, and the value is case-sensitive.
How to fix it:
Look up the units FBR allows for the HS code.
Use FBR's exact unit text, not your own (for example, FBR's wording for pieces or kilograms).
If you sell in cartons but FBR expects pieces or kilograms, convert the quantity before sending.
Prevent it: store FBR's unit separately from your internal selling unit, and map between them.
"Toll manufacturing cannot be declared as service"
What it means: a toll manufacturing HS code was sent with a services sale type.
How to fix it: use the correct goods sale type for toll manufacturing.
2. Seller Errors
"Seller not registered for sales tax, please provide valid registration/NTN" (0001)
What it means: the seller registration sent doesn't match an active sales tax registration.
How to fix it:
Check the seller NTN or registration number on the invoice.
Make sure the API token belongs to the same registration. Groups with several companies often send one company's invoices using another company's token.
Confirm the registration is active in IRIS.
Prevent it: in multi-company setups, link each company to its own FBR token and NTN.
3. Buyer Errors
Buyer errors are very common and often misdiagnosed.
"Invalid Buyer Registration No or NTN" (0002)
What it means: the buyer's registration number isn't in the format FBR expects.
How to fix it:
Send digits only, with no dashes, spaces or slashes.
Use a 7 or 9 digit NTN or a 13 digit registration or CNIC, as FBR expects.
Don't paste a formatted STRN into the NTN field. With punctuation removed, it can look valid but still fail.
Prevent it: validate buyer numbers when creating customers, not when invoicing.
"Provided Registration type does not match with Buyer's profile"
What it means: you marked the buyer as registered when FBR shows them as unregistered, or the reverse.
How to fix it: check the buyer's status in FBR's registration lookup, and update the customer record.
Prevent it: re-verify buyer status periodically, since businesses can register or become inactive.
"Buyer Registration Type is invalid"
What it means: the buyer type field is blank or contains a value FBR doesn't accept.
How to fix it: use FBR's accepted values (Registered or Unregistered).
"Self-invoicing not allowed" (0057)
What it means: buyer and seller have the same registration number.
How to fix it: don't send branch transfers, stock movements or internal consumption to FBR. They aren't sales to a third party.
Prevent it: filter internal transfers out of FBR submission in your ERP.
4. Sale Type Errors
"Provided sale type is not valid"
What it means: the sale type text doesn't match any of FBR's sale types.
How to fix it: use the exact sale type description from FBR's reference data, such as Goods at Standard Rate (default).
"Sale type is not provided"
What it means: the sale type field is empty on a line.
How to fix it: assign a sale type to every item or invoice line.
5. Tax Rate, SRO and Tax Field Errors
"Provide rate" (0046)
What it means: the rate is missing, or not written the way FBR expects for that sale type and date.
How to fix it: use the rate description returned by FBR's reference API for that sale type, rather than a hand-typed value. FBR sometimes expects a phrase, not just a percentage.
Prevent it: never hardcode tax rates. Rates depend on sale type, province and date.
"Provide SRO/Schedule No" (0077)
What it means: you used a rate other than the standard rate, but didn't include the SRO or schedule number that allows it.
How to fix it: add the relevant SRO or schedule number to the line.
"Provide Item Sr No" (0078)
What it means: you named an SRO, but didn't include the serial number of the item within that SRO.
How to fix it: add the SRO item serial number. It must belong to the SRO you named.
"ST withheld at source should either be zero or same as sales tax" (0008)
What it means: you withheld part of the sales tax. FBR only accepts zero or the full amount.
How to fix it: set withholding to either 0 or the full sales tax for that line.
"Extra tax must be empty" (0091)
What it means: a field that doesn't apply to this sale type was sent as 0 instead of being left blank.
How to fix it: leave non-applicable fields empty. FBR treats "0" and "not applicable" differently.
"Please provide Fixed / notified value or Retail Price" (0090)
What it means: the item falls under the Third Schedule, where tax is calculated on the printed retail price, not the sale price.
How to fix it: send the retail price and calculate tax on it. FBR recalculates and rejects mismatches.
Prevent it: store the retail price on Third Schedule items.
"If value of sales exceeds the threshold, that rate is not allowed"
What it means: a reduced rate has a value limit, and this invoice is above it.
How to fix it: apply the standard rate for invoices above the threshold.
Sales tax amount mismatch
What it means: your calculated tax doesn't match FBR's calculation, often due to rounding, discounts or further tax.
How to fix it:
Recalculate line by line using the same base FBR uses.
Check how discounts reduce the taxable value.
Check further tax on unregistered buyers.
Round consistently per line.
6. Date, Invoice Number and Province Errors
These are simple to fix but cause many failed go-lives.
"Provide invoice date in YYYY-MM-DD format" (0005)
What it means: the date isn't in the format FBR requires.
How to fix it: send dates as 2026-10-04, not 04/10/2026 or 04-Oct-2026.
"Alphanumeric and (-) contained invoice No"
What it means: your invoice number contains characters FBR doesn't accept.
How to fix it: use only letters, numbers and hyphens. A series like INV/2026/001 must become INV-2026-001 before sending.
Prevent it: set your ERP's invoice numbering series to use hyphens.
"Provide Sale Origination Province of Supplier" (0074)
What it means: the seller's province is missing or invalid.
How to fix it: send the province (for example, Sindh), not the city (Karachi).
"Provide Destination of Supply" (0075)
What it means: the buyer's province is missing or invalid.
How to fix it: send the buyer's province, not the city.
Prevent it: because province affects tax rates, a wrong province can also appear later as a rate error. Make province a required field on all addresses.
"Invalid format"
What it means: this general message usually means a field doesn't match FBR's expected format. Common culprits are dates, numbers sent as text (or text sent as numbers), extra spaces, or invalid characters.
How to fix it:
Check the date format (YYYY-MM-DD).
Check numeric fields contain only numbers, with no commas or currency symbols.
Check NTN and registration fields contain digits only.
Check the invoice number contains only letters, numbers and hyphens.
Validate the JSON structure, since a missing bracket or quote can also cause it.
7. Credit Note and Debit Note Errors
"Reference Invoice does not exist" (0056)
What it means: the note doesn't reference a valid FBR invoice number.
How to fix it: use the FBR invoice number of the original invoice, not your own invoice number.
Prevent it: store the FBR invoice number against every invoice as soon as it's accepted.
"Reason is required" (0027)
What it means: credit and debit notes need a reason from FBR's accepted list.
How to fix it: select a valid reason and add a short remark.
"Debit or credit note can only be added within 180 days of the original invoice"
What it means: the original invoice is older than 180 days.
How to fix it: a note can't be issued through the system after this window. Speak to your tax advisor about the correct treatment.
"Reference invoice already exists"
What it means: a note has already been issued against that invoice.
How to fix it: check existing notes before creating another.
8. Sector-Specific Errors
Some sale types have extra rules that only appear when selected, for example:
Cotton ginners: sales tax withheld must equal sales tax or be zero, and sales may be restricted to registered buyers.
Steel sector: the buyer must be registered within the steel sector, not just registered in general.
Potassium chlorate and other notified items: specific HS codes, units and tax calculations apply.
If you trade in a specially notified sector, test these scenarios in the sandbox before going live.
9. Connection and Authentication Errors
401 Unauthorized or invalid token
What it means: your API token is missing, expired, wrong, or belongs to a different registration.
How to fix it:
Generate or copy the correct token from IRIS.
Make sure you're using the sandbox token for sandbox and the production token for production.
Confirm the token belongs to the same NTN you're sending as seller.
Sandbox works but production fails
What it means: production settings differ from sandbox.
How to fix it: check the production URL, production token and that your business has completed the required scenario testing.
Timeouts or no response
What it means: FBR's system or your internet connection didn't respond in time.
How to fix it:
Don't immediately resend. First check whether FBR received and accepted the invoice.
Retry once the connection is stable.
Make sure your system queues invoices during outages and submits them later.
How to Stop FBR Errors at the Source
Most FBR errors come from data that was never set up properly. A well-configured ERP prevents them before invoices are ever sent:
Problem | Prevention in your ERP |
|---|---|
Wrong HS codes | HS code mandatory on every item, selected from FBR's list |
HS code and sale type mismatch | Sale type mapped to each item, not chosen per invoice |
Unit errors | FBR unit stored separately and mapped to selling units |
Buyer NTN errors | NTN validated and verified when the customer is created |
Wrong registration type | Buyer status re-verified periodically |
Hardcoded rates | Tax templates driven by sale type, province and date |
Province errors | Province mandatory on every address |
Invoice number format | Numbering series uses hyphens only |
Credit note references | FBR invoice number stored on every invoice |
Internal transfers sent to FBR | Transfers excluded from FBR submission |
Outages | Invoices queued and resubmitted automatically |
Our ERPNext FBR digital invoicing setup guide explains how to configure these step by step.
Frequently Asked Questions
What does FBR error 0052 mean?
It means the HS code doesn't match the sale type on that invoice line. Choose an HS code and sale type combination that FBR allows, using its reference data.
Does a rejected FBR invoice mean a penalty?
No. A rejected invoice failed validation and wasn't accepted, so it wasn't filed. Fix the error and resubmit. Penalties relate to not integrating or not issuing electronic invoices at all.
Why does FBR reject invoices that look correct?
Usually because of master data: a buyer NTN in the wrong format, an HS code that doesn't match the sale type, a typed tax rate, or a city where FBR expects a province.
Are FBR error codes the same for everyone?
Error codes can change between API versions, and published lists don't always agree. Always rely on the error message text in your own response.
Can I test invoices before sending them live?
Yes. FBR's sandbox and validation tools run the same checks without creating a real invoice, which is the best way to catch errors before go-live.
What should I do if FBR doesn't respond?
Check whether the invoice was accepted before resending, to avoid creating a duplicate.
Do services need an HS code for FBR?
Yes. Services also need an HS code, usually from Chapter 98.
Still Getting FBR Errors? Bizloom ERP Can Help
Bizloom ERP sets up and supports FBR digital invoicing on ERPNext for businesses across Pakistan. We can:
Diagnose and fix recurring FBR rejections
Map HS codes, sale types, units and tax rates for your items
Clean customer NTN and registration data
Configure tax templates, provinces and invoice numbering
Set up sandbox testing and go-live
Monitor submissions and handle exceptions
Learn more about our FBR integration services, or read which businesses must integrate with FBR, what FBR integration costs and our complete FBR integration guide. Running a POS? See FBR POS integration for retailers.
Stuck on an FBR error right now? Book a Free ERP Assessment with Bizloom ERP and our team will help you find the cause and fix it at the source.