Registry entry

Tunisia Individual Income Tax Declaration — IRPP (التصريح بالضريبة على دخل الأشخاص الطبيعيين)

The Ministry of Economy and Finance's Direction Générale des Impôts (DGI)'s annual "Déclaration de l'Impôt sur le Revenu des Personnes Physiques" (IRPP) — Tunisia's individual income tax return, covering all nine of the tax code's own income categories (industrial/commercial profits, non-commercial professional profits, agricultural/fishing profits, real estate income, wages and pensions, securities and movable-capital income, other income, exempt income, and non-taxable income) plus common deductions and the progressive tax computation. Fetched directly and unauthenticated as a static PDF from the Ministry of Finance's own site, finances.gov.tn. Opens Tunisia's Taxes vertical (GOV-4666, "GovSchema Standard Research"), picked up from GOV-4638's own banked candidate. This schema does not submit the declaration itself; the live source is always authoritative. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of Tunisia, its Ministry of Economy and Finance, or the Direction Générale des Impôts.

Registry entry

tn/dgi/irpp-declaration

Jurisdiction
Tunisia · national
Version
1.0.0
Verification
draft

Authoritative source التصريح بالضريبة على دخل الأشخاص الطبيعيين — Déclaration de l'Impôt sur le Revenu des Personnes Physiques (IRPP)

Machine access

Schema document
registry/tn/dgi/irpp-declaration/1.0.0/schema.jsonapplication/schema+json
Registry catalog
registry/index.jsonone record per schema id

Field reference

64 fields across 9 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.

Filing Identification & Tax References

  • declarationTypeCode enum required

    0 spontaneous, 1 settlement/adjustment, 2 correction, 3 mandatory assessment.

    enum: SPONTANEOUS | SETTLEMENT | CORRECTION | MANDATORY_ASSESSMENT
  • incomeYear integer required

    Income Year

    range: 1990–2100
  • commercialRegisterNumber string optional

    Not every filer under this return is a trader (e.g. wage earners, non-commercial professionals) — left unconditional-optional rather than guessing a correlate.

  • nationalIdNumber string optional

    National ID Card Number

    classification: sensitive-pii
  • foreignResidenceCardNumber string optional

    Foreign Residence Card Number

    classification: sensitive-pii
  • taxId string required

    Tax Identifier (Matricule Fiscal)

  • vatPaymentCode string optional

    VAT Payment Code

  • categoryCode string optional

    Category Code

  • fiscalYearEndDate date optional

    Only meaningful for filers whose fiscal year does not run calendar-year; left optional since the source itself prints no requirement marker.

Duty or Levy Paid on This Declaration

  • incomeTaxAmount number optional

    Income Tax Amount Paid on This Declaration

    classification: financial
  • visitFeeAmount number optional

    Visit Fee Amount Paid on This Declaration

    classification: financial
  • undistributedProfitFundLevyAmount number optional

    Undistributed-Profit Employee Incentive Fund Levy Paid on This Declaration

    classification: financial

Applicant Identity & Address

  • fullName string required

    Full Name

    classification: pii
  • address string required

    Address

    classification: pii
  • postalCode string optional

    Postal Code

  • activity string required

    Activity

Marital Status & Dependents

  • maritalStatus enum required

    Marital Status

    enum: SINGLE | MARRIED | DIVORCED | WIDOWED
  • disabledDependentChildrenCount integer optional

    Number of Disabled Dependent Children in Custody

    range: 0–∞
  • dependentChildrenRemainingCount integer optional

    Dependent Children in Custody Beyond the First Four

    range: 0–∞
  • childSlot1Status enum optional

    This registry's own bounded-slot modelling of the form's own four identically-printed child-status boxes (الأول/الثاني/الثالث/الرابع) — matching this registry's established bounded-slot precedent for forms that print a fixed small number of repeated sub-blocks with no dynamic add-row mechanism. See VERIFICATION.md.

    enum: NO_LONGER_IN_CUSTODY | IN_CUSTODY_UNDER_20 | IN_CUSTODY_UNDER_25_HIGHER_EDUCATION_NO_GRANT
  • childSlot2Status enum optional

    Second Dependent Child — Status Code

    enum: NO_LONGER_IN_CUSTODY | IN_CUSTODY_UNDER_20 | IN_CUSTODY_UNDER_25_HIGHER_EDUCATION_NO_GRANT
  • childSlot3Status enum optional

    Third Dependent Child — Status Code

    enum: NO_LONGER_IN_CUSTODY | IN_CUSTODY_UNDER_20 | IN_CUSTODY_UNDER_25_HIGHER_EDUCATION_NO_GRANT
  • childSlot4Status enum optional

    Fourth Dependent Child — Status Code

    enum: NO_LONGER_IN_CUSTODY | IN_CUSTODY_UNDER_20 | IN_CUSTODY_UNDER_25_HIGHER_EDUCATION_NO_GRANT

Income Category Summary (Categories 1-9)

  • cat1RealRegimeResult number optional

    This registry's own reading of the form's income-category summary grid: each cell is the filer's own final net result for that category/regime, arrived at from this specimen's own per-category detail schedules (pages 2-5), which this v1.0.0 excludes as open backlog. See VERIFICATION.md.

    classification: financial
  • cat1PartnerShareResult number optional

    Category 1 — Industrial & Commercial Profits (Partner's Share in Pass-Through Companies)

    classification: financial
  • cat2RealRegimeResult number optional

    Category 2 — Non-Commercial Professional Profits (Real Regime Net Result)

    classification: financial
  • cat2FlatRateBasisResult number optional

    Category 2 — Non-Commercial Professional Profits (Flat-Rate Basis)

    classification: financial
  • cat2PartnerShareResult number optional

    Category 2 — Non-Commercial Professional Profits (Partner's Share)

    classification: financial
  • cat3RealRegimeResult number optional

    Category 3 — Agricultural/Fishing Profits (Real Regime Net Result)

    classification: financial
  • cat3ReceiptsMinusExpensesResult number optional

    Category 3 — Agricultural/Fishing Profits (Receipts Minus Expenses)

    classification: financial
  • cat3SectoralStandardsResult number optional

    Category 3 — Agricultural/Fishing Profits (Sectoral Standards Basis)

    classification: financial
  • cat3PartnerShareResult number optional

    Category 3 — Agricultural/Fishing Profits (Partner's Share)

    classification: financial
  • cat4RealRegimeResult number optional

    Category 4 — Real Estate Income (Real Regime Net Result)

    classification: financial
  • cat4FlatRateBasisResult number optional

    Category 4 — Real Estate Income (Flat-Rate Basis)

    classification: financial
  • cat4PartnerShareResult number optional

    Category 4 — Real Estate Income (Partner's Share)

    classification: financial
  • wagesAndPensionsIncome number optional

    Category 5 — Wages, Salaries, Pensions & Life Annuities

    classification: financial
  • securitiesAndCapitalIncome number optional

    Category 6 — Income from Securities & Movable Capital

    classification: financial
  • otherIncome number optional

    Category 7 — Other Income

    classification: financial
  • exemptIncome number optional

    Category 8 — Exempt Income

    classification: financial
  • nonTaxableIncome number optional

    Category 9 — Income Not Subject to Tax

    classification: financial

Common Deductions

  • activityIncentiveDeductionsTotal number optional

    The source's own table itemizes this total across multiple incentive-code rows (each row citing a code from the multi-page incentive nomenclature on page 9); this v1.0.0 models only the filed total and defers the itemized per-code breakdown to a future minor version. See VERIFICATION.md.

    classification: financial
  • bankSavingsAccountInterestDeduction number optional

    Bank Savings-for-Investment Account Interest Deduction (Capped at 1,000 TND)

    classification: financial
  • postalSavingsAccountInterestDeduction number optional

    Postal Savings Bank (CENT) Account Interest Deduction (Capped at 1,000 TND)

    classification: financial
  • bondLoanInterestDeduction number optional

    Bond Loan Interest Deduction (Capped at 1,500 TND/year)

    classification: financial
  • compulsoryGratuitousPaymentsDeduction number optional

    Compulsory & Gratuitous Payments Deduction

    classification: financial
  • lifeInsuranceCapitalFormationDeduction number optional

    Life Insurance & Capital-Formation Contract Premiums Deduction (Capped at 10,000 TND/year)

    classification: financial
  • employmentFundDonationDeduction number optional

    Donations to the National Employment Fund Deduction

    classification: financial
  • familyHeadDeductionAmount number optional

    Family Head Deduction Amount

    classification: financial
  • dependentChildrenDeductionAmount number optional

    Dependent Children Deduction Amount

    classification: financial
  • dependentParentsInCustody boolean optional

    Claiming Dependent Parent(s) in Custody

  • dependentParentsDeductionAmount number optional

    Dependent Parent(s) Deduction Amount

    classification: financial
  • studentLoanRepaymentDeduction number optional

    University Loan Principal & Interest Repayment Deduction

    classification: financial
  • nonWageSocialSecurityContributionsDeduction number optional

    Non-Wage-Earner Social Security Contributions Deduction

    classification: financial
  • socialHousingLoanInterestDeduction number optional

    Social Housing Acquisition/Construction Loan Interest Deduction

    classification: financial
  • reinvestedIncomeDeductionTotal number optional

    The source's own table itemizes this total per recipient company (legal framework code, invested amount, recipient company's name/tax ID); this v1.0.0 models only the filed total and defers the itemized per-company breakdown to a future minor version. See VERIFICATION.md.

    classification: financial

Taxable Income & Tax Due

  • netTaxableIncomeBeforeMinWageDeduction number required

    Net Taxable Income (Before Minimum-Wage Deduction)

    classification: financial
  • minimumWageDeduction number optional

    1,000-Dinar Minimum-Wage-Earner Deduction

    classification: financial
  • netTaxableIncomeFinal number required

    Final Net Taxable Income (Whole Dinar)

    classification: financial
  • totalTaxDue number required

    The bracket table itself (0%/15%/20%/25%/30%/35% against fixed dinar thresholds) is a printed reference schedule, not filer-supplied data — only the resulting total is modelled, per this registry's established computed-line exclusion convention. See VERIFICATION.md.

    classification: financial

Withholding Credits & Balance Direction

  • withholdingCreditsTotal number optional

    Total Withholding Tax & Advance Payments Credited

    classification: financial
  • taxBalanceDirection enum optional

    Tax Balance Direction

    enum: SURPLUS | DUE

Summary, Penalties & Declaration

  • totalLatePenalties number optional

    Total Late-Filing Penalties

    classification: financial
  • refundOrDueIndicator enum optional

    Final Balance — Refund or Amount Due

    enum: REFUND | DUE
  • placeOfSigning string optional

    Place of Signing

Verification record

Candidate selection

GOV-4666 ("GovSchema Standard Research"). GOV-4638 (a prior cycle of the same recurring routine) scouted Tunisia's Taxes candidate as STRONG: "the Ministry of Finance/DGI's IRPP declaration, finances.gov.tn, 804KB, 13 pages" — but banked it rather than authoring it, since that cycle's scope was the new- jurisdiction opening itself (Tunisia's Passport vertical). This cycle re-scouted and independently re-fetched the candidate before authoring it, opening Tunisia's Taxes vertical (4 of 6: Passport, National ID, Business Formation, now Taxes). Tunisia's remaining vertical (Visa — scouted STRONG by GOV-4638) and DMV (weak) are unchanged open backlog.

Reaching the live source

Found via web search for the form's own French name ("Déclaration de l'Impôt Sur le Revenu Des Personnes Physiques"), landing on the Ministry of Finance's own document page, https://www.finances.gov.tn/fr/document/declaration-de-limpot-sur-le-revenu-des-personnes-physiques, which links the PDF at a site-relative path.

  • Plain unauthenticated curl request (realistic desktop User-Agent header; -k to skip TLS verification, no session/cookie state, no CAPTCHA/WAF challenge).
  • Direct PDF URL: https://www.finances.gov.tn/sites/default/files/2019-08/dec_irpp_2014_0.pdf — HTTP 200, 803,784 bytes retrieved, matching GOV-4638's own banked estimate ("804KB") almost exactly.
  • sha256 of the retrieved bytes: 4f8ae27da41e54e7c992ed6edc8cd1086a403fd625530cd663cddf46247501a5.
  • 13 physical PDF pages, confirmed via pdfjs-dist's numPages; the document's own printed footer numbers pages 1-12 ("n/12"), with the 13th PDF page being a separate, distinctly-headed annex ("قائمة مفصلة في المبالغ المخصومة من المورد بعنوان الضريبة على الدخل و الضريبة على الشركات" — a detailed list of amounts withheld at source), printed landscape and restarting its own "1/12" page count — a genuinely separate, dynamically multi-page attachment bundled into the same file, not part of the core 12-page declaration.
  • getAnnotations() returned 0 annotations on every page — a flat, print-and-fill specimen, not an interactive AcroForm (same as tn/dgi/declaration-of-existence).
Authority attribution

Page 1's own header carries "الجمهورية التونسية / وزارة الاقتصاد والمالية / الإدارة العامة للأداءات" (Republic of Tunisia / Ministry of Economy and Finance / General Directorate of Duties). authority is modelled identically to tn/dgi/declaration-of-existence@1.0.0 — the Direction Générale des Impôts (DGI) under the Ministry of Finance — the same authority, a different form.

Extraction method

pdfjs-dist's getTextContent() extracted a text layer on every page, but exactly like tn/dgi/declaration-of-existence, the extracted string order did not reassemble into readable Arabic — the same fourth-failure-mode (genuine Arabic Unicode codepoints, but glyph-paint order not matching logical reading order) already documented for this registry's Tunisian DGI sources. A node-canvas render at 3x scale (6x for one detail crop of page 1's income-category grid, to resolve exact sub-column boundaries) was used as the primary reading method for every field label, checkbox, and table header — not the raw getTextContent() string order.

Document structure & scope

This is a 12-printed-page individual income tax return (IRPP) plus the 13th-PDF-page withholding annex described above. Its 12 pages are:

  1. Identification, filing-type code, payment-basis table, applicant name/ address/activity, marital status and dependent-children detail, and the income-category summary grid — nine numbered columns (1-9) each corresponding to one of the tax code's own income categories, several with sub-columns for a real-regime/flat-rate/sectoral-standard/partner- share breakdown (17 blank cells total).

2-5. Per-category detailed build-up schedules — one or two pages each for industrial/commercial profits, non-commercial professional profits, agricultural/fishing profits, real estate income, wages/pensions, and securities/movable-capital income, each showing the turnover/receipts/ expense/stock-value line items and a "النتيجة المحاسبية"/"النتيجة الجبائية" (accounting/tax result) subtotal feeding into the page-1 grid cell for that category.

  1. Common deductions (activity tax-incentive deductions, ~13 named other deductions, reinvested-income deduction) and the two-stage tax computation (net taxable income adjustment, then the progressive bracket table: 0%/15%/20%/25%/30%/35% against fixed dinar thresholds).
  2. Minimum-tax adjustment (a turnover-based anti-avoidance floor) and withholding/advance-payment credits.
  3. Exempt-income itemization, the final "الخلاصة" (summary) reconciliation table, the signed declaration/attestation, and an administration-only ("خاص بالإدارة") receipt-processing block.
  4. A reference table of ~60 tax-incentive codes (a nomenclature the filer cites by code in page 6's activity-incentive-deductions table, not a set of fields in itself).
  5. A ~32-item "documents accompanying the declaration" checklist (yes/no per item), most items conditioned on which income category/regime applies.

11-12. Supplementary disclosure blocks: secondary-branch detail, a second (redundant) dependent-children table, and identifying information for the filer's accountant and tax advisor.

What this v1.0.0 models, and why

Given the scale above, this v1.0.0 models the core declaration: page 1's identification and income-category summary grid (the actual filed numbers), page 6's common deductions and tax computation, page 7's withholding-credit total and balance-direction checkbox, and page 8's final summary/penalties/ signature — 64 fields[] across 9 steps, plus 11 documents[] entries (a representative subset of page 10's checklist, plus the signed-declaration attestation).

Explicitly excluded and banked as open backlog for a future minor version, matching this registry's established main-form-now/companion- schedules-later precedent (Kazakhstan's 220.00/250.00 series, GOV-4043..GOV-4085):

  • Pages 2-5's per-category detailed build-up schedules (turnover, purchases, stock values, receipts-minus-expenses derivations) — page 1's own grid cells are modelled as the filer's final, directly-supplied net-result figures per category (the source prints no formula tying these cells to any other page-1 cell), so the filed numbers are captured even without the derivation schedules.
  • Page 7's minimum-tax floor computation (a narrow, turnover-based anti-avoidance provision with several intermediate cells).
  • Page 8's exempt-income itemization (category 8's grid cell already captures the filed total).
  • Page 9's ~60-row tax-incentive code nomenclature (a reference lookup, not a field set — activityIncentiveDeductionsTotal's own description points filers back to this table).
  • The remaining ~21 items of page 10's ~32-item documents checklist (the ones modelled are the broadly-applicable financial-statement/schedule items; the deferred ones are narrow, category-specific edge cases — e.g. asset-transfer-on-retirement certificates, agricultural-land-lease certificates, share-listing commitments).
  • Pages 11-12's branch/dependent/accountant/tax-advisor disclosure blocks.
  • The 13th-PDF-page withholding annex (a genuinely separate, separately- paginated attachment, per the Document Structure section above).

Judgment calls

  • Income-category grid cells modelled as directly-supplied, not computed. Per this registry's established convention (only exclude a cell the source itself defines as a formula/sum of other modelled cells), page 1's 17 grid cells are not excluded even though a real filer would arrive at each number via the (excluded) pages 2-5 schedules — those schedules are not themselves modelled in this v1.0.0, so nothing in this schema computes these cells; they are the filer's own final, independently-arrived-at numbers.
  • totalTaxDue modelled, the bracket table itself excluded — the 0%-35% rate/threshold table is a printed reference schedule, matching this registry's Kazakhstan-established computed-line exclusion convention.
  • Bounded 4-slot dependent-child status fields (childSlot1Status.. childSlot4Status), matching this registry's established bounded-slot precedent — the source prints exactly four identically-structured "الأول/الثاني/الثالث/الرابع" boxes with no dynamic add-row mechanism.
  • dependentParentsDeductionAmount gated on dependentParentsInCustody — the only requiredWhen gate in this schema, chosen because it is the one deduction line on page 6 with an explicit checkbox precondition printed beside it (footnote 7); every other deduction line is left unconditional-optional since the source states caps/eligibility rules in its footnotes but prints no boolean gate.
  • Documents left unconditional-optional despite the source's own checklist being regime/category dependent — this v1.0.0 does not model a real/flat-rate regime-selection field (that granularity lives in the deferred pages 2-5), so no clean boolean correlate exists yet; modelled as optional rather than inventing a condition, following this registry's tn/dgsn/national-identity-card-application precedent for the same situation.
  • fiscalYearEndDate typed as date despite the source printing day/month/year boxes that most filers leave blank (calendar-year filers have no reason to complete it) — modelled optional, matching the boxes as printed.

Validation

  • node tools/validate.mjs registry/tn/dgi/irpp-declaration/1.0.0/schema.json — pass.
  • node tools/validate-ajv.mjs registry/tn/dgi/irpp-declaration/1.0.0/schema.json — pass (ajv 2020-12, v0.3 meta-schema).
  • An ephemeral, uncommitted Node conformance script exercised the schema's one requiredWhen gate (dependentParentsDeductionAmount on dependentParentsInCustody) plus static-required and unknown-field rejection across 5 scenarios (2 positive, 3 negative) — all 5 behaved as expected.
  • npm run build-index (in tools/govschema-client/) regenerates registry-index.json to include this document.

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 Direction Générale des Impôts (Ministère des Finances) or any government. The authoritative source is always the live government form and its official instructions.