Pakistan Distribution Tax | FBR Further Tax & 236G 236H Advance Tax | Odoo Sales Tax Compliance
by CODEerts https://www.codeerts.com$ย 98.99
Pakistan Distribution Tax
FBR further tax, 236G and 236H advance income tax,
and Third Schedule retail price sales tax. Applied automatically.
Describe the buyer once and the goods once. Every quotation and invoice line then carries the right levy at the right rate, with no fiscal position to maintain.
|
3
FBR Levies
|
7
Rate Slots
|
0
Fiscal Positions
|
MRP
Third Schedule Base
|
v19
Compatible
|
The problem
The distribution tax problem every Pakistani supplier knows
|
Every invoice is a manual tax decision
Is this buyer registered? Are they on the Active Taxpayer List? Are they a distributor or a retailer? Someone answers all of that in their head, per line, per invoice, and then picks the taxes by hand. |
The wrong base on Third Schedule goods
Third Schedule items must be taxed on the printed retail price, not the trade price you actually charge. Standard invoicing taxes what is on the line, so the sales tax comes out short and the shortfall is yours to pay. |
A rate change breaks last year
A new Finance Act arrives and someone edits the percentage on the live tax. Every report and every reprint of an old invoice now shows a rate that was never charged, and the audit trail is gone. |
What this module does
Pakistan Distribution Tax extends the Pakistan localization with the FBR levies a distributor, dealer or wholesaler has to charge but that standard invoicing does not calculate. You record the buyer profile once on the contact and the goods profile once on the product. From then on every quotation and invoice line resolves its own taxes.
An unregistered buyer picks up the further tax under Section 3(1A). A distributor, dealer or wholesaler picks up 236G advance income tax and a retailer picks up 236H, at the filer or non-filer rate, with fertilizer withheld on its own 236G branch. A Third Schedule product is taxed on its printed retail price under Section 3(2)(a) while the line still invoices at your trade price. Rates live in an effective-dated rate card that your accountants own, so a Finance Act change adds a new dated row instead of rewriting history.
|
๐งพ
Taxes resolve themselves
The buyer profile and the product profile decide the levies. Nothing is selected by hand, and changing the customer or the document date recomputes the line. |
๐ท๏ธ
Third Schedule on the MRP
Flag the product and enter the printed retail price. Sales tax and further tax are then computed on the MRP while the line still invoices at your trade price and discount. |
๐๏ธ
Rates you can version
A new rate is a new dated row, never an edit. Documents keep the rate they were actually charged, so your reports and your audit trail stay correct forever. |
Screenshots
See it in action, from setup to a posted invoice.
NTN or CNIC, sales tax status, filer status and distribution tier sit in the customer information block on the contact form.
Tick Third Schedule Good and enter the printed retail price. A Third Schedule product without a positive MRP is refused, so the tax base can never silently fall back to the trade value.
Fertilizer, other goods, or exempt. This is the branch that decides which 236G rate a distributor is withheld at, and it is set on the product, not on the customer.
Every levy, category, filer status, rate and start date in one list, with the tax it drives beside it. Seeded on install and yours to maintain from there.
To change a rate you add a new row with a later effective date. The module builds the new tax and uses it from that date. The old row and its tax stay exactly as they were.
An unregistered non-filer distributor buying Third Schedule goods. Sales tax and further tax compute on the printed retail price, 236G computes on the trade value, and the totals break the levies out separately.
The same goods and the same tier sold to a registered filer. No further tax, and 236G drops from the non-filer rate to the filer rate. Nothing on the quotation was changed by hand.
A buyer whose distribution tier is Retailer moves to Section 236H automatically, and the invoice shows the withholding separately from output sales tax.
Fertilizer takes its own 236G branch, and the invoice picks the rate card row that was in force on its own document date, not the newest row in the table.
Further tax and the 236 advance taxes are real Odoo taxes with their own tax group and their own liability account, so they are reported and reconciled separately from output sales tax.
Everything included
|
๐งพ Further tax on unregistered supplies
Section 3(1A) further tax applies automatically to any buyer marked as unregistered, on its own tax group and liability account. |
๐ฆ 236G for the trade channel
Distributors, dealers and wholesalers are withheld under 236G, with a separate fertilizer branch and separate filer and non-filer rates. |
|
๐ช 236H for retailers
A buyer whose tier is Retailer switches to Section 236H, at the filer or non-filer rate, without any other change to the document. |
๐ท๏ธ Third Schedule retail price base
Sales tax and further tax compute on the printed retail price under Sec 3(2)(a), while the line still invoices at your trade price and discount. |
|
๐๏ธ Effective-dated rate card
A rate change is a new dated row. The module creates the new tax and applies it from that date, and earlier documents keep the rate they were charged. |
๐ก๏ธ No duplicate rates possible
One rate per levy, category, filer status and start date is enforced in the database, so the same slot can never be defined twice. |
|
โ๏ธ Compliance-safe default
A buyer with no confirmed Active Taxpayer List status is treated as a non-filer, so an unverified buyer is withheld at the higher rate rather than under-withheld. |
๐ค Buyer profile in the header
Sales tax status, filer status and distribution tier are visible in the customer information block on the contact, the sales order and the invoice. |
|
๐ Recomputes when it should
Change the customer, their status or the document date and the lines pick up the correct levies again, on quotations and on draft invoices alike. |
๐ข Multi-company aware
The rate card and its taxes are created per company, and only companies on the Pakistan chart of accounts are touched. |
The levies it covers
|
๐งพ
Further Tax
Sec 3(1A), supplies to unregistered buyers |
๐
236G Other Goods
Distributor, dealer, wholesaler |
๐พ
236G Fertilizer
Its own rate branch |
๐ช
236H Retailer
Sales to retailers |
๐ท๏ธ
Third Schedule
Sec 3(2)(a), tax on the printed retail price |
How it works
|
1
|
Install on a Pakistan company
The module seeds the FBR rate card, creates the taxes it drives, and adds two liability accounts for further tax payable and advance tax collected. Companies on other charts of accounts are left alone. |
|
2
|
Profile your buyers
On each customer set the sales tax status, the filer status and the distribution tier, and record the NTN or CNIC. This is a one time entry per contact. |
|
3
|
Profile your goods
Set the advance tax category on each product, and for Third Schedule items tick the flag and enter the printed retail price. |
|
4
|
Sell as normal
Add products to a quotation or an invoice. Every line resolves its own further tax and advance tax from the buyer, the product and the document date, and the totals show each levy separately. |
|
5
|
Update rates when the law changes
Open the FBR Rate Card, add a row for the levy with the new rate and the date it takes effect, and save. Everything from that date forward uses it, and nothing before it moves. |
Technical information
|
Version
19.0
|
License
OPL-1
|
Editions
Community & Enterprise
|
Dependencies
account, sale, l10n_pk
|
Technical name: codeerts_pk_distribution_tax ยท Requires: the Pakistan localization (l10n_pk) on the company chart of accounts
Frequently asked questions
Set Sales Tax Status to Unregistered on the customer. From then on every quotation and invoice line for that customer carries the further tax under Section 3(1A) alongside the normal sales tax, with its own tax group and its own liability account, so it is reported separately from output sales tax.
Set the Distribution Tier on the customer. A distributor, dealer or wholesaler gets 236G and a retailer gets 236H. The rate is then picked from the buyer's filer status and, for 236G, from the product's advance tax category, so fertilizer is withheld at its own rate and other goods at the general rate.
The buyer defaults to Non-Filer, which is the higher rate. Withholding at the higher rate is the compliance-safe direction, so an unverified buyer is never under-withheld. Change the field to Filer once you have confirmed the buyer on the ATL.
Tick Third Schedule Good on the product and enter the Printed Retail Price. Sales tax and the further tax are then computed on the MRP instead of the trade price, while the line still invoices at your trade price and any discount. A Third Schedule product without a positive MRP is refused.
Open the FBR Rate Card and add a new row for that levy with the new rate and the date it takes effect. The module builds a new tax for it and uses it from that date forward. The old row and its tax stay untouched, so every posted document keeps the rate it was actually charged.
No, it extends it. The Pakistan localization chart of accounts and its sales taxes stay exactly as they are, and this module adds the distribution levies on top and posts them to their own accounts.
It is maintained for current major Odoo versions and works on both Community and Enterprise. Use the version selector at the top of this page to pick your Odoo release.
The team behind this module
About CODEerts
Full-Service Odoo ERP Company ยท Solutions That Scale
Every module in our store is built from real client work, tested in production and maintained long-term by a team of Odoo certified consultants. When you need more than an app, we deliver the full solution.
|
๐๏ธ Implementation
Full Odoo roll-outs from requirements to go-live, across any industry and company size. |
๐งฉ Custom Development
Bespoke modules, OWL components and business logic built precisely to your workflow. |
๐ Migrations
Zero-data-loss upgrades from older Odoo versions with full custom module porting. |
|
๐ Integrations
Payment gateways, shipping carriers, biometric devices, eCommerce and third-party APIs. |
๐ Odoo Audits
Performance, security and code-quality reviews that surface risks before they become problems. |
๐งโ๐ป Support & Training
Ongoing helpdesk, user training and monthly retainers so your team stays productive. |
|
Odoo
Certified
|
6+
Years
|
50+
Projects
|
10+
Industries
|
90+
Published Apps
|
More from CODEerts
Other apps we build to make Odoo do more. Tap any card to open it on the Odoo Apps Store.
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 498 |
| Technical Name |
codeerts_pk_distribution_tax |
| License | OPL-1 |
| Website | https://www.codeerts.com |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module