{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "pt/at/declaracao-rendimentos-irs-modelo-3",
  "version": "1.0.0",
  "title": "Portugal Annual Personal Income Tax Return (Modelo 3 IRS) — Rosto and Anexo A (Employment and Pension Income)",
  "description": "Portugal's Modelo 3, \"Declaração de Rendimentos - IRS\" (Imposto sobre o Rendimento das Pessoas Singulares), the annual personal income tax return every Portuguese-resident individual (and certain non-residents) with IRS-taxable income must file with the Autoridade Tributária e Aduaneira (AT), as required by art. 57.º of the Código do IRS. The declaration is always a Rosto (cover page/frontpage) accompanied by whichever of its Anexos (A through L) correspond to the income categories obtained. This schema is deliberately bounded to the single most common filer profile — a Portuguese-resident salaried employee and/or pensioner with no other income category — and models: the Rosto's own service-office/tax-year identification, taxpayer and (if applicable) spouse/civil-partner identification and marital status, the joint- vs separate-taxation election, fiscal residence region, refund IBAN, declaration nature (original vs substitution), the 1%/0.5% IRS and IVA consignment election, and the annex-count table; plus Anexo A's Quadro 4A income table for its two most common income codes (401, trabalho dependente/employment income, and 403, pensões/pensions) and Quadro 4F.1's current \"IRS Jovem\" (young-worker tax regime, art. 12.º-B do Código do IRS) election. It deliberately does NOT model: any other Anexo (B business/professional income, C simplified-regime business income, D transparent-entity income, E capital income, F rental income, G capital gains, G1 non-taxed capital gains, H tax benefits/deductions, I undivided estate, J foreign-source income, L non-habitual-resident income); the Rosto's household/dependents tables (Quadro 6, 6A-6C), ascendants/foster-family tables (Quadro 7), non-resident and partial-residence fiscal-residence tables (Quadro 8B/8C), special-deadline table (Quadro 13), or its agency-reserved \"Reservado aos Serviços\" box (Quadro 14); nor Anexo A's own less-common tables covering prior-years' income (Quadro 5A/5B), pre-reforma contracts, startup equity-incentive income (Quadro 4D/4D.1/4D.2/6), the ex-residents tax regime (Quadro 4E), the pre-2025 \"IRS Jovem\" regime (Quadro 4F, superseded for 2025+ by 4F.1), or the dependent-student income-exclusion regime (Quadro 4G). See VERIFICATION.md for the full scope rationale, every disclosed judgment call, and the candidate-comparison record. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of Portugal or the Autoridade Tributária e Aduaneira.",
  "status": "draft",
  "jurisdiction": {
    "country": "PT",
    "level": "national"
  },
  "authority": {
    "name": "Ministério das Finanças",
    "abbreviation": "MF",
    "url": "https://www.portaldasfinancas.gov.pt/",
    "operatedBy": {
      "name": "Autoridade Tributária e Aduaneira",
      "abbreviation": "AT",
      "url": "https://www.portaldasfinancas.gov.pt/at/html/index.html",
      "basis": "Artigo 57.º do Código do IRS (the declaration's own printed legal basis, \"Indicações Gerais\"); the current edition's models (Rosto and Anexo A) were approved by Portaria n.º 104/2026/1, de 5 de março"
    }
  },
  "process": {
    "type": "filing",
    "language": "pt"
  },
  "source": {
    "url": "https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/modelos_formularios/irs/Documents/Mod_3_rosto.pdf",
    "retrievedAt": "2026-07-08",
    "documentRef": "Modelo 3 — DECLARAÇÃO DE RENDIMENTOS - IRS, folha de Rosto (14 pp., incl. its own printed \"Instruções de Preenchimento do Rosto\"), accompanied for this schema's scope by Anexo A — RENDIMENTOS DO TRABALHO DEPENDENTE E DE PENSÕES (13 pp., incl. its own printed \"Instruções de Preenchimento\"), retrieved separately at https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/modelos_formularios/irs/Documents/Mod_3_anexo_A.pdf"
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-08",
    "verifiedBy": "GovSchema Engineering (Standards Engineer)",
    "nextReviewBy": "2027-01-08",
    "notes": "GOV-1765: closes Portugal's Taxes gap, a candidate GOV-1750 (the Portugal-opening cycle) had explicitly flagged as \"a genuine, current, rich PDF\" but noted, like Portugal's e-filing-only regime generally, carries no AcroForm layer. Both claims independently re-confirmed this cycle: fresh curl fetches of both AT's own Rosto URL (200 OK, 257,370 bytes, %PDF-1.6, 14 pages) and Anexo A URL (200 OK, 522,432 bytes, %PDF-1.6, 13 pages) at info.portaldasfinancas.gov.pt, both served with no login/CAPTCHA/WAF gate; pdfjs-dist extraction returned zero Widget annotations across all 27 combined pages of both documents — a flat, print/reference facsimile, not a fillable AcroForm PDF, consistent with Portugal's own printed instruction that the declaration \"é obrigatoriamente entregue por transmissão eletrónica de dados\" (mandatorily filed by electronic data transmission) through an authenticated portal session, not by uploading or printing this PDF. A same-host legacy mirror at www.portaldasfinancas.gov.pt/de/impressos/Mod3.pdf and Mod3AnxA.pdf was also fetched and found live (200 OK) but, on inspection of its own extracted text, is a stale archived 2009 edition (\"MODELO EM VIGOR A PARTIR DE JANEIRO DE 2009\") kept for historical amendments of old-year returns, not a current-edition cross-verification — noted here explicitly rather than silently treated as a second confirming source, per this registry's fabrication-avoidance standard. A genuine same-day edition mismatch was found and resolved: the info.portaldasfinancas.gov.pt Rosto file's own Last-Modified header (03 Mar 2025) predates Anexo A's (06 Mar 2026, matching Portaria n.º 104/2026/1, de 5 de março, which approved new IRS models for income year 2025 filings in 2026); text-searching both documents' own extracted content confirmed the reason is structural, not staleness — the newly expanded \"IRS Jovem\" young-worker regime for 2025+ (Quadro 4F.1) that the Portaria introduced lives entirely within Anexo A, and the Rosto's own cover-page structure required no corresponding amendment this edition cycle. See VERIFICATION.md for the full sourcing record, field-by-field citations, and every disclosed scope decision."
  },
  "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-08"
  },
  "license": "CC-BY-4.0",
  "fields": [
    {
      "name": "taxOfficeCode",
      "label": "Código do Serviço de Finanças",
      "type": "string",
      "required": true,
      "description": "The code of the tax office (Serviço de Finanças) with jurisdiction over the fiscal domicile of the taxpayer(s) required to file this declaration.",
      "sourceRef": "Mod_3 Rosto p.1/14, Quadro 1, campo 01 \"Código do Serviço de Finanças\"; p.5/14 (instructions), \"QUADRO 1 - IDENTIFICAÇÃO DO SERVIÇO DE FINANÇAS\""
    },
    {
      "name": "taxYear",
      "label": "Ano dos Rendimentos",
      "type": "integer",
      "required": true,
      "description": "The tax year this declaration reports income for. The current Modelo 3 edition covers income years 2015 and following, filed from 01/04/2025 (Rosto) / for 2025-and-later filings (Anexo A, per the current \"IRS Jovem\" Quadro 4F.1).",
      "sourceRef": "Mod_3 Rosto p.1/14, Quadro 2 \"ANO DOS RENDIMENTOS\"; p.5/14 (instructions), \"QUADRO 2 - ANO A QUE RESPEITA A DECLARAÇÃO\"",
      "validation": {
        "minimum": 2015,
        "maximum": 2100
      }
    },
    {
      "name": "taxpayerANIF",
      "label": "Sujeito Passivo A — NIF",
      "type": "string",
      "required": true,
      "classification": "sensitive-pii",
      "description": "The tax identification number (NIF) of the principal taxpayer (Sujeito Passivo A). The Rosto does not itself print a free-text name field for the taxpayer; identification is by NIF alone, matched against AT's own records at the authenticated e-filing session.",
      "sourceRef": "Mod_3 Rosto p.1/14, Quadro 3, campo 01 \"NIF\"; p.6/14 (instructions), \"QUADRO 3 - SUJEITO PASSIVO\""
    },
    {
      "name": "taxpayerADisabilityDegree",
      "label": "Sujeito Passivo A — Incapacidade Grau",
      "type": "number",
      "required": false,
      "description": "The taxpayer's permanent disability degree (percentage), when applicable and duly evidenced by a multi-purpose disability medical certificate (atestado médico de incapacidade multiuso). This schema does not model the further conditional sub-fields the Rosto prints for a declared degree below 60% (the revision/re-evaluation-process fields, campos 02-04 of Quadro 3): a narrow procedural branch, disclosed as excluded.",
      "sourceRef": "Mod_3 Rosto p.1/14, Quadro 3, \"INCAPACIDADE GRAU\"; p.6/14 (instructions), \"IDENTIFICAÇÃO DOS SUJEITOS PASSIVOS\"",
      "validation": {
        "minimum": 0,
        "maximum": 100
      }
    },
    {
      "name": "taxpayerAArmedForcesDisabled",
      "label": "Sujeito Passivo A — Deficiente das Forças Armadas",
      "type": "boolean",
      "required": false,
      "description": "Whether the taxpayer is a disabled member of the Armed Forces (Deficiente das Forças Armadas), printed as the \"F.A.\" column alongside the disability-degree field.",
      "sourceRef": "Mod_3 Rosto p.1/14, Quadro 3, \"F.A.\"; p.6/14 (instructions), \"IDENTIFICAÇÃO DOS SUJEITOS PASSIVOS\""
    },
    {
      "name": "maritalStatus",
      "label": "Estado Civil do Sujeito Passivo",
      "type": "enum",
      "required": true,
      "description": "The taxpayer's marital status on 31 December of the tax year, per the Rosto's own five printed options.",
      "sourceRef": "Mod_3 Rosto p.1/14, Quadro 4, campos 01-05 \"Casado\"/\"Unido de facto\"/\"Solteiro, divorciado ou separado judicialmente\"/\"Viúvo\"/\"Separado de facto\"; p.6/14 (instructions), \"QUADRO 4 - ESTADO CIVIL DO(S) SUJEITO(S) PASSIVO(S)\"",
      "validation": {
        "enum": ["married", "civil_union", "single_divorced_or_legally_separated", "widowed", "separated_de_facto"]
      }
    },
    {
      "name": "jointTaxationElection",
      "label": "Opção pela Tributação Conjunta dos Rendimentos",
      "type": "enum",
      "required": false,
      "requiredWhen": {
        "field": "maritalStatus",
        "in": ["married", "civil_union"]
      },
      "description": "Whether a married or civil-union taxpayer elects joint taxation (one shared declaration covering both partners' income) instead of the default separate taxation (each partner files their own declaration). Only asked, and only meaningful, when maritalStatus is married or civil_union.",
      "sourceRef": "Mod_3 Rosto p.1/14, Quadro 5, campo 01; p.6/14-7/14 (instructions), \"QUADRO 5 - OPÇÃO PELA TRIBUTAÇÃO CONJUNTA DOS RENDIMENTOS\"",
      "validation": {
        "enum": ["yes", "no"]
      }
    },
    {
      "name": "spouseOrCivilPartnerNIF",
      "label": "NIF do Cônjuge / Unido de Facto",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "requiredWhen": {
        "field": "maritalStatus",
        "in": ["married", "civil_union"]
      },
      "description": "The tax identification number (NIF) of the taxpayer's spouse or civil-union partner (\"Sujeito Passivo B\"). Printed at two alternative locations on the Rosto depending on the joint-taxation election: Quadro 5A campo 01 when tributação conjunta is elected, or Quadro 6 campo 01 (identifying the partner in Quadro 6A) when separate taxation applies. This schema models the single resulting NIF value regardless of which location it comes from.",
      "sourceRef": "Mod_3 Rosto p.1/14, Quadro 5A campo 01 \"NIF\" (Sujeito Passivo B, tributação conjunta); Quadro 6 campo 01 \"NIF do cônjuge / unido de facto...\" (tributação separada); p.7/14 (instructions), \"QUADRO 6A - CÔNJUGE/UNIDO DE FACTO/CÔNJUGE FALECIDO\""
    },
    {
      "name": "fiscalResidenceRegion",
      "label": "Residência Fiscal — Residentes",
      "type": "enum",
      "required": true,
      "description": "The Portuguese region of the taxpayer's fiscal residence for the tax year: mainland Portugal (Continente), the Autonomous Region of the Azores, or the Autonomous Region of Madeira. This schema is bounded to Portuguese-resident filers (Quadro 8A); the Rosto's separate non-resident (Quadro 8B) and partial-fiscal-residence (Quadro 8C) tables are out of scope for v1.0.0 (see VERIFICATION.md).",
      "sourceRef": "Mod_3 Rosto p.2/14, Quadro 8A, campos 01-03 \"Continente\"/\"R. A. Açores\"/\"R. A. Madeira\"; p.9/14 (instructions), \"QUADRO 8A - RESIDENTES\"",
      "validation": {
        "enum": ["mainland", "azores", "madeira"]
      }
    },
    {
      "name": "refundIBAN",
      "label": "Número de Identificação Bancária Internacional (IBAN)",
      "type": "string",
      "required": false,
      "classification": "financial",
      "description": "The International Bank Account Number (IBAN) to which any refund is to be transferred. Must belong to Sujeito Passivo A and/or B.",
      "sourceRef": "Mod_3 Rosto p.2/14, Quadro 9 \"REEMBOLSO POR TRANSFERÊNCIA BANCÁRIA\"; p.11/14 (instructions), \"QUADRO 9 - NÚMERO DE IDENTIFICAÇÃO BANCÁRIA INTERNACIONAL\""
    },
    {
      "name": "associateIBANWithNIF",
      "label": "Pretende que a AT associe este IBAN aos seus dados de identificação do NIF?",
      "type": "enum",
      "required": false,
      "description": "Whether the taxpayer authorizes AT to associate the declared IBAN with their NIF identification data for future refund/restitution payments, rather than using it only for this declaration's refund.",
      "sourceRef": "Mod_3 Rosto p.2/14, Quadro 9, campos 01-02 \"Não\"/\"Sim\"; p.11/14 (instructions), \"QUADRO 9 - NÚMERO DE IDENTIFICAÇÃO BANCÁRIA INTERNACIONAL\"",
      "validation": {
        "enum": ["yes", "no"]
      }
    },
    {
      "name": "declarationNature",
      "label": "Natureza da Declaração",
      "type": "enum",
      "required": true,
      "description": "Whether this is the year's first declaration, or a substitution declaration correcting a previously filed one for the same year (or period, in a partial-fiscal-residence case).",
      "sourceRef": "Mod_3 Rosto p.2/14, Quadro 10, campos 01-02 \"1.ª declaração do ano\"/\"Declaração de substituição\"; p.11/14 (instructions), \"QUADRO 10 - NATUREZA DA DECLARAÇÃO\"",
      "validation": {
        "enum": ["first_declaration", "substitution_declaration"]
      }
    },
    {
      "name": "irsConsignmentEntityNIF",
      "label": "Consignação do IRS — NIF da Entidade Beneficiária",
      "type": "string",
      "required": false,
      "description": "The NIF of the entity the taxpayer elects to consign 1% (or, for youth/student associations, 0.5%) of their assessed IRS to, per Lei n.º 16/2001, Lei n.º 35/98, art. 152.º do Código do IRS, or Lei n.º 23/2006.",
      "sourceRef": "Mod_3 Rosto p.2/14, Quadro 11 \"CONSIGNAÇÃO DO IRS / CONSIGNAÇÃO DO IVA SUPORTADO\", campo NIF; p.12/14 (instructions), \"QUADRO 11 - CONSIGNAÇÃO DO IRS/CONSIGNAÇÃO DO IVA SUPORTADO\""
    },
    {
      "name": "irsConsignmentEntityType",
      "label": "Tipo de Entidade Beneficiária",
      "type": "enum",
      "required": false,
      "description": "The category of the beneficiary entity named above, one of the Rosto's four printed checkboxes. In practice this is filled in together with irsConsignmentEntityNIF whenever a taxpayer elects to consign 1%/0.5% of their assessed IRS to an entity; this schema does not gate it with a requiredWhen condition, since there is no safe leaf-compare condition for \"irsConsignmentEntityNIF was actually filled in\" against an absent (not merely empty-string) optional field.",
      "sourceRef": "Mod_3 Rosto p.2/14, Quadro 11, campos 1101-1104; p.12/14 (instructions), \"QUADRO 11 - CONSIGNAÇÃO DO IRS/CONSIGNAÇÃO DO IVA SUPORTADO\"",
      "validation": {
        "enum": ["religious_or_charitable_institution", "environmental_public_utility_entity", "cultural_public_utility_institution", "youth_or_student_association"]
      }
    },
    {
      "name": "alsoConsignSupportedVAT",
      "label": "Consignação do IVA Suportado",
      "type": "boolean",
      "required": false,
      "description": "Whether, in addition to the 1%/0.5% IRS consignment, the taxpayer also consigns the VAT-supported deduction amount (art. 78.º-F do Código do IRS) to the same beneficiary entity. Per the form's own instructions, this option is not available when the beneficiary is a youth/student association (irsConsignmentEntityType = youth_or_student_association).",
      "sourceRef": "Mod_3 Rosto p.2/14, Quadro 11, quadrados \"IRS\"/\"IVA\"; p.12/14 (instructions), \"QUADRO 11 - CONSIGNAÇÃO DO IRS/CONSIGNAÇÃO DO IVA SUPORTADO\""
    },
    {
      "name": "anexoACount",
      "label": "Anexo A — Quantidade",
      "type": "integer",
      "required": false,
      "description": "The number of Anexo A sheets accompanying this declaration (one per titular whose employment/pension income is being reported, when more than one is needed). This schema's own scope covers only Anexo A of the Rosto's twelve-annex table (Anexos A-L); the other eleven are out of scope for v1.0.0 (see schema description and VERIFICATION.md).",
      "sourceRef": "Mod_3 Rosto p.2/14, Quadro 12 \"ANEXOS\", \"Anexo A\" row, \"Quantidade\" column; p.12/14 (instructions), \"QUADRO 12 - NÚMERO DE ANEXOS QUE ACOMPANHAM A DECLARAÇÃO\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "employmentIncomePayerNIF",
      "label": "Anexo A, Quadro 4A — NIF da Entidade Pagadora (Rendimento código 401)",
      "type": "string",
      "required": false,
      "description": "The NIF of the entity that paid or made available the taxpayer's employment income (código 401, trabalho dependente).",
      "sourceRef": "Mod_3 Anexo A p.1/13, Quadro 4A, \"NIF da entidade pagadora\" column; p.5/13 (instructions), \"QUADRO 4A - RENDIMENTOS/RETENÇÕES/CONTRIBUIÇÕES OBRIGATÓRIAS/QUOTIZAÇÕES SINDICAIS\", código 401"
    },
    {
      "name": "employmentIncomeTitular",
      "label": "Anexo A, Quadro 4A — Titular (Rendimento código 401)",
      "type": "enum",
      "required": false,
      "description": "Which taxpayer the employment income belongs to. This schema models only the Sujeito Passivo A/B values; the form's further dependent-holder codes (D1, D2, AF1, DG1, etc., per Quadro 6B of the Rosto) are out of scope for v1.0.0.",
      "sourceRef": "Mod_3 Anexo A p.1/13, Quadro 4A, \"Titular\" column; p.7/13 (instructions), \"Terceira coluna\"",
      "validation": {
        "enum": ["taxpayer_a", "taxpayer_b"]
      }
    },
    {
      "name": "employmentGrossIncome",
      "label": "Anexo A, Quadro 4A — Rendimentos (código 401)",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Gross employment income (código 401), the total gross amount earned from dependent work in Portuguese territory, excluding amounts declared under the other, out-of-scope, codes 402 and 408-419.",
      "sourceRef": "Mod_3 Anexo A p.1/13, Quadro 4A, \"Rendimentos\" column, código 401; p.5/13 (instructions), \"Código 401\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "employmentWithholdingTax",
      "label": "Anexo A, Quadro 4A — Retenções na Fonte (código 401)",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Income tax already withheld at source on the declared employment income.",
      "sourceRef": "Mod_3 Anexo A p.1/13, Quadro 4A, \"Retenções na fonte\" column; p.7/13 (instructions), \"Quinta coluna\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "employmentMandatoryContributions",
      "label": "Anexo A, Quadro 4A — Contribuições (código 401)",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Mandatory contributions to social-protection schemes and legal health subsystems actually withheld from the declared employment income.",
      "sourceRef": "Mod_3 Anexo A p.1/13, Quadro 4A, \"Contribuições\" column; p.7/13 (instructions), \"Sexta coluna\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "employmentUnionDues",
      "label": "Anexo A, Quadro 4A — Quotizações Sindicais (código 401)",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Trade-union dues actually paid, excluding any portion that is consideration for health/education/elderly-support/housing/insurance/social-security benefits.",
      "sourceRef": "Mod_3 Anexo A p.1/13, Quadro 4A, \"Quotizações sindicais\" column; p.7/13 (instructions), \"Oitava coluna\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "irsJovemRegimeElection",
      "label": "Anexo A, Quadro 4F.1 — Opção pelo Regime Fiscal do Art.º 12.º-B do CIRS (IRS Jovem)",
      "type": "enum",
      "required": false,
      "description": "Whether the taxpayer, having declared employment income under codes 401/412/413/414/415/416/419, elects to benefit from the \"IRS Jovem\" (young-worker) tax regime for income years 2025 and following (art. 12.º-B do Código do IRS, as amended by Lei n.º 45-A/2024, de 31 de dezembro). This is the current edition's own election field, introduced by Portaria n.º 104/2026/1; this schema does not itself model or enforce the regime's several eligibility preconditions (age ≤35, not a dependent, ≤10 prior years of Category A/B income, no prior non-habitual-resident/ex-residents/scientific-research-incentive regime, tax situation regularized) — those are disclosed judgment calls in VERIFICATION.md, not validated here.",
      "sourceRef": "Mod_3 Anexo A p.2/13, Quadro 4F.1, campos 03-06 \"Sim\"/\"Não\"; p.10/13-11/13 (instructions), \"QUADRO 4F.1 – OPÇÃO PELO REGIME FISCAL DO ART.º 12.º-B DO CIRS – IRS JOVEM – anos de 2025 e seguintes\"",
      "validation": {
        "enum": ["opts_in", "does_not_opt_in"]
      }
    },
    {
      "name": "pensionIncomePayerNIF",
      "label": "Anexo A, Quadro 4A — NIF da Entidade Pagadora (Rendimento código 403)",
      "type": "string",
      "required": false,
      "description": "The NIF of the entity that paid or made available the taxpayer's pension income (código 403, pensões, excluding survivor's and alimony pensions).",
      "sourceRef": "Mod_3 Anexo A p.1/13, Quadro 4A, \"NIF da entidade pagadora\" column; p.5/13 (instructions), \"QUADRO 4A\", código 403"
    },
    {
      "name": "pensionIncomeTitular",
      "label": "Anexo A, Quadro 4A — Titular (Rendimento código 403)",
      "type": "enum",
      "required": false,
      "description": "Which taxpayer the pension income belongs to. As with employmentIncomeTitular, only the Sujeito Passivo A/B values are modelled for v1.0.0.",
      "sourceRef": "Mod_3 Anexo A p.1/13, Quadro 4A, \"Titular\" column; p.7/13 (instructions), \"Terceira coluna\"",
      "validation": {
        "enum": ["taxpayer_a", "taxpayer_b"]
      }
    },
    {
      "name": "pensionGrossIncome",
      "label": "Anexo A, Quadro 4A — Rendimentos (código 403)",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Gross pension income (código 403): retirement or old-age/invalidity pensions and other income of like nature, excluding survivor's pensions (código 404) and alimony pensions (código 405), both out of scope for v1.0.0.",
      "sourceRef": "Mod_3 Anexo A p.1/13, Quadro 4A, \"Rendimentos\" column, código 403; p.5/13 (instructions), \"Código 403\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "pensionWithholdingTax",
      "label": "Anexo A, Quadro 4A — Retenções na Fonte (código 403)",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Income tax already withheld at source on the declared pension income.",
      "sourceRef": "Mod_3 Anexo A p.1/13, Quadro 4A, \"Retenções na fonte\" column; p.7/13 (instructions), \"Quinta coluna\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "pensionMandatoryContributions",
      "label": "Anexo A, Quadro 4A — Contribuições (código 403)",
      "type": "number",
      "required": false,
      "classification": "financial",
      "description": "Mandatory contributions to social-protection schemes and legal health subsystems actually withheld from the declared pension income.",
      "sourceRef": "Mod_3 Anexo A p.1/13, Quadro 4A, \"Contribuições\" column; p.7/13 (instructions), \"Sexta coluna\"",
      "validation": {
        "minimum": 0
      }
    }
  ],
  "documents": [
    {
      "id": "householdCompositionSupportingEvidence",
      "label": "Documentos comprovativos da composição do agregado familiar (household-composition supporting evidence), obtainable on AT's own post-filing request",
      "category": "supporting-evidence",
      "required": false,
      "sourceRef": "Mod_3 Rosto p.3/14 (instructions), \"Posteriormente à data de entrega, pode a Autoridade Tributária e Aduaneira solicitar a apresentação dos documentos comprovativos da composição do agregado familiar, bem como das restantes pessoas identificadas no Rosto da declaração ou de quaisquer outros elementos mencionados na declaração.\""
    }
  ],
  "steps": [
    {
      "id": "identificacao_servico_ano",
      "title": "Serviço de finanças e ano dos rendimentos",
      "fields": ["taxOfficeCode", "taxYear"],
      "next": "sujeito_passivo"
    },
    {
      "id": "sujeito_passivo",
      "title": "Sujeito passivo",
      "fields": ["taxpayerANIF", "taxpayerADisabilityDegree", "taxpayerAArmedForcesDisabled"],
      "next": "estado_civil_tributacao"
    },
    {
      "id": "estado_civil_tributacao",
      "title": "Estado civil e opção pela tributação conjunta",
      "fields": ["maritalStatus", "jointTaxationElection", "spouseOrCivilPartnerNIF"],
      "next": "residencia_fiscal"
    },
    {
      "id": "residencia_fiscal",
      "title": "Residência fiscal",
      "fields": ["fiscalResidenceRegion"],
      "next": "reembolso"
    },
    {
      "id": "reembolso",
      "title": "Reembolso por transferência bancária",
      "fields": ["refundIBAN", "associateIBANWithNIF"],
      "next": "natureza_declaracao"
    },
    {
      "id": "natureza_declaracao",
      "title": "Natureza da declaração",
      "fields": ["declarationNature"],
      "next": "consignacao"
    },
    {
      "id": "consignacao",
      "title": "Consignação do IRS / IVA suportado",
      "fields": ["irsConsignmentEntityNIF", "irsConsignmentEntityType", "alsoConsignSupportedVAT"],
      "next": "anexos"
    },
    {
      "id": "anexos",
      "title": "Anexos que acompanham a declaração",
      "fields": ["anexoACount"],
      "next": "anexo_a_trabalho_dependente"
    },
    {
      "id": "anexo_a_trabalho_dependente",
      "title": "Anexo A — Trabalho dependente (código 401)",
      "fields": ["employmentIncomePayerNIF", "employmentIncomeTitular", "employmentGrossIncome", "employmentWithholdingTax", "employmentMandatoryContributions", "employmentUnionDues", "irsJovemRegimeElection"],
      "next": "anexo_a_pensoes"
    },
    {
      "id": "anexo_a_pensoes",
      "title": "Anexo A — Pensões (código 403)",
      "fields": ["pensionIncomePayerNIF", "pensionIncomeTitular", "pensionGrossIncome", "pensionWithholdingTax", "pensionMandatoryContributions"]
    }
  ]
}
