Every VAT-registered business in Bangladesh must submit Mushak 6.3 by the 15th of the following month. The form shows NBR how much output VAT you collected, how much input VAT you can claim, and what you owe. Get it wrong and you face penalties, audit exposure, or — worse — pay more VAT than you legally owe because your input credits aren't being claimed.
Odoo doesn't ship a pre-built Mushak 6.3 report for Bangladesh. But if you configure taxes correctly, the Tax Report generates every number you need. This guide covers exactly that configuration — from tax group setup to fiscal positions to the monthly close process.
A misconfigured tax account means every invoice for the past 12 months has posted to the wrong place. The fix is worse than the original setup.
What is Mushak 6.3 and what does it require?
Mushak (মূসক) is the Bengali acronym for VAT — Mūlya Sanjojan Kar. Bangladesh's VAT law is the Value Added Tax and Supplementary Duty Act, 2012, administered by the National Board of Revenue (NBR). Under this law, VAT-registered businesses must:
- Collect 15% VAT on taxable domestic sales (output VAT)
- Pay VAT on eligible purchases — raw materials, services (input VAT)
- Claim the difference: output VAT − input VAT = net VAT payable
- Submit Mushak 6.3 monthly by the 15th of the following month
- Make the VAT payment to the NBR-designated bank account by the same date
Mushak 6.3 requires the following data, which Odoo must be able to produce:
| Mushak 6.3 Line | What it captures | Odoo source |
|---|---|---|
| Output VAT (Sales) | Total VAT collected on taxable sales during the month | Tax Report → Output VAT group |
| Input VAT (Purchases) | VAT paid on eligible purchases — claimable as credit | Tax Report → Input VAT group |
| Supplementary Duty (SD) | Additional duty on specified goods (not universally applicable) | Tax Report → SD group (if applicable) |
| Net VAT Payable | Output VAT minus Input VAT credit. Paid to NBR. | Calculated from the above |
| Zero-rated / Exempt Sales | Export sales (zero-rated) — shown separately, no output VAT | 0% VAT tax on export invoices |
Tax group configuration
Tax groups in Odoo control how taxes appear on the Tax Report. For Bangladesh, you need at minimum three tax groups — these are the buckets the report uses to aggregate your tax data:
Go to Accounting → Configuration → Tax Groups and create:
Output VAT (Sales)
Name: Output VAT 15% · This group collects all VAT charged on domestic sales. The Tax Report will show the total credit balance of the Output VAT Payable account under this group — that's your Mushak 6.3 output VAT figure.
Input VAT (Purchases)
Name: Input VAT 15% · This group collects VAT paid on eligible purchases — raw materials, consumables, and services used in making taxable supplies. The debit balance here is your claimable input VAT credit on Mushak 6.3.
Zero-Rated (Export)
Name: VAT 0% Export · This group collects your zero-rated export sales. These don't appear as output VAT, but Bangladesh law requires them to be declared separately in Mushak 6.3. Keeping them in their own group lets you pull the export sales value cleanly.
Supplementary Duty (if applicable)
Name: Supplementary Duty · Only needed if your products attract SD (e.g., cigarettes, petroleum, certain beverages). Most manufacturing and export businesses don't use this. Create it only if needed — don't add unnecessary complexity to your tax report.
Chart of accounts for VAT
Three accounts are essential for Mushak compliance. These must exist in your chart of accounts before you configure taxes — the taxes reference these accounts for every journal entry:
| Account name | Type | Suggested code | Purpose |
|---|---|---|---|
| Output VAT Payable | Current Liability | 2110 |
Credited when you invoice a customer with 15% VAT. Balance = VAT you owe NBR from sales. |
| Input VAT Recoverable | Current Asset | 1210 |
Debited when you receive a vendor bill with 15% VAT. Balance = VAT credit claimable against output VAT. |
| VAT Payable to NBR | Current Liability | 2115 |
Used in the monthly journal entry that transfers the net VAT from the above two accounts before the NBR payment. Optional but recommended for clean closing. |
The account codes above are suggestions. Match them to your NBR-approved chart of accounts if you've already received one from your VAT Circle Office. Many Bangladesh manufacturing companies receive a prescribed chart from their auditor when registering for VAT — always align Odoo to that, not the other way around.
Tax setup: 15% VAT, and zero-rated export
Go to Accounting → Configuration → Taxes. You need two taxes for the basic setup:
VAT 15% — Domestic Sales (Output)
Tax Type: Sales · Computation: Percentage of Price · Amount: 15% · Tax Group: Output VAT 15%
In the Definition tab, add a distribution line: Account = Output VAT Payable (2110), percentage 100%. This ensures every domestic sales invoice credits the correct liability account for Mushak.
VAT 15% — Purchases (Input)
Tax Type: Purchase · Computation: Percentage of Price · Amount: 15% · Tax Group: Input VAT 15%
Distribution line: Account = Input VAT Recoverable (1210), percentage 100%. This ensures every vendor bill with VAT debits your recoverable account — building up the input credit you claim on Mushak 6.3.
VAT 0% — Export Sales (Zero-Rated Output)
Tax Type: Sales · Computation: Percentage of Price · Amount: 0% · Tax Group: VAT 0% Export
No distribution line needed (0% generates no monetary posting). This tax exists so export sales appear on the Tax Report in the zero-rated group — required for Mushak 6.3 disclosure. It is applied automatically via the Export Fiscal Position (see next section).
For most products, the default sales tax should be set to VAT 15% on the product record (or product category). This ensures 15% is applied automatically on all domestic invoices without manual selection per line.
Fiscal positions for export sales
Fiscal positions in Odoo automatically remap taxes based on the customer's country or explicit assignment. For Bangladesh exporters, you need one fiscal position that replaces 15% VAT with 0% on all export invoices.
Go to Accounting → Configuration → Fiscal Positions → New:
- Name: Export — Zero VAT
- Auto-detect: optionally set Country = all countries except Bangladesh (so any foreign customer gets this automatically)
- Tax Mapping tab: add the following rule:
Assign this fiscal position to every foreign buyer in their Contact → Sales & Purchase tab → Fiscal Position. From that point on, every invoice for that buyer will automatically show 0% VAT — and the export sales value will flow into the zero-rated group on the Tax Report for Mushak 6.3 disclosure.
Fiscal positions interact directly with the Odoo Accounting setup for Bangladesh — specifically the chart of accounts and revenue account mapping. If your fiscal position maps accounts (not just taxes), also add the account mapping: Domestic Sales revenue → Export Sales revenue. This keeps your P&L segment reporting clean by separating domestic and export revenue without manual journal corrections.
Running the Tax Report to get Mushak 6.3 data
Go to Accounting → Reporting → Tax Report. Set the date range to the reporting month (1st to last day). The report shows:
- Output VAT 15% group → credit total = your total output VAT for the month
- Input VAT 15% group → debit total = your total input VAT credit for the month
- VAT 0% Export group → total export sales value (for Mushak 6.3 disclosure)
- Net balance = output VAT minus input VAT = net payable to NBR
Transfer these figures to your Mushak 6.3 form. The NBR-prescribed format for the form is available on the NBR website — your VAT Circle Office can also provide the latest version.
After the Tax Report is confirmed and the Mushak form is submitted, pass the closing journal entry in Odoo:
- Debit: Output VAT Payable (2110) — the full output VAT amount
- Credit: Input VAT Recoverable (1210) — the input VAT credit amount
- Credit: VAT Payable to NBR (2115) — the net payable amount
When the bank payment to NBR is made, debit VAT Payable to NBR (2115) and credit your Bank account. Both accounts will be zeroed out for the month.
Common errors — and how to fix them
| Error | Cause | Fix |
|---|---|---|
| Tax Report shows wrong output VAT figure | Some invoices have the wrong tax applied (or no tax), or the tax account is incorrect | Run Accounting → Reporting → General Ledger filtered to the Output VAT Payable account. Every credit should be a customer invoice VAT line. Investigate any unexpected entries. |
| Export invoices show 15% VAT instead of 0% | Fiscal position not assigned to the customer, or auto-detection not triggered | Check the customer Contact record → Sales & Purchase tab → Fiscal Position. If blank, assign "Export — Zero VAT" and re-confirm the invoice. |
| Input VAT not appearing on Tax Report | Vendor bills posted with no purchase tax, or tax posted to wrong account | For each vendor bill, verify the tax field on each product line. Many users post vendor bills without selecting the purchase tax — this is the most common gap in Bangladesh Odoo deployments. |
| Tax Report doesn't match general ledger balances | Manual journal entries bypassed the tax engine and posted directly to VAT accounts | Avoid posting directly to VAT accounts in manual journal entries. All VAT postings should flow through customer invoices and vendor bills. Investigate any manual entries to these accounts. |
Bangladesh NBR VAT audits are increasingly data-driven. Auditors cross-check your Mushak 6.3 submission against your VAT registration data, bank statements, and sometimes your customers' Mushak 6.1 (purchase declarations). Having a clean Odoo Tax Report that matches your Mushak submission exactly is your best defence. If you need help setting up VAT compliance in Odoo from scratch, get in touch and I'll review your tax configuration →
Frequently asked questions
What is Mushak 6.3 in Bangladesh?
Mushak 6.3 is the monthly VAT return form under the VAT and Supplementary Duty Act, 2012. Every VAT-registered business submits it to NBR by the 15th of the following month. It shows output VAT collected on sales, input VAT paid on purchases (eligible for credit), and the net VAT payable. In Odoo, the data is produced by the Tax Report (Accounting → Reporting → Tax Report) — provided taxes are correctly configured with the right groups and accounts.
Does Odoo have a built-in Mushak 6.3 report for Bangladesh?
No — Odoo does not ship a pre-formatted Mushak 6.3 PDF. The Tax Report provides all the figures you need to complete the NBR form manually. Some Odoo partners in Bangladesh offer a custom Mushak 6.3 module that generates the NBR-formatted PDF directly; ask your implementation partner or search the Odoo App Store. For most SMEs, the manual approach (Tax Report → transfer to Mushak form) is sufficient and more auditable.
How do I configure zero-VAT for export sales in Odoo?
Create a 'VAT 0% Export' tax with 0% rate and assign it to the 'VAT 0% Export' tax group. Then create a Fiscal Position called 'Export — Zero VAT' with a tax mapping rule: VAT 15% → VAT 0% Export. Assign this fiscal position to every foreign buyer in their contact record. Odoo will then automatically apply 0% VAT on all invoices for those buyers — your export sales will appear in the zero-rated section of the Tax Report for Mushak 6.3 disclosure.
What accounts do I need in the chart of accounts for Mushak compliance?
At minimum: (1) Output VAT Payable — current liability, credited on every sales VAT posting; (2) Input VAT Recoverable — current asset, debited on every purchase VAT posting; (3) VAT Payable to NBR — optional intermediate liability for the monthly closing entry before paying NBR. Match these codes to your NBR-approved chart of accounts — don't invent new codes if your VAT Circle Office has prescribed a chart.
Can I claim input VAT on all purchases in Bangladesh?
No. Bangladesh VAT law restricts input tax credit. You can claim input VAT on purchases directly used to make taxable supplies (raw materials, production consumables, directly related services). You cannot claim input VAT on: staff meals, entertainment, personal use items, motor vehicles (in most cases), and purchases used to make exempt supplies. Odoo doesn't enforce these restrictions automatically — you must apply the correct tax or no tax on restricted purchase lines at the time of bill entry.