Zoho Books integration
Filing Zoho Books invoices with FBR
For startups, trading businesses and small teams running Zoho Books, on its own or inside Zoho One, who need their invoices filed with FBR, and would rather not hire a developer to do it.

The mechanism
How a Zoho Books invoice reaches FBR
Your team keeps invoicing in Zoho Books. The FBR step runs automatically a moment later.
Zoho publishes separate editions of Books for almost twenty countries, with local tax rules baked in, and Pakistan isn’t among them. Pakistani businesses therefore run the Global edition, where every tax is something you type in yourself — a name and a percentage. That totals an invoice perfectly well. What it can’t tell FBR is anything FBR actually looks for: which HS code an item carries, which FBR sale type a tax stands for, what FBR calls the unit, or whether the customer is registered.
So the integration fills those gaps once, and from then on each invoice goes through four steps:
- Something notices the new invoice — a workflow rule that calls a web address, a Zoho Flow that starts on invoice created, or a small service that checks Zoho’s API every few minutes.
- FBR’s details are added from the custom fields and the mapping: HS code and FBR unit per item, FBR sale type per tax, registration type and province per customer.
- eInvoicePro takes it from there — its API checks the invoice against FBR’s rules, files it, and replies with the FBR invoice number or the precise reason FBR turned it down.
- The FBR number lands back in Zoho, in a custom field on the invoice, so your invoice template can print it next to the QR code.
Why it should run as you invoice
FBR wants every invoice sent at the time it is issued, and Zoho’s automations fire the moment an invoice is created. A Zoho Books business can therefore meet the rule without anyone changing how they work, as long as the automation runs on every invoice rather than on a weekly batch.
Many Zoho Books users sell services. Only a narrow slice of services, those supplied in Islamabad Capital Territory, falls under FBR’s digital invoicing, with goods and FED charged in sales tax mode making up the rest; most service income is taxed by the provinces. If you sell services in Punjab or Sindh, see PRA E-IMS or SRB POS first.
Your options
What your Zoho plan allows
The same integration can be triggered three ways. Your Zoho Books plan decides which are open to you — plan names vary slightly by region.
| Route | Available on | Good for | Limits to know |
|---|---|---|---|
| Workflow rule that calls a webhook | Higher plans — Professional and above in most regions | Instant filing on created or created or edited, with no extra service to run | One webhook per rule, and a daily cap on webhook calls (1,000 in Zoho’s US documentation) |
| Zoho Flow | Any plan, with a Zoho Flow subscription | No-code: invoice created in Zoho Books starts a flow that calls eInvoicePro | Zoho Flow triggers on creation; edits need a different approach |
| Zoho Books API | All plans | A connector that polls for new invoices and writes results back | 100 requests a minute per organisation, and a daily cap that rises with your plan |
| eInvoicePro screens or bulk template | Any plan, nothing in Zoho is changed | Low volumes, or teams who want to start before automating | Invoices are entered or uploaded separately from Zoho |
Whichever route triggers the filing, writing the FBR number back to Zoho uses Zoho’s API, so every automated route needs API access.
The data
Where Zoho Books keeps FBR’s details
Zoho Books lets you add custom fields to customers, items and invoices. That is where most of FBR’s missing data goes.
| FBR field | Home in Zoho Books | Watch out for |
|---|---|---|
| Buyer NTN or CNIC | A custom field on the customer | Bare digits, no dashes |
| Buyer registration type | A custom field on the customer | Set by checking the customer’s number with FBR |
| Buyer province | The billing address on the customer record | FBR wants the province: “Punjab” works, “Lahore” doesn’t |
| Invoice number | Zoho’s invoice number, such as INV-000123 | Hyphens are fine; FBR accepts letters, digits and hyphens only |
| HS code | A custom field on the item | From FBR’s own list, stored as text so leading zeros survive |
| Unit of measure | The item’s unit | Use FBR’s name for the unit, checked against what the HS code allows |
| Sale type, rate and SRO | The tax on each line — in the Global edition, a name and a rate | Link each Zoho tax to an FBR sale type and let FBR supply the rate |
| Value excluding tax and discount | Line amounts and discounts | Tax-inclusive prices and invoice-level discounts must be turned into per-line values |
| FBR invoice number and status | Custom fields on the invoice | Written back after filing and shown on your invoice template |
How many custom fields you can add depends on your Zoho plan. The set-up on this page uses five or six in total.
Small teams
The questions small teams ask first
Zoho Books businesses tend to be lean. These are the concerns that come up before anything is built.
We don’t have a developer. Is this realistic?
Yes. On a plan with workflow rules, or with Zoho Flow, the trigger is configured rather than coded, and eInvoicePro does the FBR-specific work. The effort that remains is filling in HS codes, units and customer details, which is bookkeeping, not programming.
We raise only a few invoices a day. Is automation worth it?
Maybe not yet. Raising tax invoices in eInvoicePro’s screens is simpler at low volume, and the HS codes and customer details you set up there are the same ones an automation needs later.
Quotes and deals live in Zoho CRM. Does that matter?
No. The integration only needs the invoice in Zoho Books, however it got there, whether raised directly or converted from a CRM deal or quote.
What if we change Zoho plans later?
The mapping and custom fields carry over. What may change is the trigger: moving to a plan with workflow rules lets you replace a Zoho Flow or polling connector with a rule, without redoing anything else.
Architecture choice
Doing the FBR part yourself, or handing it to a ready layer
Zoho makes the trigger easy. What happens after the trigger is FBR’s territory.
A Zoho automation that talks to FBR
- You would own buyer checks, FBR’s invoice format, FBR tokens and reading FBR’s answers line by line
- A no-code flow can move the data but can’t read FBR’s responses line by line or handle safe retries
- FBR will take the same invoice twice, so a lost reply plus an automatic retry means a duplicate filing
- Each time FBR changes its technical specification, your automation has to change with it
Zoho Books → eInvoicePro → FBR
- Zoho’s automation makes one call per invoice; eInvoicePro does the FBR work
- A retried call is recognised by its idempotency key, so it can’t file the same invoice twice from your side
- When FBR says no, you see exactly why, in FBR’s own words, and resend just that invoice
- If FBR alters its rules, nothing in your Zoho automation needs touching
Using Zoho Books? Book a demo
See how eInvoicePro files invoices with FBR, and ask us anything about connecting it to Zoho Books.
Watch these
Zoho-specific traps
None of these appear with three test invoices. All of them appear in the first busy week.
Plans and limits
- Workflow rules with webhooks aren’t on every plan
- Webhook calls, API requests and Zoho Flow tasks all have daily or monthly caps — check them against your busiest day
- Downgrading a plan can switch off the rule that files your invoices
- API access has to be re-authorised if it lapses — decide who does it
Data
- Customers created in a hurry have no NTN or province
- Items added on the fly reach the integration without an HS code
- Tax-inclusive prices hide the per-line value before tax
- An invoice-level discount or adjustment must be spread across lines for FBR
Documents
- A rule on “created or edited” fires again on every edit — don’t file the same invoice twice
- Voiding or deleting an invoice in Zoho is not a cancellation at FBR
- A credit note needs the original invoice’s FBR number
- Draft invoices must not be filed until they are actually issued
Going live
A realistic three-week rollout
Zoho’s configurable triggers keep the build small, so most of the three weeks goes on your data.
-
Add fields and fill them
Create the custom fields for NTN, registration type, HS code and FBR number. Map each Zoho tax to an FBR sale type. Fill in HS codes and units for your items, and tax details for your regular customers.
-
Prove it in FBR’s sandbox
Set up the trigger against eInvoicePro with the sandbox flag on, and run real invoices through the scenarios FBR has assigned to your business. Passing them unlocks your production token automatically.
-
Run in parallel, then go live
Validate every new invoice against FBR for a few days without filing, compare totals with Zoho’s sales reports, then switch to live filing and add the FBR number and QR code to your invoice template.
Owner or accountant
Maps taxes to FBR sale types with your advisor, fills in customer and item details, and signs off test invoices.
Whoever runs your Zoho set-up
Creates the custom fields and the workflow rule or Zoho Flow, and keeps an eye on failed invoices after go-live.
Tax advisor
Confirms whether FBR or a provincial authority applies, and the sale types for anything not at the standard rate.
FAQ
Frequently Asked Questions
Does Zoho Books support FBR digital invoicing?
Not on its own. There is no Pakistan edition of Zoho Books and no FBR connection. Invoices are filed by connecting Zoho Books to a filing layer such as eInvoicePro, triggered by a workflow rule, Zoho Flow or the API.
Which Zoho Books plan do we need?
Workflow rules that call a webhook are on higher plans, Professional and above in most regions. On other plans, Zoho Flow or a small connector using Zoho’s API does the same job. Writing the FBR number back needs API access in every case.
Is Zoho Flow enough on its own?
Zoho Flow can start the process when an invoice is created, but it can’t validate an invoice against FBR, check NTNs, read FBR’s answer line by line or retry safely. That work happens in eInvoicePro at the other end of the flow.
We use Zoho One. Does that change anything?
No. The integration only needs Zoho Books’ invoices, so it works the same whether Zoho Books is standalone or part of Zoho One.
Can we fix a rejected invoice by editing it in Zoho?
Yes — fix the cause, usually an item’s HS code or a customer’s details, and resubmit. An invoice FBR has already accepted is different: editing it in Zoho leaves FBR’s record as it was, and the fix belongs in FBR’s system, where a genuine error can be corrected for up to 72 hours.
How long does it take?
The plan on this page allows about three weeks: one to fill in HS codes and customer details, one for FBR’s sandbox scenarios and one to run in parallel. How clean your customer and item records are decides whether it goes faster or slower.
Continue
Related guides & articles
Does your software support FBR?
Zoho Books compared with SAP, Odoo, Tally, QuickBooks, NetSuite and Business Central.
Read moreMapping tax codes to FBR sale types
Turning Zoho’s taxes into what FBR checks on every line.
Read moreeInvoicePro software
Raise FBR invoices in guided screens while volume is low.
Read moreQuickBooks + FBR guide
The same approach for QuickBooks Online.
Read morePRA E-IMS for Punjab services
If your services are taxed in Punjab rather than federally.
Read moreSRB POS for Sindh services
If your services are taxed in Sindh rather than federally.
Read moreReady to simplify your FBR digital invoicing?
Join 2000+ businesses using eInvoicePro for real-time FBR integration and automated tax compliance.