Registry entry

Cambodia Return for Withholding Tax (Form WT 03)

File Cambodia's monthly Withholding Tax return with the General Department of Taxation (GDT), per Form WT 03 ("Return for Withholding Tax", Articles 25 "New", 26 "New" and 31 "New" of the Law on Taxation). Withholding Tax is Cambodia's tax withheld at source by an enterprise on certain payments it makes, declared and paid monthly, computed separately for payments to resident taxpayers (Article 25: services/royalty/mineral-interest income and interest at 15%, interest to fixed-term depositors at 6%, interest to non-fixed-term savers at 4%, and rental/lease of movable and immovable property at 10%) and payments to non-resident taxpayers (Article 26: interest, royalty/rental/property income, management/technical service fees, and dividends, all at a flat 14%). It is a companion sibling to the already-published kh/gdt/monthly-vat-return, kh/gdt/monthly-tax-declaration, kh/gdt/patent-tax-return, and kh/gdt/tax-on-salary-return schemas, all on the same unauthenticated tax.gov.kh channel and sharing the same taxpayer-identification header layout as kh/gdt/monthly-vat-return. This schema models the return's own page 1 in full: the filing period, taxpayer identification and address, Section I (Withholding Tax on Resident Taxpayers, five payment-category rows plus their own Total row), Section II (Withholding Tax on Non-Resident Taxpayers, four payment-category rows plus their own Total row), and the filing declaration (place, date). Out of scope, and disclosed rather than silently omitted: the form's own page 2, a per-recipient "Details" schedule (recipient name, object of payment, invoice/payment-note number, amount before tax withheld, tax rate, and withholding tax for each individual resident and non-resident payment) that the form's own instruction says to continue onto separate sheets when space is insufficient — a supporting annex to, not a required part of, the page-1 return this schema models, the same treatment this registry gave kh/gdt/monthly-vat-return's own page-2 invoice-level annex, kh/gdt/patent-tax-return's page-3 continuation annex, and kh/gdt/tax-on-salary-return's own page-2 per-employee annex. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Kingdom of Cambodia or the General Department of Taxation.

Registry entry

kh/gdt/withholding-tax-return

Jurisdiction
Cambodia · national
Version
1.0.0
Verification
draft

Authoritative source Form WT 03 — Return for Withholding Tax

Machine access

Schema document
registry/kh/gdt/withholding-tax-return/1.0.0/schema.jsonapplication/schema+json
Registry catalog
registry/index.jsonone record per schema id

Field reference

49 fields, read from the published schema.json, with names, types, requiredness, and validation as the document states them. The live government form remains the authoritative source.

Fields

  • periodFromDate date required

    First day of the period covered by this return.

  • periodToDate date required

    Last day of the period covered by this return.

  • taxIdentificationNumber string required

    The enterprise's 9-digit Tax Identification Number.

    patternclassification: sensitive-pii
  • enterpriseName string required

    The registered name of the enterprise filing this return.

    length: 1–300
  • businessActivities string required

    Description of the enterprise's business activities.

    length: 1–300
  • addressHouseNumber string required

    House or building number of the enterprise's address.

    length: 1–100
  • addressStreet string required

    Street of the enterprise's address.

    length: 1–200
  • addressGroup string required

    Group (Krom) of the enterprise's address.

    length: 1–100
  • addressVillage string required

    Village of the enterprise's address.

    length: 1–100
  • addressSangkat string required

    Sangkat (commune) of the enterprise's address.

    length: 1–100
  • addressDistrict string required

    District (Khan) of the enterprise's address.

    length: 1–100
  • addressMunicipality string required

    Municipality/province of the enterprise's address.

    length: 1–100
  • faxOrPhone string required

    Fax or telephone number for the enterprise.

    length: 1–30classification: pii
  • email string required

    Email address for the enterprise.

    patternlength: 0–200classification: pii
  • residentServicesRoyaltyMineralsInterestAmount number optional

    Amount to be paid, before tax, for performance of services, royalty for intangibles, or interest in minerals paid to a resident taxpayer, in Cambodian riel (KHR). Taxed at the fixed 15% rate (D = B x C).

    range: 0–∞
  • residentServicesRoyaltyMineralsInterestWithholding number optional

    Withholding tax due on performance of services, royalty for intangibles, or interest in minerals paid to a resident taxpayer, at the fixed 15% rate.

    range: 0–∞
  • residentServicesRoyaltyMineralsInterestRemarks string optional

    Free-text remarks for this row.

    length: 0–300
  • residentNonBankInterestAmount number optional

    Amount to be paid, before tax, as interest to a resident taxpayer that is not a bank or savings institution, in Cambodian riel (KHR). Taxed at the fixed 15% rate (D = B x C).

    range: 0–∞
  • residentNonBankInterestWithholding number optional

    Withholding tax due on interest paid to a resident taxpayer that is not a bank or savings institution, at the fixed 15% rate.

    range: 0–∞
  • residentNonBankInterestRemarks string optional

    Free-text remarks for this row.

    length: 0–300
  • residentFixedTermDepositInterestAmount number optional

    Amount to be paid, before tax, as interest to a resident taxpayer holding a fixed-term deposit account, in Cambodian riel (KHR). Taxed at the fixed 6% rate (D = B x C). Per the form's own footnote, this row applies specifically to interest paid by domestic banks and savings institutions to their own depositor clients.

    range: 0–∞
  • residentFixedTermDepositInterestWithholding number optional

    Withholding tax due on interest paid to a resident taxpayer holding a fixed-term deposit account, at the fixed 6% rate.

    range: 0–∞
  • residentFixedTermDepositInterestRemarks string optional

    Free-text remarks for this row.

    length: 0–300
  • residentNonFixedTermSavingInterestAmount number optional

    Amount to be paid, before tax, as interest to a resident taxpayer holding a non-fixed-term saving account, in Cambodian riel (KHR). Taxed at the fixed 4% rate (D = B x C). Per the form's own footnote, this row applies specifically to interest paid by domestic banks and savings institutions to their own depositor clients.

    range: 0–∞
  • residentNonFixedTermSavingInterestWithholding number optional

    Withholding tax due on interest paid to a resident taxpayer holding a non-fixed-term saving account, at the fixed 4% rate.

    range: 0–∞
  • residentNonFixedTermSavingInterestRemarks string optional

    Free-text remarks for this row.

    length: 0–300
  • residentRentalLeasePropertyAmount number optional

    Amount to be paid, before tax, for rental or lease of movable and immovable property paid to a resident taxpayer, in Cambodian riel (KHR). Taxed at the fixed 10% rate (D = B x C).

    range: 0–∞
  • residentRentalLeasePropertyWithholding number optional

    Withholding tax due on rental or lease of movable and immovable property paid to a resident taxpayer, at the fixed 10% rate.

    range: 0–∞
  • residentRentalLeasePropertyRemarks string optional

    Free-text remarks for this row.

    length: 0–300
  • residentWithholdingTotalAmount number required

    Total amount to be paid, before tax, across all Section I (Withholding Tax on Resident Taxpayers) rows.

    range: 0–∞
  • residentWithholdingTotalWithholding number required

    Total withholding tax due across all Section I (Withholding Tax on Resident Taxpayers) rows.

    range: 0–∞
  • residentWithholdingTotalRemarks string optional

    Free-text remarks for the Section I Total row.

    length: 0–300
  • nonResidentInterestAmount number optional

    Amount to be paid, before tax, as interest paid to a non-resident taxpayer, in Cambodian riel (KHR). Taxed at the fixed 14% rate (G = E x F).

    range: 0–∞
  • nonResidentInterestWithholding number optional

    Withholding tax due on interest paid to a non-resident taxpayer, at the fixed 14% rate.

    range: 0–∞
  • nonResidentInterestRemarks string optional

    Free-text remarks for this row.

    length: 0–300
  • nonResidentRoyaltyRentalPropertyIncomeAmount number optional

    Amount to be paid, before tax, as royalty, rental/leasing payment, or income related to the use of property paid to a non-resident taxpayer, in Cambodian riel (KHR). Taxed at the fixed 14% rate (G = E x F).

    range: 0–∞
  • nonResidentRoyaltyRentalPropertyIncomeWithholding number optional

    Withholding tax due on royalty, rental/leasing payment, or income related to the use of property paid to a non-resident taxpayer, at the fixed 14% rate.

    range: 0–∞
  • nonResidentRoyaltyRentalPropertyIncomeRemarks string optional

    Free-text remarks for this row.

    length: 0–300
  • nonResidentManagementTechnicalFeeAmount number optional

    Amount to be paid, before tax, for management fees or technical services paid to a non-resident taxpayer, in Cambodian riel (KHR). Taxed at the fixed 14% rate (G = E x F).

    range: 0–∞
  • nonResidentManagementTechnicalFeeWithholding number optional

    Withholding tax due on management fees or technical services paid to a non-resident taxpayer, at the fixed 14% rate.

    range: 0–∞
  • nonResidentManagementTechnicalFeeRemarks string optional

    Free-text remarks for this row.

    length: 0–300
  • nonResidentDividendAmount number optional

    Amount to be paid, before tax, as a dividend paid to a non-resident taxpayer, in Cambodian riel (KHR). Taxed at the fixed 14% rate (G = E x F).

    range: 0–∞
  • nonResidentDividendWithholding number optional

    Withholding tax due on a dividend paid to a non-resident taxpayer, at the fixed 14% rate.

    range: 0–∞
  • nonResidentDividendRemarks string optional

    Free-text remarks for this row.

    length: 0–300
  • nonResidentWithholdingTotalAmount number required

    Total amount to be paid, before tax, across all Section II (Withholding Tax on Non-Resident Taxpayers) rows.

    range: 0–∞
  • nonResidentWithholdingTotalWithholding number required

    Total withholding tax due across all Section II (Withholding Tax on Non-Resident Taxpayers) rows.

    range: 0–∞
  • nonResidentWithholdingTotalRemarks string optional

    Free-text remarks for the Section II Total row.

    length: 0–300
  • filedAtPlace string required

    Place where this return is filed.

    length: 1–200
  • filedDate date required

    Date this return is filed and signed by the Director/Manager/Owner of the enterprise.

Verification record

Why this candidate

The GOV-3417 cycle (2026-07-16), while opening Cambodia's Taxes vertical via kh/gdt/monthly-vat-return, re-screened tax.gov.kh's full public document-form library and explicitly sized/screened three further standalone tax-return candidates as ready-to-scope backlog but left all three unauthored: "Return for Withholding Tax- Form WT 03" (327 widgets, 2 pages), "Return for Tax on Salary- Form TOS 01" (292 widgets, 2 pages), and "Return for Patent Tax- Form PR 008" (80 widgets, 3 pages). GOV-3426 (2026-07-16) authored Form PR 008; GOV-3433 (2026-07-17) authored Form TOS 01. This cycle (GOV-3440, "GovSchema Standard Research") re-scanned CATALOG.md's live backlog fresh per the standing routine and picked the last remaining candidate: Form WT 03, Cambodia's monthly withholding-tax return. Cambodia's other four verticals (DMV, Passport, Visa, National ID) were re-confirmed weak/dead in the GOV-3410 cycle; not re-screened this cycle, consistent with this registry's practice of not re-litigating a recently-confirmed dead end without a new source.

Sources examined

Primary source
  • Authority: General Department of Taxation of Cambodia (GDT), https://www.tax.gov.kh/.
  • Document — Form WT 03, "Return for Withholding Tax".
    • Listing page (directly retrieved, HTTP 200, plain unauthenticated curl with a standard desktop User-Agent): https://www.tax.gov.kh/en/document-form/page/3, under the entry "Return for Withholding Tax- Form WT 03", category "MONTHLY TAX RETURN FORM" — the same category and listing page as the already-published kh/gdt/monthly-vat-return, kh/gdt/monthly-tax-declaration, and kh/gdt/tax-on-salary-return siblings, and the same listing page as GOV-3417's own Withholding Tax (WT 03) sighting.
    • Extraction technique reused from GOV-3417/GOV-3426/GOV-3433: the listing page renders each document's title inside a <script type="application/ld+json"> block immediately preceding that document's own table row and download link; searching forward from each title's position (not backward) finds that same row's own <a href>, avoiding the off-by-one bug GOV-3417 first caught.
    • URL (directly retrieved, HTTP 200, plain unauthenticated curl): https://www.tax.gov.kh/u6rhf7ogbi6/gdtstream/79b80c34-ede2-4794-b36a-329969debb2c
    • File identity: genuine AcroForm PDF (%PDF-1.6 header), 1,237,640 bytes, sha256:e5e79c7270d04f0ae1e24859c887fc53ad469ada95014975366b26d1c8d72bf.
    • Extraction method: pdfjs-dist@3 (installed standalone in a scratch directory for extraction only, not added as a repository dependency). page.getAnnotations() merged by per-page x/y position with page.getTextContent()'s bilingual Khmer/English text layer, since the source form is genuinely bilingual (a clean parallel English caption sits beside every Khmer label) and every field's label in this schema uses that English caption.
    • Widget count confirmed: 68 widgets on page 1, 259 on page 2 — 327 total, matching the GOV-3417 scouting figure exactly.
    • No checkbox/radio widgets anywhere in this form: every one of page 1's 68 extracted widgets has fieldType: "Tx" (plain text). Like sibling kh/gdt/tax-on-salary-return, this form has no fillable checkbox at all.
    • No shared/reused field-name collisions on page 1: every one of page 1's 68 widget names is unique, confirmed by grouping the extracted widget list by name. Every field below maps to exactly one widget, or (for the header period/TIN/declaration-date blocks) to a small group of same-purpose widgets collapsed into one logical field, reusing the exact per-character-comb-field collapsing precedent and the exact field names the kh/gdt siblings already established for this shared header layout: 001_DD/001_MM/001_YYYYperiodFromDate; 002_DD/002_MM/002_YYYYperiodToDate; the 9 single-digit TIN_011-TIN_091 comb boxes (maxLen: 1 confirmed on each via page.getAnnotations()'s own maxLen property) → taxIdentificationNumber; and the 8 single-digit D12/D13/M12/M13/Y12-Y15 comb boxes → filedDate.
    • Shared header layout with kh/gdt/monthly-vat-return and kh/gdt/tax-on-salary-return: the period/TIN/enterprise-name/ business-activities/address/fax-phone/email header block is structurally identical to those siblings' own headers (same field order, same address subdivision granularity: House No./Street/Group/ Village/Sangkat/District/Municipality). This schema reuses those siblings' exact field names for consistency across the kh/gdt family, per this registry's "convention over configuration" practice.
    • Disclosed widget-numbering quirk: the source PDF's own internal widget names for the table rows skip from Amount6/Withholding6/ Remarks6 (Section I's own Total row) directly to Amount8/ Withholding8/Remarks8 (Section II's first payment-category row) — there is no Amount7/Withholding7/Remarks7 widget anywhere in the extracted annotation list for either page, confirmed by grouping all 68 page-1 widgets by name. This is a gap in the source form's own internal numbering, not a modelling omission: every row's field content was independently confirmed against the page's own printed English captions and rate percentages via the bilingual text layer rather than inferred from the widget name alone.

Scope and disclosed boundaries

This schema models Form WT 03's page 1 in full: the filing period, taxpayer identification and address, Section I — Withholding Tax on Resident Taxpayers (Article 25 "New") (five payment-category rows — services/ royalty for intangibles/interest in minerals at 15%; interest to non-bank or savings-institution taxpayers at 15%; interest to fixed-term depositors at 6%; interest to non-fixed-term savers at 4%; rental/lease of movable and immovable property at 10% — plus their own Total row, 18 fields), Section II — Withholding Tax on Non-Resident Taxpayers (Article 26 "New") (four payment-category rows, all at a flat 14% — interest; royalty/rental/leasing and property-use income; management fee and technical services; dividend — plus their own Total row, 15 fields), and the filing declaration (place, date).

Each row's own tax-rate percentage (15%/15%/6%/4%/10% for Section I; a flat 14% for every Section II row) is a static printed label in the source PDF with no backing widget — documented in each affected field's own description rather than modelled as a separate input field. The source form's own footnote ("Point 3 and 4 are the payment of interest by domestic banks and saving institutions to their clients that have deposit or saving accounts") scopes Section I rows 3 and 4 specifically to domestic-bank/ savings-institution payers — documented in those two rows' field descriptions rather than modelled as a separate conditional field.

Explicitly out of scope, and disclosed rather than silently omitted:

  • Page 2, "Details on the Withholding Tax on Resident Taxpayers" and "...on Non-Resident Taxpayers" (259 widgets) — a per-recipient breakdown schedule: one template row per side (No., Name of Recipients, Object of Payment, Invoice/Payment Note, Amount Before Tax Withheld, Tax Rate, Withholding Tax). The form's own printed instruction, "Use separate sheets if the space is insufficient," confirms this is a supporting per-recipient annex attached as needed, not a fixed part of the core return modelled here. Left unmodelled as disclosed future-companion backlog, the same treatment this registry gave kh/gdt/monthly-vat- return's own page-2 invoice-level annex, kh/gdt/patent-tax-return's page-3 continuation annex, and kh/gdt/tax-on-salary-return's own page-2 per-employee annex.
  • Cambodia's other four verticals (DMV, Passport, Visa, National ID) — re-confirmed weak/dead in the GOV-3410 cycle; not re-screened this cycle.
Modelling decisions worth disclosing
  • All Section I/II per-category row fields (Amount/Withholding/Remarks) are optional (required: false). An enterprise may not have made any payment in a given payment category that period, leaving those rows genuinely blank on a valid filing — the same reasoning kh/gdt/tax-on-salary-return applied to its own per-bracket fields.
  • Both section Total rows (Amount and Withholding) are required: true; their Remarks fields remain optional. Mirroring kh/gdt/tax-on-salary-return's totalTaxDue treatment: a return with zero withholding activity in a section still states that section's total (as zero), so the Total row's own amount/withholding fields are always expected to be filled in even when every category row above is blank.
  • Header fields (address, fax/phone, email) are modelled as required: true, matching the equivalent header fields in the sibling kh/gdt/monthly-vat-return and kh/gdt/tax-on-salary-return schemas exactly, since all three forms share the same taxpayer-identification header layout and none carries a visible conditional gate on that block.

Conformance fixtures

Fixtures are committed under conformance/kh/gdt/withholding-tax-return/1.0.0/: two valid submissions (a minimal filing with a single resident-interest row and zero non-resident activity, both section totals stated as required; a fuller filing spanning multiple resident and non-resident payment categories) plus mutation-control fixtures, one per required/validation rule exercised (invalid TIN pattern, invalid email pattern, negative amount, and missing-required-field cases spanning the header and both section totals). All fixtures were checked with a from-scratch, throwaway Node mock validator implementing this schema's own required/validation rules (not committed — consistent with this registry's established per-cycle practice of writing an independent validator rather than reusing the authoring script). Both tools/validate.mjs and tools/validate-ajv.mjs pass across the full registry with this schema added.

Known gaps

  • Page 2's per-recipient "Details" schedule remains disclosed, ready-to- scope backlog for a future companion schema/version — see "Scope and disclosed boundaries" above.
  • Cambodia's DMV, Passport, Visa, and National ID verticals remain open backlog, previously screened weak/dead in GOV-3410. This closes out the last of the three sibling standalone tax-return candidates the GOV-3417 cycle sized and screened; no further ready-to-scope tax.gov.kh candidates remain disclosed as of this cycle (the oversized combined "Monthly Tax Return in New Form without Branch," 1,802 widgets/16 pages, remains flagged too large to responsibly scope in one cycle).

Verification method assessment

manual-source-review-v1 — a human/agent read the primary source directly and transcribed its fields. No automated re-verification tooling exists yet for this schema; nextReviewBy is set 6 months out per the practice's default cadence.

View the raw record (VERIFICATION.md)

Version history

  • 1.0.0 draft latest this page has verification record schema.json

Independent and non-affiliated

GovSchema is an independent, open-source project. This reference is not produced, reviewed, or endorsed by General Department of Taxation of Cambodia or any government. The authoritative source is always the live government form and its official instructions.