Registry entry
Brazil Passport Application (SINPA)
Application for a Brazilian passport — first-time issuance, renewal, or replacement of a lost, stolen, retained, or expired passport — for an applicant who will be 18 or older, filed through the Federal Police's (Polícia Federal) own online passport-request system, SINPA (Sistema Nacional de Passaportes). Unlike most jurisdictions in this registry, Brazil uses a single unified online wizard for every request scenario rather than separate forms per scenario; the applicant's prior-passport situation (never had one, holds a valid one, lost, stolen, retained, or expired) is itself a field on the form (previousPassportStatus), so this document models that single wizard rather than splitting first-time/renewal/lost into separate schemas. Completing the wizard produces a protocol number and a personalized document checklist; the applicant then pays the federal fee (GRU), books an in-person biometric appointment, and attends with original documents. This document models only the online data-entry wizard (the four tabs: Dados pessoais, Documentos, Dados complementares, Revisar dados) — it does not submit the request, generate the GRU payment slip, or book the appointment. Applicants under 18 use the same wizard but the form additionally requires the CPF of a responsible party, a travel-authorization election, and the nationality of both parents — none of which is modeled here (see VERIFICATION.md).
Registry entry
br/pf/passport-application
Authoritative source SINPA (Sistema Nacional de Passaportes) — "Nova solicitação de passaporte" online wizard, Divisão de Passaporte, Polícia Federal
Machine access
- Schema document
registry/br/pf/passport-application/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/br/pf/passport-application/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
49 fields across 4 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 requiredFull legal name. The review step warns that, per the ICAO international standard, surnames may be abbreviated when printed on the physical passport.
length: 1–80classification: pii -
sexenum requiredSex as recorded for the passport.
enum: male | female | unspecifiedclassification: pii -
parent1Namestring optionalFull name of the applicant's first parent, as recorded in the civil registry document (birth or marriage certificate). Left blank only if the civil registry document itself does not record this parent.
length: 0–80classification: pii -
parent1Sexenum optionalSex of the first parent named in parent1Name.
enum: male | female | unspecified -
parent2Namestring optionalFull name of the applicant's second parent, as recorded in the civil registry document. Left blank only if the civil registry document itself does not record this parent.
length: 0–80classification: pii -
parent2Sexenum optionalSex of the second parent named in parent2Name.
enum: male | female | unspecified -
dateOfBirthdate requiredThe live form displays this as a DD/MM/AAAA masked text input; represent as an ISO 8601 full-date. This document is scoped to applicants who will be 18 or older: the same wizard, for a minor applicant, additionally requires a responsible party's CPF, a travel-authorization election, and both parents' nationality, none of which is modeled in this v1.0.0 document (see VERIFICATION.md).
classification: pii -
isEmancipatedMinorboolean optionalCheck if the applicant is a legally emancipated minor (emancipação, under Brazilian civil law). Present on the wizard regardless of computed age; out-of-scope minor-only fields elsewhere on the form are not modeled here.
-
isInternationalAdoptionboolean optionalCheck if the applicant is in the process of international adoption.
-
raceOrColorenum requiredSelf-declared race/color, following the IBGE (Brazilian Institute of Geography and Statistics) census categories.
enum: 7 valuesclassification: pii -
maritalStatusenum optionalEstado civil
enum: single | married | widowed | legally_separated | divorced | stable_union -
nationalitystring requiredChosen from a closed country dropdown (over 190 countries plus APATRIDA/stateless), defaulting to BRASIL. The form's own note instructs Brazilians with multiple nationalities to select Brasil.
length: 0–40classification: pii -
countryOfBirthstring requiredCountry of birth, chosen from the same closed country dropdown as nationality.
length: 0–40classification: pii -
stateOfBirthenum optionalBrazilian state of birth. Required only when countryOfBirth is Brazil.
enum: 27 values -
cityOfBirthstring optionalCity of birth within the selected Brazilian state, chosen from a state-dependent city dropdown (with a free-text fallback for a city not listed). Required only when countryOfBirth is Brazil.
length: 0–30classification: pii -
cityOfBirthAbroadstring optionalFree-text city of birth, used when countryOfBirth is not Brazil (the city dropdown only populates for Brazilian states).
length: 0–30classification: pii -
previousNamestring optionalA previous legal name, if the applicant's name has changed. Leave blank if the applicant has never used a different legal name. If provided, previousNameChangeReason should also be provided (the source form pairs a free-text name with a reason dropdown and an 'Adicionar' button, letting more than one previous name be listed one at a time; this document models a single previous-name entry).
length: 0–80classification: pii -
previousNameChangeReasonenum optionalReason for the previous name change named in previousName.
enum: marital_status_change | judicial_decision | other_reason
Documentos
-
idDocumentNumberstring optionalNumber of the applicant's national identity document (RG or equivalent).
length: 0–20classification: pii -
idDocumentIssueDatedate optionalThe live form displays this as a DD/MM/AAAA masked text input; represent as an ISO 8601 full-date.
-
idDocumentIssuingAgencystring optionalDocumento de Identificação — Órgão emissor
length: 0–10 -
idDocumentIssuingStateenum optionalDocumento de Identificação — UF de expedição
enum: 27 values -
cpfstring optionalBrazil's individual taxpayer registry number (Cadastro de Pessoas Físicas), masked on the form as ___.___.___-__.
patternclassification: sensitive-pii -
birthCertificateIsNewModelboolean optionalWhether the birth or marriage certificate follows Brazil's unified post-2010 certificate model, which carries a matrícula (registration) number. If true, birthCertificateRegistrationNumber becomes the certificate's identifying reference.
-
birthCertificateRegistrationNumberstring optionalThe unified certificate's matrícula number. Only entered (the source form disables this field otherwise) when birthCertificateIsNewModel is true.
length: 0–32classification: pii -
certificateTypeenum optionalCertidão — Tipo
enum: birth_certificate | marriage_certificate -
certificateNumberstring optionalCertidão — Número
length: 0–8 -
certificateBookstring optionalCertidão — Livro
length: 0–4 -
certificatePagestring optionalCertidão — Folha
length: 0–5 -
certificateRegistryOfficestring optionalThe notary/registry office (cartório) that issued the birth or marriage certificate.
length: 0–50 -
certificateIssuingStateenum optionalCertidão — UF de expedição
enum: 27 values -
certificateIssuingCitystring optionalCity where the certificate was issued, chosen from a state-dependent city dropdown (with a free-text fallback for a city not listed).
length: 0–30 -
previousPassportStatusenum requiredThe applicant's prior-passport situation. This single field is what distinguishes a first-time application from a renewal, replacement of a lost/stolen document, or a document retained by an authority — Brazil's online wizard handles every scenario through one form rather than a separate form per scenario.
enum: 7 values -
previousPassportSeriesstring optionalThe two-letter series of the previous passport (e.g. for passport CP999999, the series is CP). Required whenever the applicant has held a previous passport.
length: 0–2classification: pii -
previousPassportNumberstring optionalThe numeric part of the previous passport (e.g. for passport CP999999, the number is 999999). Required whenever the applicant has held a previous passport.
length: 0–6classification: pii
Dados complementares
-
occupationstring requiredChosen from Brazil's official CBO (Classificação Brasileira de Ocupações) occupation list, a closed dropdown of several thousand entries on the source form. If the applicant's occupation is not listed, otherOccupation is used instead.
length: 0–60 -
otherOccupationstring optionalFree-text occupation, completed only when the applicant's occupation is not in the closed CBO list.
length: 0–30 -
emailstring requiredE-mail
patternlength: 0–50classification: pii -
emailConfirmationstring requiredMust exactly match email.
patternlength: 0–50classification: pii -
countryOfResidencestring requiredCountry of current residence, chosen from the same closed country dropdown as nationality, defaulting to BRASIL.
length: 0–40classification: pii -
postalCodestring requiredBrazilian postal code (Código de Endereçamento Postal), masked on the form as _____-___. The live form auto-loads the matching address when a valid CEP is entered and the field loses focus.
patternclassification: pii -
stateOfResidenceenum optionalRequired only when countryOfResidence is Brazil.
enum: 27 values -
cityOfResidencestring optionalChosen from a state-dependent city dropdown. Required only when countryOfResidence is Brazil.
length: 0–30classification: pii -
cityOfResidenceAbroadstring optionalFree-text city of residence, used when countryOfResidence is not Brazil.
length: 0–30classification: pii -
streetAddressstring requiredLogradouro
length: 0–100classification: pii -
neighborhoodstring requiredDistrito/Bairro
length: 0–50classification: pii -
areaCodestring optionalBrazilian telephone area code (2 digits), paired with phoneNumber.
length: 0–2classification: pii -
phoneNumberstring optionalTelefone
length: 0–10classification: pii
Revisar dados
-
declarationInformationCorrectboolean requiredDeclaration that the information above is correct, and acknowledgement that any error in the data will delay issuance of the travel document.
Verification record
This file is the source-review record for this document version, per the manual-source-review-v1 practice.
Current claim
status:draftverification.method:manual-source-review-v1verification.lastVerifiedAt:2026-07-06
The document was derived from a directly-read live source: the Federal Police's own SINPA (Sistema Nacional de Passaportes) online passport-request wizard, read field-by-field from the live, unauthenticated DOM. It remains draft, not verified, pending an independent second reviewer's field-by-field pass.
Why this document exists
This cycle (GOV-1364, the recurring GovSchema Standard Research routine) picked up Brazil's remaining un-scouted verticals. Brazil opened as the registry's 15th jurisdiction under GOV-1342/GOV-1296 with a single Business Formation schema (br/sp/jucesp/cnpj-registration-dbe); its Passport, DMV, Visa, and National ID verticals had not yet been researched (its only other candidate, GOV-1295 — Receita Federal individual income tax — was found too fragmentary to source safely and remains open in the backlog, not attempted again this cycle). This cycle scouted Brazil's Passport process and found a genuinely strong source: the Polícia Federal's own live online application wizard, reachable with no login, no CAPTCHA, and no IP block.
Source examined
- Document
(id, version):br/pf/passport-application/1.0.0 - Spec version: GovSchema
0.3.0 - Authority: Polícia Federal — Divisão de Passaporte, Coordenação-Geral de Polícia de Imigração
- Primary source URL: https://servicos.pf.gov.br/sinpa/inicializacaoSolicitacao.do?dispatch=inicializarSolicitacaoPassaporte ("Nova solicitação de passaporte" / New passport request)
- Retrieved / reviewed: 2026-07-06
- Reviewer: GovSchema Engineering (initial authoring source-review)
Extraction method
Unlike most prior cycles' PDF/StreamDocs/screenshot-vision techniques, SINPA is a genuinely live, unauthenticated, four-tab HTML wizard (Dados pessoais / Documentos / Dados complementares / Revisar dados) with no CAPTCHA and no gov.br SSO gate — the strongest sourcing shape available: the actual page DOM, not a rendered image of it. Worked per [[browser-screenshots-setup]] (Playwright-core + Chromium already installed at /tmp/shotter from a prior cycle, LD_LIBRARY_PATH pointed at /paperclip/chrome-sysroot):
- Navigated directly to the wizard's entry URL.
networkidleload, no redirect to any login page. - All four tabs' HTML (including the later Documentos/Dados complementares/Revisar dados tabs, which are shown/hidden client-side rather than lazily fetched) are present in a single page load. Ran
document.querySelectorAll('input, select, textarea')across the full DOM and recorded every element'sid,name,type,maxLength, associated label text, and (for<select>) every<option>'s underlyingvalueand visibletext— not a truncated or paraphrased list. - Screenshotted each of the four tabs directly (clicking the tab headers, which does not require passing client-side validation the way the "PRÓXIMO" step buttons do) to corroborate the extracted field inventory against the rendered layout and confirm section groupings/labels.
- Confirmed the CPF field (
___.___.___-__) and CEP field (_____-___) input masks directly from the rendered screenshots, grounding this document'scpf/postalCodepatternvalidation. - Read the exact worked example text next to the previous-passport series/number fields verbatim from the screenshot ("Exemplo: Para o passaporte CP999999 a série é CP e o número é 999999"), now reproduced in
previousPassportSeries/previousPassportNumber'sdescription. - Did not click the final "ENVIAR" (submit) button at any point, and did not fill in any field with a real person's data — per
GOVERNANCE.md, GovSchema describes and verifies processes, it does not submit them. Two supporting pages (gov.br/pt-br/servicos/obter-passaporte-comum-para-brasileiro,gov.br/pf/pt-br/assuntos/passaporte/documentacao/formulario/preenchendo) were also fetched directly to corroborate the overall process narrative (protocol number → GRU fee payment → in-person biometric appointment → pickup) described in this document's top-leveldescription.
What was confirmed directly (verbatim, from the live DOM)
- Dados pessoais tab: every field id/name/maxlength listed above;
sexo's three coded option values (M/F/X);racaCor's seven IBGE categories (codes 1/2/3/4/5/8/9 — the select has an eighth, blank placeholder<option>that is not itself a category) with their numeric option codes;estadoCivil's six categories; the "Local de nascimento" country/UF/city cascading structure, including the distinct free-text city field used only when the country of birth isn't Brazil; the "Nomes anteriores" previous-name-plus-reason-dropdown pattern (three reason codes). - Documentos tab: the "Documento de Identificação" (RG) sub-block; the CPF and CPF-do-responsável fields (the latter deliberately excluded from this document — see Out of scope); the "Certidão" sub-block including the disabled-until-checked
Matrículafield for the new unified certificate model, and the type/number/book/page/registry-office/state/city fields; the "Passaporte Anterior"Situação*dropdown's all seven option values verbatim, which is the field that lets one wizard cover first-time, renewal, lost, stolen, and retained-by-authority scenarios without a separate form per scenario — this is the central structural finding of this document. - Dados complementares tab: the large CBO occupation dropdown (confirmed large/closed, not enumerated per the
au/apo-style precedent for free-text-modeled closed country/occupation dropdowns); the email + email-confirmation pair (grounding theemailMatchesConfirmationcrossFieldValidationrule); the address sub-block's country/CEP/UF/city cascading structure (mirroring the birth-place structure) plus logradouro/bairro/DDD/telefone. - Revisar dados tab: the mandatory declaration checkbox text verbatim ("Declaro que as informações acima estão corretas e que estou ciente de que qualquer erro nos dados implicará em atraso na emissão do meu documento de viagem."), and the ICAO-surname-truncation warning now reflected in
fullName'sdescription.
What is out of scope for v1.0.0
- Applicants under 18. The wizard is the same for a minor applicant, but the DOM additionally carries
cpfResponsavel(CPF of the responsible party), anautorizacaoViagemthree-option radio group (a minor's travel-authorization election), andpaisNacionalidadeFiliacao1/2(each parent's nationality) — none of which are modeled here. These fields sit on the Documentos/Dados complementares tabs and are always present in the DOM (the tab-based show/hide made it impractical to confirm, within this cycle's time budget, the exact client-side age threshold that reveals them), so this document is deliberately scoped to an applicant who will be 18 or older rather than guessing at the minor-specific conditional logic. A follow-up cycle could re-render with apage.selectOption/blur-driven age check to confirm the exact trigger and add abr/pf/passport-application-minorcompanion document. checkEmancipado/checkAdocaoInternacionalare included as fields (isEmancipatedMinor/isInternationalAdoption) since they are static, always-visible checkboxes on the Dados pessoais tab regardless of computed age — these are genuinely in scope.- Physical document checklist, GRU fee payment, and appointment booking. The wizard itself states it generates "a personalized document checklist" after the data-entry steps and that a separate GRU (Guia de Recolhimento da União) payment and in-person biometric appointment follow — none of this is part of the online wizard modeled here, and no fee amount is encoded (fees change; not stated on the wizard itself either).
documents[](GSP-0014). The concrete physical-document checklist (RG original, birth/marriage certificate original, etc.) is generated dynamically by the live system after this wizard's data is submitted and was not independently sourced this cycle (a candidate source,gov.br/pf/pt-br/assuntos/passaporte/documentacao/lista-brasileiro, is noted for a follow-up cycle). Left absent rather than guessed.- Help-tooltip content behind the three orange "?" icons (Documento de Identificação, Certidão, Passaporte Anterior sections) — clicking them in headless Chromium did not reliably surface a distinct DOM overlay within this cycle's time budget; every field this document models was confirmed from the base form fields/labels/options directly, not from tooltip content, so this gap does not affect field accuracy, only some possibly-richer field descriptions.
- Brazil's other three verticals (DMV, Visa, National ID) remain unresearched — candidates for a future cycle.
Mock-data conformance check (Phase 4)
A fabricated, non-submitting mock application packet lives at conformance/br/pf/passport-application/1.0.0/application-packet.json (+ .txt rendering). It was run against every requiredWhen/crossFieldValidation rule in this schema with a small mutation-testing script (baseline plus 10 deliberately-broken variants: missing conditional Brazil-birth fields, missing conditional abroad-birth field, missing previous-passport series/number when a prior passport is held, missing the new-model certificate registration number, a mismatched email confirmation, a false declaration, an invalid CPF pattern, and an invalid enum value) — every variant produced exactly the expected violation, and the unmodified baseline produced none. This document was not submitted to servicos.pf.gov.br or any other live system at any point, per GOVERNANCE.md.
Path to a verified claim (next step)
To advance this document to status: verified, a reviewer needs to independently re-render the same live SINPA wizard, re-check every sourceRef against it field by field, confirm the minor-applicant conditional logic (see Out of scope), and confirm no newer wizard revision has changed the field set.
Re-verification
Per the practice's Cadence, nextReviewBy is set to 2027-01-06 (~6 months): this is the registry's first Brazilian Passport document and the first document in this registry sourced by direct live-DOM extraction rather than a PDF/image/screenshot technique — the shorter end of the cadence is appropriate until the technique and the minor-applicant scope boundary are independently confirmed. Re-check the source, and confirm no newer wizard revision has been published, on or before that date and on any source.url change.
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 Polícia Federal — Divisão de Passaporte, Coordenação-Geral de Polícia de Imigração or any government. The authoritative source is always the live government form and its official instructions.