FBR POS integration sends every bill your pharmacy makes to the Federal Board of Revenue as it is made, and prints FBR's own invoice number and QR code on the customer's receipt. The law asks this of Tier-1 retailers only. Most neighbourhood medical stores are not Tier-1, and for them this feature should simply stay off.
In MediPOS it is completely optional. Until you switch it on, MediPOS behaves as if FBR did not exist: nothing is sent, no fee is added, receipts carry no FBR lines, and products have no PCT code field. You can switch it on the day FBR asks you to integrate, and off again if your status changes. This guide walks through the whole setup, what changes at the counter, and how to fix the usual problems.
Do you need FBR integration?
FBR decides who is a Tier-1 retailer, and the list changes with each budget. It has included shops in air-conditioned malls and plazas, national and international chains, shops above a set floor area or electricity bill, and shops that take debit or credit cards. If you are not sure, ask your tax adviser, or check your status on the FBR IRIS portal before you set anything up here.
If you are not Tier-1, leave Report invoices to FBR unticked. Nothing else in this guide applies to you.
If you are Tier-1, integration is not a choice for you. The penalties for selling without it are heavy, and FBR can seal a shop that does not integrate. MediPOS makes the software side a ten-minute job. The registration on FBR's side is the part that takes time, so start that first.
Before you start: what you need from FBR
Log in to IRIS (iris.fbr.gov.pk) with the NTN of the pharmacy's owner or company, and do the following:
- Register the outlet. Under POS registration, add each branch as its own outlet, with its address.
- Register a POS for the outlet. FBR gives each registered POS a POS ID, a number such as 152404. Write it down for each branch.
- Choose how the software will reach FBR. There are two ways, and MediPOS supports both:
- FBR online API. FBR issues an access token (a long security key) for your POS. Bills go straight to FBR over the internet, so the counter PC needs internet.
- FBR Fiscal Component. FBR's own small program, installed on the counter PC. MediPOS hands each bill to it on that PC (at
localhost:8524), and it forwards bills to FBR when it can. It keeps working when the internet is down. Install it and register it with your POS ID following FBR's instructions.
- Ask FBR for sandbox (test) access if you want to try everything before going live. It is optional, but recommended.
You also need your NTN and, if you are registered for sales tax, your STRN. Both print on every receipt.
Step 1: Check that your plan has the FBR module
FBR POS integration is a module of your MediPOS plan. Open Administration → Settings and scroll down. If you see a box called FBR POS integration, your plan has it. If you don't, your plan does not include it: open Account → Plan & billing to see what your plan has, and the Pricing page to see which plans include FBR POS integration.
Having the module does not switch anything on. It only shows the settings box.
Step 2: Switch it on and fill in the settings
In Administration → Settings → FBR POS integration:
- Tick Report invoices to FBR. The rest of the settings appear.
- Fill in the fields:
| Setting | What to enter |
|---|---|
| How MediPOS reaches FBR | FBR online API (needs internet) or FBR Fiscal Component on this PC (works offline), whichever you registered for |
| FBR POS ID for (branch) | The POS ID FBR gave this branch, digits only |
| FBR environment | Sandbox (testing) while you test, Live once FBR confirms. Online API only |
| FBR access token | The token from IRIS. Online API only |
| NTN (printed on receipts) | Starts with the NTN from your pharmacy profile |
| STRN (sales tax registration) | If you have one |
| PCT code for medicines | 3004.9099 (other medicaments) unless your adviser says otherwise |
| Add the Re 1 FBR POS service fee to each bill | On, as FBR requires |
- Click Save FBR settings.
After you save, the token is stored encrypted. The screen never shows it again, only Saved — leave blank to keep it. To change it, paste a new one. Only people with the permission to manage settings can change any of this, and every change goes into the audit log.
Several branches
Each branch is a separate FBR outlet with its own POS ID. The POS ID field always belongs to the branch you are working in. Switch to the next branch from the top bar, open Settings, enter that branch's POS ID and save. The other settings (mode, token, NTN, STRN, fee, PCT code) are the same for the whole pharmacy. A branch without a POS ID does not report, even while the switch is on.
Step 3: Give non-medicine products their PCT code
Once FBR is on, each product's form gains two fields under Stock control:
- FBR PCT code. Leave it blank for ordinary medicines; they use the default from Settings. Give cosmetics, baby food, soap, juices and other general items their own code.
- FBR Third Schedule item (tax on the retail price). Tick it for goods whose sales tax is charged on the printed retail price: cosmetics, toiletries, packaged juices and the like. MediPOS reports these as Third Schedule items, with the tax worked out on the retail price.
The Sales tax (%) you set on a product is the rate reported to FBR for that item. Most medicines are 0%. Set other items to the rate your adviser gives you.
Step 4: Make a test bill
With Sandbox (testing) selected, go to the POS and make a small bill as usual. Within a second the receipt should show:
- NTN, STRN and FBR POS ID under the shop name;
- the POS Service Fee line of Re 1 above the total;
- FBR Invoice No. with the number FBR returned, and a QR code of that number;
- the line Verify this invoice through FBR Tax Asaan Mobile App or SMS at 9966.
Open the invoice from Sales. A green bar shows Reported to FBR with the FBR invoice number. When all of this looks right, change FBR environment to Live and save. Test bills made in the sandbox are not real invoices at FBR.
What changes at the counter
For the cashier, almost nothing changes. The bill completes the moment it is paid, and MediPOS never keeps a customer waiting on FBR. It saves the sale, then reports it:
| What happens | What the cashier sees |
|---|---|
| FBR answers | The receipt prints with the FBR invoice number and QR code |
| FBR cannot be reached (internet down, FBR busy) | The receipt prints with OFFLINE INVOICE in place of the FBR number, and the bill is queued |
| FBR failed a moment ago | The next bills skip the wait for about two minutes and are queued straight away, so the counter never slows down |
Queued invoices are sent automatically every five minutes until FBR accepts them. Nobody has to press anything. FBR allows offline invoices to be sent later. Once one is accepted, its reprint shows the FBR number.
The Re 1 POS service fee
FBR adds a Re 1 service fee to each invoice made through an integrated POS. MediPOS adds it after rounding, so a Rs 350 bill becomes Rs 351. It prints as its own line, is not part of the invoice sent to FBR, and is not counted as your sales or profit. In the books it goes to the sales tax payable account, because it is owed to FBR. Untick the fee setting only if FBR tells you it does not apply to you.
Voids and returns
A voided invoice and a sale return are both reported to FBR as credit notes that point back to the original invoice number. For a void, the green bar on the invoice page shows the credit note's FBR number next to the original. For a return, the return's own page shows it. If FBR cannot be reached, the credit note waits in the queue like any other invoice.
Finding invoices FBR does not have yet
- The dashboard shows N invoices not yet with FBR whenever any are waiting. Click it to see them.
- In Sales, choose Not yet with FBR in the status filter.
- Open one: an amber bar shows how many tries have been made and FBR's last answer. Send to FBR now tries at once, without waiting for the next five-minute round. It is also in the Windows app on the invoice page.
Common problems and fixes
| Message or symptom | Cause | Fix |
|---|---|---|
| FBR: Invalid Credentials | Wrong or expired token | Paste a fresh token from IRIS in Settings, save, then Send to FBR now on one waiting invoice |
| FBR could not be reached (no internet?) | No internet on the counter PC | Nothing to do. The queue sends them when the internet is back |
| Every bill is an offline invoice on the Fiscal Component | The Fiscal Component is not running on this PC | Start it, or restart the PC, then check FBR's own status screen |
| FBR refuses the POS ID | The POS is not active on IRIS, or the ID belongs to another branch | Check the POS ID for this branch on IRIS and correct it in Settings |
| No FBR lines on the receipt at all | The switch is off, or this branch has no POS ID | Tick Report invoices to FBR and enter this branch's POS ID |
A refused invoice is not given up on. Every five-minute round tries it again, so fixing the token or POS ID in Settings is enough. The invoices then go through on their own.
Switching FBR off
Untick Report invoices to FBR and save. From the next bill, MediPOS stops sending, adding the fee and printing FBR lines. Invoices already reported keep their FBR numbers, and old receipts reprint as they were. If your plan no longer includes the FBR module, reporting stops the same way, even while the switch is still on.
Common questions
Does FBR integration slow down billing?
No. The sale is saved first and the receipt prints at once. Reporting happens right after, and when FBR is slow or offline, the invoice simply waits in the queue.
Can I use FBR integration on the Offline edition?
Yes. Choose the FBR Fiscal Component mode to keep reporting through internet cuts. The online API works too, as long as the PC has internet. Bills made while it is down are sent later automatically.
Is the customer charged the Re 1 fee?
Yes, when the fee setting is on. It is shown on the receipt as POS Service Fee. It is not your income and is not counted in your sales or profit.
We are not Tier-1. Do we lose anything by leaving it off?
Nothing. Every other part of MediPOS works the same, and no FBR fields appear anywhere.
Does MediPOS register us with FBR?
No. Registering the outlet and POS on IRIS, and getting the token or the Fiscal Component, is done by you or your tax adviser on FBR's side. MediPOS starts reporting as soon as you enter what FBR gave you.
Related guides
Last updated 25 September 2026. Still stuck? Contact us.