Registry entry
Singapore Entry Visa Application (Form 14A)
Give the details for a Singapore entry visa application: the visa a national of a visa-required country/territory needs before travelling to Singapore. Singapore does not accept visa applications at the immigration checkpoint or over the counter, and does not offer a direct applicant self-service portal; every application is submitted on the applicant's behalf by a Singapore-resident local contact (a Singapore Citizen, Permanent Resident, or a Singapore-registered company/hotel) or an authorised visa agent/overseas mission, using the Immigration & Checkpoints Authority's (ICA) online SAVE (Submission of Application for Visa Electronically) e-Service or, where no such intermediary is available, a paper submission through an authorised visa agent or the nearest Singapore overseas mission. This document models ICA's own canonical Form 14A ('Application for Entry Visa') that the applicant completes, plus Form V39A ('Letter of Introduction for Visa Application') that the local contact or company completes and signs to introduce the applicant. It does not model the authenticated SAVE e-Service screens themselves, which are gated behind the local contact's Singpass or the company's Corppass account; the live source is always authoritative.
Registry entry
sg/ica/entry-visa-application
GovSchema spec v0.3
Machine access
- Schema document
registry/sg/ica/entry-visa-application/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/sg/ica/entry-visa-application/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
71 fields across 10 steps, read from the published schema.json — names, types, requiredness, and validation as the document states them. The live government form remains the authoritative source.
Submission route
-
submissionChannelenum requiredICA does not accept visa applications submitted directly by the applicant or over the counter. Determines which route (and which of the localContact* fields below) applies. Not itself a box on Form 14A; captured because an agent preparing this application needs to know which intermediary route is available before the form's own fields are relevant.
enum: Local contact with Singpass via SAVE | Company or hotel local contact with Corppass via SAVE | Authorised visa agent | Singapore overseas mission
Particulars of applicant — identity
-
fullNamestring requiredName (full name as shown in travel document)
length: 0–200classification: pii -
aliasstring optionalAlias
length: 0–200classification: pii -
dateOfBirthdate requiredDate of birth
classification: sensitive-pii -
sexenum requiredSex
enum: Male | Female -
maritalStatusenum requiredMarital status
enum: 7 values -
spouseStatusenum optionalWhether the applicant's spouse is a Singapore Citizen, Singapore Permanent Resident (each requiring the spouse's NRIC number), or of another nationality (please specify).
enum: Singapore Citizen | Singapore Permanent Resident | Others -
spouseNricNumberstring optionalSpouse's NRIC No.
length: 0–20classification: sensitive-pii -
spouseOtherNationalityDetailsstring optionalSpouse's nationality/citizenship (please specify)
length: 0–200 -
countryPlaceOfBirthstring requiredCountry/place of birth
length: 0–100 -
stateProvinceOfBirthstring optionalState/province of birth
length: 0–100 -
racestring requiredRace (e.g. Malay, Indian, Chinese, Caucasian, etc)
length: 0–100 -
nationalityCitizenshipstring requiredNationality/citizenship
length: 0–100
Particulars of applicant — travel document
-
travelDocumentTypeenum requiredType of travel document held
enum: 7 values -
otherTravelDocumentTypeDetailsstring optionalOther travel document type (please specify)
length: 0–200 -
travelDocumentNumberstring requiredTravel document no.
length: 0–30classification: sensitive-pii -
travelDocumentIssuedDatedate requiredTravel document issued date
-
travelDocumentExpiryDatedate requiredTravel document expiry date
-
travelDocumentCountryPlaceOfIssuestring requiredCountry/place of issue
length: 0–100 -
prcIdNumberstring optionalApplicable only where nationalityCitizenship is Chinese.
length: 0–30classification: sensitive-pii
Address in country/place of origin or residence
-
countryPlaceOfOriginResidencestring requiredCountry/place of origin/residence
length: 0–100 -
divisionStateProvinceOfOriginResidencestring optionalDivision/state/province of origin/residence
length: 0–100 -
prefectureOfOriginResidencestring optionalPrefecture of origin/residence
length: 0–100 -
countyDistrictOfOriginResidencestring optionalCounty/district of origin/residence
length: 0–100 -
addressOfOriginResidencestring requiredAddress (in country/place of origin/residence)
length: 0–300classification: pii
Other details
-
emailAddressstring requiredEmail address
length: 0–200classification: pii -
contactNumberstring requiredContact number
length: 0–30classification: pii -
occupationstring requiredOccupation
length: 0–200 -
highestQualificationenum requiredHighest academic/professional qualification attained
enum: 7 values -
annualIncomeSgdnumber optionalAnnual income in Singapore dollars (SGD)
range: 0–∞classification: financial -
religionstring optionalReligion
length: 0–100classification: sensitive-pii -
expectedDateOfArrivaldate requiredExpected date of arrival in Singapore
-
typeOfVisaenum requiredType of visa
enum: Single Journey | Double Journey | Triple Journey | Multiple Journey -
purposeOfVisitenum requiredPurpose of visit
enum: Social | Business -
purposeDetailsstring requiredDetails of purpose
length: 0–500 -
intendedLengthOfStayenum requiredHow long do you intend to stay in Singapore?
enum: Less than 30 days | More than 30 days -
longerStayReasonAndDurationstring optionalIf your intended stay is more than 30 days, state the reason and the duration
length: 0–1000
Address in Singapore
-
singaporeAddressTypeenum requiredWhere will you be staying in Singapore?
enum: Next of Kin's Place | Relative's Place | Friend's Place | Hotel | Others -
singaporeAddressOtherDetailsstring optionalAccommodation in Singapore (please specify)
length: 0–300 -
singaporeBlockHouseNostring optionalBlock/house no.
length: 0–20 -
singaporeFloorNostring optionalFloor no.
length: 0–10 -
singaporeUnitNostring optionalUnit no.
length: 0–10 -
singaporePostalCodestring requiredPostal code
length: 0–10 -
singaporeStreetNamestring requiredStreet name
length: 0–200classification: pii -
singaporeContactNostring optionalContact no. (Singapore address)
length: 0–30 -
singaporeBuildingNamestring optionalBuilding name
length: 0–200
Residence in other countries/places
-
residedElsewhereLastFiveYearsboolean requiredDid you reside in other countries/places, other than your country/place of origin, for one year or more during the last 5 years?
-
priorResidenceDetailsstring optionalOne row per country/place on the source form's table (period of stay, country/place, address, from, to). This document collapses the repeating table into a single free-text field, the same treatment used elsewhere in this registry for small repeating tables (e.g. de/auswaertiges-amt/national-visa-application's previousStaysDetails).
length: 0–2000
Details of travelling companion
-
hasTravellingCompanionboolean optionalOnly applicable where the applicant is 12 years old or younger at the point of application. Details are not required if the applicant is accompanied by an airline representative.
-
companionRelationshipToApplicantstring optionalRelationship of travelling companion to applicant
length: 0–100 -
companionNamestring optionalName of travelling companion
length: 0–200classification: pii -
companionDateOfBirthdate optionalDate of birth of travelling companion
classification: sensitive-pii -
companionSexenum optionalSex of travelling companion
enum: Male | Female -
companionNationalitystring optionalNationality/citizenship of travelling companion
length: 0–100 -
companionTravelDocumentNumberstring optionalTravel document number of travelling companion
length: 0–30classification: sensitive-pii
Particulars of local contact
-
localContactTypeenum requiredForm V39A (Letter of Introduction for Visa Application) is completed and signed differently depending on whether the local contact is an individual or a company/hotel.
enum: Individual | Company or Hotel -
localContactNamestring requiredName of local contact / company / hotel
length: 0–200classification: pii -
localContactRelationshipToApplicantstring requiredForm V39A gives example categories: father, mother, brother, sister, son, daughter, spouse, business partner; for others, please specify.
length: 0–200 -
localContactNricNumberstring optionalLocal contact's NRIC (Pink/Blue) No.
length: 0–20classification: sensitive-pii -
localContactCompanyUenstring optionalUnique Entity Number (UEN) of company/firm
length: 0–20 -
localContactCompanyRepresentativeDetailsstring optionalName, NRIC no. and designation/capacity of the person acting on behalf of the company/firm
length: 0–300classification: sensitive-pii -
localContactAddressstring requiredAddress of local contact / company name and address
length: 0–300classification: pii -
localContactNumberstring requiredLocal contact's contact number
length: 0–30classification: pii -
localContactEmailstring requiredLocal contact's email address
length: 0–200classification: pii -
embarkationCountryPlacestring requiredCountry/place of embarkation (coming to Singapore from)
length: 0–100
Antecedent of applicant
-
previouslyRefusedEntryOrDeportedboolean requiredHas ever been refused entry into or deported from any country/place, including Singapore?
-
previouslyConvictedInCourtboolean requiredHas ever been convicted in a court of law in any country/place, including Singapore?
-
previouslyProhibitedFromEnteringSingaporeboolean requiredHas ever been prohibited from entering Singapore?
-
previouslyEnteredSingaporeUsingDifferentParticularsboolean requiredHas entered Singapore using a different name, sex, nationality/citizenship, or date of birth?
-
previousParticularsUsedstring optionalDetails of the different name, sex, nationality/citizenship, or date of birth previously used to enter Singapore
length: 0–300classification: pii -
antecedentDetailsstring optionalIf any of the above answers is yes, please furnish details
length: 0–2000
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-03maturity.level:structural-reference
Why this cycle picked up Singapore's entry visa application
This is the recurring "GovSchema Standard Research" cycle (GOV-822). Visa was the registry's last vertical with a gap: after de/auswaertiges-amt/national-visa-application (GOV-815) closed Germany's gap, Visa stood at 8/9 jurisdictions, with Singapore the sole remaining cell — already recorded as a candidate-status catalog entry from a prior discovery pass (sg/ica/visa-application-save), flagged then as requiring an unusual intermediary-submission channel worth confirming before authoring. This document closes the SG x Visa cell and, with it, the Visa vertical (now 9/9 — the first vertical in this registry, alongside Passport, DMV, Business Formation, Taxes, and National ID & Civic Documents, to reach full 9-jurisdiction coverage across all six focus verticals; see gov430-taxes-vertical-and-gsp0019 and gov474-dmv-business-formation-vertical-and-xfa-extraction memory for the other verticals' closure history).
Sources examined
- Document
(id, version):sg/ica/entry-visa-application/1.0.0 - Spec version: GovSchema
0.3.0 - Authority: Immigration & Checkpoints Authority (ICA).
- Eligibility/overview page: https://www.ica.gov.sg/enter-transit-depart/entering-singapore/visa_requirements ("Check if You Need an Entry Visa"), confirming visitors holding travel documents from 40+ listed countries/territories require a Singapore entry visa, that "ICA does not accept submission of visa application over the immigration counters," and that an applicant without a local contact may instead go through an authorised visa agent appointed by a Singapore Overseas Mission or the nearest Singapore Overseas Mission directly.
- e-Visa / SAVE overview: https://www.ica.gov.sg/news-and-publications/newsroom/media-release/637 ("e-VISA — An Easy Way to Obtain a Visa"), describing the SAVE (Submission of Application for Visa Electronically) e-Service: the local contact or trusted partner submits the application online (no physical trip to ICA Building to submit documents or collect a sticker); an approved applicant receives an e-Visa as a printable PDF instead of a physical visa sticker.
- e-Services landing page: https://www.ica.gov.sg/eservicesandforms and the SAVE application entry point itself, https://eservices.ica.gov.sg/esvclandingpage/save, confirming the portal is reached by "a local contact or authorised visa agent or strategic partner" — not the applicant directly.
- Primary source (field-by-field, Form 14A): https://www.ica.gov.sg/docs/default-source/ica/forms/form14a.pdf, ICA's own canonical "Application for Entry Visa" (Immigration Act 1959, Section 55(1)), fetched directly (HTTP 200, no access block) and text-extracted with the registry's established zlib-stream/paren-regex technique (the PDF is a bilingual-style, single-language English AcroForm whose text layer decompresses cleanly, the same class of static PDF already used elsewhere in this registry). All five parts (I Particulars of Applicant, II Other Details, III Particulars of Local Contact, IV Antecedent of Applicant, V Declaration by Applicant) were extracted and read in full.
- Secondary source (field-by-field, Form V39A): https://www.ica.gov.sg/docs/default-source/ica/forms/formv39a.pdf, ICA's own canonical "Letter of Introduction for Visa Application," signed by the local contact (individual) or a person acting on behalf of a company/firm, also fetched directly and text-extracted the same way. This form is the sponsor-side counterpart to Form 14A's Part III and supplies the individual-vs-company field split (NRIC vs. Unique Entity Number (UEN) + representative details) that Form 14A's own Part III does not itself distinguish.
- Retrieved / reviewed: 2026-07-03.
- Reviewer: GovSchema Engineering (Standards Engineer — initial authoring source review).
What the two forms map to
- Form 14A, Part I (applicant identity, marital status and spouse particulars, birth/nationality, travel document, PRC ID for Chinese nationals, address in country/place of origin) →
fullNamethroughaddressOfOriginResidence.spouseStatus/spouseNricNumber/spouseOtherNationalityDetailsare gated onmaritalStatusbeingMarried,Cohabited, orCustomary(the three statuses the form presents alongside a spouse question);otherTravelDocumentTypeDetailsgates ontravelDocumentTypeequalsOthers;prcIdNumberis left ungated (optional, described as applicable only where nationality is Chinese) because the registry'sConditiongrammar has no reliable way to gate on a free-text nationality field's exact string. - Form 14A, Part II (contact/occupation/qualifications/income/religion, expected arrival, visa type, purpose and length of stay, address in Singapore, five-year residence history, travelling companion) →
emailAddressthroughcompanionTravelDocumentNumber.longerStayReasonAndDurationgates onintendedLengthOfStayequalsMore than 30 days;singaporeAddressTypeis a 5-way enum (Next of Kin's Place,Relative's Place,Friend's Place,Hotel,Others) per the form's own radio options;singaporeAddressOtherDetailsgates onsingaporeAddressTypeequalsOthers;priorResidenceDetailsgates onresidedElsewhereLastFiveYearsequalstrue; the fivecompanion*fields gate onhasTravellingCompanionequalstrue(itself optional, since the form only applies this section when the applicant is 12 years old or younger, or not accompanied by an airline representative — a condition this document cannot itself evaluate, so it is left to the preparer to populate). - Form 14A, Part II repeating tables (five-row previous-stays table; travelling-companion block) are collapsed into single free-text fields (
priorResidenceDetails), the same treatment used elsewhere in this registry for small repeating tables (e.g.de/auswaertiges-amt/national-visa-application'spreviousStaysDetails). - Form 14A, Part III (local contact or company/hotel: name, relationship, contact number, email) →
localContactName,localContactRelationshipToApplicant,localContactNumber,localContactEmail. Part III alone does not distinguish an individual local contact from a company/hotel local contact by field set; that distinction comes from Form V39A. - Form V39A (signed Letter of Introduction, split into an individual-local-contact block and a company/firm block) →
localContactType(a field this document adds, not itself printed on either form, needed because it gates which of the following two fields applies),localContactNricNumber(gated onlocalContactTypeequalsIndividual),localContactCompanyUenandlocalContactCompanyRepresentativeDetails(gated onlocalContactTypeequalsCompany or Hotel),localContactAddress, andembarkationCountryPlace("coming to Singapore from"). The signed V39A letter itself is captured as thelocalContactIntroductionLetterdocuments[]entry rather than a field, since it is the local contact's own signed attestation, not applicant-supplied data. - Form 14A, Part IV (antecedent: refused entry/deported, convicted, prohibited from entering, entered using a different name, sex, nationality/citizenship, or date of birth) →
previouslyRefusedEntryOrDeportedthroughpreviouslyEnteredSingaporeUsingDifferentParticulars, each an independent boolean per the form's own four-row Yes/No table. The fourth row's question (d) is broader than "different name" alone — it covers a different name, sex, nationality/citizenship, or date of birth — so the field and its label capture all four variants rather than name only.previousParticularsUsedgates onpreviouslyEnteredSingaporeUsingDifferentParticularsequalstrue.antecedentDetails("if any of the answers is yes, please furnish details") gates on ananycomposition (GSP-0013) of all four booleans equallingtrue— the first use ofanycomposition in a Visa-vertical document in this registry (the same composition primitive already used forsg/ica/identity-card-reregistration'sallcondition, per memorygov641-sg-ica-identity-card-reregistration). - Form 14A, Part V (declaration: information is true/accurate/complete, signed and dated) → the
declarationAttestationdocuments[]entry, with the exact attestation text captured verbatim. - Page 1 header ("Affix a recent passport-size photograph here") → the
applicantPhotodocuments[]entry. - Not on either paper form:
submissionChannel, a field this document adds because ICA does not accept applications directly from the applicant or over the counter — every application must go through one of four routes (Singpass-holding individual local contact, Corppass-holding company/hotel local contact, an authorised visa agent, or a Singapore overseas mission), and an agent preparing this application needs to know which route is in play before the local-contact fields are relevant. This mirrors the pre-login routing fieldsde/auswaertiges-amt/national-visa-applicationadds for its own portal.
Mock-data test run
Per the issue's phase-4 instruction to test-run the schema with valid mock data, a one-off Node.js script (not committed to the repo) implementing the same equals/notEquals/in/greaterThan/greaterThanOrEqual/all/ any/not grammar as GSP-0013's Condition type checked every type/required/requiredWhen/validation.enum constraint and the crossFieldValidation rule in schema.json against five scenarios:
`` OK Scenario 1: solo social visitor via Singpass local contact, single, no branch triggers OK Scenario 2: married applicant w/ spouse SG citizen, >30 day stay, company local contact, PRC national, travelling companion, antecedent yes OK Scenario 3: applicant entered SG under different particulars previously (antecedent branch via previouslyEnteredSingaporeUsingDifferentParticulars) FAIL Negative control: married applicant missing spouseStatus (expected FAIL) - MISSING required field: spouseStatus FAIL Negative control: travel document expiry before issue date (expected FAIL) - crossFieldValidation FAILED: travelDocumentExpiryAfterIssue ``
Scenarios 1-3 together exercise every requiredWhen branch this document defines (spouse/partner fields; other-travel-document details; longer-stay reason; other-Singapore-address details; prior-residence details; travelling-companion sub-fields; individual-vs-company local-contact sub-fields; previous-particulars-used; antecedent details via the any composition) and the crossFieldValidation rule (travelDocumentExpiryAfterIssue), all of which held. The final two scenarios are negative controls confirming the evaluator actually enforces requiredWhen and crossFieldValidation (both correctly report failures) rather than trivially passing everything. No defects were found in the schema itself during this pass.
Both registry validators were run against the schema document itself and pass:
``` $ node tools/validate.mjs registry/sg/ica/entry-visa-application/1.0.0/schema.json ok registry/sg/ica/entry-visa-application/1.0.0/schema.json
$ node tools/validate-ajv.mjs registry/sg/ica/entry-visa-application/1.0.0/schema.json ok registry/sg/ica/entry-visa-application/1.0.0/schema.json [v0.3] ```
The full registry (153/153 schema documents) continues to validate after this addition, and tools/govschema-client/registry-index.json was regenerated (153 entries) to include it.
What is NOT modelled (out of scope), and why
- The authenticated SAVE e-Service's own data-entry screens — gated behind the local contact's Singpass or the company/hotel local contact's Corppass (see above); this document models the underlying Form 14A and Form V39A the e-Service digitises instead.
- The visa-agent and overseas-mission paper-submission routes' own intake forms/checklists (e.g. VFS Global's per-country checklists seen during sourcing) — these are third-party or mission-specific intermediary processes layered on top of the same underlying Form 14A/V39A content this document already models, not a distinct government-authored form.
- Family/group visa application variants (ICA also publishes a "Family Visa Application" SAVE user guide distinct from the individual flow modelled here) — a candidate for its own future schema or a MINOR extension.
- Which of the 40+ listed nationalities require a visa at all — a separate eligibility lookup (the visa_requirements page's own country list), not itself a field on the application.
Scope and jurisdiction notes
- This is Singapore's first Visa-vertical document.
sg/ica/identity-card-*andsg/ica/passport-applicationcover National ID & Civic Documents/Passport,sg/acra/*covers Business Formation,sg/iras/*covers Taxes, andsg/spf/*covers DMV; this document extends the existingsg/ica/*authority segment into a fifth vertical for that authority. idissg/ica/entry-visa-application, naming the underlying process (matching Form 14A's own title, "Application for Entry Visa") rather than the SAVE e-Service front-end, consistent with this registry's existing convention (e.g.de/auswaertiges-amt/national-visa-applicationnames the paper form, not the Consular Services Portal).- Conditional requiredness uses
requiredWhen(GSP-0013, including oneanycomposition forantecedentDetails), targeting spec v0.3, the same as every other Visa-vertical document in this registry.
Re-verification
Per the practice's cadence, nextReviewBy is set to 2027-01-01 (6 months). Because status remains draft (this document was authored from the canonical Form 14A/V39A PDFs but not against the live, authenticated SAVE e-Service itself), a future review should prioritize obtaining a local contact's Singpass or a company's Corppass credentials (or partnering with a local-contact/agent who has them) to confirm the authenticated data-entry screens field-by-field, which would also resolve the exact online treatment of Part II's non-asterisked fields (e.g. annualIncomeSgd, religion) that this document has conservatively modelled as optional.
Review-fix note (pre-merge, GOV-824)
The review gate's pdfjs-dist AcroForm extraction (a more complete method than this document's zlib/paren-regex extraction) surfaced two fidelity gaps, both fixed in this revision before merge:
singaporeAddressType's enum was missing 3 of the form's 5 real options (Next of Kin's Place,Relative's Place,Friend's Place) — corrected above.previouslyEnteredSingaporeUsingDifferentName(renamedpreviouslyEnteredSingaporeUsingDifferentParticulars) and its follow-up detail field (renamedpreviousParticularsUsed) narrowed Part IV's question (d) — which covers a different name, sex, nationality/ citizenship, or date of birth — down to name only. Both are now corrected above.
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 Immigration & Checkpoints Authority or any government. The authoritative source is always the live government form and its official instructions.