Registry entry
Philippines Passport Application (Online Appointment System)
Application for a Philippine passport — first-time (new) issuance, renewal, or replacement of a lost or damaged passport — for an applicant who is 18 or older, filed through the Department of Foreign Affairs' Office of Consular Affairs (DFA-OCA) Online Passport Appointment System (passport.gov.ph). Unlike some jurisdictions in this registry, the Philippines uses a single online wizard for every scenario rather than a separate form per scenario; the applicant's request category (new, renewal, or lost/damaged) is itself a field on the form (applicationType), so this document models that single wizard rather than splitting first-time/renewal/lost into separate schemas, consistent with how br/pf/passport-application models Brazil's equivalent unified wizard. Completing the wizard reserves a specific DFA site, date, and time slot and then collects the applicant's Personal, Family, Application, and Contact Information before payment; this document models only the four applicant-data steps (Personal Information, Family Information, Application Information, Contact Information) — it does not model the Site Location or Date and Time steps, since those select an appointment slot rather than collect passport-application data, nor does it submit the application; passport.gov.ph is always authoritative. Scoped to an adult applicant (18 or older); the minor-applicant path on the same wizard additionally requires a parent/guardian consent block not modelled here (see VERIFICATION.md).
Registry entry
ph/dfa/passport-application
Authoritative source DFA Online Passport Appointment System — Individual Appointment wizard (Personal Information / Family Information / Application Information / Contact Information steps)
Machine access
- Schema document
registry/ph/dfa/passport-application/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/ph/dfa/passport-application/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
48 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.
Personal Information
-
lastNamestring requiredLast Name
length: 0–100classification: pii -
firstNamestring requiredFirst Name
length: 0–100classification: pii -
middleNamestring optionalMiddle Name
length: 0–100classification: pii -
suffixstring optionalE.g. Jr., Sr., II, III. No fixed option list was confirmed live; modelled as free text.
length: 0–10classification: pii -
sexenum requiredThe live DOM field is named Gender; modelled as sex for naming consistency with ph/bi/non-immigrant-visa-application's equivalent field. Option list not independently confirmed live (see VERIFICATION.md).
enum: M | Fclassification: pii -
dateOfBirthdate requiredThe live form splits this into separate day/month/year inputs; represented here as a single ISO 8601 date.
classification: pii -
civilStatusenum requiredOption list reused from ph/bi/non-immigrant-visa-application's civilStatus enum (same jurisdiction, same Civil Status vocabulary on the closest independently-verified Philippine government form); not independently confirmed against this form's live dropdown (see VERIFICATION.md).
enum: single | married | widowed | separated | annulled | divorced -
countryOfBirthstring requiredCountry of Birth
length: 0–100classification: pii -
placeOfBirthProvincestring optionalPhilippine province of birth. Left optional since applicability to a foreign-born applicant was not independently confirmed.
length: 0–100classification: pii -
placeOfBirthMunicipalityCitystring optionalPlace of Birth — Municipality/City
length: 0–100classification: pii -
citizenshipBasisenum requiredThe live DOM field is named BirthRight. Values corroborated via multiple DFA consular-post pages describing BIRTH (most Filipinos born in the Philippines), ELECTION (citizenship elected upon reaching adulthood, applicable to persons born before 17 Jan 1973 to a Filipino mother), RA 9225 (Citizenship Retention and Re-acquisition Act of 2003, dual citizenship), and naturalization — not independently confirmed against this form's live dropdown text (see VERIFICATION.md).
enum: birth | election | ra_9225 | naturalization -
companionNamestring optionalName of a person accompanying the applicant to the appointment. Purpose not independently confirmed live; likely relevant to a Person-With-Disability/senior-citizen assistance companion given the appointment site's separate PWD/senior-citizen site notices (see VERIFICATION.md).
length: 0–200classification: pii -
companionRelationshipstring optionalCompanion Relationship
length: 0–100 -
companionContactNumberstring optionalCompanion Contact Number
length: 0–30classification: pii -
emailstring requiredThe system's own reminder recommends a Google or Yahoo account to avoid technical incompatibilities.
length: 0–200classification: pii -
mobileNumberstring requiredMobile Number
length: 0–30classification: pii -
landlineNumberstring optionalLandline/Phone Number
length: 0–30classification: pii
Family Information
-
fatherLastNamestring optionalFather's Last Name
length: 0–100classification: pii -
fatherFirstNamestring optionalFather's First Name
length: 0–100classification: pii -
fatherMiddleNamestring optionalFather's Middle Name
length: 0–100classification: pii -
fatherSuffixstring optionalFather's Suffix
length: 0–10classification: pii -
fatherCitizenshipstring optionalFather's Citizenship
length: 0–100classification: pii -
motherLastNamestring optionalMother's maiden last name, per standard Philippine civil-registry naming convention.
length: 0–100classification: pii -
motherFirstNamestring optionalMother's First Name
length: 0–100classification: pii -
motherMiddleNamestring optionalMother's Middle Name
length: 0–100classification: pii -
motherSuffixstring optionalMother's Suffix
length: 0–10classification: pii -
motherCitizenshipstring optionalMother's Citizenship
length: 0–100classification: pii -
spouseLastNamestring optionalSpouse's Last Name
length: 0–100classification: pii -
spouseFirstNamestring optionalSpouse's First Name
length: 0–100classification: pii -
spouseMiddleNamestring optionalSpouse's Middle Name
length: 0–100classification: pii -
spouseSuffixstring optionalSpouse's Suffix
length: 0–10classification: pii -
spouseCitizenshipstring optionalSpouse's Citizenship
length: 0–100classification: pii
Application Information
-
applicationTypeenum requiredCorroborated via DFA-affiliated requirements pages (Basic Requirements for Adult New/Renewal/Lost Applications). A damaged or mutilated passport is filed under the same 'lost' category and processed with new-application requirements plus a notarized Affidavit of Loss/Mutilation, per DFA's own published guidance — not modelled as a separate value.
enum: new | renewal | lost -
previousPassportNumberstring optionalPrevious Passport Number
length: 0–30classification: pii -
previousPassportDateIssueddate optionalThe live form splits this into separate month/day/year inputs; represented here as a single ISO 8601 date.
-
previousPassportPlaceOfIssuancestring optionalPrevious Passport — Place Issued
length: 0–100 -
citizenshipstring requiredCountry of citizenship, typically Filipino.
length: 0–100classification: pii -
citizenshipRemarksstring optionalFree-text elaboration, e.g. detail supporting a non-birth citizenshipBasis.
length: 0–250 -
hasForeignPassportboolean optionalRelevant to dual citizens (e.g. citizenshipBasis of ra_9225 or naturalization).
-
foreignPassportCountrystring optionalForeign Passport — Issuing Country
length: 0–100classification: pii
Contact Information
-
emergencyContactNamestring requiredThe system's own reminder requires this to be a reachable person, other than the applicant, residing in the Philippines.
length: 0–200classification: pii -
emergencyContactNumberstring requiredEmergency Contact Number
length: 0–30classification: pii -
residentialAddressstring requiredComplete Address
length: 0–250classification: pii -
residentialCitystring requiredCity
length: 0–100classification: pii -
residentialProvincestring requiredProvince
length: 0–100classification: pii -
occupationstring optionalOccupation
length: 0–150 -
officeAddressstring optionalOffice Address
length: 0–250 -
officeContactNumberstring optionalOffice Number
length: 0–30
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-06
The document was derived from direct DOM inspection of the live, unauthenticated Online Passport Appointment System (passport.gov.ph), operated by the Department of Foreign Affairs' Office of Consular Affairs (DFA-OCA). It remains draft, not verified, pending an independent second reviewer's field-by-field pass and, ideally, a future confirmation pass that does not require holding a real appointment slot (see "Deliberate scope limit" below).
Why this document exists
This is a standing GovSchema Standard Research cycle (GOV-1497). Passport was the Philippines' last unscreened-as-strong vertical gap: prior cycles (GOV-1466, GOV-1490; see CATALOG.md) had already screened passport.gov.ph and explicitly deferred it as a weaker candidate because "the live wizard consumes genuinely scarce real DFA appointment inventory" — i.e., progressing through the wizard's Date and Time step holds an actual bookable slot. This cycle picked the same candidate back up but designed the extraction method specifically to avoid that cost (see below), rather than treating the prior concern as a dead end.
Source examined
- Document
(id, version):ph/dfa/passport-application/1.0.0 - Spec version: GovSchema
0.3.0 - Authority: Department of Foreign Affairs – Office of Consular Affairs (DFA-OCA), Republic of the Philippines
- Primary source URL: https://passport.gov.ph/appointment
- Located via: the DFA's own public "Schedule an Appointment" navigation link, listed on
passport.gov.ph's home page alongside Requirements, Where to Apply, FAQ, and Accredited Payment Merchants. - Retrieved / reviewed: 2026-07-06
- Reviewer: GovSchema Engineering (initial authoring source-review)
Access and extraction method
passport.gov.ph/appointment returned HTTP 200 directly (no login gate). After accepting the Terms and Conditions checkbox and choosing "Start Individual Appointment", the wizard presents six tabs in its left-hand nav: Site Location, Date and Time, Personal Information, Family Information, Application Information, Contact Information. The system is server-rendered (ASP.NET-style postback wizard): once the Site Location step is submitted, the Date and Time step's page load already contains every downstream step's field as a hidden <input> — 61 hidden inputs covering the full Personal/Family/Application/Contact Information field set — even though those steps have not yet been visually reached. A Playwright script (document.querySelectorAll('input, select, textarea'), reading each element's id/name/type) captured this complete, verbatim field-name inventory directly from the live DOM, the same whole-wizard-in-one-load shape documented for br/pf/passport-application (see [[gov-form-pdf-extraction]] / gov1364-br-pf-passport-application-live-dom-technique memory), giving every field's exact source name attribute (FirstName, Birthday.Day/.Month/.Year, CivilStatus, BirthRight, ApplicationType, etc.) with no vision/OCR step.
Deliberate scope limit: did not solve the reCAPTCHA or hold a real slot
Submitting the Date and Time step (to reach the rendered Personal Information step and see its live labels, option lists, and required-field asterisks) requires selecting a specific site, date, and time slot, then solving a reCAPTCHA challenge ("Please complete the recaptcha challenge."). Reaching that point necessarily places a temporary hold on one specific appointment slot at one specific DFA site. Given the Philippines runs genuinely scarce passport-appointment capacity (a site-availability sweep this cycle across 43 DFA sites found the large majority — including every Metro Manila DFA office checked — fully booked for the next several months, with only a minority of provincial sites showing any open date), and given the prior GOV-1466/GOV-1490 cycles explicitly flagged this exact cost as the reason they deferred this vertical, this cycle deliberately did not:
- solve or attempt to bypass the reCAPTCHA challenge,
- submit the Date and Time step, or
- hold any specific site/date/time combination beyond the few seconds needed to confirm a given site had at least one open (non-"fully booked") calendar date, immediately releasing the browser session afterward rather than proceeding to a time-slot hold or payment step.
This is a considered trade-off, not an oversight: it means the Personal Information/Family Information/Application Information/Contact Information steps' live-rendered labels, dropdown option lists, and required-field asterisks were not independently confirmed this cycle (unlike br/pf/passport-application, whose equivalent four tabs render with no CAPTCHA gate at all and so were read directly). Everything below this document's field-name inventory is inferred, not observed, and is flagged accordingly.
What was confirmed directly (verbatim, from the live DOM)
- Wizard structure: six-tab flow (Site Location → Date and Time → Personal Information → Family Information → Application Information → Contact Information), confirmed from the rendered left-hand nav on the Site Location and Date and Time steps.
- Every field's exact source name/id, in DOM order, for the four applicant-data steps (see
schema.json'ssourceRefvalues, each citing the literal source field name in parentheses) — 46 distinct field concepts (48 schema fields once the two split date fields,Birthday.*andDateIssued.*, are each counted as their three constituent inputs). Field-to-step assignment (which fields belong to Personal vs. Family vs. Application vs. Contact Information) is read directly from DOM order, which cleanly clusters into four contiguous blocks matching the six-tab nav exactly. - The site's own required-field convention: both the Site Location and Date and Time steps render "Fields with asterisks(\*) are required" and mark Region/Country/Site with an asterisk while leaving Office Name/Address/Contact Number (auto-populated, read-only display fields) unmarked — confirming the system does distinguish required from optional fields with a visible asterisk convention, even though this cycle could not observe which asterisks apply within the four applicant-data steps specifically.
- Genuinely scarce appointment inventory: a sweep across all 43 listed DFA sites (Philippines region) found the great majority fully booked for every visible calendar date across several months; a minority of sites (e.g. Antique, Angeles, Balanga, Butuan, Cagayan De Oro, and others) had at least one open date in the near term. This corroborates, rather than contradicts, the prior cycles' stated reason for deferring this vertical.
What was inferred (not independently confirmed) and why
sex(source fieldGender) option list. Modelled as["M", "F"]by analogy toph/bi/non-immigrant-visa-application's independently- confirmedsexfield (M/Fcheckboxes on the Bureau of Immigration's own CGAF form) — the closest same-jurisdiction, independently-verified reference. Not confirmed against this system's own live dropdown.civilStatusoption list. Reused verbatim fromph/bi/non-immigrant-visa-application's independently-confirmedcivilStatusenum (single/married/widowed/separated/annulled/divorced) for the same reason. Not confirmed against this system's own live dropdown.citizenshipBasis(source fieldBirthRight) option list. Corroborated via multiple DFA consular-post pages (e.g. dual-citizenship/ RA 9225 explainer pages hosted on*.dfa.gov.phconsular-post subdomains) and independent passport-guide sites, consistently describing BIRTH/ELECTION/RA 9225/naturalization as the standard "Basis of Citizenship" categories on the DFA passport application — but no single source was a literal transcription of this system's own dropdown text, so the coded values (birth/election/ra_9225/naturalization) are this document's own slugging of that description, not a verbatim source enum.applicationTypeoption list. Corroborated via DFA-affiliated "Basic Requirements for Adult New/Renewal/Lost Applications" pages (mirrored across several*.dfa.gov.phconsular-post subdomains), consistently describing three categories: new (first-time), renewal (currently/recently expired), and lost (lost, damaged, or mutilated — DFA's own guidance treats a damaged/mutilated passport as filed under the same "lost" bucket, processed with new-application requirements plus a notarized Affidavit of Loss/Mutilation). Not a verbatim transcription of this system's own dropdown text.required/requiredWhenmarkers on all four applicant-data steps. None of these were read from a live rendered asterisk, since reaching those steps requires the reCAPTCHA-gated submission this document deliberately did not perform (see "Deliberate scope limit" above).required: truewas asserted only for fields structurally necessary to identify the applicant and file any of the three application types (name, sex, date of birth, civil status, country of birth, citizenship basis, citizenship, email, mobile number, application type, residential address/city/province, emergency contact name/number); every other field isrequired: false.requiredWhenwas asserted only where the underlying logic is unambiguous from the field's own purpose (previousPassportNumber/previousPassportDateIssued/previousPassportPlaceOfIssuancewhenapplicationTypeisrenewalorlost;spouseLastName/spouseFirstNamewhencivilStatusismarried;foreignPassportCountrywhenhasForeignPassportistrue). A reviewer who can complete the wizard without displacing a real applicant (e.g. during a future site visit or via DFA's own internal documentation) should confirm or correct every one of these markers.companionName/companionRelationship/companionContactNumberpurpose. These three fields' role could not be confirmed live. Modelled generically as an accompanying-person block; their likely purpose (assistance companion for a Person-With-Disability or senior-citizen applicant) is inferred from the appointment system's own separate PWD/ senior-citizen and OFW site-specific notice checkboxes observed on the Site Location step, not from any direct evidence tying those notices to this field group.- No repeating/array field type (GSP-0009). Not applicable to this document — no repeating structure was found in the field-name inventory.
What was deliberately NOT modelled (and why)
- Site Location and Date and Time step fields (region, country, site, date, time slot, and the associated anti-forgery/session/reCAPTCHA plumbing:
SiteRegionID,SiteCountryID,SiteID,ScheduleDate,TimeSlotID,OffsetTicks,DraftApplicationCode,AppointmentId,__RequestVerificationToken,g-recaptcha-response, and the five per-site notice-acknowledgment checkboxescl-notif-checkbox/pubpow-notif-checkbox/ofw-notif-checkbox/renewal-notif-checkbox/co-notif-checkbox). These select and reserve a booking slot and acknowledge that specific site's own posted rules — they are the booking website's own scheduling/session logistics, not passport- application data, consistent with howkr/mofa/passport-application- first-adultand other appointment-driven schemas in this registry exclude office/branch/queue selection fromfields[]. - Minor-applicant path. The same wizard likely supports a parent/ guardian consent block for applicants under 18 (consistent with every other passport schema in this registry that draws this same first-time-adult/minor boundary); this document is scoped to an adult applicant and does not model it, since it was never observed (blocked behind the same reCAPTCHA gate).
- Payment and appointment-confirmation steps. The wizard collects payment after the four applicant-data steps; this is a downstream transactional step, not application data, and is out of scope per this registry's convention (e.g.
br/pf/passport-application's GRU payment slip is likewise not modelled).
Path to a verified claim (next step)
To advance this document to status: verified, a reviewer needs to, without holding a real applicant's appointment slot for longer than necessary to observe the four applicant-data steps:
- Independently re-confirm the field-name inventory against the live DOM.
- If a legitimate opportunity arises to view the rendered Personal/Family/ Application/Contact Information steps (e.g. an actual DFA appointment being booked for a real applicant, or future guidance/documentation DFA itself publishes), confirm or correct every inferred enum option list and required/requiredWhen marker in items 1-6 above.
- Confirm DFA has not since changed the wizard's step structure or field names.
Mock test run (phase 4)
A throwaway Node script (not committed) built a mock application — a Filipino-born adult applying for a new passport, single, both parents Filipino citizens, no foreign passport — and checked every populated field against its type/validation constraint and every requiredWhen-gated field's effective requiredness given the mock's own answers (applicationType: new correctly left previousPassportNumber/ previousPassportDateIssued/previousPassportPlaceOfIssuance not required; civilStatus: single correctly left spouseLastName/spouseFirstName not required; hasForeignPassport: false correctly left foreignPassportCountry not required). Result: PASS, 48 fields modelled, 21 populated in the mock, 4 flow steps. This is a data-shape dry run only — it does not constitute execution of the live system, per the deliberate scope limit above.
Re-verification
Per the practice's Cadence, nextReviewBy is set to 2027-01-06 (~6 months). Re-check the source, and confirm no structural change to the wizard, 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 Department of Foreign Affairs – Office of Consular Affairs or any government. The authoritative source is always the live government form and its official instructions.