FBR Sales Module Error Codes — Complete Reference & Fixes
Service hub: our main 2026 guide for the same topic is FBR digital invoicing in Pakistan (full pillar page)—this article is a focused read; the pillar is the one URL we want to rank for head terms.
The full official FBR Sales Module error guide in one searchable table: every code (0002–0302), its cause, and the exact action that clears it — plus practical playbooks for buyer, line, tax, debit-note, and sector-specific failures.
The same errors show up in almost every FBR digital invoicing in Pakistan rollout. They are not mysterious once you name them. Below you will find the complete FBR Sales Module error reference — every official code, its cause, and the action that clears it — followed by practical guidance grouped by "where the failure comes from", including when to let digital invoice software carry the load so humans stop retyping corrections.
FBR Sales Module — official error reference
These are the published validation messages returned by the FBR / PRAL Digital Invoicing API for the Sales Module. Press Ctrl + F (Cmd + F on macOS) to find the code from your API response, then apply the recommended action at the source — customer, product, or tax line — before re-validating and re-posting.
| Code | Error message | Cause | Action |
|---|---|---|---|
| 0002 | Buyer Registration No. is not in proper format | Buyer registration No. is not in proper format. | Make sure that, if available, the buyer registration no. is in the correct format — CNIC 13 digits, NTN 7 digits (no special characters). |
| 0003 | Provided invoice type is not valid | Invoice type is not correct. | Refer to the relevant reference API in the technical document for DI API for valid invoice types. |
| 0007 | Provided sale type is not valid | Sale type is not correct. | Refer to the relevant reference API in the technical document for DI API for valid sale types. |
| 0008 | ST WHT is not correct in case of cotton ginner sales type | ST WHT is not correct in case of cotton ginner sales type. | For cotton ginner sale type, ST withheld at source should either be zero or the same as sales tax / FED in ST mode. |
| 0010 | Buyer Name is mandatory | Buyer name is not provided. | Provide the relevant buyer's name. |
| 0012 | Provided buyer registration type is not valid | Buyer registration type is not provided. | Refer to the relevant reference API in the technical document for DI API for valid buyer registration types. |
| 0013 | Sale type is not provided | Sale type is empty. | Refer to the relevant reference API in the technical document for DI API for valid sale types. |
| 0018 | Sales Tax cannot be empty | Sales Tax is not provided. | Provide a valid Sales Tax amount. |
| 0019 | HS Code is either not provided or invalid | HS Code is either not provided or invalid. | Refer to the relevant reference API in the technical document for DI API for valid HS Codes. |
| 0020 | Rate field cannot be empty or null | Rate is not provided or is null. | Refer to the relevant reference API in the technical document for DI API for valid Rate. |
| 0021 | Value of Sales Excl. ST cannot be empty | Value of Sales Excl. ST is not provided. | Provide a valid Value of Sales Excl. ST. |
| 0022 | ST withheld at Source cannot be empty where sales type is cotton ginners | ST withheld at Source is not provided where sales type is cotton ginners. | Provide a valid ST withheld at Source. |
| 0023 | Sales Tax cannot be empty | Sales tax is not provided. | Provide a valid Sales Tax. |
| 0026 | Invoice Reference No. is mandatory requirement for debit note | Invoice Reference No. is not provided. | Provide a valid Invoice Reference No. |
| 0027 | Reason is mandatory requirement for debit note | Reason is not provided. | Refer to the relevant reference API in the technical document for DI API for valid reasons. |
| 0028 | Reason is selected as "Others" | Remarks are not provided against "Others". | Provide remarks against this reason. |
| 0029 | Debit note date should be equal or greater from original invoice date | Debit Note date is not correct. | Debit note date should be equal to or greater than the original invoice date. |
| 0034 | Debit note can only be added within 180 days of reference invoice date | Debit Note date exceeded 180 days. | Debit note can only be added within 180 days of the reference invoice date. |
| 0035 | Debit Note date must be greater or same as reference invoice date | Debit Note date is not greater or same as the reference invoice date. | Debit Note date must be greater than or the same as the reference invoice date. |
| 0042 | Invoice date cannot be empty | Invoice Date is not provided. | Provide the invoice date. |
| 0043 | Invoice date is greater than current date | Invoice Date is greater than the current date. | Provide a valid invoice date. |
| 0044 | HS Code cannot be empty | HS Code is not provided. | Refer to the relevant reference API in the technical document for DI API for valid HS Codes. |
| 0046 | Provided Rate is not correct for selected sales type | Provided rate is not correct for the selected sales type. | Provide a valid rate for the selected Sales Type. Refer to the relevant reference API in the technical document for DI API. |
| 0050 | For cotton ginner sale type, ST withheld at source should either be zero or same as sales tax/fed in ST mode | ST WHT is not correct in case of cotton ginner sales type. | For cotton ginner sale type, ST withheld at source should either be zero or the same as sales tax / FED in ST mode. |
| 0052 | HS Code does not match with provided sale type | HS Code is not provided for the selected sale type. | Refer to the relevant reference API in the technical document for DI API for valid HS Codes against sale type. |
| 0053 | Provided Registration type does not match with Buyer's profile | Provided Registration type does not match with Buyer's profile. | Verify and provide a valid Buyer's registration type. |
| 0056 | For toll manufacturing sale type, only Buyer's registered for steel sector are allowed | Selected buyer does not belong to the steel sector. | Provide the registration no. of a steel sector buyer. |
| 0057 | Reference invoice for debit note does not exist | Reference Invoice does not exist. | Provide a valid Invoice Reference No. |
| 0058 | Buyer and Seller Registration number are same | Self-invoicing is not allowed. | Buyer and Seller Registration number cannot be the same. |
| 0059 | Declared price (sale value) is less than minimum notified price | Declared price (sale value) is less than the minimum notified price. | Minimum price (sale value) is (Sale Value). Adjust declared price to meet the minimum requirement. |
| 0060 | SqY UoM is required for Services sale type if selected rate is 50/SqY or 100/SqY | UoM provided against Services sale type with selected rate 50/SqY or 100/SqY is other than SqY. | Provide SqY as UoM for Services sale type when the rate is 50/SqY or 100/SqY. |
| 0061 | Bill of lading UoM is required for Services (Fed in ST Mode) sale type if selected rate is 200/bill | UoM provided against Services (Fed in ST Mode) with rate 200/bill is other than Bill of lading. | Provide Bill of lading as UoM for Services (Fed in ST Mode) when rate is 200/bill. |
| 0062 | MT UoM is required for Steel melting and re-rolling sale type | UoM provided against Steel melting and re-rolling sale type is other than MT. | Provide MT as UoM for Steel melting and re-rolling sale type. |
| 0067 | Quantity, Sale value or either tax amounts of the debit note (revised invoice) are greater than those of the referenced invoice | Debit note quantity, value or either tax amounts are greater than those of the referenced invoice. | These should be less than or equal to those of the referenced invoice. |
| 0071 | Provided Buyer NTN is invalid | Invalid Buyer NTN. | Verify and provide a valid Buyer's NTN. |
| 0073 | Seller province is either not provided or invalid | Seller province is empty or invalid. | Refer to the relevant reference API in the technical document for DI API for valid Seller Province. |
| 0074 | Buyer province is either not provided or invalid | Buyer province is empty or invalid. | Refer to the relevant reference API in the technical document for DI API for valid Buyer Province. |
| 0077 | Valid SRO/Schedule No. is mandatory where rate is not 18% | SRO/Schedule No. is either not provided or invalid. | Refer to the relevant reference API in the technical document for DI API for valid SRO/Schedule No. for the provided rate. |
| 0078 | Valid Item Sr. No. is mandatory where SRO/Schedule No. is provided | Item Sr. No. is either not provided or invalid. | Refer to the relevant reference API in the technical document for DI API for valid Item Sr. No. for the provided SRO/Schedule No. |
| 0079 | For value greater than 20,000 (per unit), 5% rate is not allowed | Sale value is greater than 20,000 per unit and rate is 5%. | Refer to the relevant reference API in the technical document for DI API for the valid rate against the "Electricity Supply to Retailers" sale type. |
| 0082 | Provided seller registration no. does not belong to registered person | Seller Registration No. is not provided. | Provide a valid seller registration no. (NTN/CNIC). |
| 0086 | You are not a EFS license holder who has imported Compressor Scrap in the last 12 months | Seller is not an EFS license holder who has imported Compressor Scrap in the last 12 months. | Only EFS license holders who have imported Compressor Scrap in the last 12 months are allowed. |
| 0090 | Fixed/Notified Value or Retail Price is mandatory | Fixed/Notified Value or Retail Price is empty. | Where sale type is "3rd Schedule Goods", Fixed/Notified value or Retail Price is mandatory. |
| 0091 | Extra tax provided where sale is of reduced rate goods | Extra tax provided against goods at reduced rate. | Verify whether the provided sale type is for Goods at reduced rate. |
| 0093 | Manufacturers cannot add Non-adjustable supplies | Manufacturer is attempting to add Non-adjustable supplies. | Manufacturers cannot add Non-adjustable supplies where SRO/Schedule No. is "Eighth Schedule Table I" and Item Sr. No. is "81". |
| 0097 | Provided UoM is not KG | Sale type is "Potassium Chlorate" and UoM is not KG. | Provide a valid HS Code and UoM KG where sale type is "Potassium Chlorate". |
| 0098 | Quantity is empty | Quantity is empty where goods are being sold at standard rate. | Quantity is mandatory for sales of goods. |
| 0099 | Provided UoM is not allowed against the provided HS Code | Invalid UoM is provided for the selected HS Code. | Refer to the relevant reference API in the technical document for DI API for valid UoM against selected HS Codes. |
| 0100 | Provided buyer is not registered | Where sale type is "Cotton Ginner", buyer is unregistered. | Add a registered buyer where sale type is "Cotton Ginner". |
| 0101 | Toll manufacturing cannot be declared as service | 8805.2100 HS Code selected against services sale type. | Select valid HS Code and Sale Type to add a sale invoice. |
| 0102 | Provided sales tax amount does not match the calculated sales tax amount in case of 3rd schedule goods | Provided sales tax amount does not match the calculated sales tax amount in case of 3rd schedule goods. | Ensure that the Fixed/Notified Value or Retail Price is used to calculate the Sales Tax Amount for the provided rate. |
| 0103 | Provided sales tax amount does not match the calculated sales tax amount in case where sale type is "Potassium Chlorate" | Provided sales tax amount does not match the calculated sales tax amount in case where sale type is "Potassium Chlorate". | Refer to the relevant reference API in the technical document for DI API for valid rates against selected Sale Types. |
| 0104 | Provided sales tax amount does not match the calculated sales tax amount | Provided sales tax amount does not match the calculated sales tax amount where Sale value is multiplied by the provided rate. | Ensure that the provided Sale Value is used to calculate the Sales Tax Amount for the provided Rate. |
| 0105 | Provided sales tax amount does not match the calculated sales tax amount | Provided sales tax amount does not match the calculated sales tax amount where Quantity is multiplied by the provided rate. | Ensure that the provided Quantity is used to calculate the Sales Tax Amount for the provided Rate. |
| 0108 | Seller Registration No. is not in proper format | Seller registration No. is not in proper format. | Make sure that, if available, the seller registration no. is in the correct format — CNIC 13 digits, NTN 7 digits (no special characters). |
| 0113 | Invoice date is not in proper format | Invalid date format. | Provide invoice date in YYYY-MM-DD format. For example: 2025-05-25. |
| 0300 | Provided numeric values are invalid | Invalid numeric value. | Numeric values must not be negative, null, empty or string type. |
| 0302 | Decimal places exceed allowed limits | Decimal places exceed allowed limits. | Provide numeric values with up to 2 decimal places (4 in case of quantity). |
Codes and wording follow the official FBR Error Message Guide (Sales). Exact strings can change between API versions; always check the latest FBR API integration documentation for breaking changes.
Master data: buyer, NTN, province, registration type
Codes like 0002, 0010,
0012, 0053,
0058, 0071,
0073, 0074,
0100, and 0108
almost always trace back to bad customer or company data. If a buyer is misclassified, tax lines will disagree with FBR's expectation
and validation will return hard stops. Fix the customer record, re-validate, then post. Prevention: verify once at customer
onboarding and on every address change, not on every invoice. See also our reference page on
FBR invoice errors & solutions.
Line data: HS Code, UoM, quantity, and price
Errors 0019, 0044,
0052, 0060,
0061, 0062,
0097, 0098,
and 0099 are catalog problems. A mismatch between the declared unit and
FBR's catalog, or a quantity your ERP rounds differently from the FBR, produces line-level errors. The fix is usually a catalog rule,
not a one-off "edit the PDF". Aligning product codes with
API payloads
during integration saves weeks later.
Tax engine: rate, sales tax math, further/extra/withholding
Errors like 0018, 0020,
0021, 0023,
0046, 0077,
0078, 0090,
0091, and the 0102–0105
family arise when the calculated tax disagrees with FBR's expected math. Pakistan's sales tax context can combine multiple tax types.
If a spreadsheet carries "net" numbers only, your digital invoice and the FBR will disagree. Move tax calculation into software that
enforces the same order of operations for every line — before you perform real-time invoice posting.
Debit notes & reference invoices
Codes 0026, 0027,
0028, 0029,
0034, 0035,
0057, and 0067
govern debit notes. Two rules cover most failures: (1) the debit note date must be on or after the reference invoice date and within
180 days, and (2) the quantity, sale value, and tax amounts on a debit note must be less than or equal to those on the referenced invoice.
If you select reason "Others", remember to fill the free-text remarks.
Dates, numeric values & format hygiene
Codes 0042, 0043,
0113, 0300, and
0302 are the simplest failures to design out: dates must be
YYYY-MM-DD and not in the future; numeric fields must be non-negative numbers
with at most 2 decimal places (4 for quantity). Enforce these in your data layer once and you remove an entire class of rejections.
Sector-specific rules: cotton ginner, steel, EFS & reduced rate
Codes 0008, 0022,
0050, 0056,
0079, 0086,
0093, 0100,
and 0101 encode sector-specific business rules — cotton ginner withholding,
steel-sector eligibility for toll manufacturing, EFS Compressor Scrap eligibility, manufacturer restrictions on non-adjustable supplies,
and the Electricity Supply to Retailers rate ceiling. Map them in your product master and customer master, not in the invoice screen.
Connectivity, credentials, and environment drift
Sometimes the error is not your invoice at all: a credential expired, the clock skewed, or a firewall blocked the sandbox. A thin but visible operations checklist (who to ping, which token to roll) is part of FBR API integration maturity. Log correlation IDs and keep them next to the invoice in your invoicing system so you can answer auditors without digging through email.
After you fix the data: re-post with discipline
Change once, re-validate, then re-post. Double-posting the same business event is a different class of error — usually avoided with idempotency or status flags in your application. If you are not sure, ask for a product session so we can show how Wise Digital Invoice tracks submission state.
This article is educational. For sector-specific or legal questions, work with a qualified tax adviser in Pakistan.
Get a free demo
See Wise Digital Invoice on your use case: customers, products, and FBR validation in one walkthrough.
Request free demoNext steps (internal links)
Start from the FBR digital invoicing Pakistan (main service page), then open FBR API integration, FBR invoice errors & solutions, and digital invoice software in Pakistan. Product overview: home or contact us.