FBR POS integration sends every bill your shop makes to the Federal Board of Revenue through FBR's POS system (run by PRAL), and prints FBR's own invoice number and QR code on the customer's receipt. FBR asks this of certain retailers (the ones it calls Tier-1); whether your shop is one depends on FBR's current rules, so ask your tax adviser.
In BooksPOS it is optional and off until you switch it on. While it is off, BooksPOS behaves as if FBR did not exist: nothing is sent, no fee is added, receipts carry no FBR lines and items show no FBR fields. This guide covers the setup, tax on items, testing in Sandbox, going to Production, what changes at the counter, and how to fix the usual problems.
Before you start: what you need from FBR
On FBR's side (through IRIS, FBR's portal, or with your tax adviser):
- Register the outlet and register a POS for it. FBR gives each registered POS a POS ID, a number. Each branch is its own outlet with its own POS ID.
- Choose how BooksPOS reaches FBR. BooksPOS supports both ways:
- FBR's online API. FBR issues an access token for your POS. Bills go to FBR over the internet.
- FBR's Fiscal Component, FBR's own program installed on the store PC. BooksPOS hands each bill to it on that PC. Install and register it following FBR's instructions.
- Ask for sandbox (test) access if you want to try everything first. It is recommended.
You also need your NTN and, if you are registered for sales tax, your STRN. And you need the right PCT code and tax rates for what you sell, from your tax adviser: BooksPOS does not choose them for you.
BooksPOS does not register you with FBR. Registering the outlet and POS, and getting the token or the Fiscal Component, is done by you or your tax adviser.
Step 1: Switch it on and fill in the settings
On the store PC, sign in as the owner or a manager and open Settings › FBR POS ("Reporting invoices to FBR").
- Tick Report invoices to FBR. "Every sale is reported right after it is saved; a return is reported as a credit note. When FBR cannot be reached the bill is saved all the same and reported later."
- Fill in:
| Setting | What to enter |
|---|---|
| How BooksPOS reaches FBR | FBR's online API, or FBR's Fiscal Component on this PC, whichever you registered for. |
| POS ID | The POS registration number FBR gave this branch. Required while reporting is on. |
| FBR environment | Sandbox (testing) or Production (live). You choose; nothing locks you to either. |
| FBR access token | The token from FBR. Needed for the online API: switching the online API on without a saved token is refused. |
| NTN (printed on FBR invoices) | Blank uses the business NTN from Settings › Business. |
| STRN (sales tax registration) | If you have one. |
| Default PCT code | 8 digits, from your tax adviser. Required while reporting is on. Items with their own PCT code use theirs. |
| Add FBR's Re 1 POS service fee to each bill | On, if FBR requires the fee of you. |
- Choose Save FBR settings.
The access token is stored encrypted on the store PC (with Windows' own data protection) and never shown again; leave the box blank to keep it, or paste a new one to change it. The token is entered only on the store PC. It is never sent to BooksPOS Cloud.
The owner can see and change the other FBR settings of each branch from BooksPOS Cloud too (Settings › FBR POS in the portal), including the environment and how the store PC reaches FBR; the change reaches the store PC at its next sync. See Shop settings from the owner portal.
FBR POS: sandbox. Switched on in Sandbox (testing) with the online API, with the Re 1 fee; demo values, and no FBR invoice number anywhere. Screenshot of the current build (28 Sep 2026), synthetic demo data.
Step 2: Give items their tax details
Every item's form in Catalog has a Tax rate (%), whether FBR reporting is on or not. It is 0 unless you set it, from 0 to 100 with up to 4 decimals. Tax is added on top of the price: a line's tax is the rate times the line's amount after its discount (quantity × price − line discount). The till, the receipt, the A4 invoice and the reports show it, and it is booked to Sales tax payable, never counted as your sales.
Once FBR reporting is on, the form also shows two FBR fields:
- PCT code: 8 digits, optional. Leave it blank and the item is reported with the Default PCT code from Settings › FBR POS. Give an item its own code where your tax adviser says it differs.
- Third Schedule item: tick it for goods your tax adviser says are Third Schedule items. BooksPOS reports them to FBR as Third Schedule invoices, and their returns likewise.
Set rates and codes as your tax adviser tells you. BooksPOS does not decide them.
Step 3: Make a test bill in Sandbox
With Sandbox (testing) selected, make a small bill at the till as usual. The receipt should show:
- the NTN, STRN and FBR POS ID under the shop's details;
- the tax rate on each item (for example @0% for an item with no tax), and a Tax line with the bill's tax when it is not zero;
- the POS Service Fee line of Re 1, after the items and tax and included in the TOTAL, if the fee option is on;
- FBR Invoice No. with the number FBR returned, and a QR code of it;
- the line Verify this invoice through FBR Tax Asaan Mobile App or SMS at 9966 and win exciting prizes in draw.
A Sandbox receipt looks exactly like a Production one, fee included: nothing on it says "test". The invoices themselves are FBR's test invoices, not real ones, so make test bills yourself and switch to Production (live) before billing customers. Try a return and a bill with the internet off, too.
When everything looks right, change FBR environment to Production (live) and save.
What changes at the counter
For the cashier, almost nothing. The bill is saved the moment it is paid, and BooksPOS never keeps a customer waiting more than a few seconds for FBR.
| What happens | What the receipt shows |
|---|---|
| FBR answers | FBR Invoice No., the number and its QR code, and the Tax Asaan line |
| FBR cannot be reached (internet down, FBR busy, the Fiscal Component not running) | OFFLINE INVOICE, with a note that it is reported when FBR can be reached |
| FBR refused it | NOT YET ACCEPTED BY FBR |
- BooksPOS tries FBR right after saving, waiting at most a few seconds. If FBR does not answer, the next bills skip the wait for about two minutes, so the counter never slows down.
- Invoices not yet with FBR are sent again automatically in the background, oldest first, at growing intervals (from 30 seconds up to every 30 minutes) until FBR accepts them. A reprint then shows the FBR number.
- Everything FBR needs is recorded with the sale when it is saved, in the same step, so a bill saved just before a crash or power cut is still reported after the restart.
- BooksPOS never prints an FBR invoice number it did not receive from FBR.
- The bill's A4 PDF (on its page under Sales) carries the same FBR block as the receipt: the number and QR code once FBR has accepted it, the POS ID, NTN and STRN, or the offline or refused note.
The Re 1 POS service fee
With FBR reporting on and the fee option on, BooksPOS adds Re 1 to each bill, in Sandbox as well as in Production. It is added last, after the items and their tax, and prints as its own line, POS Service Fee, above the TOTAL. It is not part of the invoice sent to FBR, and it is not your income: it is booked to Sales tax payable, because it is owed to FBR, and it stays out of your sales and profit.
Returns
A return against a reported bill is reported to FBR as a credit note that points back to the original invoice. It refunds its share of the bill's tax. It is sent once FBR has the original sale; if FBR cannot be reached, it waits like any other invoice.
A bill voided the same day is cancelled with FBR the same way, as MediPOS does it: a credit note numbered like the bill with -V at the end, pointing back to it, sent once FBR has the bill. A voided bill FBR never received is not sent at all. The amount FBR is told for a bill includes its cash rounding and leaves out the Re 1 fee.
Invoices FBR does not have yet
- The bar at the top of BooksPOS shows how many, for example FBR POS · 3 not with FBR, and Sync & FBR shows the same count with the recent invoices, their state and FBR's last answer.
- In Sales, the Not yet with FBR filter lists only the bills FBR does not have yet, from any day, and the number beside Sales in the menu counts them.
- Send to FBR now, on a bill's page in Sales or on Sync & FBR (owner or manager), tries it at once, without waiting for the next round. Use it after fixing a refused invoice's cause, such as a wrong token or POS ID: refused invoices are sent again only when someone asks.
- In BooksPOS Cloud, the Dashboard shows each branch's invoices not with FBR yet, as the branch last reported them, and each branch's Settings › FBR POS shows how many are waiting, to check with FBR, or refused.
When FBR's answer was lost
Sometimes BooksPOS sends an invoice and the connection breaks before FBR answers. BooksPOS then cannot know whether FBR recorded it, and sending it again could report it twice. It never guesses: the invoice waits for a person. Choose Reconcile on it, check FBR's records for that invoice, and say what you found:
- FBR has it: I have its FBR invoice number, and type the number exactly as FBR's records show it; or
- FBR does not have it: send it again.
Your name is recorded with the answer.
Common problems and fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| Every bill is an offline invoice | No internet on the store PC (online API), or the Fiscal Component is not running | Check the internet, or start the Fiscal Component. Waiting invoices go by themselves once FBR can be reached. |
| FBR refuses every invoice with a credentials message | Wrong or expired access token | Paste a fresh token in Settings › FBR POS, save, then Send to FBR now on the refused invoices |
| FBR refuses the POS ID | The POS is not active at FBR, or the ID belongs to another branch | Check this branch's POS ID with FBR and correct it |
| Switching on the online API is refused | No access token is saved on this PC | Enter the token on the store PC first |
| Saving is refused for the PCT code | The default PCT code is missing or not 8 digits | Enter the 8-digit code your tax adviser gave you |
| No FBR lines on the receipt | Report invoices to FBR is off | Tick it, fill in the settings and save |
Switching FBR off
Untick Report invoices to FBR and save. From the next bill, BooksPOS stops sending, adding the fee and printing FBR lines, and the PCT code and Third Schedule fields leave the item form. Items keep their tax rate. Bills already reported keep their FBR numbers, and old receipts reprint as they were. Your POS ID, token and PCT codes stay saved for when you switch it on again.
Common questions
Does FBR reporting slow down billing?
No. The sale is saved first, and the bill waits at most a few seconds for FBR's answer. When FBR is slow or unreachable, the invoice simply waits and is sent later.
Does it work without internet?
Bills are always saved and printed. With the online API, invoices wait and go when the internet is back. With FBR's Fiscal Component on the store PC, BooksPOS hands each bill to it on that PC.
Is the Re 1 fee charged in Sandbox?
Yes, when the fee option is on, exactly as in Production, so a Sandbox receipt shows what a real one will. That is one more reason to make Sandbox bills yourself, not for customers.
Does BooksPOS register us with FBR?
No. Registering the outlet and POS, and getting the token or the Fiscal Component, is done by you or your tax adviser on FBR's side. BooksPOS starts reporting as soon as you enter what FBR gave you.
We are not required to report. Do we lose anything by leaving it off?
Nothing. Every other part of BooksPOS works the same, and item tax rates still work if you set them.
Related guides
Last updated 30 September 2026. Still stuck? Contact us.
