Registry entry

Brazil — First-Time Voter Registration (Requerimento de Alistamento Eleitoral / Título de Eleitor)

The Tribunal Superior Eleitoral's (TSE) 'Autoatendimento Eleitoral - Título Net' online self-service system, scoped to the alistamento (first-time voter registration) pathway for a citizen resident in Brazilian territory who has never held a título de eleitor. Voter registration is a citizen-initiated administrative act in Brazil, not automatic: registration and voting are optional for citizens aged 16-17 but become mandatory at 18 under article 14 of the Federal Constitution, and an unregistered adult is barred from a published list of civic acts (passport/national-ID issuance, public-sector pay, public-tender participation). This document models the wizard's personal-data, address/polling-location, complementary-data (self-declared race/color, gender identity, quilombola/indigenous self-identification), and optional-contact steps, plus its required document uploads. Out of scope, each a distinct TSE-designated service: the separate 'Eleitorado no Exterior' pathway for citizens resident abroad (its own address/document shape, e.g. país/cepZZ/cidadeZZ fields observed but not modelled here); título transferência (change of electoral domicile) and revisão (data correction) of an EXISTING registration, which share this same wizard's components but add an electoral-debt eligibility gate (informacoesDebitos/opcaoMulta) not applicable to a first-time applicant; and justificativa (absence justification), a wholly separate service. IMPORTANT: TSE's own live system currently displays 'O atendimento remoto via Título Net está bloqueado entre os dias 07/05/2026 e 02/11/2026, conforme prevê a norma eleitoral vigente' — remote Título Net service, including alistamento, is nationwide-suspended from 2026-05-07 to 2026-11-02 under Brazilian electoral law's pre-election blackout rule (confirmed live 2026-07-16; see VERIFICATION.md). This document still accurately models the underlying process, which reopens after that date, but a live submission attempted before 2026-11-03 will be refused. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of Brazil or the Tribunal Superior Eleitoral. This document describes the request only; it does not submit anything on the applicant's behalf.

Registry entry

br/tse/requerimento-alistamento-eleitoral

Jurisdiction
Brazil · national
Version
1.0.0
Verification
draft

Authoritative source Autoatendimento Eleitoral - Título Net (live Angular single-page application served from tn3.tse.jus.br, embedded on the URL above)

Machine access

Registry catalog
registry/index.jsonone record per schema id

Field reference

53 fields across 5 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.

Dados Pessoais

  • fullName string required

    The applicant's full legal name, at least two words, no special characters.

    classification: pii
  • dateOfBirth date required

    The applicant's date of birth. The live form requires it to be a valid past date and enforces a minimum age of 15 (registration is permitted from age 16, but the online request can be started at 15 ahead of a 16th birthday) plus internal plausibility caps (under 75/110 trigger extra confirmation prompts, not modelled as hard limits here).

    patternclassification: pii
  • parentageDeclarationOption string required

    Selects which combination of parent/legal-guardian names below the applicant is declaring (e.g. both biological parents, one parent plus a socio-affective parent, a single parent). The live form's own accepted option set is resolved through an internal helper (`Xi.T`, a parentage-option enum/parser) whose exact string values were not independently confirmed this cycle — modelled as an open string pending a future verification pass; see VERIFICATION.md.

  • parent1Name string optional

    First declared parent/legal-guardian name. True requiredness on the live form is conditional on `parentageDeclarationOption`'s value via an internal helper method not independently confirmed this cycle (disclosed simplification, see VERIFICATION.md); modelled here as optional.

    classification: pii
  • parent2Name string optional

    Second declared parent/legal-guardian name. See `parent1Name` for the disclosed requiredness simplification.

    classification: pii
  • parent3Name string optional

    Third declared parent/legal-guardian name, used for a second mother/socio-affective parentage declaration. See `parent1Name` for the disclosed requiredness simplification.

    classification: pii
  • parent4Name string optional

    Fourth declared parent/legal-guardian name, used for a second father/socio-affective parentage declaration. See `parent1Name` for the disclosed requiredness simplification.

    classification: pii
  • cpf string optional

    The applicant's CPF (Cadastro de Pessoas Físicas), Brazil's individual taxpayer registry number. Format-validated when present but confirmed NOT statically required by the live form's own validator array.

    patternclassification: sensitive-pii
  • idDocumentType string required

    The type of official identification document presented (e.g. RG/Carteira de Identidade, CIN, CTPS, CNH, passport). Backed by the live service's own external document-type reference list.

  • idDocumentNumber string required

    The identification document's number.

    classification: sensitive-pii
  • idIssuingAuthority string required

    The issuing authority of the identification document (e.g. SSP/UF), alphanumeric and punctuation only.

    pattern
  • gender enum required

    The applicant's sex as recorded on the civil registry, used by the live form for the military-service (reservista) eligibility check — distinct from `selfDeclaredGenderIdentity` below.

    enum: MASCULINO | FEMININOclassification: pii
  • maritalStatus string required

    The applicant's marital status. Backed by the live service's own external reference list; exact code values not independently confirmed this cycle (disclosed external code table, see VERIFICATION.md).

  • educationLevel string required

    The applicant's education level. Backed by the live service's own external reference list, cross-checked against `occupation` for compatibility by the live form (a soft warning prompt, not modelled here).

  • occupation string required

    The applicant's declared occupation, selected from the live service's own large external occupation-code reference list.

  • birthState string required

    The Brazilian state (UF, two-letter code) where the applicant was born.

    pattern
  • birthMunicipality string required

    The municipality where the applicant was born, selected from the live service's own external reference list filtered by `birthState`.

  • hasTwinSibling boolean required

    Whether the applicant has a twin sibling, used by the Justiça Eleitoral to cross-check similar-identity registrations.

  • wantsToBePollWorkerVolunteer boolean required

    Whether the applicant wants to volunteer as a poll worker (mesário/mesária).

  • hasDisability boolean required

    Whether the applicant has a disability requiring accommodation.

  • disabilityDescription string optional

    Free-text/selected description of the applicant's disability/disabilities, enabled only when `hasDisability` is true.

    classification: health
  • militaryReservistCertificateNumber string optional

    The applicant's military reservist certificate number. The live form's real condition additionally requires the applicant to be within the conscription age window (turning 19 within the current calendar year); that computed age check is not expressible in GovSchema's Condition grammar and is disclosed here as a broader-than-actual `requiredWhen` (see VERIFICATION.md and the official FAQ's own confirmation that men outside the conscription window may request the título without this document).

Endereço e Local de Votação

  • postalCode string required

    The applicant's residential postal code (CEP), used by the live form to look up and pre-fill state/municipality/neighborhood/street.

    pattern
  • state string required

    The Brazilian state (UF) of the applicant's residential address, resolved from `postalCode`.

    pattern
  • municipality string required

    The municipality of the applicant's residential address, resolved from `postalCode`.

  • neighborhood string required

    The neighborhood of the applicant's residential address, resolved from `postalCode`.

  • streetAddress string required

    The street name of the applicant's residential address, resolved from `postalCode`.

  • addressNumber string required

    The street number of the applicant's residential address, digits only.

    pattern
  • addressComplement string optional

    Optional address complement (apartment/unit, block, etc.).

  • residencyBondType string required

    The nature of the applicant's connection to the municipality justifying their choice of electoral domicile. The live form fetches its option list from an external live reference table; the official FAQ names the real category glosses this list is drawn from: residencial (residential), afetivo (affective/relationship), familiar (family), profissional (professional), comunitário (community), or de outra natureza (other) — see VERIFICATION.md.

  • residencyYears integer required

    Whole years the applicant has held the declared bond with the municipality.

    range: 0–∞
  • residencyMonths integer required

    Additional whole months (0-11) the applicant has held the declared bond with the municipality.

    range: 0–11
  • pollingLocation string required

    The applicant's chosen polling location, selected from a list of available locations near the declared address.

  • accessiblePollingSectionOnly boolean optional

    Whether to filter the polling-location list to accessible sections only.

Dados Complementares

  • selfDeclaredGenderIdentity string required

    The applicant's self-declared gender identity, per TSE Resolution 23.659/2021, independent of the civil-registry `gender` field above. The live form fetches its accepted value list from an external, dynamic reference table (`listaGeneros$`), not a fixed client-side enum; the full value set was not independently enumerated this cycle (disclosed external code table, see VERIFICATION.md).

    classification: sensitive-pii
  • raceColor enum required

    The applicant's self-declared race/color, the standard IBGE five-category classification.

    enum: BRANCA | PRETA | PARDA | AMARELA | INDIGENAclassification: sensitive-pii
  • socialName string optional

    The applicant's social name (nome social), for transgender/travesti applicants to be socially recognized under this name in the Cadastro Eleitoral. On the live form this field is only enabled when `selfDeclaredGenderIdentity`'s value contains the substring 'TRANS' — a condition GovSchema's Condition grammar cannot express (it supports only equality/membership against a known value set, not substring matching against a dynamic reference list); disclosed here as an always-optional field rather than a mis-modelled `requiredWhen`.

    classification: sensitive-pii
  • isQuilombola enum required

    Whether the applicant self-identifies as quilombola. The live form stores this as a 'SIM'/'NAO' string toggle (confirmed via its own valueChanges guard comparing against the literal 'SIM').

    enum: SIM | NAOclassification: sensitive-pii
  • quilombolaCommunityName string optional

    Name of the applicant's quilombola community.

  • speaksQuilombolaLanguage boolean optional

    Whether the applicant speaks a quilombola community language. Simplified from the live form's own internal 'SIM'/'NAO' string storage to a GovSchema boolean (disclosed type-level simplification, see VERIFICATION.md).

  • quilombolaLanguageName string optional

    Name of the quilombola language spoken by the applicant.

  • indigenousEthnicity string optional

    The applicant's indigenous ethnicity, selected from the live service's own external reference list, required only when `raceColor` is INDIGENA.

    classification: sensitive-pii
  • secondIndigenousEthnicity string optional

    An optional second indigenous ethnicity, for applicants of mixed indigenous heritage.

  • speaksIndigenousLanguage boolean optional

    Whether the applicant speaks an indigenous language. Simplified from the live form's own internal 'SIM'/'NAO' string storage to a GovSchema boolean (disclosed type-level simplification, see VERIFICATION.md).

  • indigenousLanguageName string optional

    Name of the indigenous language spoken by the applicant.

  • isLibrasInterpreter enum required

    Whether the applicant is a Brazilian Sign Language (Libras) interpreter.

    enum: SIM | NAO

Contato

  • contactPhoneType string optional

    The optional contact phone's type (mobile/landline). Contact information is disclosed by the official guide as not mandatory but useful for the electoral office to reach the applicant. The live form supports up to three phone numbers; only the first is modelled here, the second/third being an unbounded-repeating-like structure deferred per this registry's convention (see VERIFICATION.md).

  • contactPhoneNumber string optional

    The optional contact phone number.

    classification: pii
  • contactName string optional

    Optional name of the contact person, if different from the applicant.

    classification: pii
  • wantsSmsUpdates boolean optional

    Whether the applicant opts in to receive SMS updates about this request.

  • wantsEmailUpdates boolean optional

    Whether the applicant opts in to receive email updates about this request.

  • contactEmail string optional

    Contact email address, required only when the applicant opts in to email updates.

    patternclassification: pii
  • confirmContactEmail string optional

    Confirmation re-entry of `contactEmail`, required only when the applicant opts in to email updates.

    patternclassification: pii

Verification record

This file is the source-review record for this document version, per the manual-source-review-v1 practice. It documents the provenance of the published fields and flow and states the current verification claim honestly.

Current claim

  • status: draft
  • verification.method: manual-source-review-v1
  • verification.lastVerifiedAt: 2026-07-16

This is a GovSchema Standard Research cycle (GOV-3274). This document opens a new schema in Brazil's National ID & Civic Documents vertical (Brazil already has a schema in this vertical — br/pr/iipr/carteira-identidade-correcao — so this is a companion schema for a distinct national process, not a new jurisdiction or vertical opening).

IMPORTANT: the live service is currently suspended (confirmed 2026-07-16)

Before authoring, this cycle checked whether Título Net had ever been scouted before. A prior cycle, GOV-1483 (2026-07-06), found Brazil's Título Net alistamento service "nationwide-closed from 2026-05-07 to 2026-11-03 under art. 91 of the Lei das Eleições (Lei no. 9.504/1997), which bars any registration/transfer request within 150 days of an election (Brazil holds municipal elections in October 2026)" via a live, unauthenticated Playwright walk — see CATALOG.md's own Executive Summary entry for that cycle. Today (2026-07-16) falls inside that window, so this cycle independently re-verified the block is still in effect rather than assuming the earlier note was current:

`` $ playwright chromium, real desktop UA, headless, no login Navigated to: https://www.tse.jus.br/servicos-eleitorais/autoatendimento-eleitoral Extracted page text includes: "O atendimento remoto via Título Net está bloqueado entre os dias 07/05/2026 e 02/11/2026, conforme prevê a norma eleitoral vigente." ``

This confirms and is consistent with the GOV-1483 finding (the end date differs by one day in the two citations — GOV-1483's own prose says "2026-11-03", the live banner says "02/11/2026" i.e. 2026-11-02; both are recorded here rather than silently reconciled). Critically, the menu item "Tirar primeiro título" (get first title) is still listed on the page, and the underlying Angular SPA bundle (tn3.tse.jus.br/main.js) is still served completely normally — the reactive-form definitions this document's fields are sourced from are real, current, production code, unaffected by the runtime submission gate. Only an actual live submission attempt is refused until the blackout lifts. This is the same distinction this registry has already established for other genuinely time-gated (not dead-end) sources: the schema still accurately describes the process, which reopens 2026-11-03 (or 2026-11-02 per the live banner's own wording — either way, the process resumes in Q4 2026).

This is disclosed in the schema's own top-level description and verification.notes fields, not only here, so a consumer reading the schema.json alone (without VERIFICATION.md) still sees it.

Discovery

The prior cycle, GOV-3267, scouted Brazil's TSE (Tribunal Superior Eleitoral) as a "remaining voter registration" candidate — one of the four named National ID candidates in this routine's own standing brief — and found the Requerimento de Alistamento Eleitoral (first-time voter registration): a genuine, well-documented, government-operated online service with no downloadable PDF/AcroForm equivalent. That cycle left it as a disclosed, ready-to-author candidate rather than authoring it, in favor of a more concretely-sourced Sri Lanka Taxes candidate that same session. See CATALOG.md's "Genuinely open, well-sourced candidates" section, the GOV-3267 entry.

This cycle picked up that lead. Two official TSE sources were fetched directly via curl first (both HTTP 200, no login/CAPTCHA gate):

  • https://www.tse.jus.br/comunicacao/noticias/2021/Dezembro/veja-o-passo-a-passo-para-tirar-o-primeiro-titulo-pela-internet — the official step-by-step article for first-time online registration.
  • https://www.tse.jus.br/servicos-eleitorais/titulo-eleitoral-faq and https://www.tse.jus.br/servicos-eleitorais/titulo-eleitoral/autoatendimento-eleitoral/autoatendimento-eleitoral-titulo-net — the FAQ and official how-to article, which additionally describe the wizard's own section order ("Dados Pessoais" → "Endereço e local de votação" → "Dados Complementares" → "Contato") and several category glosses (e.g. the residencyBondType values: residencial, afetivo, familiar, profissional, comunitário, de outra natureza).

These sources name field categories in prose but do not expose exact internal field names, types, or conditional-requiredness logic. Rather than model from prose alone, the actual live production bundle of the wizard itself — Título Net, a live Angular single-page application served from tn3.tse.jus.br and embedded on https://www.tse.jus.br/servicos-eleitorais/autoatendimento-eleitoral — was independently fetched and decompiled:

``` $ curl -sIL https://tn3.tse.jus.br/main.js?id=2026-07-14-21 HTTP/1.1 200 OK content-type: application/javascript content-length: 2529928 last-modified: Thu, 02 Jul 2026 22:37:05 GMT

$ sha256sum main.js c50f034b8d7c6e97cd18d5947a51f812ff32ca1809cbe1a982dac2b6b1eb03c2 main.js ```

Retrieved 2026-07-16. This is a minified but non-obfuscated Angular Ivy build (class/method names are mangled short identifiers, but string literals, validator names, and reactive-form FormBuilder.group({...}) calls are all intact plaintext) — the same class of source this registry has previously relied on for br/pr/iipr/carteira-identidade-correcao (compiled Vue render functions) and other SPA-only government services with no static PDF equivalent.

Method

Every field below was located as a real formBuilder.group({...}) entry in the decompiled bundle and cross-checked against its own real Angular validator calls (Validators.required and the app's custom validators: apenasNomes, peloMenosDoisNomes, naoCaracteresEspeciais, cpfValido, apenasNumeros, apenasAlfanumericosOuPontuacao, obrigatorioSe, obrigatorioSeOutroCampoEstiverPreenchido, validarDocReservista, validarDeficiencias), not informal internal-property-name guesses. Five distinct wizard sub-components were located and decompiled in full:

  1. Dados Pessoais (nome, dataNascimento, indicadorOpcaoFiliacao, filiacao1filiacao4, cpf, tipoDoc, numDoc, orgaoExpedidor, genero, estadoCivil, grauInstrucao, ocupacao, ufNascimento, municipioNascimento, possuiIrmaoGemeo, desejaSerVoluntario, possuiDeficiencia, listaDeficiencias, reservista). Confirmed specifically applicable to the alistamento flow (not only transferência/revisão, which reuse the same component) via the component's own this.ehAlistamento conditional branch, which sets initial values from credenciais.tipoFiliacao only in the alistamento case.
  2. Endereço (pais, siglaUf, cep, cepZZ, cidadeZZ, localidadeZZ, bairroZZ, municipio, bairro, endereco, enderecoZZ, numero, complemento, tipoVinculo, anos, meses). The *ZZ/pais fields are the overseas-residence variant, scoped out of this document — see "Scoping decisions" below.
  3. Local de Votação (localVotacao, secaoAcessivel).
  4. Dados Complementares (identidadeGenero, racaCor, nomeSocial, ehQuilombola, ehInterpreteLibras, comunidadeQuilombola, falaLinguaQuilombola, linguaQuilombola, etniaIndigena, segundaEtnia, falaLinguaIndigena, linguaIndigena).
  5. Contato (tipoTelefone13, nacionalidadeContato13, telefone13, nomeContato, aceitaReceberMsg, aceitaReceberEmail, email, confirmarEmail).

A sixth component, Documentos (selfie/docIdentficacao/comprovanteRes/certidao/outros/ docsAusencia), maps each upload slot to a real internal document-type constant via its own getTipoDocumento switch statement (selfieFOTO_SEGURANDO_DOCUMENTO, docIdentficacaoIDENTIFICACAO, comprovanteResCOMPROVANTE_RESIDENCIA, certidaoCERTIDAO_NASCIMENTO, default→OUTROS). A seventh component, Débitos (opcaoMulta), was confirmed present in the bundle but excluded — it addresses existing electoral fines, structurally impossible for a first-time applicant (see "Scoping decisions" below).

Enum values modelled with type: "enum" are the bundle's own real internal string constants, not paraphrases:

  • raceColor: found via var ei=(()=>{...ei.BRANCA="BRANCA",ei.PRETA="PRETA",ei.PARDA="PARDA",ei.INDIGENA="INDIGENA",ei.AMARELA="AMARELA"...})() and the matching label array const Gt=[...(ei.AMARELA,"AMARELA"),(ei.BRANCA,"BRANCA"),(ei.INDIGENA,"INDÍGENA"),(ei.PARDA,"PARDA"),(ei.PRETA,"PRETA")] — the standard IBGE five-category race/color classification.
  • gender: the literal strings "MASCULINO"/"FEMININO" appear directly inside the validarDocReservista cross-field validator's own comparison.
  • isQuilombola/isLibrasInterpreter: the live form's own valueChanges guards compare against the literal string "SIM" (e.g. .pipe(filter(W=>"SIM"!=W))), confirming a "SIM"/"NAO" two-value domain.

Scoping decisions (disclosed, not fidelity gaps)

  • Domestic residents only. The pais/cepZZ/cidadeZZ/localidadeZZ/ bairroZZ/enderecoZZ address fields (for citizens resident abroad) are excluded. TSE itself designates "Eleitorado no Exterior" as a distinct service with its own top-level navigation entry, distinct address shape, and (per the FAQ) a client-rendered microsite of its own — a natural future companion schema, not a gap in this one.
  • First-time registration only, not transferência/revisão. The informacoesDebitos/opcaoMulta (electoral-fine) step is excluded: it addresses fines for missed votes/poll-worker duty on an existing registration, which cannot exist for a first-time applicant. This is the same underlying wizard component set used for título transferência (change of electoral domicile) and revisão (data correction), which this document does not model.
  • parentageDeclarationOption and parent1Nameparent4Name. The live form's true requiredness for the four parent-name fields depends on indicadorOpcaoFiliacao's value being passed through an internal helper method (deveHabilitarCampoFiliacaoPara, keyed against an enum ji.r with members including MAE/PAI/MAE_2/PAI_2). The enum's own accepted string values were not independently confirmed this cycle (the bundle references it only via minified aliases). All four parent-name fields are modelled required: false rather than guessing at a requiredWhen condition that might not match the live enum's real values — a disclosed simplification, not a claim that the fields are truly always optional on the live form.
  • militaryReservistCertificateNumber / militaryDischargeProofFile. The real live-form condition (validarDocReservista(dataNascimento, genero, reservista)) requires BOTH gender === "MASCULINO" AND a computed check that the applicant turns 19 within the current calendar year (the conscription window). GovSchema's Condition grammar supports only static field-to-value comparisons, not a computed function of a date field, so this document's requiredWhen uses gender equals MASCULINO alone — broader than the live form's real condition. This is independently corroborated as a real, disclosed exception by the official FAQ: "Você pode solicitar o título sem a apresentação do certificado de quitação militar se estiver fora do período de conscrição." Disclosed here rather than mis-modelled as an exact match.
  • socialName. Enabled on the live form only when identidadeGenero's value contains the substring "TRANS" — not expressible as a GovSchema equals/in condition against a dynamic, externally-fetched reference list whose full value set was not enumerated this cycle. Modelled as always-optional with the real condition disclosed in its own field description.
  • External/dynamic reference-table fields. maritalStatus, educationLevel, occupation, birthMunicipality, selfDeclaredGenderIdentity, and residencyBondType are each backed by the live service's own server-fetched reference lists (confirmed via store.select/iniciarConsultar* dispatch calls in the bundle, e.g. municipioNascimento's list depends on the chosen ufNascimento), not a fixed enum baked into the client bundle. Each is modelled as an open string, this registry's established convention for a field backed by an external code table it cannot reproduce in full (see e.g. co/dian/declaracion-renta-personas-naturales-formulario-210's own disclosed external-code-table fields). residencyBondType's category glosses are drawn from the official FAQ prose instead, a second independent source, since the live list itself is fetched at runtime.
  • Type-level simplification of internal "SIM"/"NAO" toggles. speaksQuilombolaLanguage and speaksIndigenousLanguage are modelled as GovSchema boolean, though the live form internally stores "SIM"/ "NAO" string tokens (confirmed via their own .pipe(filter(W=>"SIM"!=W)) valueChanges guards). This is a type-level house-style simplification for a plain two-state toggle, not a fidelity gap in the underlying yes/no semantics — isQuilombola and isLibrasInterpreter keep the literal "SIM"/"NAO" values as enum fields instead, since other fields' requiredWhen conditions reference their exact stored value (isQuilombola equals "SIM").
  • Contact phone 2/3 deferred. The live form supports up to three phone numbers (telefone13/tipoTelefone13/nacionalidadeContato13). Only the first slot is modelled; the second/third are an unbounded-repeating-like structure deferred per this registry's established convention for such containers.
  • Document-required-set is server-computed. The bundle's own abaDocumentos.documentosObrigatorios is populated from the server's API response per applicant, not a static client-side list. The four modelled document entries (selfieWithIdFile, identityDocumentFile, proofOfResidenceFile, militaryDischargeProofFile) reflect the TSE's own published baseline description from the official step-by-step article, not an exhaustive enumeration of every server-computed edge case. birthCertificateFile (certidaoCERTIDAO_NASCIMENTO) is modelled optional since neither the guide's four-photo baseline nor the FAQ names it as universally required for an applicant presenting another accepted photo ID.

Mock test run

Two valid mock scenarios and four mutation-control fixtures are committed under conformance/br/tse/requerimento-alistamento-eleitoral/1.0.0/:

  1. application-packet-1.json — Marcos Antônio da Silva, a salaried resident of Belo Horizonte (MG) registering for the first time and volunteering as a poll worker; no disability, not quilombola, not indigenous, opts out of contact.
  2. application-packet-2.json — Iracema Kaingáng, a self-declared indigenous applicant in Manaus (AM) who speaks an indigenous language, is not quilombola, and opts in to email updates.
  3. mutation-missing-required-field.json — omits the statically required fullName.
  4. mutation-missing-quilombola-community.jsonisQuilombola is "SIM" but quilombolaCommunityName is omitted.
  5. mutation-missing-indigenous-ethnicity.jsonraceColor is "INDIGENA" but indigenousEthnicity is omitted.
  6. mutation-missing-required-document.json — omits the required proofOfResidenceFile document.

An ephemeral, from-scratch conformance checker (deriving required/ requiredWhen rules directly from this schema's own fields[]/ documents[], discarded after use, not committed to the repository) ran all 6 fixtures: both valid scenarios passed with 0 errors; all 4 mutation controls each raised exactly 1 error, on the expected field/document. The same script confirmed every requiredWhen field reference in this document resolves to a real field name (0 dangling references) — a known past mistake in this registry (see CATALOG.md/memory notes on dangling requiredWhen references caught by prior review-gate cycles).

Tooling

Validated clean with node tools/validate.mjs and node tools/validate-ajv.mjs, both individually and as part of a full registry run (498/498 documents passing on this branch, up from 497 on main).

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 Tribunal Superior Eleitoral or any government. The authoritative source is always the live government form and its official instructions.