Registry entry
Canada Electronic Travel Authorization (eTA)
Apply for an Electronic Travel Authorization (eTA), Canada's air-travel counterpart to a visa waiver, required for most visa-exempt foreign nationals flying to Canada (not required for U.S. citizens, or for entry by land or sea). CAD $7 fee, approval typically within minutes though some applications take several days, valid up to 5 years or until passport expiry, whichever is first. This document models an applicant applying for themselves online at the IRCC eTA application form. Out of scope: Part 1 of the source guide (a parent/guardian or paid/unpaid representative applying on behalf of someone else), the lawful-permanent-resident-of-the-U.S. exemption questions, and the additional eligibility questions shown only to Israeli, Taiwanese, or Romanian passport holders. It does not submit the application; the live IRCC source is always authoritative (see VERIFICATION.md).
You are viewing v1.0.0
The latest published version of this schema is v1.1.0 — see the current reference page. Published versions are immutable; this page stays for agents pinned to ca/ircc/eta-application@1.0.0.
Registry entry
ca/ircc/eta-application
GovSchema spec v0.2
Authoritative source Electronic Travel Authorization (eTA) Application Help Guide (Ci4-136/2015E-PDF)
Machine access
- Schema document
registry/ca/ircc/eta-application/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/ca/ircc/eta-application/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
43 fields across 7 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.
Travel document and passport
-
travelDocumentTypeenum requiredA refugee travel document or an alien passport/travel document issued to non-citizens are not eligible for an eTA (the guide states the applicant needs a visa or other travel document instead); this enum therefore lists only the eligible document types.
enum: 7 values -
passportIssuingCountrystring requiredThe three-letter country code matching the passport's "Code", "Issuing country", or "Authority" field.
pattern -
nationalitystring requiredA national of a visa-required country is not eligible to apply for an eTA.
length: 1–60 -
passportNumberstring requiredPersonal identifier; handle as sensitive data. Enter the number at the top of the passport's biographic (photo) page, not any number on the first page or at the bottom of the biographic page. Most passport numbers are 8-11 characters; no hyphens, spaces, or other special characters. Be careful distinguishing the letter O from the number 0, and the letter I from the number 1 — an incorrect passport number can prevent boarding and require reapplying.
length: 1–20 -
lastNamestring requiredPersonal identifier; handle as sensitive data. Enter exactly as it appears on the passport, per the guide's detailed name-transcription rules: keep apostrophes and hyphens; use the passport's machine-readable zone to determine name order; for filial or spousal relationship markers (e.g. "bin", "bint", "ibn", "ben", "ould", "épouse de"/"ep."), omit the relationship word and the relative's name from both name fields; omit titles, prefixes, suffixes, and academic/honorific qualifiers unless they appear in the machine-readable zone; only Roman-script characters (including French accents) are accepted.
length: 1–80 -
firstNamestring requiredPersonal identifier; handle as sensitive data. See lastName's description for the passport-transcription rules that also apply here.
length: 1–80 -
dateOfBirthdate requiredPersonal identifier; handle as sensitive data. YYYY-MM-DD, as it appears on the passport. If the exact date is unknown, give as much information as possible.
-
genderstring requiredPersonal identifier; handle as sensitive data. The guide names this field in the same instruction as date of birth, country/territory of birth, and city of birth, but — unlike marital status or occupation — does not itself enumerate its value options, so it is modeled here as free text rather than an enum.
length: 1–20 -
countryOfBirthstring requiredAs shown in the passport's place-of-birth field.
length: 1–60 -
cityOfBirthstring requiredAs shown in the passport's place-of-birth field; if none is shown there, enter the applicant's actual city/town/village of birth.
length: 1–80 -
passportIssueDatedate requiredYYYY-MM-DD, from the passport's biographic (photo) page.
-
passportExpiryDatedate requiredYYYY-MM-DD, from the passport's biographic (photo) page. The eTA is valid up to 5 years, but no later than this date.
Personal details
-
uniqueClientIdentifierOrPreviousDocumentNumberstring requiredPersonal identifier; handle as sensitive data. If the applicant previously submitted a Canadian application (e.g. a study permit, work permit, or visitor visa) they will have a UCI, found on IRCC correspondence or the issued immigration document. If unknown, enter "NA" or the immigration document number instead.
length: 0–20 -
maritalStatusenum requiredmarried requires a marriage recognized under both the country of performance's law and Canadian law. common_law requires having lived together continuously in a marital-type relationship for at least one year.
enum: 7 values
Employment information
-
occupationenum requiredSelect the closest match if nothing is identical.
enum: 15 values -
jobTitlestring optionalSelect the option that best describes the applicant's job, from a list dependent on the chosen occupation category (not itself enumerated in the source guide, so modeled here as free text).
length: 0–120 -
employerOrSchoolNamestring optionalThe employer's name, or the school's name if the applicant is a student.
length: 0–160 -
employerOrSchoolCountrystring optionalWhere the employer or, for a student, the school is located.
length: 0–60 -
employerOrSchoolCitystring optionalCity/town where the employer is located, or, for a student, where the school is located.
length: 0–80 -
employedOrEnrolledSinceYearinteger optionalThe year the applicant started working for the employer or studying at the school.
range: 1900–∞
Contact information and residential address
-
emailstring requiredPersonal identifier; handle as sensitive data. Used to communicate with the applicant about the application. A parent applying for a minor may enter their own email address.
length: 3–160 -
residentialAddressUnitstring optionalIf applicable.
length: 0–20 -
residentialAddressStreetNumberstring requiredDo not enter apartment/unit/suite numbers here; use residentialAddressUnit instead.
length: 1–20 -
residentialAddressStreetNamestring requiredInclude the standard identifier spelled out in full (e.g. "Street", "Road", "Avenue", "Boulevard") — abbreviations such as "Ave." are not accepted.
length: 1–120 -
residentialAddressLine2string optionalIf necessary.
length: 0–120 -
residentialAddressCitystring requiredThe applicant's permanent home address; do not enter a temporary residence or a P.O. box — the application will be refused.
length: 1–80 -
residentialAddressCountrystring requiredCountry or territory of the applicant's permanent home address.
length: 1–60 -
residentialAddressProvinceStatestring optionalIf applicable.
length: 0–60 -
residentialAddressPostalCodestring requiredPostal or ZIP code of the applicant's permanent home address.
length: 0–15 -
residentialAddressDistrictstring optionalIf applicable.
length: 0–80 -
preferredCommunicationLanguageenum requiredPer the Official Languages Act, the Government of Canada provides information and services in both English and French. The application form itself is only in English or French, though field descriptions are offered in more languages.
enum: english | french
Travel information
-
knowsTravelDateboolean requiredIf true, also give plannedTravelDate and, if the flight is confirmed, plannedDepartureTime.
-
plannedTravelDatedate optionalRequired when knowsTravelDate is true. YYYY-MM-DD.
-
plannedDepartureTimestring optionalOnly if the applicant has confirmed flight details.
length: 0–20
Background questions
-
hasBeenRefusedVisaOrDeniedEntryboolean requiredBackground question 1. If true, also give refusalOrDenialDetails.
-
refusalOrDenialDetailsstring optionalRequired when hasBeenRefusedVisaOrDeniedEntry is true. For each incident: the country that refused/denied/ordered removal, and the reasons given.
length: 0–2000 -
hasCriminalHistoryboolean requiredBackground question 2. If true, also give criminalHistoryDetails.
-
criminalHistoryDetailsstring optionalRequired when hasCriminalHistory is true. For each incident: where (city, country), when (month/year), the nature of the offence, and the sentence.
length: 0–2000 -
hasTuberculosisContactOrDiagnosisboolean requiredBackground question 3. If true, also give isTuberculosisContactAHealthcareWorker.
-
isTuberculosisContactAHealthcareWorkerboolean optionalRequired when hasTuberculosisContactOrDiagnosis is true (background question 3a). If true, also give hasEverBeenDiagnosedWithTuberculosis.
-
hasEverBeenDiagnosedWithTuberculosisboolean optionalApplicable when isTuberculosisContactAHealthcareWorker is true (background question 3b).
-
medicalConditionenum requiredBackground question 4. Select none_of_the_above if none apply.
enum: untreated_syphilis | untreated_drug_or_alcohol_addiction | untreated_mental_health_condition_with_psychosis | none_of_the_above
Consent and declaration
-
signatureFullNamestring requiredPersonal identifier; handle as sensitive data. The applicant's electronic signature, given by typing their full name (or, if a representative or parent/guardian is applying on behalf of someone else, that person's name). The CAD $7 fee is paid immediately after this step.
length: 1–160
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, records a mock-data test run of the field set, and states the current verification claim honestly.
Current claim
status:draftverification.method:manual-source-review-v1verification.lastVerifiedAt:2026-07-01
The document was derived from and cross-checked against the official source below, but the full field-by-field comparison the practice requires (confirming every published field, type, requiredness, and constraint against the live form — manual-source-review-v1 → Procedure step 2) has not yet been independently re-verified by a second reviewer. It therefore remains draft, not verified. Consumers SHOULD treat this as an accurate, source-grounded structural reference, not a load-bearing description of the live process.
Why this candidate was advanced now
ca/ircc/eta-application was already a tier-1 candidate in discovery/catalog.json (opened during GOV-276's Visa vertical work alongside us/cbp/esta-application), with a note to "confirm the exact question set from the official IRCC 'Application Help Guide' PDF at authoring time." This cycle did exactly that.
Access constraint
The live application (eta-canada-part1.canada.ca and successor screens) is a multi-step web form intended to be filled out in a single timed session (the guide itself warns "your information can't be saved and you have limited time to complete the form"), not a static document suited to automated field-by-field scraping. Consistent with the approach already used for the sibling us/cbp/esta-application document (a JS-rendered application sourced from official DHS/CBP PIA PDFs instead), this document is sourced from IRCC's own Electronic Travel Authorization (eTA) Application Help Guide, a static PDF published directly on canada.ca that walks through the live form question-by-question.
Sources examined
- Document
(id, version):ca/ircc/eta-application/1.0.0 - Spec version: GovSchema
0.2.0 - Authority: Immigration, Refugees and Citizenship Canada (IRCC)
- Primary source URL: https://www.canada.ca/en/immigration-refugees-citizenship/services/visit-canada/eta/apply.html
- Official guide PDF: https://www.canada.ca/content/dam/ircc/documents/pdf/english/eta/english.pdf ("Electronic Travel Authorization (eTA) Application Help Guide", Ci4-136/2015E-PDF) — fetched directly with a plain
curlrequest; HTTP 200, no access block. Parsed with thepdf-parsenpm package (PDFParse.getText()); all 22 pages extracted as clean, legible text and transcribed field-by-field from that output. - Retrieved / reviewed: 2026-07-01
- Reviewer: GovSchema Engineering (initial authoring source-review)
Not a time-versioned (edition) form
An eTA application is a one-time filing per authorization (valid up to 5 years or until passport expiry), not filed "for" a recurring tax/award year — applying the GSP-0005 §2 coexistence test, there is no scenario where two editions of the eTA data model need to coexist for the same applicant. This document is therefore authored at the plain (non-edition) registry path, registry/ca/ircc/eta-application/1.0.0/. A future eTA question-set revision that changes the field set ships as a new version, not an edition.
Scope decisions
The guide covers three parts; this document models Part 2 only (an applicant completing the form for themselves):
- Out of scope — Part 1 (parent/guardian or representative applying on behalf of someone else). A distinct flow with its own representative-category question and a second applicant-details section; not modeled here.
- Out of scope — Part 2(A), lawful permanent residents of the United States. U.S. LPRs holding valid U.S. status are exempt from the eTA requirement entirely and answer a different question branch; not applicable to the general case this document models.
- Out of scope — Israeli/Taiwanese/Romanian passport-holder eligibility questions. Additional eligibility sub-questions shown only to holders of these three specific passport types; a narrow edge case not modeled here.
- Out of scope — Part 3 (post-submission). Confirmation emails and the eTA status-check tool are process facts, not applicant-entered fields.
What was confirmed against the source
- Process identity. The eTA is Canada's air-travel counterpart to a visa waiver for visa-exempt foreign nationals (not required for U.S. citizens, and not required for land/sea entry — the guide's scope is air travel). CAD $7 fee, minutes-to-days approval, up to 5-year or passport-expiry validity. Confirmed against the guide's own summary and Part 3.
- Travel document eligibility. The full seven-option document-type list, with the two ineligible options (refugee travel document; alien passport/travel document issued to non-citizens) explicitly excluded from the
travelDocumentTypeenum per the guide's own eligibility notes, transcribed from Part 2's document selection. - Passport-name transcription rules. The guide's detailed rules for apostrophes, hyphens, name order via the machine-readable zone, filial markers ("bin"/"bint"/"ibn"/"ben"/"ould"), spousal markers ("épouse de"/"ep."), omitted titles/prefixes/honorifics, and the Roman-script-only constraint are all recorded in
lastName's description (and referenced fromfirstName's), transcribed verbatim in substance from Part 2(B). - Full field set (Parts 2(B) through 2(I)). Passport details (including
gender, per the guide's "Provide your date of birth, gender, country or territory and the city where you were born" instruction), UCI/previous document number, marital status (7 options), employment (15 occupation categories), contact and residential address (including the P.O.-box prohibition and the abbreviation prohibition on street names), preferred communication language, travel information, the four background questions (visa refusal/entry denial, criminal history, tuberculosis contact/diagnosis with its 3(a)/3(b) sub-branch, and the other-conditions question), and the typed-signature consent/declaration step — all transcribed field-by-field from the decoded PDF text.
Mock-data test run
Per the issue's phase-4 instruction to test-run the schema with valid mock data, a representative filled-out application was authored and checked field-by-field against every type/required/validation constraint in schema.json (string length, regex pattern, enum membership, integer minimum, date format, boolean type, and the conditional-field notes called out in field descriptions):
``json { "travelDocumentType": "passport_ordinary_regular", "passportIssuingCountry": "USA", "nationality": "American", "passportNumber": "512334789", "lastName": "Torres", "firstName": "Maria Alejandra", "dateOfBirth": "1990-03-14", "gender": "Female", "countryOfBirth": "United States", "cityOfBirth": "San Diego", "passportIssueDate": "2019-05-10", "passportExpiryDate": "2029-05-09", "uniqueClientIdentifierOrPreviousDocumentNumber": "NA", "maritalStatus": "never_married_single", "occupation": "sales_and_service", "employerOrSchoolName": "Riverside Coastal Goods LLC", "employerOrSchoolCountry": "United States", "employerOrSchoolCity": "San Diego", "employedOrEnrolledSinceYear": 2026, "email": "maria.torres@example.com", "residentialAddressStreetNumber": "482", "residentialAddressStreetName": "Harbor View Drive", "residentialAddressCity": "San Diego", "residentialAddressCountry": "United States", "residentialAddressProvinceState": "California", "residentialAddressPostalCode": "92101", "preferredCommunicationLanguage": "english", "knowsTravelDate": true, "plannedTravelDate": "2026-09-15", "hasBeenRefusedVisaOrDeniedEntry": false, "hasCriminalHistory": false, "hasTuberculosisContactOrDiagnosis": false, "medicalCondition": "none_of_the_above", "signatureFullName": "Maria Alejandra Torres" } ``
This models Maria Alejandra Torres — the same individual used in the sibling us/ca/sos/business-entity-llc-formation, us/ca/sos/corporation-formation-arts-gs, us/irs/employer-identification-number-ss4, us/ca/dmv/vehicle-title-transfer, and us/dos/lost-or-stolen-passport-ds64 mock scenarios — applying for herself for an upcoming trip to Canada, with no background-question flags raised. The scenario exercises the knowsTravelDate: true → plannedTravelDate pair while omitting the optional plannedDepartureTime, jobTitle, address-unit/line2/district fields, and all of the conditional background-question follow-ups (since every background question answered false/none_of_the_above, none of their dependent fields apply). A one-off Node script (node:fs + a hand-rolled per-field validator, not committed to the repo) confirmed every populated field satisfies its type and validation constraint and that no required field was left unset:
`` PASS — mock adult self-application eTA (no travel-history flags) satisfies the schema field-level constraints. ``
Both registry validators were run against the schema document itself (not the mock data) and pass:
``` $ node tools/validate.mjs registry/ca/ircc/eta-application/1.0.0/schema.json ok registry/ca/ircc/eta-application/1.0.0/schema.json
$ cd tools && node validate-ajv.mjs ../registry/ca/ircc/eta-application/1.0.0/schema.json ok registry/ca/ircc/eta-application/1.0.0/schema.json [v0.2] ```
What is NOT yet independently verified
- The live form's exact screen-by-screen presentation (question order, exact wording, which fields appear on which screen) was not directly observed — the form requires an active, timed session and is not scrapable as static HTML. This document is sourced from IRCC's own Help Guide, which the guide itself states walks through the live form in order.
jobTitle's exact option list. The guide states job title is selected from a list "dependent on the chosen occupation," but does not enumerate that list itself, sojobTitleis modeled as free text rather than an enum — a reasonable flattening, not a verified option set.gender's exact option list. The guide names this field (Part 2(B)) but, unlike marital status or occupation, does not enumerate its value options, so it is modeled as free text rather than an enum — a reasonable flattening, not a verified option set. Added in a review-gate fix-up commit (GOV-331) after independent re-review caught the omission.- Constraint patterns (passport issuing-country 3-letter code, email minimum length) are reasonable encodings, not citations of a published IRCC validation rule.
- The three scoped-out paths (Part 1 representative/parent flow, Part 2(A) U.S. LPR exemption, and the Israeli/Taiwanese/Romanian eligibility sub-questions) are documented as out of scope but not modeled or verified field-by-field; see "Scope decisions" above.
Path to a verified claim (next step)
To advance this document to status: verified, a reviewer applies manual-source-review-v1 (Procedure step 2 field-by-field comparison, step 3 flow comparison) against the current IRCC eTA Application Help Guide PDF, ideally with an observed run of the live application's screens, confirms the sources are still authoritative, resolves any discrepancy by shipping a new schema version (immutability — VERSIONING §3, practice Procedure step 5), and records the outcome here plus sets status: verified with a current verification.lastVerifiedAt / nextReviewBy. This v1.0.0 record stays as the authoring provenance.
Re-verification
Per the practice's Cadence, nextReviewBy is set to 2027-01-01 (6 months). Re-check the source on or before that date, on any source.url change, or when IRCC publishes a new version of the eTA Application Help Guide.
View the raw record (VERIFICATION.md)
Version history
-
1.1.0draftlatestno independent verification recordschema.json -
1.0.0draftthis 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, Refugees and Citizenship Canada or any government. The authoritative source is always the live government form and its official instructions.