Registry entry
Malaysia Passport / Travel Document Application (Borang Permohonan Pasport / Dokumen Perjalanan, IM.42)
The general-purpose application form ("Borang Permohonan Pasport / Dokumen Perjalanan", form IM.42) that the Jabatan Imigresen Malaysia (JIM, Immigration Department of Malaysia) uses to process a Malaysian passport or travel-document request: a first-time issuance, a replacement due to damage/pages-exhausted/expiry, a replacement due to loss, or an application to insert a child's recent photograph into an existing document, across eight document types (the standard 64- and 32-page international passports, the Malaysia-Indonesia and Malaysia-Philippines border-crossing passports, the Brunei- and Singapore-restricted passports, the Restricted Travel Document, and the Emergency Certificate). Excludes the separate diplomatic/official passport process handled via the Ministry of Foreign Affairs and any process step conducted only in person at a JIM counter (biometric/facial capture, document sighting, and issuance handover), which this form does not itself administer. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of Malaysia or the Jabatan Imigresen Malaysia.
Registry entry
my/jim/passport-travel-document-application
Machine access
- Schema document
registry/my/jim/passport-travel-document-application/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/my/jim/passport-travel-document-application/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
21 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.
Jenis Permohonan dan Jenis Dokumen (application reason and document type)
-
applicationReasonenum requiredThe single reason this application is being made, per the form's own five-option checkbox group in Bahagian A: a first-time issuance, or a replacement for one of three stated reasons (pages exhausted or the document has expired; the document is damaged; the document was lost), or an application only to insert a child's recent photograph into an existing document.
enum: first_time | pages_exhausted_or_expired | damaged | lost | insert_child_photo -
documentTypeRequestedenum requiredThe specific passport or travel-document product being applied for, per the form's own eight-option checkbox group.
enum: 8 values
A - Maklumat Pemohon Pasport / Dokumen Perjalanan (applicant particulars)
-
fullNamestring requiredThe applicant's full name, as it appears on their MyKad (national identity card).
classification: pii -
otherNamestring optionalAny other name the applicant is known by, if applicable.
classification: pii -
icNumberstring optionalThe applicant's MyKad (national identity card) number. Populated in place of `alternativeIdNumber` when the applicant holds a MyKad.
classification: sensitive-pii -
alternativeIdNumberstring optionalThe applicant's birth certificate number, adoption certificate number, or Borang W (citizenship registration Form W) number, populated instead of `icNumber` when the applicant (typically a child) does not yet hold a MyKad.
classification: sensitive-pii -
dateOfBirthdate requiredThe applicant's date of birth (Hari/Bulan/Tahun — day/month/year, per the form's own three-box layout).
classification: pii -
placeOfBirthstring requiredThe Malaysian state where the applicant was born, or the country name if born outside Malaysia, per the item's own printed instruction.
classification: pii -
genderenum requiredThe applicant's gender: Lelaki (male) or Perempuan (female) — the form's own two-option checkbox.
enum: Lelaki | Perempuan -
currentAddressstring requiredThe applicant's current residential address (street/building line).
classification: pii -
postcodestring requiredThe postcode of the applicant's current address.
classification: pii -
citystring requiredThe city or town of the applicant's current address.
classification: pii -
statestring requiredThe Malaysian state (or federal territory) of the applicant's current address, or the country name if residing outside Malaysia, per the item's own printed instruction.
classification: pii -
heightnumber requiredThe applicant's height in centimetres (sm).
-
maritalStatusenum requiredThe applicant's marital status, per the form's own three-option checkbox: Belum Kahwin (single), Kahwin (married), or Duda / Balu / Janda (widowed/divorced).
enum: Belum Kahwin | Kahwin | Duda / Balu / Janda
B/C/D - Maklumat Penggantian (replacement/amendment details)
-
previousDocumentNumberstring optionalThe number of the applicant's (or, for a child-photo application, the child's) most recent passport or travel document, required whenever this application is any kind of replacement or amendment of an existing document rather than a first-time issuance. The same literal instruction ('No. pasport/dokumen perjalanan terakhir') appears identically in Bahagian B (item 10), Bahagian C (item 11), and Bahagian D (item 12).
-
previouslyHeldTravelDocumentboolean optionalWhether the applicant (or, if the application is made on a child's behalf, the child) has ever previously held any Malaysian passport or travel document — the form's own yes/no declaration, distinct from `previousDocumentNumber` (which cites the specific document being replaced for a non-first-time application).
-
previousTravelDocumentNumberDeclaredstring optionalThe number of the previously-held passport/travel document named in the declaration above, required only when that declaration is answered 'pernah' (yes, previously held).
E - Persetujuan/Akuan (consent and declaration)
-
guardianNamestring optionalThe full name of the applicant's father, mother, or lawful guardian. The form's own instruction states this is only completed 'Jika pemohon berusia di bawah 18 tahun' (if the applicant is under 18); this schema does not gate it with a formal age condition (no age-from-date-of-birth comparison is expressible in the shared Condition grammar) and instead discloses the source's own condition here.
classification: pii -
guardianIcNumberstring optionalThe MyKad number of the applicant's father, mother, or lawful guardian, under the same under-18 condition as `guardianName`.
classification: sensitive-pii -
declarationDatedate requiredThe date the applicant signs the Bahagian E declaration attesting that all information given in the form is true and correct.
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-08
This is GOV-1783: "GovSchema Standard Research" — authoring Malaysia's 2nd vertical (Passport), following GOV-1774's opening of Malaysia as the registry's 25th jurisdiction (via DMV, my/jpj/driving-licence-application). GOV-1774 had already screened and rejected Malaysia's Business Formation vertical (SSM's s.14 "Superform," zero AcroForm fields, too thin — see that document's own VERIFICATION.md); this cycle screened the remaining candidates in the assigned order (Taxes, National ID, Passport, Visa) and stopped at the first genuine, current, directly-fetchable source.
Candidate screening (Phase 1)
1. Taxes — LHDN (Lembaga Hasil Dalam Negeri) Borang BE/B/M/BT — rejected as too thin
hasil.gov.my's own "Muat Turun Borang" (download forms) page is a server-rendered POST form (/borang/muat-turun-borang/muat-turun-borang-individu, fields subKategori/tahun); replaying it directly with curl (no JavaScript needed, HTTP 200 each time) surfaced live, current-year (2025) PDF links for every individual-return category:
INDIVIDU PEMASTAUTIN - TIDAK MENJALANKAN PERNIAGAAN(resident, no business) →https://www.hasil.gov.my/media/xpkkrtgi/borang_be2025_1.pdf("Contoh Borang BE 2025" — a labelled specimen)INDIVIDU PEMASTAUTIN - MENJALANKAN PERNIAGAAN(resident, with business) →.../borang_b2025_1.pdf,.../borang_bt2025_1.pdfINDIVIDU BUKAN PEMASTAUTIN(non-resident) →.../form_m2025_2.pdf,.../form_mt2025_2.pdf
Every one of these five PDFs (plus the accompanying lampiran_individu, helaian_kerja, and notapenerangan PDFs) was downloaded directly (all HTTP 200) and inspected for its /AcroForm object. All five carry /AcroForm<</Fields[]...>> — the AcroForm dictionary is present but its Fields array is empty in every single one; none is a fillable PDF. Unlike JPJ-L1 (below and GOV-1774), the LHDN forms are explicitly labelled specimens ("Contoh Borang BE 2025") because Malaysia's resident-individual income-tax return is filed exclusively through e-Filing (mytax.hasil.gov.my, an authenticated single-page application with no public field-level preview) — these PDFs exist only as a paper preview of what e-Filing itself renders, the same disqualifying shape GOV-1774 found for SSM's Superform ("only a thin ... specimen printout ... without the field-by-field numbered instructions this registry's guide-document fallback precedent requires"). Rejected as too thin; do not re-attempt without a genuinely new source (e.g. a change to Malaysia's e-Filing mandate, or a citable numbered-instruction guide equivalent to AEAT's casilla-numbered guide, which the notapenerangan_be2025_1.pdf explanatory notes PDF does not itself provide — it explains e-Filing screens, not this specimen's own field numbering).
2. National ID — JPN (Jabatan Pendaftaran Negara) MyKad — rejected, no form exists
JPN's own "Kad Pengenalan" (identity card) service pages (jpn.gov.my/my/perkhidmatan/kad-pengenalan/mykad-ganti and eight sibling pages for lost/damaged/address-change/late-registration variants) were fetched directly (all HTTP 200, no login/WAF gate). Every one of these pages describes an entirely in-person, counter-based, walk-in process: "Pemohon dikehendaki datang ke Kaunter JPN dan membawa dokumen yang perlu dikemukakan" (the applicant must come to a JPN counter and bring the required documents). There is no downloadable or fillable application form anywhere on this service's pages — only a prose bulleted list of documents to bring in person and the transaction fee (RM10 citizen / RM40 non-citizen for a replacement). This is a weaker source shape than even a thin specimen PDF: there is no form document to model at all, only a walk-in requirements checklist. Rejected; do not re-attempt without a genuinely new source (e.g. JPN publishing a pre-registration form for its MyJanjiTemu appointment system, which was not found this cycle).
3. Passport — JIM (Jabatan Imigresen Malaysia) IM.42 — picked
https://www.imi.gov.my/index.php/main-ms/muat-turun links directly to https://www.imi.gov.my/wp-content/uploads/2022/02/Borang-Permohonan-Pasport.pdf (confirmed live this cycle: plain curl GET returns HTTP 200, real %PDF data, 145,812 bytes). This is form IM.42 (Pin. 1/97), "BORANG PERMOHONAN PASPORT / DOKUMEN PERJALANAN" — an Adobe LiveCycle Designer XFA container (xfa:xdp, creator: Adobe Designer 7.0, scriptModel: XFA). Its own <template> packet was decompressed (the PDF's object streams are zlib-deflated; a stream...endstream regex + zlib.decompress extracted the embedded XFA XML directly — no pdftotext/pdfjs-dist needed for this particular container, since the XFA template's own <text>/<exData> nodes carry the literal on-page label strings verbatim). Every <field> count in the template is zero — like JPJ-L1 (GOV-1774), this is not an interactive fillable form; it is a print-layout XFA document (all content is authored as static <draw> elements). Unlike an interactive form, its own printed layout is nonetheless a genuine, self-documenting, numbered field-by-field form: 14 numbered items (1-14) across six lettered sections (A. Maklumat Pemohon; B. Penggantian Kerosakan/Kehabisan Mukasurat/Tamat Tempoh; C. Penggantian Kehilangan; D. Memasukkan Gambar Terbaru bagi Kanak-kanak; E. Persetujuan/Akuan; F. Penyerahan Pasport, office-use only), each with its own printed label directly on the form — the same self-documenting shape GOV-1774 established as this registry's fallback precedent for a non-interactive-but-numbered Malaysian government form.
Confirming currency: JIM's own current "Pasport Malaysia Antarabangsa" service page (https://www.imi.gov.my/index.php/perkhidmatan-utama/pasport/pasport-malaysia-antarabangsa/, fetched directly the same day, page footer date matching today, 2026-07-08) explicitly names "Borang Permohonan Pasport" as a still-required document for several eligibility categories, including "Borang Permohonan Pasport Percuma" (the free-of-charge staff category) — this is not a withdrawn or superseded legacy form; it remains the live application form referenced by JIM's own current process description, and its own printed revision code ("Pin. 1/97") is simply the print-layout's unchanged design revision, not evidence of staleness (the same pattern this registry has already confirmed for several other unchanged-for-years-but-still-current government print forms).
Only two other Malaysian candidates were screened this cycle (Taxes, National ID, both above, both rejected); Malaysia's Visa vertical was not screened and, along with Taxes and National ID, remains an open backlog candidate for a future cycle — see CATALOG.md's dated update paragraph.
Field inventory (Phase 2)
19 fields[] entries and 7 documents[] entries, every one carrying a sourceRef citing either IM.42 p.1's own printed item label/number (by lettered section and item number) or JIM's own "Pasport Malaysia Antarabangsa" service page (for eligibility-document and fee-table entries), independently re-extracted from the XFA template's own text nodes (not transcribed from memory or a search-result snippet).
| Section | Fields | Source | |---|---|---| | Jenis Permohonan / Jenis Dokumen | applicationReason, documentTypeRequested | p.1 top checkbox groups (5-option reason, 8-option document type) | | A - Maklumat Pemohon | fullName, otherName, icNumber, alternativeIdNumber, dateOfBirth, placeOfBirth, gender, currentAddress, postcode, city, state, height, maritalStatus | p.1 items 1-9 | | B/C/D - Penggantian | previousDocumentNumber, previouslyHeldTravelDocument, previousTravelDocumentNumberDeclared | p.1 items 10-12, Bahagian B declaration (b) | | E - Persetujuan/Akuan | guardianName, guardianIcNumber, declarationDate | p.1 Bahagian E |
documents[]: identityDocument (MyKad/KPPK 09/birth certificate, sourced from JIM's own eligibility-category table), applicantPhotograph (3.5cm x 5.0cm, IM.42's own photo-box label), previousPassportOrTravelDocument (gated to the three non-first-time, non-loss reasons that ask the applicant to attach the old document directly rather than a police report), policeReport (gated to lost), additionalChildPhotographs (gated to insert_child_photo), applicationFee (RM200/5-year base citizen rate, JIM's own current "Kadar Fi Pasport Malaysia" table), signedDeclaration (IM.42's own printed Bahagian E declaration text, verbatim, including the RM10,000-RM50,000 fine / 1-5 year imprisonment penalty for false information).
Access notes and judgment calls
- The XFA template's absolute
x/ydraw coordinates were found to be subform-relative, not page-absolute, so a naive flat sort by coordinate produced a nonsensical reading order (later-numbered items interleaved with earlier ones). Rather than build a full XFA layout resolver to recover true page-absolute coordinates, this schema was authored from the template's document order (the order<text>and<exData>nodes appear in the XML source) cross-checked against the form's own printed section/item numbering (A-F, 1-14) — the numbering itself is the authoritative structure regardless of draw order, and every field below cites the specific numbered item it transcribes. - The
(ii) Kategoricheckbox group (values: Kad Pengenalan, Sijil Perakuan Taraf, Sijil Perkahwinan, Sijil Kelahiran) and the identically- labelled item 13Kategori Kad Pengenalanare excluded fromfields[]. Coordinate evidence placed both in the form's right-hand "Untuk Kegunaan Pejabat" (For Office Use) column, alongside the officer's own document-type/country-code recording boxes, the applicant photo box, thumbprint box, and Bahagian F's counter-signature fields — the same office-use content this registry's JPJ-L1 precedent (GOV-1774) already established as out of scope forfields[](that document's own "Untuk Kegunaan Pejabat" content was likewise not modelled). This schema does not fabricate a confident binding of these checkbox values to a specific applicant-facing item. previousDocumentNumberunifies three textually-identical instructions (items 10, 11, and 12 each literally say "No. pasport/dokumen perjalanan terakhir" / "pasport/dokumen perjalanan terakhir") into one field gated to all three non-first-timeapplicationReasonvalues, rather than fabricating three near-duplicate fields the source does not itself distinguish by wording.previouslyHeldTravelDocument/previousTravelDocumentNumberDeclaredare modelled separately frompreviousDocumentNumber, because Bahagian B's declaration (b) ("*Saya mengaku bahawa saya/anak saya pernah/tidak pernah memiliki pasport/dokumen perjalanan bernombor:") is its own yes/no declaration with an independent blank, not merely a restatement of item 10's instruction — disclosed here as a judgment call rather than silently merged or silently dropped.- Bahagian B's four lettered declaration checkboxes (a/b/c/d) are only partially modelled. (b) is modelled (see above, judgment call 4) because it carries an actual fillable blank. (a) ("Saya memohon suatu pasport/dokumen perjalanan dikeluarkan kepada saya/anak saya seperti butiran di bahagian A") and (c) ("Saya, bapa/ibu/penjaga... memohon memasukkan gambar terbaru...") are declaratory restatements of
applicationReason/documentTypeRequestedwith no blank of their own, and (d) has no legible associated text in the extracted template at all — none of the three is modelled as a separate field, to avoid fabricating semantics for a checkbox this schema cannot independently confirm the wording of. guardianName/guardianIcNumberare notrequiredWhen-gated to an applicant age, despite the source's own explicit condition ("Jika pemohon berusia di bawah 18 tahun" — if the applicant is under 18). The sharedConditiongrammar (GSP-0013) compares field values directly (equals/in/notEquals/ordering operators) and has no built-in "derive age from date of birth, as of today" primitive; expressing this condition would require either fabricating anisMinorboolean field the source form does not itself ask for, or silently asserting an unconditional requirement the source does not state. Both fields are left optional with the literal source condition disclosed in their owndescription, the same handlingpl/mswia's and other prior schemas in this registry have applied to source conditions the shared grammar cannot cleanly express.applicationFee.amountstates only the 18-59 age-band, 5-year-validity citizen rate (RM200), the base case. JIM's own "Kadar Fi Pasport Malaysia" table publishes a fuller schedule varying by age band (RM100 for under-12, 60-and-over, or full-time overseas undergraduate students under 21; free for a registered person with a disability or JIM's own staff category) and by validity period (5 vs. 10 years, with several age bands ineligible for the 10-year option) — disclosed here in full rather than asserted as this document's singleamount, the same handlingmy/jpj/driving-licence-applicationapplied to its own multi-tier fee uncertainty.- No live submission was attempted. Submitting this form in person creates a real fee liability and a real change to the applicant's legal travel-document record — not a safe or reversible action to simulate against a live government process, consistent with this registry's standing discipline for every prior cycle's schema.
Test run (Phase 3)
Two fully hand-constructed mock records were built from this document's own field inventory (not committed to the registry; this registry's convention keeps registry/ to schema.json + VERIFICATION.md only):
- A fictional adult applicant (Siti binti Ahmad) filing a first-time passport application (
applicationReason: "first_time",documentTypeRequested: "passport_64_pages"), exercisingpreviousDocumentNumber's absent-requiredness (no prior document to cite) andpreviouslyHeldTravelDocument: falsewithpreviousTravelDocumentNumberDeclaredcorrectly omitted. - A fictional applicant (Muhammad Iskandar) filing a lost-document replacement (
applicationReason: "lost"), exercisingpreviousDocumentNumber'srequiredWhenbranch and thepoliceReportdocument'srequiredWhenbranch.
Both were checked with a small ad hoc Node script (not committed) that compiles schema.json's own required/requiredWhen rules (the shared Condition grammar's equals/in leaves) and evaluates them directly against each fixture:
`` $ node check.mjs registry/my/jim/passport-travel-document-application/1.0.0/schema.json mock1.json All required/requiredWhen/enum checks passed against mock1.json $ node check.mjs registry/my/jim/passport-travel-document-application/1.0.0/schema.json mock2.json All required/requiredWhen/enum checks passed against mock2.json ``
Negative controls (each run against a variant of one of the two fixtures, not committed as separate files), confirming the script actually catches violations rather than passing vacuously:
- (a)
previousDocumentNumberremoved whileapplicationReason: "lost"— caught:FIELD previousDocumentNumber: required but missing. - (b)
documents.policeReportremoved under the sameapplicationReason— caught:DOCUMENT policeReport: required but missing. - (c)
applicationReason: "banana"— caught: not in the 5-value enum. - (d)
gender: "M"— caught: not in the["Lelaki", "Perempuan"]enum. - (e)
previouslyHeldTravelDocument: trueadded withoutpreviousTravelDocumentNumberDeclared— caught:FIELD previousTravelDocumentNumberDeclared: required but missing. - (f)
fullNameremoved entirely — caught:FIELD fullName: required but missing. - (g)
documents.applicantPhotographremoved — caught:DOCUMENT applicantPhotograph: required but missing.
All seven negative controls were correctly identified by the script.
Both meta-schema validators were run against the finished document and pass clean:
``` $ node tools/validate.mjs registry/my/jim/passport-travel-document-application/1.0.0/schema.json ok registry/my/jim/passport-travel-document-application/1.0.0/schema.json
1/1 document(s) passed.
$ node tools/validate-ajv.mjs registry/my/jim/passport-travel-document-application/1.0.0/schema.json ok registry/my/jim/passport-travel-document-application/1.0.0/schema.json [v0.3]
1/1 document(s) validated against the meta-schema (ajv 2020-12). ```
node tools/verify-sources.mjs registry/my/jim/passport-travel-document-application/1.0.0 was also run against this finished document immediately before opening the PR and reported no FAILs (see PR description for the run's output).
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 Jabatan Imigresen Malaysia or any government. The authoritative source is always the live government form and its official instructions.