Most FBR invoice rejections trace back to a small, repeating set of causes. If you're troubleshooting a batch of failures – or want to avoid your first one – this is the list worth checking against.
1. HS code and item description mismatch
The single most common rejection cause. An HS code that doesn't correspond to the actual item, or one that's technically valid but unusual for that item category, gets flagged. Fix it at the source: assign HS codes at the item-master level using autocomplete search, not by typing a remembered code into each invoice.
2. Missing or malformed QR codes
Every compliant invoice needs a QR code generated from the FBR response after successful submission – it's what lets a buyer or auditor verify the invoice independently. This usually isn't something you generate yourself; it should be issued automatically once FBR accepts the invoice. If invoices are going out without one, check whether your system is treating "submitted" and "confirmed by FBR" as the same status – they aren't.
3. Invalid NTN or CNIC formats
NTN and CNIC numbers have specific formats, and a single missing digit or wrong separator is enough to fail validation. This is exactly why real-time buyer validation matters – catching a malformed NTN when you add the buyer is far less disruptive than catching it when an invoice bounces weeks later.
4. UOM values FBR doesn't recognize
Using an internal unit label – "box," "pack," "unit" – that doesn't match FBR's accepted UOM list will fail validation even if the quantity itself is correct. Map your internal units to FBR-recognized UOM values once, at the item level, rather than guessing per invoice.
5. Stale or manually entered tax rates
Tax rates tied to sale type and HS code can change. Hardcoding a rate you looked up once, rather than fetching it live from FBR at the time of invoicing, is a slow-building risk – it works fine until a rate changes and nobody updates the spreadsheet formula or system config.
6. Backdating invoices past a compliance cutoff
Some businesses lock invoicing for past dates specifically to prevent this – once a period is closed, no new invoice can be created or edited for that date range. If you don't have this control, it's worth adding, since backdated invoices are a common flag in audits regardless of whether the backdating was intentional.
7. Duplicate or reused invoice numbers
Manual numbering systems (especially across multiple people creating invoices) are prone to accidental duplicates. Auto-incrementing invoice numbers with real-time duplicate detection removes this as a source of rejected submissions entirely.
The underlying fix: validate before you submit
Every mistake on this list is preventable with the same underlying discipline: validate against FBR's rules before submission, not after. A pre-submit validation engine catches invalid NTNs, unsupported HS codes, missing fields, and format errors while the invoice is still a draft – before it becomes a rejected submission on your record. That single step is responsible for most of the difference between a smooth compliance workflow and a constant stream of failed-invoice cleanup.
Fast Invoices runs every invoice through FBR's validation rules before it's ever submitted, and keeps a full failed-invoice queue with the original error message for anything that still slips through. See how it works on the features page.