FBR Error 0099: Why Your E-Invoice Got Rejected and How to Fix It
FBR error 0099 means your invoice’s unit of measure doesn’t match its HS code. Here’s how to fix it and stop it for good.
𝗙𝗕𝗥 𝗘𝗿𝗿𝗼𝗿 𝟬𝟬𝟵𝟵: 𝗪𝗵𝘆 𝗬𝗼𝘂𝗿 𝗘-𝗜𝗻𝘃𝗼𝗶𝗰𝗲 𝗚𝗼𝘁 𝗥𝗲𝗷𝗲𝗰𝘁𝗲𝗱 𝗮𝗻𝗱 𝗛𝗼𝘄 𝘁𝗼 𝗙𝗶𝘅 𝗜𝘁:
FBR error 0099 means your invoice’s unit of measure doesn’t match its HS code. Here’s how to fix it and stop it for good.
You’ve done the hard part. You got your sandbox token from IRIS, set up your products and built your first invoice. You hit Submit, and FBR sends it back with 0099.
There’s no FBR invoice number and no QR code. You just get a rejection and a code that tells you almost nothing.
If that’s where you are right now, you’re not alone. Error 0099 is one of the first problems businesses run into when they start FBR digital invoicing. The good news is that once you know what it means, it’s one of the easiest errors to fix and to prevent for good.
𝗪𝗵𝗮𝘁 𝗗𝗼𝗲𝘀 𝗙𝗕𝗥 𝗘𝗿𝗿𝗼𝗿 𝟬𝟬𝟵𝟵 𝗠𝗲𝗮𝗻?
In plain words: the unit of measure on your invoice line doesn’t match the units FBR allows for that item’s HS code.
FBR doesn’t let you choose any unit you like for a product. Each HS code is linked to a fixed set of allowed units in FBR’s reference data, called the HS_UOM list. When an invoice line arrives, FBR checks two things together:
𝗪𝗵𝗮𝘁 𝗶𝘀 𝘁𝗵𝗶𝘀 𝗶𝘁𝗲𝗺’𝘀 𝗛𝗦 𝗰𝗼𝗱𝗲? Is the unit on this line one of the units allowed for that HS code?
If the answer to the second question is no, the line fails with 0099.
💡𝐊𝐞𝐲 𝐭𝐚𝐤𝐞𝐚𝐰𝐚𝐲: The problem isn’t your price, your tax or your buyer. It’s a mismatch between two fields most people never thought of as connected.
𝗪𝗵𝘆 𝗘𝗿𝗿𝗼𝗿 𝟬𝟬𝟵𝟵 𝗛𝗮𝗽𝗽𝗲𝗻𝘀 𝗦𝗼 𝗢𝗳𝘁𝗲𝗻?
Most businesses have invoiced the same way for years. You sell in pieces, cartons, dozens or rolls. That’s what your old invoices say, and that’s what your accountant types out of habit.
FBR works from its own list. An item you’ve always sold “per piece” might sit under an HS code that FBR only accepts in KG, or the other way round.
Common Ways It Happens Copying units from old invoices or accounting software. A unit that worked in your ledger isn’t always one FBR accepts. Typing the unit by hand. One person writes “Pcs”, another writes “Numbers”, a third picks “Dozen”. Maybe only one of them is valid. Choosing a nearby HS code. If the HS code is slightly wrong, the unit that fits the correct code may now be rejected. Bulk-importing a product list. One bad column in a spreadsheet, and every invoice for those items fails at once.
None of these are careless mistakes. They happen naturally when an old process meets a new, stricter system.
𝗛𝗼𝘄 𝘁𝗼 𝗙𝗶𝘅 𝗘𝗿𝗿𝗼𝗿 𝟬𝟬𝟵𝟵: 𝗦𝘁𝗲𝗽 𝗯𝘆 𝗦𝘁𝗲𝗽? Step 1: Find the Line That Failed
FBR responds line by line. Check which item was flagged, because the rest of the invoice may be fine.
Step 2: Confirm the HS Code Is Correct
Before you touch the unit, make sure the HS code really describes the product. If the code is wrong, changing the unit only hides the real problem.
Step 3: Check the Allowed Units for That HS Code
Look up the code in FBR’s HS_UOM reference data and see which units it accepts.
Step 4: Convert Your Quantity If Needed
This is the step people miss. If you sold 50 cartons but FBR wants the unit in KG, you can’t just change the label. You have to report the correct quantity in KG and make sure the rate and value still add up.
Step 5: Fix It at the Source
Correct the unit in your product master, not just on this one invoice. Otherwise the next invoice for the same item will fail the same way.
Step 6: Validate, Then Resubmit
Run the invoice through validation first. Once it passes, submit it. This time you should get back an FBR invoice number and QR code.
✅ 𝐆𝐨𝐨𝐝 𝐭𝐨 𝐤𝐧𝐨𝐰: FBR hasn’t accepted a rejected invoice yet, so you’re correcting it before it’s officially reported. You’re not cancelling something already on record.
𝗛𝗼𝘄 𝘁𝗼 𝗠𝗮𝗸𝗲 𝗦𝘂𝗿𝗲 𝗬𝗼𝘂 𝗡𝗲𝘃𝗲𝗿 𝗦𝗲𝗲 𝟬𝟬𝟵𝟵 𝗔𝗴𝗮𝗶𝗻?
Fixing 0099 once is easy. Fixing it every week, for every new product, for everyone who creates invoices, is what wears your team down.
The lasting fix is to stop people from typing units at all. When a product is set up, its HS code should decide which units can be chosen. If the wrong unit can’t be selected, it can’t be submitted, and it can’t be rejected.
𝗛𝗼𝘄 𝗥𝗮𝘀𝗲𝗲𝗱 𝗣𝗿𝗼 𝗣𝗿𝗲𝘃𝗲𝗻𝘁𝘀 𝗘𝗿𝗿𝗼𝗿 𝟬𝟬𝟵𝟵?
That’s exactly how we built Raseed Pro: FBR reference data built in. HS codes, units and tax rates come straight from FBR’s reference lists. Only valid units shown. Once you pick an item’s HS code, Raseed Pro shows only the units FBR allows for that code. No free-text unit field. There’s nothing to mistype, so 0099 never reaches you. Checked before it’s sent. Every invoice is validated before submission. If something else is wrong, you see it on your screen first, not in a rejection from FBR. The Bigger Lesson
Error 0099 is small, but it points to something important about FBR digital invoicing:
Compliance now depends on the quality of your data, not just the accuracy of your totals.
Your HS codes, units, buyer registration details and tax types all have to match FBR’s definitions exactly, on every invoice. Relying on memory and habit will keep producing rejections. Set things up correctly once, at the product level, and let the system enforce the rules. That’s what makes digital invoicing easy.
𝐐𝐮𝐢𝐜𝐤 𝐒𝐮𝐦𝐦𝐚𝐫𝐲:
Error: FBR 0099 Meaning: The unit of measure isn’t allowed for the item’s HS code Quick fix: Check the HS code, choose a unit from the HS_UOM list, convert the quantity, then revalidate and resubmit Permanent fix: Lock units to HS codes in your product master, for example with Raseed Pro