Registry entry
Indonesia First-Time Adult Passport Application (M-Paspor)
Apply for a first-time (never previously held) ordinary electronic passport (Paspor Biasa Elektronik) as an adult applicant, through the Direktorat Jenderal Imigrasi's (Directorate General of Immigration) own M-Paspor mobile application — Indonesia's second Passport-vertical document and the jurisdiction's fourth vertical overall (after Business Formation, DMV, and Taxes; see id/bkpm/oss-nib-registration-individual-umk, id/korlantas/international-driving-permit-registration, id/djp/annual-individual-income-tax-return-1770s). Sourced from the app's own official 'User Guide M-Paspor' (V.1.0, Juni 2026), a screenshot-driven, field-by-field walkthrough hosted unauthenticated on a regional Ditjen Imigrasi subdomain (batam.imigrasi.go.id), no login/CAPTCHA/WAF gate. Covers an adult (Dewasa) applicant applying for the first time (has never held an ordinary/'hijau' passport before) through either the standard (Reguler) or accelerated (Percepatan) service tier, which the guide's own screenshots confirm share one identical downstream form. Does not model: the child/minor (Anak-anak) applicant pathway; the renewal/replacement pathway for an applicant who has previously held a passport (habis masa berlaku / penuh / hilang / rusak); or the payment, reschedule, history, profile, and notification menus described later in the same guide (see VERIFICATION.md for the full scope rationale). This document does not submit the application; the live M-Paspor application and the Direktorat Jenderal Imigrasi are always authoritative.
Registry entry
id/imigrasi/passport-application-first-adult
Authoritative source User Guide M-Paspor, V.1.0 (Juni 2026) — published by Ditjen Imigrasi, mirrored unauthenticated on the Batam regional immigration office's own subdomain
Machine access
- Schema document
registry/id/imigrasi/passport-application-first-adult/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/id/imigrasi/passport-application-first-adult/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
25 fields across 9 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 Paspor
-
serviceSpeedenum requiredService tier: standard processing (Reguler) or accelerated same-priority-queue processing (Percepatan, subject to a published Rp1,000,000 surcharge and available only at immigration offices with remaining accelerated-service quota). The guide's own screenshots interchange the two tiers' labels across steps 2-7 while showing byte-identical form layouts, confirming both tiers share this document's fields (see VERIFICATION.md).
enum: REGULER | PERCEPATAN
Kuesioner Layanan Permohonan
-
applicantCategoryenum requiredDewasa = an Indonesian citizen (WNI) aged over 17, or already married regardless of age. Anak-anak = a WNI under 17 and not yet married. This document fully models only the Dewasa pathway; the guide states the Anak-anak pathway requires an additional, not-separately-walked identity document for a parent/guardian (see the parentIdentityForMinor document entry and VERIFICATION.md).
enum: DEWASA | ANAK_ANAK
Lokasi Kantor Imigrasi
-
immigrationOfficestring requiredThe immigration office (Kantor Imigrasi) or its partner service counter (e.g. a mall-based service point) where the applicant will attend in person and collect the finished passport. The live app surfaces this as a location-based, dynamically-ranked list (nearest-first, with distance shown), not a fixed catalogue, so it is modelled as an open string rather than an enum.
length: 0–150
Jenis Paspor
-
passportTypeenum requiredElectronic passport product and validity period. The guide's dropdown shows exactly these two options for a Paspor Biasa Elektronik; it does not offer a non-electronic ('Paspor Biasa') product in this screen.
enum: PASPOR BIASA ELEKTRONIK LAMINASI 5 TAHUN | PASPOR BIASA ELEKTRONIK LAMINASI 10 TAHUN
Isi Formulir Verifikasi
-
applicantFullNamestring requiredApplicant's full legal name. The live field's own placeholder text is illustrative ('Cth: Charlize Scavendish'), not a real applicant value.
classification: pii -
nikstring requiredApplicant's 16-digit Nomor Induk Kependudukan (National Identity Number), as printed on their electronic KTP. The live field shows a '0/16' character counter, confirming the maximum/expected length.
patternclassification: sensitive-pii -
dateOfBirthdate requiredApplicant's date of birth, entered in the live field's own dd/mm/yyyy format.
-
genderenum requiredDropdown. Both of the guide's own worked-example values are directly confirmed on-screen: 'Pria' (male, in the 'Ubah Data Pemohon' recap, Gambar 3.11) and 'Perempuan' (female, in the 'Pemohon dengan Paspor Lama' recap, Gambar 3.7). No further values are shown, so this enum is scoped to exactly those two confirmed values rather than asserted as exhaustive.
enum: Pria | Perempuan -
civilStatusstring requiredMarital/civil status dropdown. No option list or worked example value is legible anywhere in the guide (the field is shown only in its unselected placeholder state, '-- Pilih Status Sipil'), so this is modelled as an open string rather than a fabricated enum.
length: 0–30
Kuesioner apakah sudah memiliki paspor
-
hadPriorRegularPassportenum requiredWhether the applicant has ever previously held an ordinary ('hijau'/green-cover) passport; service/diplomatic passports do not count, per the source's own note. This document fully models only the BELUM (first-time applicant) pathway. When SUDAH, the guide's own next screens (condition of the old passport, its number, and a photo of its data page — Gambar 3.8-3.9) determine a replacement application instead; those screens and their fields are out of scope for this v1.0.0 (see VERIFICATION.md).
enum: BELUM | SUDAH
Kuesioner Permohonan Paspor (PERDIM)
-
travelPurposestring requiredPurpose for obtaining the passport, chosen from a scrolling picker. Only five options are fully legible in the guide's own screenshot (Wisata/Liburan, Umroh, Haji, Bekerja Formal, Pekerja Migran Indonesia (PMI)) before the list is cut off by the screenshot's own bottom edge with at least one further, illegible option below (partially visible, beginning 'BELAJAR...'); modelled as an open string rather than an incomplete enum. The guide's own step-9 summary also names two further conditional fields for this same questionnaire — 'negara tujuan' (destination country) and 'lama tinggal' (length of stay), likely gated on a work/migrant-labour travelPurpose value — that no screenshot in this guide ever renders; they are not modelled in this v1.0.0 (see VERIFICATION.md).
length: 0–60 -
familyContactNamestring requiredName of a family member/relative in Indonesia who can be contacted regarding the application. The live field shows a '13/50' character counter against its own worked-example value, confirming a 50-character maximum.
length: 0–50 -
familyContactPhonestring requiredPhone number of the family member/relative named in familyContactName.
length: 0–20 -
familyRelationshipstring requiredRelationship of the contact named in familyContactName to the applicant (e.g. parent, sibling, spouse). Shown only in its unselected placeholder state ('-- Pilih hubungan') in the guide, with no option list or worked example legible, so modelled as an open string.
length: 0–30
Data Tambahan Pemohon
-
ktpIssueDatedate requiredIssue date printed on the applicant's electronic KTP (Kartu Tanda Penduduk).
-
nationalityenum requiredNationality dropdown; the guide's only worked example shows 'Indonesia' selected. This document's scope is limited to a WNI (Indonesian citizen) applicant identified by e-KTP/NIK earlier in the same flow, so only that one confirmed value is modelled — mirroring this registry's existing single-confirmed-value enum convention (see id/korlantas/international-driving-permit-registration's issuingCounter field). Other values may exist in the live dropdown for edge cases this document does not cover.
enum: Indonesia -
ktpAddressstring requiredResidential address exactly as printed on the applicant's KTP. The live textarea shows a '0/100' character counter.
length: 0–100 -
ktpProvincestring requiredProvince printed on the applicant's KTP. The live field is a searchable picker ('Cari Provinsi'); its full option list is not shown in the guide, so it is modelled as an open string.
length: 0–60 -
ktpRegencystring requiredRegency or city (Kabupaten/Kota) printed on the applicant's KTP, dependent on the province selected in ktpProvince. The live picker's own option list is cut off by the guide screenshot's bottom edge, so it is modelled as an open string.
length: 0–60 -
occupationstring requiredApplicant's occupation. Shown only in its unselected placeholder state ('-- Pilih Pekerjaan') in the guide, with no option list or worked example legible, so modelled as an open string.
length: 0–60 -
applicantPhonestring requiredApplicant's own contact phone number, distinct from familyContactPhone. The live field's own placeholder text ('Cth: 08123456789') is illustrative, not a real applicant value.
length: 0–20 -
motherNamestring requiredFull name of the applicant's mother, per the KTP-derived civil registry norm this guide's own field group ('Keterangan Ibu Pemohon') applies uniformly to adult applicants (not only to minors). The live field shows a '0/50' character counter.
length: 0–50classification: pii -
motherNationalitystring requiredNationality of the applicant's mother. Shown only in its unselected placeholder state ('-- Pilih Kewarganegaraan Ibu') in the guide, with no option list or worked example legible, so modelled as an open string.
length: 0–60 -
motherAddressstring requiredResidential address of the applicant's mother.
length: 0–100
Tanggal dan Waktu Kedatangan
-
appointmentSlotstring requiredIn-person appointment date and 3.5-hour arrival session at the office named in immigrationOffice, chosen from the live app's own list of currently available slots (source's own worked example: '31 Oktober 2025, 08:01-11:30'). Modelled as a string, not a pure date, since a single slot bundles both a calendar date and a time window rather than a bare date.
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-07
This is a GovSchema Standard Research cycle (GOV-1574), a general research-analyst brief covering DMV, Business Formation, Visa, Passport, Taxes, and National ID & Civic Documents across all jurisdictions. Indonesia's Passport vertical had been screened and left open across three prior cycles (GOV-1546, GOV-1560, GOV-1567) — each time as "no field-level source found" or, most recently, "reversed to viable, not yet authored." This cycle re-fetched the source GOV-1567 identified and authored against it. The document was derived from a directly-read primary source: the Direktorat Jenderal Imigrasi's own official "User Guide M-Paspor" (V.1.0, Juni 2026), a genuine 31-page screenshot-driven walkthrough of the live M-Paspor mobile app, retrieved directly (HTTP 200, no login/CAPTCHA/WAF) from a regional Ditjen Imigrasi subdomain. It remains draft, not verified, because the live app itself was not walked interactively — it requires full account registration (name/DOB/email/phone/password, then an emailed OTP) plus a CAPTCHA-gated login before any application screen is reachable, which this review did not attempt, to avoid creating a real account/application record in a government system.
Why this candidate, and what was screened first
Per CATALOG.md's own "Known Gaps" record, Indonesia's Passport gap had already reversed from "not viable" (GOV-1560: "sourceable only via secondary checklist-level how-to articles, no field-level walkthrough found") to viable (GOV-1567: "a genuine official, versioned ('V3') screenshot-driven user guide... hosted unauthenticated on a regional Ditjen Imigrasi subdomain"), but had not yet been authored — explicitly logged as "ready-to-author backlog for an immediate follow-up cycle." Before picking it up, this cycle re-screened the other candidates the issue brief's own notes named:
- DE Steuer-ID, SG NRIC loss/damage + re-registration, NZ RealMe — all three are already published in this registry (
de/finanzamt/tax-identification-number,sg/ica/identity-card-replacement+sg/ica/identity-card-reregistration,nz/dia/realme-verified-identity, each1.0.0). The issue brief's notes predate these; no further action needed. - "Remaining voter registration" — Colombia's Registraduría runs a genuine online overseas-voter-registration microsite (
inscribeteonline2026.registraduria.gov.co, confirmed via web search and Wayback Machine snapshots from 2025-12 through 2026-03) but it no longer resolves (NXDOMAINfrom a public DoH resolver, reconfirmed 2026-07-07): the site was built for Colombia's 2026 congressional/ presidential elections, whose registration deadlines (2026-01-08 and 2026-03-31 respectively) have both already passed as of this cycle's 2026-07-07 retrieval date. It is also a client-rendered Vue single-page app (title "IDC"), so even its Wayback snapshots would not expose field-by-field content without live JavaScript execution against a now-nonexistent host. Logged as a dead-for-now candidate: a future Colombia-focused cycle should check whether the same or an equivalent microsite is stood back up ahead of Colombia's next election cycle.
Indonesia's Passport gap (M-Paspor) was then confirmed as the strongest remaining candidate and authored this cycle.
Source examined
- Document
(id, version):id/imigrasi/passport-application-first-adult/1.0.0 - Spec version: GovSchema
0.3.0 - Authority: Directorate General of Immigration (Direktorat Jenderal Imigrasi), Ministry of Immigration and Correctional Affairs
- Primary source (directly retrieved, HTTP 200, no login): https://batam.imigrasi.go.id/assets/resources/files/M-Paspor_UserGuide_V3.pdf — "User Guide M-Paspor", cover page dated "V.1.0 - Juni 2026", 31 pages. The main
imigrasi.go.iddomain's own copy of this file remains CloudFront-blocked to a direct fetch (reconfirmed this cycle, same result GOV-1567 found); this Batam regional immigration office mirror is not. - Extraction method: the PDF's text layer was read directly with
pdfjs-dist(v3.11.174) for prose/step-list content; the guide's core field-level screens (its own in-app screenshots) are embedded as raster images with no text layer, so those pages were rendered to PNG at 2.5x scale withpdfjs-dist+canvasand read visually, page by page — the same image-rendering technique already used forae/icp/emirates-id-replacement(GOV-1477) and several other screenshot-driven guides in this registry. - Retrieved / reviewed: 2026-07-07
- Reviewer: GovSchema Engineering (initial authoring source-review)
Field inventory (Phase 3)
Every field below was read directly from a rendered screenshot inside the official guide (page number is the PDF's own page index, not the printed footer number, which runs one behind):
| Field (schema name) | Label (source) | Guide page / figure | Example valid value | |---|---|---|---| | serviceSpeed | Jenis Permohonan | p.9, Gambar 3.2 | "REGULER" | | applicantCategory | Untuk siapa permohonan paspor ini? | p.10, Gambar 3.3 | "DEWASA" | | immigrationOffice | Kantor Imigrasi | p.11, Gambar 3.4 | "Kantor Imigrasi Kelas I Khusus TPI Batam" | | passportType | Jenis Paspor | p.12, Gambar 3.5 | "PASPOR BIASA ELEKTRONIK LAMINASI 5 TAHUN" | | applicantFullName | Nama Pemohon | p.13, Gambar 3.6 | "SITI RAHAYU WULANDARI" | | nik | Masukkan NIK | p.13, Gambar 3.6 | "2171054512980003" | | dateOfBirth | Tanggal Lahir | p.13, Gambar 3.6 | "1998-12-05" | | gender | Jenis Kelamin | p.13, Gambar 3.6 (dropdown); p.14, Gambar 3.7 (worked value "Perempuan"); p.18, Gambar 3.11 (worked value "Pria") | "Perempuan" | | civilStatus | Status Sipil | p.13, Gambar 3.6 | "Belum Kawin" | | hadPriorRegularPassport | Apakah anda sudah pernah memiliki paspor biasa (hijau)? | p.15, Gambar 3.8 | "BELUM" | | travelPurpose | Apakah tujuan anda membuat paspor? | p.17, Gambar 3.10 | "Wisata / Liburan" | | familyContactName | Nama Kerabat | p.17, Gambar 3.10 | "Ahmad Fauzi" | | familyContactPhone | Nomor Telepon (keluarga/kerabat) | p.17, Gambar 3.10 | "081234567890" | | familyRelationship | Keterangan Hubungan Keluarga | p.17, Gambar 3.10 | "Ayah Kandung" | | ktpIssueDate | Tanggal dikeluarkan KTP | p.17, Gambar 3.10 | "2016-03-01" | | nationality | Kewarganegaraan | p.17, Gambar 3.10 | "Indonesia" | | ktpAddress | Alamat Sesuai KTP | p.17, Gambar 3.10 | "Jl. Daeng Kamboja No. 12, RT 003/RW 005" | | ktpProvince | Provinsi Sesuai KTP | p.17, Gambar 3.10 | "Kepulauan Riau" | | ktpRegency | Kabupaten / Kota Sesuai KTP | p.17, Gambar 3.10 | "Kota Batam" | | occupation | Pekerjaan | p.17, Gambar 3.10 | "Karyawan Swasta" | | applicantPhone | Nomor Telepon (pemohon) | p.17, Gambar 3.10 | "081298765432" | | motherName | Nama Ibu | p.17, Gambar 3.10 | "Ratna Sari" | | motherNationality | Kewarganegaraan Ibu | p.17, Gambar 3.10 | "Indonesia" | | motherAddress | Alamat Ibu | p.17, Gambar 3.10 | "Jl. Daeng Kamboja No. 12, RT 003/RW 005, Batam" | | appointmentSlot | Tanggal Kedatangan | p.20, Gambar 3.13 | "31 Oktober 2026, 08:01-11:30" |
documents[] (all read from the guide's own step list, Section 3.2, and Gambar 3.11's own field labels):
| Document id | What it is | Required? | |---|---|---| | ektp | Electronic KTP, photographed/uploaded, JPG only | Yes | | kartuKeluarga | Family Card (Kartu Keluarga) | Yes (new/first-time application) | | birthCertificateOrEquivalent | Birth certificate / diploma / marriage certificate or book / baptismal certificate (any one) | Yes (new/first-time application) | | parentIdentityForMinor | Additional parent identity document | Conditional (Anak-anak/minor applicants only, by description — not separately modelled, see below) |
Access notes and judgment calls
- Scope is deliberately narrowed to one branch of a larger, multi-branch wizard. The live M-Paspor app's own screens branch on three independent choices — service speed (Reguler/Percepatan), applicant category (Dewasa/Anak-anak), and prior-passport status (Belum/Sudah) — and this document models the full field set for exactly one combination (Dewasa + first-time/Belum), while still modelling
serviceSpeedandapplicantCategoryas real, both-values-confirmed enums (following the same disclosure discipline asph/lto/drivers-license-application'stypeOfApplicationfield).hadPriorRegularPassportis modelled the same way: bothBELUM/SUDAHvalues are confirmed on-screen, but only theBELUMbranch's downstream fields are modelled in this v1.0.0. The guide's own screens for theSUDAH(renewal/replacement) branch — condition of the old passport (Habis masa berlaku / Penuh / Hilang / Rusak), its number, and a photo of its data page (Gambar 3.8-3.9) — are real and visible in the source but not modelled here; a future MINOR version could add them behindrequiredWhen: { field: "hadPriorRegularPassport", equals: "SUDAH" }. serviceSpeed's two tiers are confirmed to share one form. The guide's own screenshots for the identical downstream steps (verification form, PERDIM questionnaire, document upload, additional-data screens) interchange between title bars reading "Permohonan paspor percepatan" (Gambar 3.5-3.6) and "Permohonan paspor reguler" (Gambar 3.8-3.13) with no difference in visible fields — direct evidence, not an assumption, that Percepatan differs only by its surcharge and an office-availability filter toggle (both out of scope: the surcharge is a computed fee, and the filter is presentational).genderis modelled as a 2-value enum;civilStatusremains an open string. Correction from this document's initial authoring pass (found by the GOV-1577 review gate's independent page-render re-check): the guide confirms twogendervalues on-screen, not one — "Pria" (male, "Ubah Data Pemohon" recap, Gambar 3.11) and "Perempuan" (female, "Pemohon dengan Paspor Lama" recap, Gambar 3.7, part of the out-of-scopeSUDAHbranch, but the same dropdown/field). The initial pass checked only Gambar 3.11 and asserted "Pria" was the sole confirmed value; it is not.genderis now modelled asenum: ["Pria", "Perempuan"], scoped to exactly the two confirmed values (not asserted as exhaustive).civilStatus's live dropdown option list is never shown open anywhere in the guide, and no worked-example value is legible either (the field is shown only in its unselected placeholder state), so it remains an open string — following the same precedent asid/bkpm/oss-nib-registration-individual-umk's owngenderfield.travelPurposeis a known-incomplete picklist. The guide's own screenshot (Gambar 3.10) shows five fully legible options (Wisata/ Liburan, Umroh, Haji, Bekerja Formal, Pekerja Migran Indonesia (PMI)) before the picker is cut off by the screenshot's own bottom edge, with at least one further option partially visible and illegible (beginning "BELAJAR..."). Modelled as an open string rather than asserting a conclusively complete enum.nationalityis modelled as a single-value enum ("Indonesia"). The live dropdown's chevron affordance implies other values exist, but this document's own scope (a WNI/citizen applicant identified via e-KTP + NIK earlier in the same flow) never surfaces one — the same reasoning already applied toid/korlantas/international-driving-permit-registration'sissuingCounterfield.motherName/motherNationality/motherAddressare modelled for the Dewasa (adult) pathway, not only for minors. The guide's own screen ("Keterangan Ibu Pemohon", Gambar 3.10) appears within the "Data Tambahan Pemohon" step that this document's worked example walks for an adult applicant tier, immediately alongside the adult's own occupation and phone number fields — it is not gated behindapplicantCategory = ANAK_ANAKanywhere in the guide's own step list or screenshots.parentIdentityForMinoris modelled asrequired: falsewith the condition stated in its ownlabel, notrequiredWhen. The source's own step-10 text marks it "wajib jika pengajuan paspor untuk anak-anak" but the live form exposes no applicant-category-specific document checklist screen in this guide — only the same generic step-10 upload screen shown for the modelled Dewasa/new-application path. Rather than fabricate a gating condition the source itself does not expose at the document level, this mirrors the discipline already used forid/korlantas/international-driving-permit-registration'skitapandexistingInternationalLicencedocuments.- No payment/fee document is modelled. The guide's own Section 3.3 ("Pembayaran Permohonan") confirms a payment step exists (Kode Billing via Simponi, or a card/virtual-account Payment Gateway via Finpay) but states no base PNBP fee amount anywhere in its 31 pages — only the Rp1,000,000 Percepatan surcharge is quantified, and that is a tier add-on, not the base fee. Rather than guess a figure, this document leaves the payment step entirely out of scope; a future cycle could add it once the underlying PNBP tariff regulation (analogous to PP No. 76/2020, cited by
id/korlantas's ownregistrationFeedocument) is independently located and read for passports specifically. - Downstream menus (reschedule, history, informasi, profile, notifikasi — guide sections 3.4-3.8) are out of scope. These are post-submission account-management screens, not part of the application itself, and are excluded the same way
id/korlantas's own guide-adjacent menus were excluded. appointmentSlotis modelled as a string, not adate. The live picker's own worked example ("31 Oktober 2025, 08:01-11:30") bundles a calendar date with a fixed 3.5-hour arrival window in one selectable value; GovSchema'sdatetype does not carry a time-range component, so a plain string preserves the source's own compound format rather than truncating it to a bare date.negara tujuan(destination country) andlama tinggal(length of stay) are not modelled — found undisclosed by the GOV-1577 review gate. The guide's own step-9 prose summary (page 15, printed footer "14": "Isi Kuesioner (kondisi paspor lama, foto dan no paspor lama, tujuan pembuatan, negara tujuan, lama tinggal, kontak keluarga)") names these two fields in the same breath astravelPurpose("tujuan pembuatan") and the family-contact fields ("kontak keluarga"), both of which are modelled here — but no screenshot anywhere in the 31-page guide ever renders their labels, positions, or option lists; the worked example throughout Gambar 3.10 selects "Wisata/Liburan" astravelPurpose, and destination-country/length-of- stay fields most plausibly gate on a work/migrant-labour purpose ("Bekerja Formal" or "Pekerja Migran Indonesia (PMI)") that the guide never walks. Rather than fabricate a label, type, or condition this source never visually confirms, these two fields are left out of scope for this v1.0.0 — a future minor version should add them, gated behindtravelPurpose, once a screenshot or the live app confirms their exact shape.
Test run (Phase 4)
No live submission was attempted, for the same reason status remains draft: doing so would require creating a real M-Paspor account (email OTP) and would risk holding a real appointment slot at a real immigration office, mirroring this registry's existing practice for scarce-appointment/ account-gated systems (see ph/dfa/passport-application, GOV-1497). Instead, this document's own worked mock example (the "Example valid value" column above) was checked programmatically against every field's own validation keyword (enum, pattern, maxLength) and against required, with all 24 fields passing and both meta-schema validators (tools/validate.mjs and tools/validate-ajv.mjs) passing clean.
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 Directorate General of Immigration (Direktorat Jenderal Imigrasi) or any government. The authoritative source is always the live government form and its official instructions.