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
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
- Schema document
registry/br/tse/requerimento-alistamento-eleitoral/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/br/tse/requerimento-alistamento-eleitoral/1.0.0/VERIFICATION.mdtext/markdown- 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
-
fullNamestring requiredThe applicant's full legal name, at least two words, no special characters.
classification: pii -
dateOfBirthdate requiredThe 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 -
parentageDeclarationOptionstring requiredSelects 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.
-
parent1Namestring optionalFirst 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 -
parent2Namestring optionalSecond declared parent/legal-guardian name. See `parent1Name` for the disclosed requiredness simplification.
classification: pii -
parent3Namestring optionalThird declared parent/legal-guardian name, used for a second mother/socio-affective parentage declaration. See `parent1Name` for the disclosed requiredness simplification.
classification: pii -
parent4Namestring optionalFourth declared parent/legal-guardian name, used for a second father/socio-affective parentage declaration. See `parent1Name` for the disclosed requiredness simplification.
classification: pii -
cpfstring optionalThe 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 -
idDocumentTypestring requiredThe 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.
-
idDocumentNumberstring requiredThe identification document's number.
classification: sensitive-pii -
idIssuingAuthoritystring requiredThe issuing authority of the identification document (e.g. SSP/UF), alphanumeric and punctuation only.
pattern -
genderenum requiredThe 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 -
maritalStatusstring requiredThe 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).
-
educationLevelstring requiredThe 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).
-
occupationstring requiredThe applicant's declared occupation, selected from the live service's own large external occupation-code reference list.
-
birthStatestring requiredThe Brazilian state (UF, two-letter code) where the applicant was born.
pattern -
birthMunicipalitystring requiredThe municipality where the applicant was born, selected from the live service's own external reference list filtered by `birthState`.
-
hasTwinSiblingboolean requiredWhether the applicant has a twin sibling, used by the Justiça Eleitoral to cross-check similar-identity registrations.
-
wantsToBePollWorkerVolunteerboolean requiredWhether the applicant wants to volunteer as a poll worker (mesário/mesária).
-
hasDisabilityboolean requiredWhether the applicant has a disability requiring accommodation.
-
disabilityDescriptionstring optionalFree-text/selected description of the applicant's disability/disabilities, enabled only when `hasDisability` is true.
classification: health -
militaryReservistCertificateNumberstring optionalThe 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
-
postalCodestring requiredThe applicant's residential postal code (CEP), used by the live form to look up and pre-fill state/municipality/neighborhood/street.
pattern -
statestring requiredThe Brazilian state (UF) of the applicant's residential address, resolved from `postalCode`.
pattern -
municipalitystring requiredThe municipality of the applicant's residential address, resolved from `postalCode`.
-
neighborhoodstring requiredThe neighborhood of the applicant's residential address, resolved from `postalCode`.
-
streetAddressstring requiredThe street name of the applicant's residential address, resolved from `postalCode`.
-
addressNumberstring requiredThe street number of the applicant's residential address, digits only.
pattern -
addressComplementstring optionalOptional address complement (apartment/unit, block, etc.).
-
residencyBondTypestring requiredThe 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.
-
residencyYearsinteger requiredWhole years the applicant has held the declared bond with the municipality.
range: 0–∞ -
residencyMonthsinteger requiredAdditional whole months (0-11) the applicant has held the declared bond with the municipality.
range: 0–11 -
pollingLocationstring requiredThe applicant's chosen polling location, selected from a list of available locations near the declared address.
-
accessiblePollingSectionOnlyboolean optionalWhether to filter the polling-location list to accessible sections only.
Dados Complementares
-
selfDeclaredGenderIdentitystring requiredThe 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 -
raceColorenum requiredThe applicant's self-declared race/color, the standard IBGE five-category classification.
enum: BRANCA | PRETA | PARDA | AMARELA | INDIGENAclassification: sensitive-pii -
socialNamestring optionalThe 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 -
isQuilombolaenum requiredWhether 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 -
quilombolaCommunityNamestring optionalName of the applicant's quilombola community.
-
speaksQuilombolaLanguageboolean optionalWhether 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).
-
quilombolaLanguageNamestring optionalName of the quilombola language spoken by the applicant.
-
indigenousEthnicitystring optionalThe applicant's indigenous ethnicity, selected from the live service's own external reference list, required only when `raceColor` is INDIGENA.
classification: sensitive-pii -
secondIndigenousEthnicitystring optionalAn optional second indigenous ethnicity, for applicants of mixed indigenous heritage.
-
speaksIndigenousLanguageboolean optionalWhether 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).
-
indigenousLanguageNamestring optionalName of the indigenous language spoken by the applicant.
-
isLibrasInterpreterenum requiredWhether the applicant is a Brazilian Sign Language (Libras) interpreter.
enum: SIM | NAO
Contato
-
contactPhoneTypestring optionalThe 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).
-
contactPhoneNumberstring optionalThe optional contact phone number.
classification: pii -
contactNamestring optionalOptional name of the contact person, if different from the applicant.
classification: pii -
wantsSmsUpdatesboolean optionalWhether the applicant opts in to receive SMS updates about this request.
-
wantsEmailUpdatesboolean optionalWhether the applicant opts in to receive email updates about this request.
-
contactEmailstring optionalContact email address, required only when the applicant opts in to email updates.
patternclassification: pii -
confirmContactEmailstring optionalConfirmation 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:draftverification.method:manual-source-review-v1verification.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-faqandhttps://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. theresidencyBondTypevalues: 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:
- Dados Pessoais (
nome,dataNascimento,indicadorOpcaoFiliacao,filiacao1–filiacao4,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 ownthis.ehAlistamentoconditional branch, which sets initial values fromcredenciais.tipoFiliacaoonly in the alistamento case. - Endereço (
pais,siglaUf,cep,cepZZ,cidadeZZ,localidadeZZ,bairroZZ,municipio,bairro,endereco,enderecoZZ,numero,complemento,tipoVinculo,anos,meses). The*ZZ/paisfields are the overseas-residence variant, scoped out of this document — see "Scoping decisions" below. - Local de Votação (
localVotacao,secaoAcessivel). - Dados Complementares (
identidadeGenero,racaCor,nomeSocial,ehQuilombola,ehInterpreteLibras,comunidadeQuilombola,falaLinguaQuilombola,linguaQuilombola,etniaIndigena,segundaEtnia,falaLinguaIndigena,linguaIndigena). - Contato (
tipoTelefone1–3,nacionalidadeContato1–3,telefone1–3,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 (selfie→FOTO_SEGURANDO_DOCUMENTO, docIdentficacao→IDENTIFICACAO, comprovanteRes→COMPROVANTE_RESIDENCIA, certidao→CERTIDAO_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 viavar ei=(()=>{...ei.BRANCA="BRANCA",ei.PRETA="PRETA",ei.PARDA="PARDA",ei.INDIGENA="INDIGENA",ei.AMARELA="AMARELA"...})()and the matching label arrayconst 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 thevalidarDocReservistacross-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/enderecoZZaddress 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. parentageDeclarationOptionandparent1Name–parent4Name. The live form's true requiredness for the four parent-name fields depends onindicadorOpcaoFiliacao's value being passed through an internal helper method (deveHabilitarCampoFiliacaoPara, keyed against an enumji.rwith members includingMAE/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 modelledrequired: falserather than guessing at arequiredWhencondition 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 BOTHgender === "MASCULINO"AND a computed check that the applicant turns 19 within the current calendar year (the conscription window). GovSchema'sConditiongrammar supports only static field-to-value comparisons, not a computed function of a date field, so this document'srequiredWhenusesgender equals MASCULINOalone — 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 whenidentidadeGenero's value contains the substring "TRANS" — not expressible as a GovSchemaequals/incondition 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, andresidencyBondTypeare each backed by the live service's own server-fetched reference lists (confirmed viastore.select/iniciarConsultar*dispatch calls in the bundle, e.g.municipioNascimento's list depends on the chosenufNascimento), not a fixed enum baked into the client bundle. Each is modelled as an openstring, 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.
speaksQuilombolaLanguageandspeaksIndigenousLanguageare modelled as GovSchemaboolean, 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 —isQuilombolaandisLibrasInterpreterkeep the literal"SIM"/"NAO"values asenumfields instead, since other fields'requiredWhenconditions reference their exact stored value (isQuilombola equals "SIM"). - Contact phone 2/3 deferred. The live form supports up to three phone numbers (
telefone1–3/tipoTelefone1–3/nacionalidadeContato1–3). 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.documentosObrigatoriosis 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(certidao→CERTIDAO_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/:
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.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.mutation-missing-required-field.json— omits the statically requiredfullName.mutation-missing-quilombola-community.json—isQuilombolais"SIM"butquilombolaCommunityNameis omitted.mutation-missing-indigenous-ethnicity.json—raceColoris"INDIGENA"butindigenousEthnicityis omitted.mutation-missing-required-document.json— omits the requiredproofOfResidenceFiledocument.
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.0draftlatestthis pagehas verification recordschema.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.