{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "kh/gdt/tax-on-salary-return",
  "version": "1.0.0",
  "title": "Cambodia Return for Tax on Salary (Form TOS 01)",
  "description": "File Cambodia's monthly Tax on Salary return with the General Department of Taxation (GDT), per Form TOS 01 (\"Return for Tax on Salary\", update 17/01/2018). Tax on Salary is Cambodia's payroll withholding tax, assessed monthly by every registered enterprise on salary paid to its employees; this return declares the enterprise's tax base and computes the tax due separately for resident employees (progressive brackets: 0%, 5%, 10%, 15%, 20%), non-resident employees (flat 20%), and taxable fringe benefits (flat 20%). It is a companion sibling to the already-published kh/gdt/monthly-vat-return, kh/gdt/monthly-tax-declaration, and kh/gdt/patent-tax-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, the resident-employee bracket computation table (Table I, five rate rows plus their total), the non-resident-employee computation (Table II), the fringe-benefit computation (Table III), the resulting total tax due, and the filing declaration (place, date). Out of scope, and disclosed rather than silently omitted: the form's own page 2, a per-employee \"Details\" schedule (name, nationality, function, salary, dependents, and tax computation for individual resident and non-resident/fringe-benefit employees) 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 and kh/gdt/patent-tax-return's page-3 continuation annex. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Kingdom of Cambodia or the General Department of Taxation.",
  "status": "draft",
  "jurisdiction": {
    "country": "KH",
    "level": "national"
  },
  "authority": {
    "name": "General Department of Taxation of Cambodia",
    "abbreviation": "GDT",
    "url": "https://www.tax.gov.kh/"
  },
  "process": {
    "type": "filing",
    "language": "km"
  },
  "source": {
    "url": "https://www.tax.gov.kh/u6rhf7ogbi6/gdtstream/a2d7cf62-6179-4de3-b75e-5aff8f4a1da3",
    "retrievedAt": "2026-07-17",
    "documentRef": "Form TOS 01 — Return for Tax on Salary (update 17/01/2018)"
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-17",
    "verifiedBy": "GovSchema Engineering (Standards Engineer)",
    "nextReviewBy": "2027-01-17",
    "notes": "GovSchema Standard Research cycle GOV-3433, deepening Cambodia's Taxes vertical with a schema the GOV-3417 cycle had explicitly sized/screened as ready-to-scope backlog but left unauthored: 'Return for Tax on Salary- Form TOS 01- update 17/01/2018' (292 AcroForm widgets across 2 pages), the middle-sized of three disclosed sibling candidates alongside Withholding Tax Form WT 03 (327 widgets, still left as backlog) and Patent Tax Form PR 008 (80 widgets, authored in GOV-3426). Cambodia's other four verticals (DMV, Passport, Visa, National ID) were re-confirmed weak/dead in the GOV-3410 cycle and not re-screened this cycle. Re-fetched tax.gov.kh's own document-form listing (https://www.tax.gov.kh/en/document-form/page/3, HTTP 200) and located the Form TOS 01 entry under its 'MONTHLY TAX RETURN FORM' category, the same category as the already-published kh/gdt/monthly-vat-return and kh/gdt/monthly-tax-declaration siblings. Applied the forward-search-from-title convention GOV-3417 established to avoid the listing page's own off-by-one previous-row-link bug. File identity: genuine AcroForm PDF (%PDF-1.6 header), 1,701,093 bytes, sha256:f77fc22c9c9c2eb7eda9e62dfed6658fad96cd75d3c4dff08a03cea480496a46. Extraction method: pdfjs-dist@3 (installed standalone in a scratch directory for extraction only, not added as a repository dependency), using getAnnotations() merged by page-relative x/y position with getTextContent()'s bilingual Khmer/English text layer. Every widget on this form is a plain text (Tx) field — unlike sibling kh/gdt schemas, this form has no checkbox/radio widgets at all, confirmed by scanning every extracted widget's fieldType. Confirmed 78 widgets on page 1 and 214 on page 2 (292 total, matching the GOV-3417 scouting figure exactly); every one of page 1's 78 widget names is unique (no shared/reused field-name collisions, unlike PR008's Check Box5-9 or monthly-tax-declaration's Check Box33), so every field below maps to exactly one widget or, for the header period/TIN/declaration-date blocks, a small group of same-purpose widgets (e.g. 001_DD1/001_MM1/001_YYYY1 collapsed into one periodFromDate field; the 9 single-digit TIN_01-TIN_09 comb boxes collapsed into one taxIdentificationNumber field; the 8 single-digit D_12/D_13/M_12/M_13/Y_12-Y_15 comb boxes collapsed into one filedDate field) — the same per-character-comb-field collapsing precedent this registry has applied before (e.g. mn/atunt/vehicle-plate-number-reservation). Table I's five bracket rows (0%/5%/10%/15%/20%) and their own Total row are modelled as 36 explicitly named fields (6 per row: employee count, salary paid, spouse count, minor-children count, tax calculation base, tax on salary), matching this registry's established practice for un-adopted repeating-group support (GSP-0009 remains Proposed) — the same flattening approach kh/gdt/monthly-tax-declaration used for its own 40-row tax-type table. Each bracket row's own tax-rate percentage (0/5/10/15/20%) is a static printed label with no backing widget, so it is documented in each field's description rather than modelled as a separate input field. Page 2 ('Details on the Tax on Salary on Resident Employees' and '...on Non-Resident Employees and Tax on Salary on Fringe Benefit', 214 widgets) is a per-employee breakdown schedule: a single template row per side (Name, Nationality, Function, Salary/Fringe-Benefit Amount, Spouse, Minor Children, Allowance, Tax Calculation Base, Tax Rate, Tax on Salary, Remarks), each column itself split into a further 8-12 single-character comb boxes, with the form's own printed instruction 'Please use separate sheets if the space is insufficient' confirming it is a supporting per-employee annex attached as needed rather than a fixed part of the core return — 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 and kh/gdt/patent-tax-return's page-3 continuation annex. No submission was made and no live tax.gov.kh account was created or required to author this schema."
  },
  "maturity": {
    "level": "structural-reference",
    "criteria": {
      "structuralReference": true,
      "verifiedSchema": false,
      "agentReadySchema": false,
      "executionTestedSchema": false
    },
    "method": "maturity-self-assessment-v1",
    "assertedBy": "GovSchema Engineering (Standards Engineer)",
    "assertedAt": "2026-07-17"
  },
  "license": "CC-BY-4.0",
  "fields": [
    {
      "name": "periodFromDate",
      "label": "Period covered by this return — From (DD/MM/YYYY)",
      "type": "date",
      "required": true,
      "description": "First day of the period covered by this return.",
      "sourceRef": "Section 01, widgets 001_DD1/001_MM1/001_YYYY1"
    },
    {
      "name": "periodToDate",
      "label": "Period covered by this return — To (DD/MM/YYYY)",
      "type": "date",
      "required": true,
      "description": "Last day of the period covered by this return.",
      "sourceRef": "Section 01, widgets 002_DD1/002_MM1/002_YYYY1"
    },
    {
      "name": "taxIdentificationNumber",
      "label": "TIN",
      "type": "string",
      "required": true,
      "description": "The enterprise's 9-digit Tax Identification Number.",
      "sourceRef": "Section 02, widgets TIN_01-TIN_09",
      "classification": "sensitive-pii",
      "validation": {
        "pattern": "^[0-9]{9}$"
      }
    },
    {
      "name": "enterpriseName",
      "label": "Name of Enterprise",
      "type": "string",
      "required": true,
      "description": "The registered name of the enterprise filing this return.",
      "sourceRef": "Section 03, widget \"Name of Enterprise_01\"",
      "validation": {
        "minLength": 1,
        "maxLength": 300
      }
    },
    {
      "name": "businessActivities",
      "label": "Business Activities",
      "type": "string",
      "required": true,
      "description": "Description of the enterprise's business activities.",
      "sourceRef": "widget \"Business Activities_01\"",
      "validation": {
        "minLength": 1,
        "maxLength": 300
      }
    },
    {
      "name": "addressHouseNumber",
      "label": "Address: No",
      "type": "string",
      "required": true,
      "description": "House or building number of the enterprise's address.",
      "sourceRef": "widget \"House No_01\"",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "addressStreet",
      "label": "Street",
      "type": "string",
      "required": true,
      "description": "Street of the enterprise's address.",
      "sourceRef": "widget \"Street_01\"",
      "validation": {
        "minLength": 1,
        "maxLength": 200
      }
    },
    {
      "name": "addressGroup",
      "label": "Group",
      "type": "string",
      "required": true,
      "description": "Group (Krom) of the enterprise's address.",
      "sourceRef": "widget \"group\"",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "addressVillage",
      "label": "Village",
      "type": "string",
      "required": true,
      "description": "Village of the enterprise's address.",
      "sourceRef": "widget \"village\"",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "addressSangkat",
      "label": "Sangkat",
      "type": "string",
      "required": true,
      "description": "Sangkat (commune) of the enterprise's address.",
      "sourceRef": "widget \"Sangkat_01\"",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "addressDistrict",
      "label": "District",
      "type": "string",
      "required": true,
      "description": "District (Khan) of the enterprise's address.",
      "sourceRef": "widget \"Khann_01\"",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "addressMunicipality",
      "label": "Municipality",
      "type": "string",
      "required": true,
      "description": "Municipality/province of the enterprise's address.",
      "sourceRef": "widget \"Municipality_01\"",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "faxOrPhone",
      "label": "Fax/Phone",
      "type": "string",
      "required": true,
      "description": "Fax or telephone number for the enterprise.",
      "sourceRef": "widget \"Fax/Phone_01\"",
      "classification": "pii",
      "validation": {
        "minLength": 1,
        "maxLength": 30
      }
    },
    {
      "name": "email",
      "label": "E-mail",
      "type": "string",
      "required": true,
      "description": "Email address for the enterprise.",
      "sourceRef": "widget \"Email_01\"",
      "classification": "pii",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 200
      }
    },
    {
      "name": "residentEmployeesCountRate0Pct",
      "label": "No. of Employee (0%)",
      "type": "integer",
      "required": false,
      "description": "Number of resident employees whose salary falls in the 0% tax bracket (taxed at the fixed 0% bracket rate).",
      "sourceRef": "Table I (row 1), widget \"No100\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentSalaryPaidRate0Pct",
      "label": "Salary to be Paid (0%)",
      "type": "number",
      "required": false,
      "description": "Total salary paid to resident employees in the 0% bracket, in Cambodian riel (KHR).",
      "sourceRef": "Table I (row 1), widget \"Salary\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentSpouseCountRate0Pct",
      "label": "Spouse (0%)",
      "type": "integer",
      "required": false,
      "description": "Number of dependent spouses declared by resident employees in the 0% bracket.",
      "sourceRef": "Table I (row 1), widget \"No. of Spouse\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentMinorChildrenCountRate0Pct",
      "label": "No. of Minor Children (0%)",
      "type": "integer",
      "required": false,
      "description": "Number of dependent minor children declared by resident employees in the 0% bracket.",
      "sourceRef": "Table I (row 1), widget \"No. of M Children\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentTaxCalculationBaseRate0Pct",
      "label": "Tax on Salary Calculation Base (0%)",
      "type": "number",
      "required": false,
      "description": "Tax on salary calculation base for the 0% bracket, per the form's own formula E = B – [(C + D) x 150,000]: salary to be paid, minus the combined spouse/minor-children count times 150,000 riel each.",
      "sourceRef": "Table I (row 1), widget \"Tax on1\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentTaxOnSalaryRate0Pct",
      "label": "Tax on Salary (0%)",
      "type": "number",
      "required": false,
      "description": "Tax on salary due for resident employees in the 0% bracket, in Cambodian riel (KHR).",
      "sourceRef": "Table I (row 1), widget \"Tax on Salary1\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentEmployeesCountRate5Pct",
      "label": "No. of Employee (5%)",
      "type": "integer",
      "required": false,
      "description": "Number of resident employees whose salary falls in the 5% tax bracket (taxed at the fixed 5% bracket rate).",
      "sourceRef": "Table I (row 2), widget \"No1001\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentSalaryPaidRate5Pct",
      "label": "Salary to be Paid (5%)",
      "type": "number",
      "required": false,
      "description": "Total salary paid to resident employees in the 5% bracket, in Cambodian riel (KHR).",
      "sourceRef": "Table I (row 2), widget \"Salary2\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentSpouseCountRate5Pct",
      "label": "Spouse (5%)",
      "type": "integer",
      "required": false,
      "description": "Number of dependent spouses declared by resident employees in the 5% bracket.",
      "sourceRef": "Table I (row 2), widget \"No. of Spouse2\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentMinorChildrenCountRate5Pct",
      "label": "No. of Minor Children (5%)",
      "type": "integer",
      "required": false,
      "description": "Number of dependent minor children declared by resident employees in the 5% bracket.",
      "sourceRef": "Table I (row 2), widget \"No. of M Children2\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentTaxCalculationBaseRate5Pct",
      "label": "Tax on Salary Calculation Base (5%)",
      "type": "number",
      "required": false,
      "description": "Tax on salary calculation base for the 5% bracket, per the form's own formula E = B – [(C + D) x 150,000]: salary to be paid, minus the combined spouse/minor-children count times 150,000 riel each.",
      "sourceRef": "Table I (row 2), widget \"Tax on2\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentTaxOnSalaryRate5Pct",
      "label": "Tax on Salary (5%)",
      "type": "number",
      "required": false,
      "description": "Tax on salary due for resident employees in the 5% bracket, in Cambodian riel (KHR).",
      "sourceRef": "Table I (row 2), widget \"Tax on Salary2\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentEmployeesCountRate10Pct",
      "label": "No. of Employee (10%)",
      "type": "integer",
      "required": false,
      "description": "Number of resident employees whose salary falls in the 10% tax bracket (taxed at the fixed 10% bracket rate).",
      "sourceRef": "Table I (row 3), widget \"No1002\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentSalaryPaidRate10Pct",
      "label": "Salary to be Paid (10%)",
      "type": "number",
      "required": false,
      "description": "Total salary paid to resident employees in the 10% bracket, in Cambodian riel (KHR).",
      "sourceRef": "Table I (row 3), widget \"Salary3\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentSpouseCountRate10Pct",
      "label": "Spouse (10%)",
      "type": "integer",
      "required": false,
      "description": "Number of dependent spouses declared by resident employees in the 10% bracket.",
      "sourceRef": "Table I (row 3), widget \"No. of Spouse3\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentMinorChildrenCountRate10Pct",
      "label": "No. of Minor Children (10%)",
      "type": "integer",
      "required": false,
      "description": "Number of dependent minor children declared by resident employees in the 10% bracket.",
      "sourceRef": "Table I (row 3), widget \"No. of M Children3\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentTaxCalculationBaseRate10Pct",
      "label": "Tax on Salary Calculation Base (10%)",
      "type": "number",
      "required": false,
      "description": "Tax on salary calculation base for the 10% bracket, per the form's own formula E = B – [(C + D) x 150,000]: salary to be paid, minus the combined spouse/minor-children count times 150,000 riel each.",
      "sourceRef": "Table I (row 3), widget \"Tax on3\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentTaxOnSalaryRate10Pct",
      "label": "Tax on Salary (10%)",
      "type": "number",
      "required": false,
      "description": "Tax on salary due for resident employees in the 10% bracket, in Cambodian riel (KHR).",
      "sourceRef": "Table I (row 3), widget \"Tax on Salary3\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentEmployeesCountRate15Pct",
      "label": "No. of Employee (15%)",
      "type": "integer",
      "required": false,
      "description": "Number of resident employees whose salary falls in the 15% tax bracket (taxed at the fixed 15% bracket rate).",
      "sourceRef": "Table I (row 4), widget \"No1003\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentSalaryPaidRate15Pct",
      "label": "Salary to be Paid (15%)",
      "type": "number",
      "required": false,
      "description": "Total salary paid to resident employees in the 15% bracket, in Cambodian riel (KHR).",
      "sourceRef": "Table I (row 4), widget \"Salary4\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentSpouseCountRate15Pct",
      "label": "Spouse (15%)",
      "type": "integer",
      "required": false,
      "description": "Number of dependent spouses declared by resident employees in the 15% bracket.",
      "sourceRef": "Table I (row 4), widget \"No. of Spouse4\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentMinorChildrenCountRate15Pct",
      "label": "No. of Minor Children (15%)",
      "type": "integer",
      "required": false,
      "description": "Number of dependent minor children declared by resident employees in the 15% bracket.",
      "sourceRef": "Table I (row 4), widget \"No. of M Children4\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentTaxCalculationBaseRate15Pct",
      "label": "Tax on Salary Calculation Base (15%)",
      "type": "number",
      "required": false,
      "description": "Tax on salary calculation base for the 15% bracket, per the form's own formula E = B – [(C + D) x 150,000]: salary to be paid, minus the combined spouse/minor-children count times 150,000 riel each.",
      "sourceRef": "Table I (row 4), widget \"Tax on4\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentTaxOnSalaryRate15Pct",
      "label": "Tax on Salary (15%)",
      "type": "number",
      "required": false,
      "description": "Tax on salary due for resident employees in the 15% bracket, in Cambodian riel (KHR).",
      "sourceRef": "Table I (row 4), widget \"Tax on Salary4\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentEmployeesCountRate20Pct",
      "label": "No. of Employee (20%)",
      "type": "integer",
      "required": false,
      "description": "Number of resident employees whose salary falls in the 20% tax bracket (taxed at the fixed 20% bracket rate).",
      "sourceRef": "Table I (row 5), widget \"No1004\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentSalaryPaidRate20Pct",
      "label": "Salary to be Paid (20%)",
      "type": "number",
      "required": false,
      "description": "Total salary paid to resident employees in the 20% bracket, in Cambodian riel (KHR).",
      "sourceRef": "Table I (row 5), widget \"Salary5\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentSpouseCountRate20Pct",
      "label": "Spouse (20%)",
      "type": "integer",
      "required": false,
      "description": "Number of dependent spouses declared by resident employees in the 20% bracket.",
      "sourceRef": "Table I (row 5), widget \"No. of Spouse5\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentMinorChildrenCountRate20Pct",
      "label": "No. of Minor Children (20%)",
      "type": "integer",
      "required": false,
      "description": "Number of dependent minor children declared by resident employees in the 20% bracket.",
      "sourceRef": "Table I (row 5), widget \"No. of M Children5\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentTaxCalculationBaseRate20Pct",
      "label": "Tax on Salary Calculation Base (20%)",
      "type": "number",
      "required": false,
      "description": "Tax on salary calculation base for the 20% bracket, per the form's own formula E = B – [(C + D) x 150,000]: salary to be paid, minus the combined spouse/minor-children count times 150,000 riel each.",
      "sourceRef": "Table I (row 5), widget \"Tax on5\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentTaxOnSalaryRate20Pct",
      "label": "Tax on Salary (20%)",
      "type": "number",
      "required": false,
      "description": "Tax on salary due for resident employees in the 20% bracket, in Cambodian riel (KHR).",
      "sourceRef": "Table I (row 5), widget \"Tax on Salary5\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentEmployeesCountTotal",
      "label": "No. of Employee (Total)",
      "type": "integer",
      "required": false,
      "description": "Number of resident employees whose salary falls in the Total tax bracket (the summed total across all five bracket rows above).",
      "sourceRef": "Table I (Total row), widget \"No1005\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentSalaryPaidTotal",
      "label": "Salary to be Paid (Total)",
      "type": "number",
      "required": false,
      "description": "Total salary paid to resident employees in the Total bracket, in Cambodian riel (KHR).",
      "sourceRef": "Table I (Total row), widget \"Salary6\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentSpouseCountTotal",
      "label": "Spouse (Total)",
      "type": "integer",
      "required": false,
      "description": "Number of dependent spouses declared by resident employees in the Total bracket.",
      "sourceRef": "Table I (Total row), widget \"No. of Spouse6\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentMinorChildrenCountTotal",
      "label": "No. of Minor Children (Total)",
      "type": "integer",
      "required": false,
      "description": "Number of dependent minor children declared by resident employees in the Total bracket.",
      "sourceRef": "Table I (Total row), widget \"No. of M Children6\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentTaxCalculationBaseTotal",
      "label": "Tax on Salary Calculation Base (Total)",
      "type": "number",
      "required": false,
      "description": "Tax on salary calculation base for the Total bracket, per the form's own formula E = B – [(C + D) x 150,000]: salary to be paid, minus the combined spouse/minor-children count times 150,000 riel each.",
      "sourceRef": "Table I (Total row), widget \"Tax on6\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "residentTaxOnSalaryTotal",
      "label": "Tax on Salary (Total)",
      "type": "number",
      "required": false,
      "description": "Tax on salary due for resident employees in the Total bracket, in Cambodian riel (KHR).",
      "sourceRef": "Table I (Total row), widget \"Tax on Salary6\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "nonResidentEmployeesCount",
      "label": "No. of Employee",
      "type": "integer",
      "required": false,
      "description": "Number of non-resident employees.",
      "sourceRef": "Table II (Section 05), widget \"No of Emp\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "nonResidentSalaryPaid",
      "label": "Salary to be Paid",
      "type": "number",
      "required": false,
      "description": "Total salary paid to non-resident employees, in Cambodian riel (KHR). Taxed at the fixed 20% rate (D = B x C).",
      "sourceRef": "Table II (Section 05), widget \"Salary9\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "nonResidentTaxOnSalary",
      "label": "Tax on Salary",
      "type": "number",
      "required": false,
      "description": "Tax on salary due for non-resident employees, at the fixed 20% rate.",
      "sourceRef": "Table II (Section 05), widget \"Tax on Salary89\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "fringeBenefitEmployeesCount",
      "label": "No. of Employee",
      "type": "integer",
      "required": false,
      "description": "Number of employees receiving a taxable fringe benefit.",
      "sourceRef": "Table III (Section 06), widget \"No of Emp2\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "fringeBenefitAmount",
      "label": "Fringe Benefit Amount",
      "type": "number",
      "required": false,
      "description": "Total fringe benefit amount, in Cambodian riel (KHR). Taxed at the fixed 20% rate (D = B x C).",
      "sourceRef": "Table III (Section 06), widget \"Salary10\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "fringeBenefitTaxOnSalary",
      "label": "Tax on Salary",
      "type": "number",
      "required": false,
      "description": "Tax on salary due on fringe benefits, at the fixed 20% rate.",
      "sourceRef": "Table III (Section 06), widget \"Tax on Salary891\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalTaxDue",
      "label": "Total Tax Due",
      "type": "number",
      "required": true,
      "description": "Total tax due on this return: the sum of the Tax on Salary amounts across Tables I, II, and III.",
      "sourceRef": "Section 07, widget \"Tax on Salary877\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "filedAtPlace",
      "label": "Made at",
      "type": "string",
      "required": true,
      "description": "Place where this return is filed.",
      "sourceRef": "Declaration, widget \"Made at 121\"",
      "validation": {
        "minLength": 1,
        "maxLength": 200
      }
    },
    {
      "name": "filedDate",
      "label": "Filed in — Date (DD/MM/YYYY)",
      "type": "date",
      "required": true,
      "description": "Date this return is filed and signed by the Director/Manager/Owner of the enterprise.",
      "sourceRef": "Declaration, widgets D_12/D_13 (day), M_12/M_13 (month), Y_12/Y_13/Y_14/Y_15 (year) — each a single-character comb box, collapsed into one logical date field"
    }
  ]
}
