{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "vn/gdt/to-khai-quyet-toan-thue-thu-nhap-ca-nhan",
  "version": "1.0.0",
  "title": "Vietnam Personal Income Tax Finalization Declaration (Mẫu 02/QTT-TNCN) — Tờ khai quyết toán thuế thu nhập cá nhân",
  "description": "Vietnam's Mẫu số 02/QTT-TNCN, \"Tờ khai quyết toán thuế thu nhập cá nhân\" (Personal Income Tax Finalization Declaration), applicable to a resident individual with income from wages and salaries (\"áp dụng đối với cá nhân cư trú có thu nhập từ tiền lương, tiền công\") who self-files their annual PIT finalization directly with the tax authority, rather than having a paying organization perform the finalization on their behalf. This schema opens Vietnam's Taxes vertical (2 of 6), following the Passport vertical opened by vn/xuatnhapcanh/to-khai-cap-ho-chieu-pho-thong-trong-nuoc. The form was originally published as Phụ lục II of Thông tư 80/2021/TT-BTC (29 September 2021), then amended twice in 2025: Điểm g Khoản 7 Điều 1 of Thông tư 40/2025/TT-BTC (effective 1 July 2025) restructured the taxpayer's and income-payer's local-address fields from a three-tier Quận/huyện-Tỉnh/thành phố breakdown to a two-tier Xã/phường/đặc khu-Tỉnh/thành phố breakdown, reflecting Vietnam's mid-2025 abolition of the district administrative tier; Khoản 3 Điều 1 of Thông tư 94/2025/TT-BTC (effective 14 October 2025) added a new chỉ tiêu [05a] \"Số định danh cá nhân\" (personal identification number) alongside the pre-existing mã số thuế field, to synchronize the taxpayer's tax code with their unified citizen identification number. This schema models the form as amended by both 2025 circulars — the version currently in force — not the original, now-superseded 2021 layout. It covers the taxpayer's and (where applicable) tax agent's and income-payer's identifying data; the period/first-time-or-supplementary declaration; the full chỉ tiêu [20]-[48] income, deduction, and tax-liability computation table (taxable income, personal and dependent deductions, charitable/insurance/voluntary-pension deductions, tax withheld/paid, tax still payable or overpaid, refund and budget-offset requests); the conditional refund-payment-detail and budget-offset-detail blocks; and the closing signature/attestation block. It deliberately does NOT model: the separate Phụ lục 02-1/BK-QTT-TNCN dependent-deduction schedule (a distinct companion form disclosed here only as a conditionally required document, not decomposed field-by-field); the granular 13-column debt/receivable budget-offset breakdown table that chỉ tiêu [47] can trigger (modelled here only as a single descriptive block, per the same kind of disclosed scope decision this registry's it/agenzia-entrate/modello-730 made for its own out-of-scope quadri); and the separate joint-organization-finalization pathway (this schema covers only the individual-self-filing pathway the form's own title specifies). See VERIFICATION.md for the full field-by-field mapping, the legal-currency check that surfaced both 2025 amendments, and every disclosed judgment call. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Socialist Republic of Vietnam, its Ministry of Finance, or its Cục Thuế (Tax Department).",
  "status": "draft",
  "jurisdiction": {
    "country": "VN",
    "level": "national"
  },
  "authority": {
    "name": "Cục Thuế (Tax Department), Ministry of Finance of Vietnam",
    "abbreviation": "GDT",
    "url": "https://gdt.gov.vn",
    "operatedBy": {
      "name": "Ministry of Finance of Vietnam (Bộ Tài chính)",
      "abbreviation": "MOF",
      "url": "https://mof.gov.vn",
      "basis": "Thông tư số 80/2021/TT-BTC ngày 29/9/2021 của Bộ trưởng Bộ Tài chính hướng dẫn thi hành một số điều của Luật Quản lý thuế, as amended by Thông tư số 40/2025/TT-BTC (hiệu lực 01/07/2025) and Thông tư số 94/2025/TT-BTC (hiệu lực 14/10/2025). The issuing authority, previously named Tổng cục Thuế (General Department of Taxation), was itself renamed Cục Thuế (Tax Department) effective 1 March 2025 per Thông báo 275/TB-TCT, while remaining organizationally under the Ministry of Finance and continuing to operate under the gdt.gov.vn domain and GDT abbreviation."
    }
  },
  "process": {
    "type": "filing",
    "language": "vi-VN"
  },
  "source": {
    "url": "https://cdn.thuvienphapluat.vn/uploads/tintuc/2026/02/13/M%E1%BA%ABu%2002-QTT-TNCN-80-2021-TT-BTC%20(1).doc",
    "retrievedAt": "2026-07-11",
    "documentRef": "Mẫu số 02/QTT-TNCN, ban hành kèm theo Thông tư số 80/2021/TT-BTC ngày 29/9/2021 của Bộ trưởng Bộ Tài chính, được sửa đổi, bổ sung bởi Điểm g Khoản 7 Điều 1 Thông tư số 40/2025/TT-BTC (hiệu lực từ 01/07/2025) và Khoản 3 Điều 1 Thông tư số 94/2025/TT-BTC (hiệu lực từ 14/10/2025) — a currently-in-force reproduction of the form template, hosted on thuvienphapluat.vn's own CDN, whose own header note states verbatim: \"(Mẫu này bị sửa đổi, bổ sung bởi Điểm g Khoản 7 Điều 1 Thông tư 40/2025/TT-BTC có hiệu lực từ ngày 01/07/2025 và Khoản 3 Điều 1 Thông tư 94/2025/TT-BTC có hiệu lực từ ngày 14/10/2025) (Mẫu dưới đây đã bao gồm nội dung sửa đổi, bổ sung)\" [This form is amended by Point g, Clause 7, Article 1 of Circular 40/2025/TT-BTC, effective 1 July 2025, and Clause 3, Article 1 of Circular 94/2025/TT-BTC, effective 14 October 2025; the form below already incorporates the amended content]."
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-11",
    "verifiedBy": "GovSchema Engineering (Standards Engineer)",
    "nextReviewBy": "2027-01-11",
    "notes": "GOV-2411 (\"GovSchema Standard Research\"). Opens Vietnam's Taxes vertical (2 of 6), following vn/xuatnhapcanh/to-khai-cap-ho-chieu-pho-thong-trong-nuoc (Passport, 1 of 6, GOV-2404). A prior research pass had located and verified a candidate PDF at https://easyinvoice.vn/wp-content/uploads/2026/04/mau-so-02-QTT-TNCN-2.pdf (re-fetched this cycle: HTTP 200, 440,294 bytes, genuine %PDF header, sha256 87231af39f67b69a2b020f140ff82a1c9ee7b7bd04aa6ed8f3473ccd0031763c, 3 pages, a genuine embedded text layer confirmed via pdfjs-dist getTextContent() returning real Vietnamese text on every page, and zero AcroForm Widget annotations on any page via pdfjs-dist getAnnotations() — a static print/hand-fill template, not a fillable PDF, the same source tier as jp/houmukyoku's precedent). Following this registry's own source-of-truth-fidelity principle (as applied to vn/xuatnhapcanh's own X01-vs-TK01 catch), a routine legal-currency check was run before authoring against it — searching the form number plus \"sửa đổi\"/\"thay thế\" — and found this candidate PDF's own header text still read \"Ban hành kèm theo Thông tư số 80/2021/TT-BTC ngày 29 tháng 9 năm 2021\" with none of the 2025 amendments applied: it still printed the pre-amendment three-tier Quận/huyện + Tỉnh/thành phố address breakdown (items [07]-[08] and [18]-[19]) and carried no chỉ tiêu [05a]. Two 2025 circulars were found to amend this exact form: Thông tư 40/2025/TT-BTC (hiệu lực 01/07/2025), Điểm g Khoản 7 Điều 1, which replaced the Quận/huyện+Tỉnh/thành phố breakdown with a two-tier Xã/phường/đặc khu+Tỉnh/thành phố breakdown, reflecting Vietnam's mid-2025 abolition of the district administrative tier; and Thông tư 94/2025/TT-BTC (hiệu lực 14/10/2025), Khoản 3 Điều 1, which added chỉ tiêu [05a] \"Số định danh cá nhân\" for tax-code/citizen-ID synchronization. The easyinvoice.vn PDF therefore models a superseded template, not the form as currently in force, and was not used as this schema's source. gdt.gov.vn and canhan.gdt.gov.vn (the tax authority's own domains) were both unreachable from this sandbox (curl timeout after 20s on each, no HTTP response), consistent with this registry's prior gov.vn-host-unreachable precedent (dfat.gov.au, gov.au). A mof.gov.vn media-file URL surfacing in search results for Thông tư 94/2025/TT-BTC (https://www.mof.gov.vn/api/mediafile/media-article/.../....pdf) was fetched and found, on inspection, to be an unrelated circular on commendation/emulation awards (Thi đua – Khen thưởng) misattributed by the search index, not the tax circular; a second candidate PDF from dinre.mae.gov.vn (a government-adjacent legal-document mirror) fetched successfully (HTTP 200, %PDF-1.5, sha256 402ba1ee33a5ce24c1d068fa61bec5ec916a18b0e82a89ab1e9c152ae9248cc5) but its 3 pages carry zero extractable text via pdfjs-dist (a scanned image with no OCR text layer), and — being only 3 pages — evidently does not include the full appendix reproducing every amended form in full. Given both leads dead-ended and the tax authority's own domains were unreachable, this schema instead sources the current template from thuvienphapluat.vn, Vietnam's leading legal-document portal — explicitly named as an acceptable fallback in this cycle's own sourcing guidance alongside gdt.gov.vn — via a directly downloadable .doc file (https://cdn.thuvienphapluat.vn/uploads/tintuc/2026/02/13/M%E1%BA%ABu%2002-QTT-TNCN-80-2021-TT-BTC%20(1).doc; HTTP 200, 111,104 bytes, genuine OLE2/Compound-File-Binary header D0 CF 11 E0 A1 B1 1A E1, sha256 c7de675a16e3382b0d94399298d3e6a0577b6a760ef6b8420a806fb9aa4fd246), whose own embedded UTF-16LE text (extracted via a raw byte-level decode, since no antiword/catdoc/LibreOffice/python-docx tooling was available in this sandbox) opens with the amendment note quoted verbatim in this schema's own source.documentRef, and which reproduces the current chỉ tiêu [01]-[48] layout in full, including [05a] and the new Xã/phường/đặc khu fields. This was cross-checked field-by-field against thuvienphapluat.vn's own companion advisory article (https://thuvienphapluat.vn/chinh-sach-phap-luat-moi/vn/ho-tro-phap-luat/tu-van-phap-luat/105609/mau-to-khai-truc-tiep-quyet-toan-thue-tncn-nam-2026-mau-02-qtt-tncn, fetched successfully via curl with a browser user-agent after WebFetch itself returned HTTP 403 on this domain) which explains every chỉ tiêu [01]-[48] in prose and independently confirms the same [05a]/Xã-phường-đặc khu content; the two sources agree verbatim on every field label and instruction sentence checked. All 3 pages of the easyinvoice.vn candidate PDF and both text extractions of the thuvienphapluat.vn .doc were retained locally for this verification. This registry's own it/agenzia-entrate/modello-730 precedent (GOV-2382) was followed for the scope-limiting decisions disclosed in this schema's own description: the Phụ lục 02-1/BK-QTT-TNCN dependent schedule is disclosed only as a conditionally required document, not decomposed field-by-field, since it is a distinct companion form the source form itself only references by number, never reproduces; the granular 13-column budget-offset breakdown table triggered by chỉ tiêu [47] is likewise modelled only as a single descriptive block. Vietnam's separate, contemporaneous administrative reorganization was independently confirmed via a targeted search rather than assumed: Tổng cục Thuế (General Department of Taxation) was itself renamed Cục Thuế (Tax Department) effective 1 March 2025 per Thông báo 275/TB-TCT, a detail this schema's authority.name reflects (correcting this cycle's own initial brief, which had named the pre-rename \"Tổng cục Thuế\"/\"General Department of Taxation\"), while the gdt.gov.vn domain and GDT abbreviation remain unchanged and are retained for this registry's own id path segment and authority.abbreviation. The documents[] entries for the dependent-deduction schedule, withholding-certificate documentation, not-yet-registered-dependent registration dossier, and charitable-donation proof are sourced from a first-party legal citation (Khoản 9.11 Phụ lục I, Nghị định số 126/2020/NĐ-CP) relayed via a professional tax-advisory site's own published guidance (gonnapass.com), not the form's own text, which — like vn/xuatnhapcanh's own precedent for its documents[] entries — carries no attachment checklist; this is disclosed in each entry's own sourceRef. Two mock conformance scenarios (a straightforward finalization with no dependents, no foreign income, and a small refund by bank transfer; a finalization with two dependents, a charitable donation, foreign tax paid, and a budget offset request) found 0 errors each, plus 3 mutation controls (missing required field, personalIdNumber pattern violation, a refund-detail field required by refundMethod left absent) each correctly raised exactly 1 error. Vietnam now stands at 2 of 6 verticals (Passport, Taxes); Business Formation, DMV, Visa, and National ID remain open. National ID was confirmed a dead end in the prior cycle (in-person/biometric CCCD issuance only, no downloadable form); Business Formation and Visa each had only weak pre-scouted leads; DMV was inconclusive due to a 503 from the relevant gov host — all four remain unscreened or weak backlog candidates for a future cycle."
  },
  "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-11"
  },
  "license": "CC-BY-4.0",
  "fields": [
    {
      "name": "taxPeriodYear",
      "label": "Kỳ tính thuế: Năm",
      "type": "integer",
      "required": true,
      "description": "The calendar year this finalization covers.",
      "sourceRef": "Chỉ tiêu [01] — \"Kỳ tính thuế: Năm ....... (từ tháng …/… đến tháng …/….)\"",
      "validation": {
        "minimum": 2020,
        "maximum": 2030
      }
    },
    {
      "name": "taxPeriodFromMonth",
      "label": "từ tháng",
      "type": "integer",
      "required": false,
      "description": "Start month of the tax period, filled in only when the individual's finalization does not cover a full calendar year (e.g. a foreign individual finalizing before 31/12, or finalizing their first 12-month tax year from their first day present in Vietnam), per the form's own instruction for chỉ tiêu [01].",
      "sourceRef": "Chỉ tiêu [01] — \"(từ tháng …/… đến tháng …/….)\"",
      "validation": {
        "minimum": 1,
        "maximum": 12
      }
    },
    {
      "name": "taxPeriodToMonth",
      "label": "đến tháng",
      "type": "integer",
      "required": false,
      "description": "End month of the tax period, filled in only for the same non-full-calendar-year case as taxPeriodFromMonth.",
      "sourceRef": "Chỉ tiêu [01] — \"(từ tháng …/… đến tháng …/….)\"",
      "validation": {
        "minimum": 1,
        "maximum": 12
      }
    },
    {
      "name": "firstTimeFiling",
      "label": "Lần đầu",
      "type": "boolean",
      "required": true,
      "description": "Whether this is the taxpayer's first-ever finalization filing for this tax code (checkbox marked with an \"x\").",
      "sourceRef": "Chỉ tiêu [02] — \"Lần đầu:\""
    },
    {
      "name": "supplementaryFilingNumber",
      "label": "Bổ sung lần thứ",
      "type": "integer",
      "required": false,
      "requiredWhen": {
        "field": "firstTimeFiling",
        "equals": false
      },
      "description": "Which supplementary (bổ sung) filing this is (1, 2, 3, …), filled in whenever this filing is not the first-time filing.",
      "sourceRef": "Chỉ tiêu [03] — \"Bổ sung lần thứ: …\"",
      "validation": {
        "minimum": 1
      }
    },
    {
      "name": "disasterOrIllnessReliefAttached",
      "label": "Tờ khai quyết toán thuế kèm theo hồ sơ giảm thuế do thiên tai, hoả hoạn, tai nạn, bệnh hiểm nghèo",
      "type": "boolean",
      "required": false,
      "description": "Marked when the taxpayer attaches a tax-relief dossier for a natural disaster, fire, accident, or serious illness alongside this finalization declaration.",
      "sourceRef": "\"Tờ khai quyết toán thuế kèm theo hồ sơ giảm thuế do thiên tai, hoả hoạn, tai nạn, bệnh hiểm nghèo\""
    },
    {
      "name": "taxpayerName",
      "label": "Tên người nộp thuế",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "The taxpayer's full name, per their tax-registration declaration or CMND/CCCD/passport.",
      "sourceRef": "Chỉ tiêu [04] — \"Tên người nộp thuế\"",
      "validation": {
        "minLength": 1,
        "maxLength": 200
      }
    },
    {
      "name": "taxpayerTaxCode",
      "label": "Mã số thuế",
      "type": "string",
      "required": true,
      "classification": "sensitive-pii",
      "description": "The taxpayer's tax code (mã số thuế), per their Tax Registration Certificate, tax-code notification, or tax-code card.",
      "sourceRef": "Chỉ tiêu [05] — \"Mã số thuế\"",
      "validation": {
        "pattern": "^[0-9]{10}(-[0-9]{3})?$"
      }
    },
    {
      "name": "taxpayerPersonalIdNumber",
      "label": "Số định danh cá nhân",
      "type": "string",
      "required": true,
      "classification": "sensitive-pii",
      "description": "The taxpayer's 12-digit personal identification number, i.e. their Citizen Identification (CCCD) number. Added to this form by Khoản 3 Điều 1 Thông tư 94/2025/TT-BTC (effective 14/10/2025), with no counterpart on the pre-amendment 2021 layout, to synchronize tax-code and citizen-ID records. Carries no \"(nếu có)\" tag, unlike genuinely optional chỉ tiêu on this form, so modelled as required per this registry's own convention.",
      "sourceRef": "Chỉ tiêu [05a] — \"Số định danh cá nhân\"",
      "validation": {
        "pattern": "^[0-9]{12}$"
      }
    },
    {
      "name": "taxpayerAddress",
      "label": "Địa chỉ",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "The taxpayer's residential address (house number, street).",
      "sourceRef": "Chỉ tiêu [06] — \"Địa chỉ\"",
      "validation": {
        "minLength": 1,
        "maxLength": 500
      }
    },
    {
      "name": "taxpayerWardOrCommune",
      "label": "Xã/ phường/đặc khu",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "The commune/ward/special zone of the taxpayer's residence, following the post-merger administrative naming Thông tư 40/2025/TT-BTC introduced onto this form (replacing the pre-amendment Quận/huyện district-level field, in step with Vietnam's mid-2025 abolition of the district administrative tier).",
      "sourceRef": "Chỉ tiêu [07] — \"Xã/ phường/đặc khu\"",
      "validation": {
        "minLength": 1,
        "maxLength": 200
      }
    },
    {
      "name": "taxpayerProvince",
      "label": "Tỉnh/thành phố",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "The province/city of the taxpayer's residence.",
      "sourceRef": "Chỉ tiêu [08] — \"Tỉnh/thành phố\"",
      "validation": {
        "minLength": 1,
        "maxLength": 200
      }
    },
    {
      "name": "taxpayerPhone",
      "label": "Điện thoại",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "The taxpayer's phone number.",
      "sourceRef": "Chỉ tiêu [09] — \"Điện thoại\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "taxpayerFax",
      "label": "Fax",
      "type": "string",
      "required": false,
      "description": "The taxpayer's fax number, if any. Modelled as optional despite carrying no \"(nếu có)\" tag, per this registry's own convention of treating a structurally non-universal contact channel (fax is not a channel every individual taxpayer maintains) as optional absent an explicit gating field.",
      "sourceRef": "Chỉ tiêu [10] — \"Fax\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "taxpayerEmail",
      "label": "Email",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "The taxpayer's email address, if any. Modelled as optional for the same reason as taxpayerFax.",
      "sourceRef": "Chỉ tiêu [11] — \"Email\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "taxAgentName",
      "label": "Tên đại lý thuế (nếu có)",
      "type": "string",
      "required": false,
      "description": "Name of the tax agent the taxpayer has authorized to file on their behalf, if any.",
      "sourceRef": "Chỉ tiêu [12] — \"Tên đại lý thuế (nếu có)\"",
      "validation": {
        "maxLength": 300
      }
    },
    {
      "name": "taxAgentTaxCode",
      "label": "Mã số thuế",
      "type": "string",
      "required": false,
      "description": "The tax agent's own tax code, filled in only when taxAgentName is given.",
      "sourceRef": "Chỉ tiêu [13] — \"Mã số thuế\" (đại lý thuế)",
      "validation": {
        "pattern": "^[0-9]{10}(-[0-9]{3})?$"
      }
    },
    {
      "name": "taxAgentContractNumber",
      "label": "Hợp đồng đại lý thuế: Số",
      "type": "string",
      "required": false,
      "description": "Number of the currently-effective service contract between the taxpayer and their tax agent, filled in only when taxAgentName is given.",
      "sourceRef": "Chỉ tiêu [14] — \"Hợp đồng đại lý thuế: Số\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "taxAgentContractDate",
      "label": "Ngày",
      "type": "date",
      "required": false,
      "description": "Date of the tax-agent service contract referenced by taxAgentContractNumber.",
      "sourceRef": "Chỉ tiêu [14] — \"Ngày\""
    },
    {
      "name": "incomePayerName",
      "label": "Tên tổ chức trả thu nhập",
      "type": "string",
      "required": false,
      "description": "Name of the income-paying organization, filled in only when current rules direct this finalization to be filed with the tax office managing the income payer rather than with the taxpayer's own place of residence.",
      "sourceRef": "Chỉ tiêu [15] — \"Tên tổ chức trả thu nhập\"",
      "validation": {
        "maxLength": 300
      }
    },
    {
      "name": "incomePayerTaxCode",
      "label": "Mã số thuế",
      "type": "string",
      "required": false,
      "description": "The income-paying organization's tax code, filled in only when incomePayerName is given.",
      "sourceRef": "Chỉ tiêu [16] — \"Mã số thuế\" (tổ chức trả thu nhập)",
      "validation": {
        "pattern": "^[0-9]{10}(-[0-9]{3})?$"
      }
    },
    {
      "name": "incomePayerAddress",
      "label": "Địa chỉ",
      "type": "string",
      "required": false,
      "description": "The income-paying organization's address, filled in only when incomePayerName is given.",
      "sourceRef": "Chỉ tiêu [17] — \"Địa chỉ\" (tổ chức trả thu nhập)",
      "validation": {
        "maxLength": 500
      }
    },
    {
      "name": "incomePayerWardOrCommune",
      "label": "Xã/ phường/đặc khu",
      "type": "string",
      "required": false,
      "description": "Commune/ward/special zone of the income-paying organization, filled in only when incomePayerName is given. Follows the same post-merger naming introduced by Thông tư 40/2025/TT-BTC as taxpayerWardOrCommune.",
      "sourceRef": "Chỉ tiêu [18] — \"Xã/ phường/đặc khu\" (tổ chức trả thu nhập)",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "incomePayerProvince",
      "label": "Tỉnh/thành phố",
      "type": "string",
      "required": false,
      "description": "Province/city of the income-paying organization, filled in only when incomePayerName is given.",
      "sourceRef": "Chỉ tiêu [19] — \"Tỉnh/thành phố\" (tổ chức trả thu nhập)",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "totalTaxableIncome",
      "label": "Tổng thu nhập chịu thuế (TNCT) trong kỳ",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Total taxable income (TNCT) for the period. Chỉ tiêu [20] = [21] + [23].",
      "sourceRef": "Chỉ tiêu [20] — \"Tổng thu nhập chịu thuế (TNCT) trong kỳ [20]=[21]+[23]\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "taxableIncomeArisingInVietnam",
      "label": "Tổng TNCT phát sinh tại Việt Nam",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Total taxable income arising in Vietnam, including any income exempted under a double-taxation avoidance agreement (see taxableIncomeExemptUnderTreaty).",
      "sourceRef": "Chỉ tiêu [21] — \"Tổng TNCT phát sinh tại Việt Nam\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "taxableIncomeExemptUnderTreaty",
      "label": "Trong đó tổng TNCT phát sinh tại Việt Nam được miễn giảm theo Hiệp định (nếu có)",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Portion of taxableIncomeArisingInVietnam exempted under a double-taxation avoidance agreement, if any.",
      "sourceRef": "Chỉ tiêu [22] — \"Trong đó tổng TNCT phát sinh tại Việt Nam được miễn giảm theo Hiệp định (nếu có)\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "taxableIncomeArisingOutsideVietnam",
      "label": "Tổng TNCT phát sinh ngoài Việt Nam",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Total taxable income arising outside Vietnam.",
      "sourceRef": "Chỉ tiêu [23] — \"Tổng TNCT phát sinh ngoài Việt Nam\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "numberOfDependents",
      "label": "Số người phụ thuộc",
      "type": "integer",
      "required": true,
      "description": "Number of registered dependents claimed for family-circumstance deduction. When greater than 0, the Phụ lục 02-1/BK-QTT-TNCN dependent-deduction schedule is required — see documents[].",
      "sourceRef": "Chỉ tiêu [24] — \"Số người phụ thuộc\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalDeductions",
      "label": "Các khoản giảm trừ",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Total deductions. Chỉ tiêu [25] = [26] + [27] + [28] + [29] + [30].",
      "sourceRef": "Chỉ tiêu [25] — \"Các khoản giảm trừ ([25]=[26]+[27]+[28]+[29]+[30])\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "personalDeduction",
      "label": "Cho bản thân cá nhân",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Personal (self) deduction.",
      "sourceRef": "Chỉ tiêu [26] — \"Cho bản thân cá nhân\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "dependentDeduction",
      "label": "Cho những người phụ thuộc được giảm trừ",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Total deduction for registered dependents.",
      "sourceRef": "Chỉ tiêu [27] — \"Cho những người phụ thuộc được giảm trừ\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "charitableDonationDeduction",
      "label": "Từ thiện, nhân đạo, khuyến học",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Deduction for charitable, humanitarian, and education-promotion donations. When greater than 0, supporting documentation is required — see documents[].",
      "sourceRef": "Chỉ tiêu [28] — \"Từ thiện, nhân đạo, khuyến học\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "deductibleInsuranceContributions",
      "label": "Các khoản đóng bảo hiểm được trừ",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Deductible mandatory insurance contributions.",
      "sourceRef": "Chỉ tiêu [29] — \"Các khoản đóng bảo hiểm được trừ\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "deductibleVoluntaryPensionContributions",
      "label": "Khoản đóng quỹ hưu trí tự nguyện được trừ",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Deductible voluntary pension-fund contributions.",
      "sourceRef": "Chỉ tiêu [30] — \"Khoản đóng quỹ hưu trí tự nguyện được trừ\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalTaxableIncomeBase",
      "label": "Tổng thu nhập tính thuế",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Total tax-computation-base income. Chỉ tiêu [31] = [20] - [22] - [25].",
      "sourceRef": "Chỉ tiêu [31] — \"Tổng thu nhập tính thuế ([31]=[20]-[22]-[25])\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalPitPayableArising",
      "label": "Tổng số thuế thu nhập cá nhân (TNCN) phát sinh trong kỳ",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Total personal income tax (PIT) arising for the period, before crediting tax already paid.",
      "sourceRef": "Chỉ tiêu [32] — \"Tổng số thuế thu nhập cá nhân (TNCN) phát sinh trong kỳ\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalTaxPaidInPeriod",
      "label": "Tổng số thuế đã nộp trong kỳ",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Total tax already paid for the period. Chỉ tiêu [33] = [34] + [35] + [36] - [37] - [38].",
      "sourceRef": "Chỉ tiêu [33] — \"Tổng số thuế đã nộp trong kỳ ([33]=[34]+[35]+[36]-[37]-[38])\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "taxWithheldByIncomePayer",
      "label": "Số thuế đã khấu trừ tại tổ chức trả thu nhập",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Tax already withheld at the income-paying organization. When greater than 0, withholding-certificate documentation is required — see documents[].",
      "sourceRef": "Chỉ tiêu [34] — \"Số thuế đã khấu trừ tại tổ chức trả thu nhập\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "taxPaidDuringYearNotThroughIncomePayer",
      "label": "Số thuế đã nộp trong năm không qua tổ chức trả thu nhập",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Tax already paid during the year other than through the income-paying organization (e.g. self-remitted provisional payments).",
      "sourceRef": "Chỉ tiêu [35] — \"Số thuế đã nộp trong năm không qua tổ chức trả thu nhập\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "foreignTaxPaidDeductible",
      "label": "Số thuế đã nộp ở nước ngoài được trừ (nếu có)",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Deductible tax already paid abroad, if any. When greater than 0, supporting documentation is required — see documents[].",
      "sourceRef": "Chỉ tiêu [36] — \"Số thuế đã nộp ở nước ngoài được trừ (nếu có)\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "foreignTaxDuplicatedByOverlapYearFinalization",
      "label": "Số thuế đã khấu trừ, đã nộp ở nước ngoài trùng do quyết toán vắt năm",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Withheld/foreign-paid tax double-counted because of an overlap-year finalization (a taxpayer whose 12-month tax year straddles two calendar years and has already credited this amount in a prior finalization). A narrow edge case with no \"(nếu có)\" tag on the source, modelled as optional per this registry's own convention for a structurally non-universal chỉ tiêu.",
      "sourceRef": "Chỉ tiêu [37] — \"Số thuế đã khấu trừ, đã nộp ở nước ngoài trùng do quyết toán vắt năm\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "taxPaidDuplicatedByOverlapYearFinalization",
      "label": "Số thuế đã nộp trong năm không qua tổ chức trả thu nhập trùng do quyết toán vắt năm",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Self-remitted tax double-counted for the same overlap-year finalization reason as foreignTaxDuplicatedByOverlapYearFinalization.",
      "sourceRef": "Chỉ tiêu [38] — \"Số thuế đã nộp trong năm không qua tổ chức trả thu nhập trùng do quyết toán vắt năm\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalPitReduction",
      "label": "Tổng số thuế TNCN được giảm trong kỳ",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Total PIT reduction for the period. Chỉ tiêu [39] = [40] + [41].",
      "sourceRef": "Chỉ tiêu [39] — \"Tổng số thuế TNCN được giảm trong kỳ [39]=[40]+[41]\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "taxPayableDuplicatedByOverlapYearFinalization",
      "label": "Số thuế phải nộp trùng do quyết toán vắt năm",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Tax payable double-counted for the same overlap-year finalization reason as foreignTaxDuplicatedByOverlapYearFinalization.",
      "sourceRef": "Chỉ tiêu [40] — \"Số thuế phải nộp trùng do quyết toán vắt năm\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "otherPitReductions",
      "label": "Tổng số thuế TNCN được giảm khác",
      "type": "number",
      "required": true,
      "classification": "financial",
      "description": "Other PIT reductions not covered by taxPayableDuplicatedByOverlapYearFinalization.",
      "sourceRef": "Chỉ tiêu [41] — \"Tổng số thuế TNCN được giảm khác\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalTaxStillPayable",
      "label": "Tổng số thuế còn phải nộp trong kỳ",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Total tax still payable for the period, populated only when [32]-[33]-[39] is positive. Chỉ tiêu [42] = ([32]-[33]-[39])>0. Mutually alternative in practice with totalTaxOverpaid (chỉ tiêu [44]), which is populated instead when the same difference is negative.",
      "sourceRef": "Chỉ tiêu [42] — \"Tổng số thuế còn phải nộp trong kỳ [42]=([32]-[33]-[39])>0\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "taxExemptedUnder50000",
      "label": "Số thuế được miễn do cá nhân có số tiền thuế phải nộp sau quyết toán từ 50.000 đồng trở xuống",
      "type": "number",
      "required": false,
      "requiredWhen": {
        "all": [
          { "field": "totalTaxStillPayable", "greaterThan": 0 },
          { "field": "totalTaxStillPayable", "lessThanOrEqual": 50000 }
        ]
      },
      "classification": "financial",
      "description": "Tax exempted because the tax payable after finalization is 50,000 VND or less. Applicable only in the narrow band 0 < [42] <= 50,000 đồng.",
      "sourceRef": "Chỉ tiêu [43] — \"Số thuế được miễn do cá nhân có số tiền thuế phải nộp sau quyết toán từ 50.000 đồng trở xuống (0<[42]<=50.000 đồng)\"",
      "validation": {
        "minimum": 0,
        "maximum": 50000
      }
    },
    {
      "name": "totalTaxOverpaid",
      "label": "Tổng số thuế nộp thừa trong kỳ",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Total tax overpaid for the period, populated only when [32]-[33]-[39] is negative. Chỉ tiêu [44] = ([32]-[33]-[39])<0, entered here as a positive magnitude. Mutually alternative in practice with totalTaxStillPayable.",
      "sourceRef": "Chỉ tiêu [44] — \"Tổng số thuế nộp thừa trong kỳ [44]=([32]-[33]-[39]) <0\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalRefundRequested",
      "label": "Tổng số thuế đề nghị hoàn trả",
      "type": "number",
      "required": false,
      "requiredWhen": {
        "field": "totalTaxOverpaid",
        "greaterThan": 0
      },
      "classification": "financial",
      "description": "Total amount of overpaid tax the taxpayer requests be refunded and/or offset. Chỉ tiêu [45] = [46] + [47].",
      "sourceRef": "Chỉ tiêu [45] — \"Tổng số thuế đề nghị hoàn trả [45]=[46]+[47]\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "refundToTaxpayer",
      "label": "Số thuế hoàn trả cho người nộp thuế",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Portion of totalRefundRequested to be refunded directly to the taxpayer. When greater than 0, the refund-payment-detail block on page 3 of the form is required — see refundAmountInFigures onward.",
      "sourceRef": "Chỉ tiêu [46] — \"Số thuế hoàn trả cho người nộp thuế\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "offsetAgainstOtherBudgetObligation",
      "label": "Số thuế bù trừ cho khoản phải nộp ngân sách nhà nước khác",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Portion of totalRefundRequested to be offset against another state-budget obligation instead of refunded. When greater than 0, the budget-offset-detail block on page 3 of the form is required — see offsetDebtDescription onward.",
      "sourceRef": "Chỉ tiêu [47] — \"Số thuế bù trừ cho khoản phải nộp ngân sách nhà nước khác\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalOffsetCarriedToNextPeriod",
      "label": "Tổng số thuế bù trừ cho các phát sinh của kỳ sau",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Portion of the overpayment not covered by totalRefundRequested, carried forward to offset a future period's liability. Chỉ tiêu [48] = [44] - [45].",
      "sourceRef": "Chỉ tiêu [48] — \"Tổng số thuế bù trừ cho các phát sinh của kỳ sau [48]=[44]-[45]\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "refundAmountInFigures",
      "label": "Số tiền hoàn trả: Bằng số",
      "type": "number",
      "required": false,
      "requiredWhen": {
        "field": "refundToTaxpayer",
        "greaterThan": 0
      },
      "classification": "financial",
      "description": "The refund amount, restated in figures, in the page-3 refund-payment-detail block that applies whenever refundToTaxpayer (chỉ tiêu [46]) is requested.",
      "sourceRef": "\"Trường hợp người nộp thuế đề nghị hoàn trả vào tài khoản của người nộp thuế tại chỉ tiêu [46] thì ghi thêm các thông tin sau: Số tiền hoàn trả: Bằng số: … đồng.\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "refundMethod",
      "label": "Hình thức hoàn trả",
      "type": "enum",
      "required": false,
      "requiredWhen": {
        "field": "refundToTaxpayer",
        "greaterThan": 0
      },
      "description": "How the refund is to be paid: by bank transfer (Chuyển khoản) or in cash (Tiền mặt), printed as a checkbox pair.",
      "sourceRef": "\"Hình thức hoàn trả: □ Chuyển khoản ... □ Tiền mặt\"",
      "validation": {
        "enum": ["bank_transfer", "cash"]
      }
    },
    {
      "name": "refundAccountHolderName",
      "label": "Tên chủ tài khoản",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "refundMethod",
        "equals": "bank_transfer"
      },
      "classification": "pii",
      "description": "Name of the bank account holder to receive the refund, required when refundMethod is bank_transfer.",
      "sourceRef": "\"Chuyển khoản: Tên chủ tài khoản………\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "refundAccountNumber",
      "label": "Tài khoản số",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "refundMethod",
        "equals": "bank_transfer"
      },
      "classification": "sensitive-pii",
      "description": "Bank account number to receive the refund, required when refundMethod is bank_transfer.",
      "sourceRef": "\"Tài khoản số:........Tại Ngân hàng/KBNN:……\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "refundBankOrTreasuryName",
      "label": "Tại Ngân hàng/KBNN",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "refundMethod",
        "equals": "bank_transfer"
      },
      "description": "Name of the bank or State Treasury (KBNN) branch holding refundAccountNumber, required when refundMethod is bank_transfer.",
      "sourceRef": "\"Tại Ngân hàng/KBNN:……………….......\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "refundCashRecipientName",
      "label": "Tên người nhận tiền",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "refundMethod",
        "equals": "cash"
      },
      "classification": "pii",
      "description": "Name of the person collecting the cash refund, required when refundMethod is cash.",
      "sourceRef": "\"Tiền mặt: Tên người nhận tiền:\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "refundCashRecipientIdNumber",
      "label": "CMND/CCCD/HC số",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "refundMethod",
        "equals": "cash"
      },
      "classification": "sensitive-pii",
      "description": "ID card, Citizen ID, or passport number of the cash-refund recipient, required when refundMethod is cash.",
      "sourceRef": "\"CMND/CCCD/HC số: …… Ngày cấp:……./……./……… Nơi cấp:…….\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "refundCashRecipientIdIssueDate",
      "label": "Ngày cấp",
      "type": "date",
      "required": false,
      "requiredWhen": {
        "field": "refundMethod",
        "equals": "cash"
      },
      "description": "Issue date of the ID given in refundCashRecipientIdNumber, required when refundMethod is cash.",
      "sourceRef": "\"Ngày cấp:……./……./………\""
    },
    {
      "name": "refundCashRecipientIdIssuePlace",
      "label": "Nơi cấp",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "refundMethod",
        "equals": "cash"
      },
      "description": "Issuing place of the ID given in refundCashRecipientIdNumber, required when refundMethod is cash.",
      "sourceRef": "\"Nơi cấp:…….\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "refundReceivingTreasuryOffice",
      "label": "Nơi nhận tiền hoàn thuế: Kho bạc Nhà nước",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "refundToTaxpayer",
        "greaterThan": 0
      },
      "description": "The specific State Treasury (Kho bạc Nhà nước) office disbursing the refund.",
      "sourceRef": "\"Nơi nhận tiền hoàn thuế: Kho bạc Nhà nước\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "offsetDebtDescription",
      "label": "Khoản nợ, khoản thu phát sinh đề nghị được bù trừ",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "offsetAgainstOtherBudgetObligation",
        "greaterThan": 0
      },
      "description": "Free-text description of the other state-budget debt/receivable the overpayment is to be offset against, required when offsetAgainstOtherBudgetObligation (chỉ tiêu [47]) is requested. The source form's own granular 13-column breakdown table for this block (per-item tax code, managing tax office, administrative area, chương/tiểu mục budget codes, tax period/due date, and amounts) is out of scope for this v1.0.0 schema — see this schema's own top-level description.",
      "sourceRef": "\"Trường hợp người nộp thuế đề nghị bù trừ cho khoản phải nộp ngân sách nhà nước khác tại chỉ tiêu [47] thì ghi thêm các thông tin sau: Khoản nợ, khoản thu phát sinh đề nghị được bù trừ\"",
      "validation": {
        "maxLength": 1000
      }
    },
    {
      "name": "offsetCurrency",
      "label": "Đơn vị tiền",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "offsetAgainstOtherBudgetObligation",
        "greaterThan": 0
      },
      "description": "Currency unit of the amounts in the budget-offset-detail block, required when offsetAgainstOtherBudgetObligation is requested.",
      "sourceRef": "\"Đơn vị tiền……….\"",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "declarantRole",
      "label": "NGƯỜI NỘP THUẾ hoặc ĐẠI DIỆN HỢP PHÁP CỦA NGƯỜI NỘP THUẾ / NHÂN VIÊN ĐẠI LÝ THUẾ",
      "type": "enum",
      "required": true,
      "description": "Which of the form's two closing-signature blocks applies: the taxpayer or their legal representative signs directly, or a tax-agent staff member signs on the taxpayer's behalf.",
      "sourceRef": "\"NHÂN VIÊN ĐẠI LÝ THUẾ ... NGƯỜI NỘP THUẾ hoặc ĐẠI DIỆN HỢP PHÁP CỦA NGƯỜI NỘP THUẾ\"",
      "validation": {
        "enum": ["taxpayer_or_legal_representative", "tax_agent_staff"]
      }
    },
    {
      "name": "declarantName",
      "label": "Họ và tên",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "Full name of the person signing the declaration (the taxpayer, their legal representative, or the tax-agent staff member).",
      "sourceRef": "\"Họ và tên: …………………\"",
      "validation": {
        "minLength": 1,
        "maxLength": 200
      }
    },
    {
      "name": "taxAgentPracticingCertificateNumber",
      "label": "Chứng chỉ hành nghề số",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "declarantRole",
        "equals": "tax_agent_staff"
      },
      "description": "Tax-practice certificate number of the tax-agent staff member signing, required when declarantRole is tax_agent_staff.",
      "sourceRef": "\"Chứng chỉ hành nghề số:.......\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "declarationPlace",
      "label": "…, ngày ... tháng … năm …",
      "type": "string",
      "required": true,
      "description": "Place of signing.",
      "sourceRef": "\"…, ngày ... tháng … năm …\"",
      "validation": {
        "minLength": 1,
        "maxLength": 200
      }
    },
    {
      "name": "declarationDate",
      "label": "ngày ... tháng … năm …",
      "type": "date",
      "required": true,
      "description": "Date of signing.",
      "sourceRef": "\"…, ngày ... tháng … năm …\""
    }
  ],
  "documents": [
    {
      "id": "dependentDeductionScheduleBkQtt",
      "label": "Phụ lục 02-1/BK-QTT-TNCN (Bảng kê giảm trừ gia cảnh cho người phụ thuộc)",
      "category": "supporting-evidence",
      "required": false,
      "requiredWhen": {
        "field": "numberOfDependents",
        "greaterThan": 0
      },
      "belongsTo": "applicant",
      "sourceRef": "Sourced from a professional tax-advisory site's own published guidance on the self-filing dossier (gonnapass.com): \"Hồ sơ khai thuế của cá nhân khai trực tiếp với cơ quan thuế ... Mẫu số 02/QTT-TNCN ... Bảng kê 02-1/BK-QTT-TNCN (Phụ lục bảng kê giảm trừ gia cảnh cho người phụ thuộc)\" — not the form 02/QTT-TNCN's own text, which carries no attachment checklist."
    },
    {
      "id": "withholdingCertificates",
      "label": "Bản sao Giấy chứng nhận khấu trừ thuế do tổ chức trả thu nhập cấp (hoặc chứng từ ngân hàng đối với thuế nộp ở nước ngoài)",
      "category": "supporting-evidence",
      "required": false,
      "requiredWhen": {
        "field": "taxWithheldByIncomePayer",
        "greaterThan": 0
      },
      "belongsTo": "applicant",
      "handling": "disclosed-exception-when-income-payer-has-ceased-operating-and-cannot-issue-a-certificate-the-tax-authority-may-instead-rely-on-its-own-database-without-requiring-this-document",
      "sourceRef": "gonnapass.com: \"Bản sao Giấy chứng nhận khấu trừ thuế (ghi rõ đã nộp thuế theo tờ khai thuế thu nhập nào) do cơ quan trả thu nhập cấp ... cơ quan thuế sẽ căn cứ cơ sở dữ liệu của ngành thuế để xem xét xử lý hồ sơ quyết toán thuế cho cá nhân mà không bắt buộc phải có chứng từ khấu trừ thuế\" (in the case the income payer has ceased operating)."
    },
    {
      "id": "dependentRegistrationDossier",
      "label": "Hồ sơ đăng ký người phụ thuộc (theo Khoản 9.11 Phụ lục I, Nghị định số 126/2020/NĐ-CP)",
      "category": "supporting-evidence",
      "required": false,
      "requiredWhen": {
        "field": "numberOfDependents",
        "greaterThan": 0
      },
      "belongsTo": "dependent",
      "handling": "applies-only-to-a-dependent-not-yet-formally-registered-at-the-time-of-finalization-not-to-every-claimed-dependent-a-narrower-condition-this-schema-has-no-dedicated-field-to-gate-on-so-is-disclosed-here-in-prose",
      "sourceRef": "gonnapass.com: \"Hồ sơ đăng ký người phụ thuộc quy định tại khoản 9.11 Phụ lục I ban hành kèm theo Nghị định số 126/2020/NĐ-CP (nếu tính giảm trừ cho người phụ thuộc tại thời điểm quyết toán thuế đối với người phụ thuộc chưa thực hiện đăng ký người phụ thuộc)\"."
    },
    {
      "id": "charitableDonationProof",
      "label": "Hoá đơn, chứng từ xác nhận đóng góp từ thiện, nhân đạo, khuyến học",
      "category": "supporting-evidence",
      "required": false,
      "requiredWhen": {
        "field": "charitableDonationDeduction",
        "greaterThan": 0
      },
      "belongsTo": "applicant",
      "sourceRef": "gonnapass.com: \"bản sao các hóa đơn, chứng từ xác nhận đóng góp vào các quỹ từ thiện, nhân đạo, quỹ khuyến học (nếu có)\"."
    },
    {
      "id": "foreignTaxPaidProof",
      "label": "Chứng từ nộp thuế ở nước ngoài (bản sao chứng từ ngân hàng, có xác nhận của người nộp thuế nếu cơ quan thuế nước ngoài không cấp xác nhận)",
      "category": "supporting-evidence",
      "required": false,
      "requiredWhen": {
        "field": "foreignTaxPaidDeductible",
        "greaterThan": 0
      },
      "belongsTo": "applicant",
      "sourceRef": "gonnapass.com: \"Bản sao chứng từ ngân hàng đối với số thuế đã nộp ở nước ngoài có xác nhận của người nộp thuế trong trường hợp cơ quan thuế nước ngoài không cấp giấy xác nhận\"."
    },
    {
      "id": "signatureDeclaration",
      "label": "Taxpayer's/representative's closing signature declaration",
      "category": "attestation",
      "required": true,
      "statement": "Tôi cam đoan số liệu khai trên là đúng và chịu trách nhiệm trước pháp luật về những số liệu đã khai./.",
      "sourceRef": "Closing attestation statement, page 3."
    }
  ]
}
