Registry entry

Namibia Return of Income: Individual (Form 6-0/0014C/1)

The Namibia Revenue Agency's (NamRA) "Return of Income: Individual" (Form 6-0/0014C/1), the annual domestic-tax return an individual taxpayer must render on or before 30 June of each year, per the form's own printed instruction. Opens Namibia as a new jurisdiction (GOV-4491, child of GOV-4488 "GovSchema Standard Research", following GOV-4424's original scouting pass and GOV-4488's re-verification of the live source immediately before this authoring cycle). This is the simplified edition of the individual return, restricted by the form's own printed Note 6 to taxpayers with at most one employer/retirement fund and no farming or other business income during the year of assessment — taxpayers with more than one employer, partial-year employment, deductible expenses against remuneration, or farming/business activity are directed by the same note to complete Form 6-0/0014B or 6-0/0014A instead, which this schema does not model. This schema models Schedule 1 (Personal Particulars, contact details, banking details, and the signed declaration), the prior-year-filing and Namibia-residency-transition questions, Schedule 2 (a 6-slot bounded table of dependent children/stepchildren), Schedule 3 (salary/wages/pension income, its two same-schedule deduction items with attached fund names, and the housing/company-vehicle disclosure questions), and the Employees' Tax Deducted table (a 3-slot bounded table of PAYE 5 certificate numbers and amounts). Every printed line that is purely a same-form arithmetic total of other same-form lines (the Schedule 3 Sub-Total, Total Deductions, and Net Salary lines, and the Employees' Tax Deducted table's own Sum of Employees' Tax Credits line) is excluded from `fields[]`, per this registry's standing closed decision to defer calculated/derived fields (GSP-0013 §7, founder-confirmed on GOV-302) — see this document's own VERIFICATION.md for the full list of excluded lines and disclosed findings. This schema does not file the return itself; the live source is always authoritative. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of the Republic of Namibia or the Namibia Revenue Agency.

Registry entry

na/namra/return-of-income-individuals

Jurisdiction
Namibia · national
Version
1.0.0
Verification
draft

Authoritative source Form 6-0/0014C/1, "Return of Income: Individual"

Machine access

Registry catalog
registry/index.jsonone record per schema id

Field reference

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

Tax Year and Office of Registration

  • taxYear integer required

    The year of assessment this return covers.

    range: 1000–9999
  • registrationOffice string required

    The NamRA office at which the taxpayer is registered.

  • taxFileIdentificationNumber string required

    The taxpayer's own file identification number, which the source's own instruction says must always be mentioned in correspondence and at interviews.

    classification: pii

Schedule 1: Personal Particulars

  • initialsAndSurname string required

    Initials and Surname

    classification: pii
  • postalAddress string required

    The taxpayer's postal address, printed as a single multi-line block.

    classification: pii
  • firstNames string required

    First Names: Self

    classification: pii
  • identityNumber string required

    Identity No.: Self

    classification: sensitive-pii
  • residentialAddress string required

    The taxpayer's residential address, printed as a single multi-line block.

    classification: pii
  • magisterialDistrict string required

    Magisterial District

  • returnOffice string required

    The NamRA regional office this return is being submitted to.

  • spouseFullName string optional

    Spouse's Full Name

    classification: pii
  • spouseTaxFileIdentificationNumber string optional

    Spouse's Income Tax File Identification No.

    classification: pii

Taxpayer's Contact Details

  • workTelephoneNumber string optional

    Work Telephone No.

    classification: pii
  • homeTelephoneNumber string optional

    Home Telephone No.

    classification: pii
  • faxNumber string optional

    Fax No.

  • cellphoneNumber string optional

    Cellphone No.

    classification: pii
  • emailAddress string optional

    Email Address

    patternlength: 0–254classification: pii

Taxpayer's Banking Details

  • bankName string optional

    The source's own instruction notes banking details are requested because refunds are transferred electronically to the taxpayer's bank account.

  • branchCode string optional

    Branch Code

  • accountNumber string optional

    Account No.

    classification: financial
  • accountType enum optional

    Mark one of the three printed account-type boxes.

    enum: SAVINGS | CURRENT | TRANSMISSION
  • accountHolder string optional

    Account Holder

    classification: pii

Prior-Year Filing and Namibia Residency

  • renderedReturnLastYear boolean required

    Did You Render a Return of Income for Last Year?

  • priorYearReturnOffice string optional

    The NamRA office to which last year's return of income was rendered.

  • priorYearIncome number optional

    Printed only for a taxpayer who did not render a return of income last year, in Namibia Dollars.

    range: 0–∞
  • dateOfArrival date optional

    Only applicable if the taxpayer was previously resident outside Namibia and arrived (or returned) during the year of assessment.

  • dateOfDeparture date optional

    Only applicable if the taxpayer has left Namibia during the year of assessment.

Schedule 2: Own Children or Stepchildren Supported

  • child1Name string optional

    Schedule 2's printed table has exactly 6 numbered rows (1-6); flattened here to child1..child6, per this registry's bounded-repeating-group convention. Not required: a taxpayer with no children, or fewer than 6, leaves the remaining rows blank. Each row is for an own child or stepchild who, on the last day of the year of assessment, was unmarried, not over the age of 26, and not liable for the payment of Income Tax during the year, per Schedule 2's own printed (a)-(c) conditions.

    classification: pii
  • child1BirthMonth string optional

    Child/Stepchild 1: Date of Birth — Month

    pattern
  • child1BirthYear integer optional

    Child/Stepchild 1: Date of Birth — Year

    range: 1000–9999
  • child2Name string optional

    Child/Stepchild 2: Name and Surname

    classification: pii
  • child2BirthMonth string optional

    Child/Stepchild 2: Date of Birth — Month

    pattern
  • child2BirthYear integer optional

    Child/Stepchild 2: Date of Birth — Year

    range: 1000–9999
  • child3Name string optional

    Child/Stepchild 3: Name and Surname

    classification: pii
  • child3BirthMonth string optional

    Child/Stepchild 3: Date of Birth — Month

    pattern
  • child3BirthYear integer optional

    Child/Stepchild 3: Date of Birth — Year

    range: 1000–9999
  • child4Name string optional

    Child/Stepchild 4: Name and Surname

    classification: pii
  • child4BirthMonth string optional

    Child/Stepchild 4: Date of Birth — Month

    pattern
  • child4BirthYear integer optional

    Child/Stepchild 4: Date of Birth — Year

    range: 1000–9999
  • child5Name string optional

    Child/Stepchild 5: Name and Surname

    classification: pii
  • child5BirthMonth string optional

    Child/Stepchild 5: Date of Birth — Month

    pattern
  • child5BirthYear integer optional

    Child/Stepchild 5: Date of Birth — Year

    range: 1000–9999
  • child6Name string optional

    Child/Stepchild 6: Name and Surname

    classification: pii
  • child6BirthMonth string optional

    Child/Stepchild 6: Date of Birth — Month

    pattern
  • child6BirthYear integer optional

    Child/Stepchild 6: Date of Birth — Year

    range: 1000–9999

Schedule 3: Salary, Wages, Pension and Annuities

  • employerRevenueCode string optional

    The Revenue Code identifying the trade or profession of the taxpayer's employer and/or retirement fund, per the form's own printed Revenue Codes list. Schedule 3 in its entirety is only applicable to a taxpayer with salary, wages, pension, or annuity income during the year, consistent with this registry's established convention for optional income-statement lines.

  • employerOrFundName string optional

    Name of Employer or Retirement Fund

  • employmentPeriod string optional

    Per this form's own Note 6, this simplified edition only covers a taxpayer employed for the full year of assessment; a taxpayer employed for only part of the year is directed to Form 6-0/0014B or 6-0/0014A instead.

  • grossAmount integer optional

    Whole Namibia Dollars only, per the column's own printed "(N$ ONLY)" heading.

    range: 0–∞
  • pensionProvidentFundContribution integer optional

    Less 1: Current Contributions to Approved Pension/Provident Fund

    range: 0–∞
  • pensionProvidentFundName string optional

    Name of Fund (Pension/Provident)

  • retirementAnnuityFundContribution integer optional

    Per the form's own Note 5, when this contribution is claimed as a deduction the fund administrator's certificate must be attached unless already shown on the taxpayer's PAYE 5 Certificate.

    range: 0–∞
  • retirementAnnuityFundName1 string optional

    The printed "Name of Fund(s)" caption has exactly 2 blank lines; flattened here to retirementAnnuityFundName1/2, per this registry's bounded-repeating-group convention.

  • retirementAnnuityFundName2 string optional

    Name of Fund(s) (Retirement Annuity) — 2

  • childEducationInsurancePremium integer optional

    Per the form's own Note 5, when this premium is claimed as a deduction the policy insurer's certificate must be attached unless already shown on the taxpayer's PAYE 5 Certificate.

    range: 0–∞

Schedule 3: Housing and Company Vehicle Disclosure

  • ownsResidence boolean required

    Are You the Owner of the House You Are Residing In?

  • ownerNameAddress string optional

    Name and Address of Owner

    classification: pii
  • rentalPaidToOwner number optional

    Amount of Rental Paid to the Owner

    range: 0–∞
  • ownerIsEmployer boolean optional

    Whether the Owner of the Property Is Also Your Employer

  • ownsCompanyVehicle boolean required

    Are You in Possession of a Company Vehicle?

  • vehicleMakeModel string optional

    Make and Model of Vehicle

  • vehiclePurchasePrice number optional

    Purchase Price

    range: 0–∞
  • vehicleConditionsOfUse string optional

    E.g. limitation regarding costs paid by employer or limitations regarding kilometres travelled for private purposes, per the form's own printed example.

Employees' Tax Deducted

  • payeCertificateNumber1 string optional

    The printed "Employees' Tax Deducted" table has exactly 3 blank rows; flattened here to payeCertificateNumber1..3 / employeesTaxDeducted1..3, per this registry's bounded-repeating-group convention.

  • employeesTaxDeducted1 number optional

    Employees' Tax Deducted 1 (N$)

    range: 0–∞
  • payeCertificateNumber2 string optional

    PAYE 5 Certificate Number 2

  • employeesTaxDeducted2 number optional

    Employees' Tax Deducted 2 (N$)

    range: 0–∞
  • payeCertificateNumber3 string optional

    PAYE 5 Certificate Number 3

  • employeesTaxDeducted3 number optional

    Employees' Tax Deducted 3 (N$)

    range: 0–∞

Declaration

  • declarantName string required

    Name

    classification: pii
  • declarationDate date required

    Date

Verification record

Candidate selection

GOV-4491 ("GovSchema Standard Research", child of GOV-4488), delegated after GOV-4488 re-scanned two banked candidates from the GOV-4424 scouting pass (2026-07-22) that had never been picked up for authoring: Tajikistan (Taxes, delegated separately as GOV-4490) and Namibia (Taxes, this cycle). Namibia has no existing GovSchema entries — this schema opens Namibia as a new jurisdiction, Taxes vertical (1 of 6).

Reaching the live source, and the pre-flagged file-size change

The delegating issue explicitly flagged, before authoring began, that the source PDF had grown from 1,097,728 bytes (the GOV-4424 banked record) to 2,124,999 bytes, and instructed re-deriving field count/structure from scratch rather than trusting the prior byte count or any assumed field list. This cycle independently re-fetched rather than reusing either number at face value:

  • https://itas.namra.org.na/assets/documents/return-forms/Return_for_Individual.pdf
  • Required a browser-like User-Agent and a Referer: https://itas.namra.org.na/ header, per the delegating issue's own disclosed gotcha — a plain default-UA request does hit a WAF; with both headers set, HTTP 200, Content-Type: application/pdf.
  • Downloaded size: 2,124,999 bytes, exactly matching the delegating issue's own re-verified figure (2026-07-23), confirming this is the same fresh specimen the issue flagged, not a further-changed document.
  • sha256 of the retrieved bytes: 3c71d4fcbb28c26643485e3c07e0656d8b7f2d63e199dff25816371ff520e99e.

Despite the ~2MB size (roughly double the banked estimate), the document itself is a short, 4-page form — the size increase is attributable to embedded fonts/rasterized branding assets, not additional pages or fields. pdfjs-dist (build/pdf.js, vendored at /tmp/node_modules/pdfjs-dist) getAnnotations() confirmed zero /Widget annotations across all 4 pages — a flat (non-AcroForm) specimen, so no assumption about field count or structure could be sourced from widget names; every field below was derived from the text layer and rendered page images instead.

Extraction method

getTextContent() read every text item's raw string and transform x/y position across all 4 pages, grouped into printed rows by rounded y-coordinate, to reconstruct the form's own schedule/section layout and every printed label. node-canvas (createCanvas, vendored at /tmp/node_modules/canvas) then rendered each page to a PNG at 2.5x scale to independently confirm box/table geometry, checkbox layout, and row counts that the text layer alone could not disambiguate (in particular, the exact slot counts of Schedule 2's children table, Schedule 3's Retirement Annuity "Name of Fund(s)" lines, and the Employees' Tax Deducted table's PAYE 5 certificate rows).

Document structure

The 4-page form (6-0/0014C/1, "Return of Income: Individual", "DOMESTIC TAXES") is laid out as:

  • Page 1 — header (Tax Year, Office of Registration, File Identification Number), Schedule 1: Personal Particulars (name, addresses, identity number, magisterial district, return office, spouse's name/file number), Taxpayer's Contact Details, Taxpayer's Banking Details, and the signed Declaration. A "FOR OFFICIAL USE — DATE RECEIVED" box is office-only.
  • Page 2 — prior-year-filing question (with a to-which-office/what- was-your-income branch), previously-resident-outside-Namibia / left-Namibia date questions, Schedule 2 (a 6-row table of supported children/stepchildren, each row itself a name plus month/year of birth), and a page of "Important Notes and Instructions" (Notes 1-6, prose only, no fields of their own — Note 6 is the one that scopes this entire form, see below).
  • Page 3 — a Revenue Codes reference table (informational, not a field, cited by Schedule 3's own Revenue Code line), Schedule 3: Salary, Wages, Fees, Commission, Bonus, and other benefits arising from employment as well as Pension and Annuities (one employer/fund row, three "Less:" deduction items, and the (a)/(b) housing/company-vehicle disclosure questions).
  • Page 4 — a note that Schedule 4 (Pension/Provident Fund refunds) is not part of this form, the Employees' Tax Deducted table (3 PAYE 5 certificate rows), a Statutory Tax Rates reference table (informational only), NamRA's own Inland Revenue banking details for payment-by- transfer (office/payee data, not applicant data), and the NamRA Regional Offices address directory (informational).

Scope: this is the simplified, full-year-single-employer edition

Note 6 (page 2) is explicit and controls this schema's scope: a taxpayer who worked for more than one employer and/or received pension/annuities from more than one retirement fund during the year, who was employed for only part of the year, who wants to claim expenses as a deduction from remuneration, or who was involved in farming or other business activities, is directed to complete Form 6-0/0014B (blue) or 6-0/0014A (yellow) instead — this specimen's own Schedule 3 accordingly prints only a single employer/fund row (confirmed both from the text layer and the rendered page image), not a repeating table. This schema therefore models the single-employer, full-year edition only; the blue/yellow forms are out of scope for this cycle and not modelled here.

Scope: fields excluded as purely computed from other same-form lines

Per this registry's standing closed decision to defer calculated/derived fields (GSP-0013 §7, founder-confirmed on GOV-302):

  • Schedule 3, SUB-TOTAL — the sum of the (single) employer/fund gross amount row; with only one row on this specimen it is a trivial identity, but it is still a same-form computed total, not independently supplied data.
  • Schedule 3, TOTAL DEDUCTIONS — the sum of the three "Less:" items (Pension/Provident Fund contribution, Retirement Annuity Fund contribution, child education/training insurance premium).
  • Schedule 3, NET SALARY (Line No. 2) — Sub-Total minus Total Deductions.
  • Page 4, SUM OF EMPLOYEES' TAX CREDITS — the total row of the Employees' Tax Deducted table, printed directly beneath the three PAYE 5 certificate rows sharing the same N$/Cents columns; read as the same- table sum of the three rows above it, consistent with the same determinism-based exclusion test already applied elsewhere in this registry (e.g. bo/sin/formulario-200-iva).

Scope: office-only / third-party fields excluded

  • "FOR OFFICIAL USE — DATE RECEIVED" (page 1) is excluded as an office-only receipt-date stamp, not applicant-supplied data.
  • NamRA's own "Inland Revenue Banking Details" (page 4 — bank name, branch code, account name, account number, reference number for paying NamRA by transfer) is excluded in its entirety as the payee's own fixed payment details, not applicant data — the taxpayer's own banking details (Schedule 1) are modelled, since refunds are paid into that account, but NamRA's receiving account is not a schema input.
  • NamRA Regional Offices address directory (page 4) and the Revenue Codes and Statutory Tax Rates reference tables (pages 3-4) are excluded as printed reference material the form cites, not blanks the applicant fills in.

Disclosed findings and interpretation choices

  1. "OFFICE OF REGISTRATION" is modelled as two separate fields (registrationOffice, taxFileIdentificationNumber), matching the two distinct blank boxes printed side by side under that heading, the second of which the source's own instruction singles out ("ALWAYS MENTION THIS FILE IDENTIFICATION NUMBER IN YOUR CORRESPONDENCE AND AT INTERVIEWS"). Both are modelled required: true notwithstanding the page's own instruction that these blocks are typically pre-printed by NamRA for an already-registered taxpayer and only need completing "where particulars are missing or have changed" — this schema models the return's full data content regardless of who conventionally populates it first.
  2. "RETURN OFFICE" (Schedule 1) is modelled as a separate field from "OFFICE OF REGISTRATION" (page 1 header), both left as plain free-text strings rather than constrained to the enumerated list of 7 NamRA regional offices printed on page 4 — that address directory is presented as contact information, not explicitly cited by either field as its authoritative value set, so this schema does not assume the two concepts are drawn from an identical closed list without the source saying so.
  3. The prior-year-filing question branches, and both branches are modelled with requiredWhen against the same boolean (renderedReturnLastYear): "TO WHICE OFFICE?" is required only when true (rendered a return last year); "WHAT WAS YOUR INCOME FOR LAST YEAR?" is required only when false (did not render a return last year) — read directly off the specimen's own row alignment (YES sits beside "TO WHICH OFFICE?"; NO sits beside "WHAT WAS YOUR INCOME FOR LAST YEAR?").
  4. "IF PREVIOUSLY RESIDENT OUTSIDE NAMIBIA" and "IF YOU HAVE LEFT NAMIBIA" are not modelled as separate boolean/checkbox fields. The rendered page image confirms neither caption has its own adjacent input box — only the paired "DATE OF ARRIVAL" / "DATE OF DEPARTURE" DDMMYYYY boxes are genuine fillable fields. Both are modelled as plain optional date fields; a supplied value itself signals the condition applies, avoiding a fabricated gating boolean the source does not provide, per this registry's own established precedent (e.g. ng/firs/fct-irs-personal-income-tax-return-form-a's spouse/children block).
  5. Schedule 2's children table is flattened to 6 bounded slots (child1Name/child1BirthMonth/child1BirthYear through child6...), matching the specimen's own 6 numbered rows (confirmed by the rendered page image), per this registry's established bounded-repeating-group convention (e.g. ng/firs's 4-slot children table). All slots are optional. Date of birth is modelled as two separate fields (month, year) rather than a single date value, since the source itself prints only "Month" and "Year" sub-columns with no day column — mirroring bo/sin/formulario-200-iva's own periodMonth/periodYear split for the same reason (a source that genuinely omits a day component cannot be forced into a full-date type).
  6. Schedule 3's Retirement Annuity Fund "Name of Fund(s)" caption is flattened to 2 bounded slots (retirementAnnuityFundName1/2), confirmed by rendering the specific ruled sub-area, which shows exactly two blank lines beneath the single caption (item 1, Pension/Provident Fund, prints only one "Name of Fund" line by contrast).
  7. grossAmount and the three Schedule 3 "Less:" deduction amounts are modelled type: integer, per the Gross Amount column's own printed "(N$ ONLY)" heading confirming whole-Namibia-Dollar amounts with no cents column in that part of the form — the same modelling choice bo/sin/formulario-200-iva makes for its own "(EN BOLIVIANOS SIN CENTAVOS)" column.
  8. The Employees' Tax Deducted table's three amount fields (employeesTaxDeducted1/2/3) are each modelled as a single type: number field, even though the source prints two adjacent boxed columns ("N$" and "Cents") per row. A single decimal-capable field carries the same information without loss (e.g. 1234.56); no existing schema in this registry splits a currency amount into separate whole/cents subfields, so this keeps the modelling consistent with the registry's established currency-field convention rather than introducing a new one for a single form.
  9. The Employees' Tax Deducted table's own "Line No." column is excluded — unlike Schedule 3's own "Line No." column (which is pre-printed with "1" and "2", confirmed in the text layer, genuinely labelling the Gross Amount and Net Salary lines), this table's "Line No." column has no pre-printed values anywhere in the extracted text and no stated purpose distinct from the row's own position — treated as a redundant sequence marker with no independent information content, the same class of exclusion this registry draws around pure administrative counters (e.g. bo/sin/formulario-200-iva's own "NÚMERO DE ORDEN").
  10. emailAddress validation reuses this registry's own single-escaped email pattern (^[^@\s]+@[^@\s]+\.[^@\s]+$, one backslash per JSON string, not two), specifically to avoid the double-escaped-regex defect this registry has previously caught and fixed (py/suace/business-formalization-individual, GOV-4437).
  11. Two documents[] entries derived from Schedule 3's own printed attachment instructions are left plain-optional rather than requiredWhen-gated against a Schedule 3 field (grossAmount, a fund-contribution amount, etc.) — this registry has previously caught and fixed a bug class where gating a field's/document's requiredness on notEquals against another field that may be genuinely absent (not just empty) produces incorrect requiredness (see this registry's own notEquals-empty-string-absent-field lesson, most recently avoided in za/dha/visa-application). Both attachments are disclosed as conditionally applicable in their own handling/sourceRef text instead.
  12. accountType is modelled as an enum (SAVINGS/CURRENT/ TRANSMISSION), matching the three printed checkbox labels the taxpayer marks exactly one of.
  13. Every Schedule 3 field is modelled required: false, consistent with this registry's established convention for income-statement lines that do not apply to every filer (this return "must be rendered even if there is no tax payable", per the form's own printed instruction) — mirroring bo/sin/formulario-200-iva and zm/zra/individual-income-tax-return's own treatment of their income/ deduction lines.
  14. ownsResidence and ownsCompanyVehicle are modelled required: true, since both questions are printed unconditionally for every filer regardless of employment/income status, unlike the Schedule 3 income lines above them; their conditional sub-fields ((a)(i)-(iii), (b)(i)-(iii)) are requiredWhen-gated on the respective boolean.

Conformance

3 valid mock scenarios — valid-single-employer-return (a straightforward on-time filing with one employer, standard deductions, no children, no company vehicle, owns own residence); valid-return-with-children-and-rental (a filing with 3 supported children populated, does not own the residence so the (a)(i)-(iii) rental-disclosure fields are populated, and a prior-year-income answer since no return was rendered last year); and valid-return-with-company-vehicle-and-paye-certificates (a filing with the company-vehicle (b)(i)-(iii) fields populated and all 3 Employees' Tax Deducted PAYE 5 certificate rows populated) — plus 5 mutation-control fixtures (one missing statically-required field from each of taxYear, initialsAndSurname, identityNumber, ownsResidence, declarantName) and one unknown-field-rejected fixture, committed under conformance/na/namra/return-of-income-individuals/1.0.0/.

An ephemeral, from-scratch conformance checker (deriving required/ requiredWhen rules directly from this schema's own fields[], discarded after use, not committed) ran all fixtures: all 3 valid scenarios at 0 errors, all 5 mutation controls each raising exactly 1 error, and the unknown-field fixture correctly rejected. Validated clean with node tools/validate.mjs and node tools/validate-ajv.mjs, individually and as part of the full registry run. registry-index.json regenerated via npm run build-index in tools/govschema-client/.

View the raw record (VERIFICATION.md)

Version history

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

Independent and non-affiliated

GovSchema is an independent, open-source project. This reference is not produced, reviewed, or endorsed by Namibia Revenue Agency or any government. The authoritative source is always the live government form and its official instructions.