{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "kh/gdt/legal-form-limited-company-registration",
  "version": "1.0.0",
  "title": "Cambodia Legal Form for Limited Company Registration (Form 101-P2)",
  "description": "Register a private or public limited company with Cambodia's General Department of Taxation (GDT), combining the company's legal-form declaration, business-enterprise profile, primary shareholder/representative identity, and taxpayer classification into a single application, per Form 101-P2 (\"Legal Form for Limited Company (Private/Public Limited Company)\"). This is the tax-registration counterpart to company incorporation — functionally analogous to obtaining a US EIN — issued alongside a Tax Identification Number (TIN) once approved; it is filed together with, not instead of, the Ministry of Commerce's own separate business-name and incorporation registration (see documents[] item 1). This schema models Form 101-P2's four data-collection sections: (§1) legal form selection; (§2) business enterprise information — company identity, contact details, registered address with geographic coordinates, share capital, and share structure; (§3) shareholder/representative information for the one physical person completing this application (gated by the form's own \"same as Form 101 section II\" skip logic) plus that person's declared position in the company (§3.1); and (§4) taxpayer classification information — employee counts, working conditions, and estimated-annual-turnover-based taxpayer size bracket. It also models the form's 9-item attachment checklist as documents[], and the closing declaration/signature block. Out of scope, and disclosed rather than silently omitted: §5's public-service-fee/patent-tax computation table, which requires a separate, unfetched \"Annex on Public Service Fees and Patent Tax\" to populate correctly; §5's four companion sub-forms (101-A Bank Account, 101-B Physical Person, 101-C Branch, 101-D Mission/Business Activity Information) and the SMEs Tax Incentive Certificate (TIC) form, each referenced by name only with no attached field-level widget in this document; and §3.1's own apparent re-declaration of company name, registration number, TIN, phone, address, and share-structure fields already captured in §2 (same labels, distinct widget names) — modelled once under §2 rather than twice, since nothing in the source distinguishes them as a second, independent fact. 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": "registration",
    "language": "km"
  },
  "source": {
    "url": "https://www.tax.gov.kh/u6rhf7ogbi6/gdtstream/c5a36033-1c8c-4193-aa9b-7cefc353d718",
    "retrievedAt": "2026-07-16",
    "documentRef": "Form 101-P2 — Legal Form for Limited Company (Private/Public Limited Company)"
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-16",
    "verifiedBy": "GovSchema Engineering (Standards Engineer)",
    "nextReviewBy": "2027-01-16",
    "notes": "GovSchema Standard Research cycle GOV-3410. Opens Cambodia as the registry's 69th jurisdiction, with its Business Formation vertical. Fetched https://www.tax.gov.kh/u6rhf7ogbi6/gdtstream/c5a36033-1c8c-4193-aa9b-7cefc353d718 directly (HTTP 200, plain unauthenticated curl, no login/CAPTCHA/WAF), linked from the GDT's own public document-form listing at https://www.tax.gov.kh/en/document-form under the entry 'Legal Form for Limited Company ( Private/Public Limited Company)- Form 101-P2' (published 2023-02-01). A genuine AcroForm PDF (%PDF-1.5 header), 1,116,490 bytes, sha256:9edd0d77f394d625eb6c38bbcbebd6a572405926339f89f4d81eed00619f5c5. Extracted with pdfjs-dist@3 (installed standalone in a scratch directory for extraction only, not added as a repository dependency): both getAnnotations() (179 Widget annotations across 4 pages) and getTextContent() (full bilingual Khmer/English text layer with per-glyph x/y coordinates) were pulled and merged into a single top-to-bottom, left-to-right reading-order listing per page, then every widget was matched to its nearest preceding label by position — the same coordinate-correlation technique this registry has used for other non-self-describing AcroForms (e.g. field names like 'Text8', 'Check Box4' carry no semantic meaning on their own). pdfjs-dist's text extraction rendered the form's Khmer text with visibly fragmented combining marks/subscript consonants (stray replacement glyphs interleaved with base characters, a known limitation extracting complex Brahmic-script shaping from PDF glyph runs) — rather than risk a transcription error by manually reconstructing broken Khmer strings, every field `label` in this schema uses the form's own parallel, cleanly-extracted English caption instead (the form is genuinely bilingual with the English column printed directly beside each Khmer one, not a translation added by this schema). Several of the source PDF's own internal field names are reused across genuinely distinct logical checkboxes on the same page (e.g. 'Check Box4' backs both the Type-of-Shares single/multiple toggle and, lower on the same page, the Sex male/female toggle) — this schema's own field names are assigned by position/meaning, not copied from the PDF's internal (and in this case ambiguous) field names. A repeated 'Tax Official use only' footer block (Receiver Name, Document Tracking Number, Date Received, Application Number, TIN, plus 2 checkboxes) appears identically at the bottom of all 4 pages — excluded from fields[] as staff-only annotation, not applicant input. One disclosed source discrepancy: the widget for total female employees on page 3 (Khmer label confirms this meaning, consistent with the immediately following Number of Foreign Employees / Number of Female Foreign Employees fields) is captioned 'Registration Number' in the form's own English column at that specific row — a mistranslation in the source bilingual template; this schema models it as totalNumberOfFemaleEmployees, following the Khmer semantic content and the surrounding field sequence rather than the mismatched English caption. Fields without an explicit optionality marker (an asterisk note or a parenthetical '(if any)'/'(If any)') are modelled required, mirroring the source's own convention of flagging its exceptions explicitly — e.g. Physical Person TIN and Signage Board are both marked '(if any)' and modelled optional; Company Name, registered address, and share capital carry no such marker and are modelled required. 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-16"
  },
  "license": "CC-BY-4.0",
  "fields": [
    {
      "name": "legalForm",
      "label": "Legal form",
      "type": "enum",
      "required": true,
      "description": "Whether the company being registered is a private or public limited company.",
      "sourceRef": "§1 LEGAL FORM INFORMATION — checkbox options \"Private Limited Company\" / \"Public Limited Company\"",
      "validation": { "enum": ["private_limited_company", "public_limited_company"] }
    },
    {
      "name": "companyNameKhmer",
      "label": "Company Name in Khmer",
      "type": "string",
      "required": true,
      "description": "The proposed company's full legal name in Khmer script.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget Text8",
      "validation": { "minLength": 1, "maxLength": 300 }
    },
    {
      "name": "companyNameLatin",
      "label": "Name in Latin",
      "type": "string",
      "required": true,
      "description": "The proposed company's full legal name transliterated into Latin script.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget Text9",
      "validation": { "minLength": 1, "maxLength": 300 }
    },
    {
      "name": "businessActivityKhmer",
      "label": "Business Activity in Khmer",
      "type": "string",
      "required": true,
      "description": "Description of the company's business activity, in Khmer.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget \"Text Activity\"",
      "validation": { "minLength": 1, "maxLength": 500 }
    },
    {
      "name": "businessActivityEnglish",
      "label": "Business Activity in English",
      "type": "string",
      "required": true,
      "description": "Description of the company's business activity, in English.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget \"Text mission\"",
      "validation": { "minLength": 1, "maxLength": 500 }
    },
    {
      "name": "companyMobilePhone",
      "label": "Mobile Phone Number",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "The company's own mobile contact number.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget Text10",
      "validation": { "minLength": 1, "maxLength": 30 }
    },
    {
      "name": "companyOfficeTelephone",
      "label": "Office Telephone Number",
      "type": "string",
      "required": true,
      "description": "The company's office landline telephone number.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget Text11",
      "validation": { "minLength": 1, "maxLength": 30 }
    },
    {
      "name": "companyEmail",
      "label": "Email Address",
      "type": "string",
      "required": true,
      "description": "The company's own contact email address.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget Text12",
      "validation": { "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$", "maxLength": 200 }
    },
    {
      "name": "companyAddress",
      "label": "Address (Building/Market Name-Room/Store No.-Floor/Gate No.-Building/House No.-Street-Village-Commune-City/District-Province/Capital City)",
      "type": "string",
      "required": true,
      "description": "The company's registered business address.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget Address",
      "validation": { "minLength": 1, "maxLength": 500 }
    },
    {
      "name": "companyAddressLatitude",
      "label": "Geographical Coordinates-Latitude",
      "type": "string",
      "required": true,
      "description": "Latitude of the company's registered business address.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget Text13",
      "validation": { "maxLength": 50 }
    },
    {
      "name": "companyAddressLongitude",
      "label": "Longitude",
      "type": "string",
      "required": true,
      "description": "Longitude of the company's registered business address.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget Text14",
      "validation": { "maxLength": 50 }
    },
    {
      "name": "companyAddressOwnership",
      "label": "Is this above address an owned or rented property?",
      "type": "enum",
      "required": true,
      "description": "Whether the company's registered address is owned or rented.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION — checkbox options \"Owned\" / \"Rented\"",
      "validation": { "enum": ["owned", "rented"] }
    },
    {
      "name": "totalMonthlyRentFeeKhr",
      "label": "Total Monthly Fees",
      "type": "number",
      "required": false,
      "description": "Total monthly rent, in Cambodian riel (KHR), for the registered address. Required only when companyAddressOwnership is rented.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget Text15",
      "validation": { "minimum": 0 },
      "requiredWhen": { "field": "companyAddressOwnership", "equals": "rented" }
    },
    {
      "name": "shareTypeCount",
      "label": "Type of Shares",
      "type": "enum",
      "required": true,
      "description": "Whether the company's shares are of a single type or more than one type.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION — checkbox options \"Only one type\" / \"More than one type\"",
      "validation": { "enum": ["single_type", "multiple_types"] }
    },
    {
      "name": "shareClassDescription",
      "label": "Type of Shares (description)",
      "type": "string",
      "required": true,
      "description": "Free-text description of the company's share class(es) (e.g. ordinary, preference).",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget Text16",
      "validation": { "minLength": 1, "maxLength": 200 }
    },
    {
      "name": "shareCountClassA",
      "label": "\"A\" Number",
      "type": "integer",
      "required": true,
      "description": "Number of shares in class \"A\". Always required — every company has at least one share class.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget A",
      "validation": { "minimum": 0 }
    },
    {
      "name": "shareCountClassB",
      "label": "\"B\" Number",
      "type": "integer",
      "required": false,
      "description": "Number of shares in class \"B\". Applicable only when shareTypeCount is multiple_types.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget B",
      "validation": { "minimum": 0 },
      "requiredWhen": { "field": "shareTypeCount", "equals": "multiple_types" }
    },
    {
      "name": "shareCountClassC",
      "label": "\"C\" Number",
      "type": "integer",
      "required": false,
      "description": "Number of shares in class \"C\", when applicable.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget C",
      "validation": { "minimum": 0 }
    },
    {
      "name": "shareCountClassD",
      "label": "\"D\" Number",
      "type": "integer",
      "required": false,
      "description": "Number of shares in class \"D\", when applicable.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget D",
      "validation": { "minimum": 0 }
    },
    {
      "name": "shareCountClassE",
      "label": "\"E\" Number",
      "type": "integer",
      "required": false,
      "description": "Number of shares in class \"E\", when applicable.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget E",
      "validation": { "minimum": 0 }
    },
    {
      "name": "registeredCapitalKhr",
      "label": "Registered Capital (KHR)",
      "type": "number",
      "required": true,
      "description": "The company's total registered capital, in Cambodian riel (KHR).",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget \"Text KHR\"",
      "validation": { "minimum": 0 }
    },
    {
      "name": "parValueKhrPerShare",
      "label": "Par Value (KHR/Share)",
      "type": "number",
      "required": true,
      "description": "Par value per share, in Cambodian riel (KHR).",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget \"Par Value\"",
      "validation": { "minimum": 0 }
    },
    {
      "name": "majorityShareholderNationality",
      "label": "Nationality of the Total Majority Shareholder in voting right",
      "type": "enum",
      "required": true,
      "description": "Nationality (Khmer or foreign) of the shareholder(s) holding a majority of voting rights.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION — checkbox options \"Khmer\" / \"Foreign\"",
      "validation": { "enum": ["khmer", "foreign"] }
    },
    {
      "name": "majorityShareholderTotalSharePercent",
      "label": "Percentage in Total Share",
      "type": "number",
      "required": true,
      "description": "Percentage of total shares held by the majority shareholder(s) identified above.",
      "sourceRef": "§2 BUSINESS ENTERPRISE INFORMATION, widget \"Total Share\"",
      "validation": { "minimum": 0, "maximum": 100 }
    },
    {
      "name": "isRepresentativeInfoSameAsForm101",
      "label": "Is the physical person's information the same as the information provided in section II-Form 101?",
      "type": "boolean",
      "required": true,
      "description": "Whether the physical person completing this application already has their identity information on file via a companion Form 101. If true, the representative* fields below are not required (the form's own instruction is to skip to §3.1's position declaration only); if false, they must be completed here.",
      "sourceRef": "§3 SHAREHOLDER/REPRESENTATIVE INFORMATION — checkbox options \"Yes, Please skip to section 3.1\" / \"No, Please fill out information below\""
    },
    {
      "name": "representativeSex",
      "label": "Sex",
      "type": "enum",
      "required": false,
      "description": "Sex of the physical person completing this application.",
      "sourceRef": "§3 SHAREHOLDER/REPRESENTATIVE INFORMATION — checkbox options \"Male\" / \"Female\"",
      "validation": { "enum": ["male", "female"] },
      "requiredWhen": { "field": "isRepresentativeInfoSameAsForm101", "equals": false }
    },
    {
      "name": "representativeTaxId",
      "label": "Physical Person Tax Identification Number (If any)",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "description": "The representative's own Tax Identification Number, if already assigned.",
      "sourceRef": "§3 SHAREHOLDER/REPRESENTATIVE INFORMATION, widget Text18",
      "validation": { "maxLength": 30 }
    },
    {
      "name": "representativeLastName",
      "label": "Last Name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Representative's last name.",
      "sourceRef": "§3 SHAREHOLDER/REPRESENTATIVE INFORMATION, widget Text19",
      "validation": { "minLength": 1, "maxLength": 100 },
      "requiredWhen": { "field": "isRepresentativeInfoSameAsForm101", "equals": false }
    },
    {
      "name": "representativeFirstName",
      "label": "First Name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Representative's first name.",
      "sourceRef": "§3 SHAREHOLDER/REPRESENTATIVE INFORMATION, widget Text20",
      "validation": { "minLength": 1, "maxLength": 100 },
      "requiredWhen": { "field": "isRepresentativeInfoSameAsForm101", "equals": false }
    },
    {
      "name": "representativeNameLatin",
      "label": "In Latin (Last-name, First-name)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Representative's name transliterated into Latin script (last name, first name).",
      "sourceRef": "§3 SHAREHOLDER/REPRESENTATIVE INFORMATION, widget Text21",
      "validation": { "minLength": 1, "maxLength": 200 },
      "requiredWhen": { "field": "isRepresentativeInfoSameAsForm101", "equals": false }
    },
    {
      "name": "representativeDateOfBirth",
      "label": "Date of Birth",
      "type": "date",
      "required": false,
      "classification": "pii",
      "description": "Representative's date of birth.",
      "sourceRef": "§3 SHAREHOLDER/REPRESENTATIVE INFORMATION, widgets Text22/Text23/Text24 (DD/MM/YYYY)",
      "requiredWhen": { "field": "isRepresentativeInfoSameAsForm101", "equals": false }
    },
    {
      "name": "representativeNationality",
      "label": "Nationality",
      "type": "string",
      "required": false,
      "description": "Representative's nationality.",
      "sourceRef": "§3 SHAREHOLDER/REPRESENTATIVE INFORMATION, widget Text25",
      "validation": { "minLength": 1, "maxLength": 100 },
      "requiredWhen": { "field": "isRepresentativeInfoSameAsForm101", "equals": false }
    },
    {
      "name": "representativeIdDocumentType",
      "label": "Identification Card Number / Passport Number",
      "type": "enum",
      "required": false,
      "description": "Which type of identity document the representative is citing.",
      "sourceRef": "§3 SHAREHOLDER/REPRESENTATIVE INFORMATION — checkbox options \"Identification Card Number\" / \"Passport Number\"",
      "validation": { "enum": ["identification_card", "passport"] },
      "requiredWhen": { "field": "isRepresentativeInfoSameAsForm101", "equals": false }
    },
    {
      "name": "representativeIdDocumentNumber",
      "label": "Identification Card / Passport Number",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "description": "The representative's identification card or passport number, matching representativeIdDocumentType.",
      "sourceRef": "§3 SHAREHOLDER/REPRESENTATIVE INFORMATION, widget Text26",
      "validation": { "minLength": 1, "maxLength": 30 },
      "requiredWhen": { "field": "isRepresentativeInfoSameAsForm101", "equals": false }
    },
    {
      "name": "representativeIdIssuedDate",
      "label": "Issued Date",
      "type": "date",
      "required": false,
      "description": "Issue date of the representative's identification card or passport.",
      "sourceRef": "§3 SHAREHOLDER/REPRESENTATIVE INFORMATION, widgets Text27/Text28/Text29 (DD/MM/YYYY)",
      "requiredWhen": { "field": "isRepresentativeInfoSameAsForm101", "equals": false }
    },
    {
      "name": "representativeIdExpiryDate",
      "label": "Date of Expiry",
      "type": "date",
      "required": false,
      "description": "Expiry date of the representative's identification card or passport.",
      "sourceRef": "§3 SHAREHOLDER/REPRESENTATIVE INFORMATION, widgets Text30/Text31/\"YYYY 1\" (DD/MM/YYYY)",
      "requiredWhen": { "field": "isRepresentativeInfoSameAsForm101", "equals": false }
    },
    {
      "name": "representativeMobilePhone",
      "label": "Mobile Phone Number",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Representative's mobile phone number.",
      "sourceRef": "§3 SHAREHOLDER/REPRESENTATIVE INFORMATION, widget Text33",
      "validation": { "minLength": 1, "maxLength": 30 },
      "requiredWhen": { "field": "isRepresentativeInfoSameAsForm101", "equals": false }
    },
    {
      "name": "representativeEmail",
      "label": "Email Address",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Representative's email address.",
      "sourceRef": "§3 SHAREHOLDER/REPRESENTATIVE INFORMATION, widget \"Text34 Email\"",
      "validation": { "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$", "maxLength": 200 },
      "requiredWhen": { "field": "isRepresentativeInfoSameAsForm101", "equals": false }
    },
    {
      "name": "representativeAddress",
      "label": "Address (Building/Market Name-Room/Store No.-Floor/Gate No.-Building/House No.-Street-Village-Commune-City/District-Province/Capital City) or Oversea Address",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Representative's own residential address.",
      "sourceRef": "§3 SHAREHOLDER/REPRESENTATIVE INFORMATION, widget \"Address 1\"",
      "validation": { "minLength": 1, "maxLength": 500 },
      "requiredWhen": { "field": "isRepresentativeInfoSameAsForm101", "equals": false }
    },
    {
      "name": "representativePositionInCompany",
      "label": "Please choose a position in company below",
      "type": "enum",
      "required": true,
      "description": "The position the physical person completing this application holds in the company. Always required, independently of isRepresentativeInfoSameAsForm101.",
      "sourceRef": "§3.1 — checkbox options \"Director\" / \"Shareholder\" / \"Chairman of the board\" / \"Legal Person Representative\"",
      "validation": {
        "enum": ["director", "shareholder", "chairman_of_board", "legal_person_representative"]
      }
    },
    {
      "name": "signageBoard",
      "label": "Signage Board (if any)",
      "type": "string",
      "required": false,
      "description": "Text displayed on the company's physical signage board, if any.",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION, widget \"Signage board\"",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "additionalLegalForm",
      "label": "Please choose additional legal form (If any)",
      "type": "enum",
      "required": false,
      "description": "An additional legal-form classification, when the company is also a public establishment, state-owned company, state-joint venture, or qualified investment project.",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION — checkbox options \"Public Establishment with Economic Characteristic\" / \"State owned company\" / \"State-joint venture company\" / \"Investment Enterprise-Qualified Investment Project\"",
      "validation": {
        "enum": [
          "public_establishment_economic",
          "state_owned_company",
          "state_joint_venture_company",
          "investment_enterprise_qip"
        ]
      }
    },
    {
      "name": "existingRegistrationNumber",
      "label": "Registration Number",
      "type": "string",
      "required": false,
      "description": "Pre-existing registration number, applicable when additionalLegalForm identifies the applicant as a public institution/state-owned entity already holding one.",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION, widget Text50",
      "validation": { "maxLength": 50 }
    },
    {
      "name": "existingRegistrationDate",
      "label": "Date of Registration",
      "type": "date",
      "required": false,
      "description": "Date of the pre-existing registration referenced in existingRegistrationNumber.",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION, widgets \"DD 51\"/\"MM 51\"/\"YYYY 51\""
    },
    {
      "name": "ministryOrInstitution",
      "label": "Ministry-Institution",
      "type": "string",
      "required": false,
      "description": "The supervising ministry or institution, applicable when additionalLegalForm identifies a public establishment or state-owned/joint-venture company.",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION, widget Text49",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "firstSuppliesDate",
      "label": "In case apply for registration, please fill out date of first supplies of goods or services",
      "type": "date",
      "required": true,
      "description": "Expected date of the company's first supply of goods or services, required for a new registration (the transaction type this schema always models).",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION, widgets DD/MM/YYYY"
    },
    {
      "name": "taxpayerSizeClassification",
      "label": "Please choose taxpayer classification by the Estimated Annual Turnover",
      "type": "enum",
      "required": true,
      "description": "Taxpayer size bracket, self-selected by estimated annual turnover, per the form's own three published patent-tax thresholds.",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION — checkbox options: \"Large Taxpayer shall pay Patent Tax 2,500,000 KHR/Business Activity, If estimated turnover more than 10,000 Million KHR\"; \"Large Taxpayer shall pay Patent Tax 1,500,000 KHR/Business Activity, If estimated turnover More than 4,000 Million KHR for the Agricultural Sector or more than 6,000 Million KHR for the Service and Trading Sector or more than 8,000 Million KHR for the Industrial Sector to 10,000 Million KHR\"; \"Medium Taxpayer shall pay Patent Tax 600,000 KHR/Business Activity, If estimated turnover more than 1,000 Million KHR to 4,000 Million KHR for the Agricultural Sector or to 6,000 Million KHR for the Service and Trading or more than 1,600 Million KHR to 8,000 Million KHR for the Industrial Sector\"",
      "validation": {
        "enum": ["large_over_10000m_khr", "large_4000_to_10000m_khr", "medium_1000_to_4000m_khr"]
      }
    },
    {
      "name": "taxYearFromMonthDay",
      "label": "Tax Year From",
      "type": "string",
      "required": true,
      "description": "Start day/month of the company's first (partial) tax year — no year field is present on the source, since Cambodia's tax year always runs within a single calendar year (1 January-31 December).",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION, widgets Text43/Text44 (DD/MM)",
      "validation": { "pattern": "^(0[1-9]|[12][0-9]|3[01])-(0[1-9]|1[0-2])$" }
    },
    {
      "name": "taxYearToMonthDay",
      "label": "To",
      "type": "string",
      "required": true,
      "description": "End day/month of the company's first (partial) tax year.",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION, widgets Text45/Text46 (DD/MM)",
      "validation": { "pattern": "^(0[1-9]|[12][0-9]|3[01])-(0[1-9]|1[0-2])$" }
    },
    {
      "name": "totalNumberOfEmployees",
      "label": "Total Number of Employees",
      "type": "integer",
      "required": true,
      "description": "Total number of employees.",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION, widget Text47",
      "validation": { "minimum": 0 }
    },
    {
      "name": "totalMonthlySalaryKhr",
      "label": "Total Monthly Salary",
      "type": "number",
      "required": true,
      "description": "Total monthly salary paid to all employees, in Cambodian riel (KHR).",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION, widget Text48",
      "validation": { "minimum": 0 }
    },
    {
      "name": "totalNumberOfFemaleEmployees",
      "label": "Total Number of Female Employees",
      "type": "integer",
      "required": true,
      "description": "Total number of female employees. The source PDF's own English-language caption for this specific widget reads \"Registration Number\" — a mistranslation in the source bilingual template, disclosed in this schema's verification notes; this field follows the Khmer label's actual meaning, corroborated by the immediately following Number of Foreign Employees / Number of Female Foreign Employees fields.",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION, widget Text54",
      "validation": { "minimum": 0 }
    },
    {
      "name": "numberOfForeignEmployees",
      "label": "Number of Foreign Employees",
      "type": "integer",
      "required": true,
      "description": "Number of foreign employees.",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION, widget Text55",
      "validation": { "minimum": 0 }
    },
    {
      "name": "numberOfFemaleForeignEmployees",
      "label": "Number of Female Foreign Employees",
      "type": "integer",
      "required": true,
      "description": "Number of female foreign employees.",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION, widget Text56",
      "validation": { "minimum": 0 }
    },
    {
      "name": "weeklyDayOff",
      "label": "Weekly Day-off",
      "type": "enum",
      "required": true,
      "description": "The company's designated weekly day off for employees.",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION — checkbox options \"Sunday\" / \"A rotated day-off\" / \"Saturday and Sunday\" / \"Saturday afternoon and Sunday\"",
      "validation": {
        "enum": ["sunday", "rotated_day_off", "saturday_and_sunday", "saturday_afternoon_and_sunday"]
      }
    },
    {
      "name": "workingHoursPerDayOrWeek",
      "label": "Number of working hours per day/week",
      "type": "string",
      "required": true,
      "description": "Number of working hours per day or week.",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION, widget Text57",
      "validation": { "maxLength": 20 }
    },
    {
      "name": "hasHazardousMaterialsOrMachinery",
      "label": "Are there any hazardous machineries or raw materials in the workplace?",
      "type": "boolean",
      "required": true,
      "description": "Whether the workplace contains hazardous machinery or raw materials.",
      "sourceRef": "§4 TAXPAYER CLASSIFICATION INFORMATION — checkbox options \"Yes\" / \"No\""
    },
    {
      "name": "declarationNoConviction",
      "label": "I, owner, director, manager declare that I have no conviction in commercial affairs, civil or criminal case, and not a government official of any ministry or public institution of the Kingdom of Cambodia.",
      "type": "boolean",
      "required": true,
      "description": "Declaration that the signer has no relevant criminal conviction and is not a government official. Must be affirmatively checked to submit.",
      "sourceRef": "DECLARATION section, widget \"Check Box20\"",
      "validation": { "enum": [true] }
    },
    {
      "name": "declarationInformationTrueAndCorrect",
      "label": "I declare that the information in this application including all attachments is true and correct.",
      "type": "boolean",
      "required": true,
      "description": "Declaration that all information and attachments in this application are true and correct. Must be affirmatively checked to submit.",
      "sourceRef": "DECLARATION section, widget \"Check Box21\"",
      "validation": { "enum": [true] }
    },
    {
      "name": "declarationSignatureDate",
      "label": "Date",
      "type": "date",
      "required": true,
      "description": "Date the declaration is signed.",
      "sourceRef": "DECLARATION section, widgets \"DD 55\"/\"MM 55\"/\"YYYY 55\""
    }
  ],
  "documents": [
    {
      "id": "moCRegistrationConfirmationLetter",
      "label": "Confirmation of Registration Letter issued by Ministry of Commerce or relevant ministries/institutions (if any)",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "sourceRef": "§6 LIST OF ATTACHMENTS, item 1 (\"* If any\")"
    },
    {
      "id": "memorandumAndArticlesOfAssociation",
      "label": "Memorandum and Articles of Association",
      "category": "attestation",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "§6 LIST OF ATTACHMENTS, item 2"
    },
    {
      "id": "noConvictionDeclarationLetter",
      "label": "Declaration letter of no conviction in commercial affairs, civil or criminal case, and not a government official of any ministry or public institution of the Kingdom of Cambodia",
      "category": "attestation",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "§6 LIST OF ATTACHMENTS, item 3"
    },
    {
      "id": "representativeIdOrPassport",
      "label": "Valid Cambodian identification card or passport of the chairman of the board of directors, director, shareholder, manager or representative",
      "category": "identity-document",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "§6 LIST OF ATTACHMENTS, item 4"
    },
    {
      "id": "representativePhotos",
      "label": "Two current photos (35 x 45 mm, white background, taken within the last 3 months) of the chairman, director, shareholder, manager, or representative",
      "category": "supporting-evidence",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "§6 LIST OF ATTACHMENTS, item 5"
    },
    {
      "id": "titleDeedOrRentalAgreement",
      "label": "Title deed or rental agreement of the property, with geographical coordinates of the business address",
      "category": "supporting-evidence",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "§6 LIST OF ATTACHMENTS, item 6"
    },
    {
      "id": "taxRepresentativeAuthorizationLetter",
      "label": "Authorization letter for the person in charge of tax matters (if any authorized person)",
      "category": "attestation",
      "required": false,
      "belongsTo": "applicant",
      "sourceRef": "§6 LIST OF ATTACHMENTS, item 7 (\"* If have any authorized person\")"
    },
    {
      "id": "bankAccountConfirmationLetter",
      "label": "Certified letter issued by the bank on the business's bank account information (bank confirmation letter, bank statement, or bank passbook) — must be provided after tax registration is approved",
      "category": "supporting-evidence",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "§6 LIST OF ATTACHMENTS, item 8 (\"* Must provide after getting approval on tax registration\")"
    },
    {
      "id": "qipRegisteredCertificate",
      "label": "Registered certificate issued by the Council for the Development of Cambodia / Special Economic Zone Board or the Sub-Committee on Investment of the Capital City-Provinces, for Qualified Investment Projects",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "sourceRef": "§6 LIST OF ATTACHMENTS, item 9 (\"* For Qualified Investment Projects (QIP)\")"
    }
  ]
}
