GDT e-VAT in Cambodia: what every business owner needs to know
What GDT e-VAT is, who must file, how integration works, what CamInvoice changes, and the pitfalls that catch Cambodian businesses off-guard.
- There is no separate GDT system called e-VAT: VAT, withholding tax, Tax on Salary, and the 1% income-tax prepayment all sit on one monthly return filed through GDT's E-Filing.
- Two deadlines, not one: the 25th of the following month if you file electronically, the 20th if you file on paper.
- CamInvoice is a separate GDDE platform for invoice-level e-invoicing. B2G is mandatory and phased by ministry; B2B is still voluntary.
- No off-the-shelf ERP files to GDT natively, so every firm needs a custom adapter.
What is GDT e-VAT?
'GDT e-VAT' is what Cambodian finance teams call filing VAT electronically with the General Department of Taxation, and it is worth being precise about the plumbing, because vendors selling against it often are not. GDT runs no separate system called e-VAT. VAT is declared inside GDT's ordinary monthly tax return, submitted through the E-Filing web and desktop applications that sit under GDT e-Tax Services at tax.gov.kh. That one monthly return carries VAT, withholding tax (WHT), Tax on Salary, and the 1% prepayment of Tax on Income. Alongside it, and separate from it, sits CamInvoice: the invoice-level e-invoicing platform operated by the General Department of Digital Economy (GDDE) since 2025. Any business registered for VAT files the monthly return; smaller businesses may register voluntarily but most stay below the threshold.
Before E-Filing, businesses submitted paper returns at GDT branch offices, and that route still exists on the earlier deadline. Moving submissions online retained the same legal structure: a taxable period of one calendar month, a return covering output VAT, input VAT credits, and net VAT payable, and the same supporting records. What electronic filing adds is structured data fields, digital authentication via GDT credentials, five extra days on the deadline, and an audit trail tied to each submission reference number.
Who must file e-VAT in Cambodia?
The KHR 250 million figure quoted everywhere locally is not the VAT registration threshold, and the distinction matters if you are deciding whether you are in scope. KHR 250 million (roughly USD 62,000) is the floor of the small-taxpayer classification under Prakas No. 009 MEF.Prk of 12 January 2021. VAT registration is triggered separately, under Sub-Decree No. 49 of 11 March 2024: taxable turnover above KHR 125 million on goods or KHR 60 million on services across three consecutive months, or a government contract above KHR 30 million, with registration due within 15 days of becoming a taxable person. In practice that captures most of the formal sector: trading companies, manufacturers, importers, service firms, and NGOs with commercial operations. On cadence, note there are two deadlines and vendors often quote only one: the monthly return is due by the 25th of the following month when submitted through GDT's E-Filing system, or by the 20th when filed on paper at a branch office. The e-filing extension dates from Instruction No. 003 MEF of 27 February 2020; the statutory 20-day rule was never repealed. If the deadline falls on a weekend or public holiday it rolls to the next working day.
- VAT-registered: firms past the registration trigger (over KHR 125M on goods or KHR 60M on services across three consecutive months, or a government contract over KHR 30M), registering within 15 days.
- Monthly deadline: 25th of the following month for E-Filing, 20th for paper filing at a branch office.
- Late filing: additional tax of 10% of the underpaid amount plus 1.5% interest per month, rising to 25% where the shortfall exceeds 10% of the tax due or payment is still outstanding 15 days after a reminder letter, and 40% on a unilateral assessment (Law on Taxation 2023, Articles 223, 224 and 233).
- Withholding tax (WHT): declared monthly on the same portal and the same deadline. Resident payments are withheld at 15% on services, royalties, and interest, and 10% on rental; any Cambodian-source payment to a non-resident is withheld at 14%. Bank deposit interest paid to residents is 6% on fixed-term and 4% on savings.
- Tax on Salary (ToS): also monthly, same portal, same deadline. Note this is the employment tax; Tax on Income (ToI) is the separate annual business income tax.
- Voluntary VAT registrants: bound by the same filing obligations once registered.
How does GDT e-VAT integration work?
There are two distinct technical paths, and many businesses confuse them. The first is GDT monthly filing: getting your accounting or ERP system to produce and submit the monthly return instead of someone rekeying it through the web portal. This is the path most Cambodian businesses need, and it is the one we build and run in production for clients today. The second is CamInvoice, the GDDE's invoice-level e-invoicing platform, which is a separate system with a different submission model. CamInvoice becomes relevant when you invoice a government counterparty already covered by the MEF circulars, or if and when a B2B mandate is published. Set expectations on one point before scoping either: GDT does not publish developer documentation you can hand to a contractor, so the integration route is established with GDT directly rather than read off a public specification. That makes vendor selection matter more than it otherwise would, because what you are buying is someone's existing working integration and delivery experience, not their ability to follow a published manual.
The challenge: no major off-the-shelf accounting or ERP platform (not Odoo, SAP Business One, Acumatica, QuickBooks, or Xero) ships with a native KH GDT adapter. Every firm that wants filing to come out of its own system needs a custom connector. We build these and have them running in production for Cambodian clients, scoped after a one-week paid discovery. Typical timelines: 6–13 weeks for a single-system SMB integration; 14–22 weeks for mid-market multi-entity setups. The work covers authentication against GDT with credentials tied to the TIN, invoice data mapping (GDT is opinionated about KHR amounts and WHT classification), error-handling for the rejection codes GDT returns, and a reconciliation layer that ties every filed line back to a journal entry in the source system.
If you want to understand what changes at the data layer when you wire your ERP into GDT (the field mapping, rejection-code handling, and multi-currency rounding rules), see our GDT and banking API integration work. If you have not yet chosen the system that will do the filing, start with our ERP in Cambodia guide; for the platform-level configuration once you have, see our Odoo GDT e-VAT setup guide.
What does GDT e-VAT integration cost?
Ranges vary by scope, source system, and entity count. For a single-entity SMB connecting one accounting system (QuickBooks, Xero, or a bespoke ledger) to the GDT API: build cost typically falls between USD 2,500 and USD 6,000 for a standard monthly-return integration. A full-scope integration covering VAT, WHT, and TOI with automated reconciliation sits at the upper end of that range or slightly above. Ongoing infrastructure (hosting, monitoring, and GDT credential rotation) runs USD 150–300 per month depending on transaction volume.
For mid-market firms with multiple legal entities, multi-currency books, or multi-warehouse invoice ordering, the integration scope expands materially: USD 10,000–25,000 is a realistic build range, with discovery needed to sharpen that figure. We quote after the paid discovery sprint, not before, because the GDT field mapping surprises change significantly based on how the source system books multi-currency transactions.
How does CamInvoice fit in?
CamInvoice is the GDDE's real-time e-invoicing platform. It is distinct from, and more demanding than, the existing GDT API for monthly returns. It was officially launched on 12 May 2025. Where the GDT API accepts batched monthly return data, CamInvoice requires invoice-level submission in real time: each invoice is posted to GDDE's platform at point of issuance, validated, and returned with a unique CamInvoice reference number that must appear on the invoice sent to the buyer. Mandatory rollout phasing for private-sector B2B transactions has not been formally published as of this writing. GDDE has indicated phased adoption starting with B2G, then large enterprises, then SMBs.
For businesses already planning a GDT API integration, it is worth scoping CamInvoice readiness at the same time. The two systems share some data fields (TIN, invoice date, KHR amounts) but differ on authentication flow and response handling. An adapter built for GDT monthly returns cannot be reused as-is for CamInvoice real-time submission; it needs a parallel module. First-mover advantage matters here: the partner-registration process for CamInvoice integration is currently open, and businesses that certify their integration early will be ahead of the compliance window when mandatory dates are announced.
Common pitfalls in Cambodia e-VAT compliance
After working through GDT e-VAT integrations across multiple industries, these are the failure modes we see repeatedly: not the obvious ones but the ones that produce silent errors and audit exposure:
- KHR rounding drift across multi-currency books: USD invoices converted to KHR at slightly different rates in the accounting system versus the filing produce cent-level mismatches that accumulate into filing discrepancies over 12 months. The fix is to lock conversion to the correct declared rate for each purpose (NBC daily rate on invoices, NBC month-end rate on the monthly declaration, per Instruction 26118) and round in KHR, not USD.
- WHT misclassification by counterparty and payment type: the rate depends on both who you are paying and what for (15% on services, royalties, and interest paid to residents; 10% on rental; 14% on any Cambodian-source payment to a non-resident), and the classification must match GDT's TIN records. Services billed by a registered taxpayer against a valid VAT invoice fall outside the 15%, which is the exclusion most often missed. A foreign-managed local entity classified incorrectly can generate WHT shortfall notices years after filing.
- TIN registration mismatches: the TIN on every invoice line in a GDT filing must match the TIN held in GDT's registry at the time of submission. Businesses that change their registered name or address without updating GDT records find that historical filings start failing re-validation during audits.
- Multi-warehouse invoice ordering: firms with multiple stock locations that raise invoices from different points generate ordering conflicts if the integration processes invoices asynchronously. GDT expects serial numbers in chronological order, restarting each tax year, with branch prefixes allowed only to identify a location. Gaps are not expressly prohibited by any instrument, but they read as a red flag in an audit, so treat them as something to explain rather than something to ignore.
- Late-filing penalty base: additional tax under Article 233 runs on the underpaid tax, and Article 66(2) defines VAT payable as output tax less the input credit allowed for the same period, so input VAT reduces the base rather than gross output VAT setting it. Firms that provision on gross tie up cash they never owed. Watch the credit window too: Sub-Decree 49 of 2024 allows input tax to be claimed in the same month or within 60 days, so a late-arriving supplier invoice can still be credited.
- Audit trail completeness across the retention window: the Law on Accounting and Auditing 2016 requires accounting records to be kept for ten years from creation (Article 23), and the 2023 Law on Taxation requires medium and large taxpayers to keep tax records for ten years, small taxpayers three (Article 201). GDT can audit any return within that window. An integration that stores the submission payload but not the source-journal mapping leaves a gap that is expensive to reconstruct a decade later.
- CamInvoice reference number missing from buyer invoices: once CamInvoice is in scope, every issued invoice must carry the GDDE-issued reference number. Businesses that issue invoices before the CamInvoice submission completes, or that batch-submit after the fact, will have issued non-compliant documents to buyers.
Frequently asked questions
These are the questions we get most often from Cambodian business owners and finance teams evaluating e-VAT integration:
- Can I file quarterly instead of monthly?
- No. Under current GDT rules, VAT-registered businesses file monthly. The return covers the full calendar month and is due the 25th of the following month. Quarterly filing is not available for standard VAT registrants.
- Do multi-entity groups file consolidated or separate returns?
- Separate. Each legal entity with its own TIN files its own monthly VAT return. Consolidated group filing is not available in Cambodia's current GDT system. Inter-company transactions must be arm's-length and disclosed per entity.
- How do we handle foreign-currency invoices in GDT filings?
- All GDT amounts are reported in KHR, but there is no single rate. Under GDT Instruction No. 26118 (28 October 2022) the rate depends on what you are converting: an invoice uses the NBC daily official rate for the invoice date (a market rate is acceptable if it is not lower than NBC's, and a non-working day falls back to the preceding day); Tax on Salary uses the NBC rate on the 15th of the month; the monthly tax declaration uses the NBC rate on the last day of the month; the annual declaration uses the rate on 31 December. Applying one rate to all four is a common source of filing discrepancies, and the older practice of using an average rate for monthly and annual returns is obsolete.
- What audit trail format does GDT expect?
- GDT does not mandate a specific audit trail file format, but during an audit it will request the source documents (invoices, purchase orders, bank statements) that support each filed line. The Law on Accounting and Auditing 2016 requires these to be retained for ten years in a form that allows re-creation of the original submission.
- How do we select an integration partner?
- Look for a partner that has completed at least one live GDT API integration, can show you a real rejection-code handling log, and quotes fixed-price after a scoped discovery, not time-and-materials on an unknown spec. Ask specifically about WHT classification logic and multi-currency rounding; those are where gaps surface.
- How does CamInvoice partner registration work?
- As of May 2025, businesses and integration vendors can register as CamInvoice integration partners through GDDE's portal. The process involves submitting technical documentation, completing a sandbox certification test, and receiving a partner certificate. Phased mandatory rollout details are expected to follow GDDE announcements.
- Can I keep my existing accounting software and add GDT integration on top?
- Yes, in most cases. The GDT API integration is a middleware layer that reads from your existing system and pushes to GDT; it does not require replacing your accounting software. QuickBooks Desktop, Xero, Zoho Books, and custom ledgers have all been connected in this pattern. The constraint is that your source system must produce clean, consistent invoice data. Systems with unbounded rounding behaviour or inconsistent TIN fields on supplier records create ongoing friction.
- What happens if we stop filing after being registered?
- A lapsed filing is treated as a nil return for the period. GDT can issue an estimated assessment based on prior-period filings and impose penalties plus interest. Extended non-filing can result in TIN suspension, which blocks e-VAT submission and can trigger a full audit. De-registration from VAT is a formal process requiring GDT approval; you cannot simply stop filing.
- Is the GDT API publicly documented?
- No, and that is one of the more useful things to know when you are comparing vendors. GDT publishes filing guidance and its e-Tax Services at tax.gov.kh, but there is no public API reference or developer portal you can hand to a contractor and expect them to work from it. The integration route is established with GDT directly. That is why the right question to put to a vendor is not 'do you support the GDT API' but 'show me a return your adapter filed for a live client'. We have built these adapters and run them in production; a vendor who cannot show you a real filing has not.