{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "ph/bi/non-immigrant-visa-application",
  "version": "1.0.0",
  "title": "Philippines Consolidated General Application Form for Non-Immigrant Visa, Special Work Permit and Provisional Work Permit",
  "description": "Application filed with the Bureau of Immigration (BI) to convert, extend, or include a dependent under, a non-immigrant visa, Special Work Permit (SWP), or Provisional Work Permit (PWP) for a foreign national already present in the Philippines — the Consolidated General Application Form (CGAF), form BOC04.QF.002 Rev. Lev. 0, effective 05 AUG 2024. Covers application information (application/permit type, duration, filing method), the applicant's travel and personal information, the applicant's Philippine and abroad addresses, spouse and one child's information, character references, the petitioner's (sponsor's) information, the applicant's employment/AEP information, prior ACR I-Card details, and the certification/data-privacy-consent statements printed on the form. Does not model the type-specific documentary checklists that vary per underlying visa/permit category (e.g. Conversion to Student Visa, Pre-arranged Employee Visa, SWP-Commercial) — these are separate BI-published checklist documents this form itself does not enumerate — or the ACR I-Card claim-time representative/claimant sub-block on the form's own tear-off stub, since that is a downstream card-collection step distinct from filing this application (see VERIFICATION.md). Does not submit the application; the Bureau of Immigration (immigration.gov.ph) is always authoritative.",
  "status": "draft",
  "jurisdiction": {
    "country": "PH",
    "level": "national"
  },
  "authority": {
    "name": "Bureau of Immigration",
    "abbreviation": "BI",
    "url": "https://immigration.gov.ph/"
  },
  "process": {
    "type": "application",
    "language": "en"
  },
  "source": {
    "url": "https://immigration.gov.ph/wp-content/uploads/2025/03/BOC04.QF_.002-CGAF-FOR-NON-IMMIGRANT-VISA-SWP-AND-PWP.pdf",
    "retrievedAt": "2026-07-06",
    "documentRef": "BOC04.QF.002 Rev. Lev. 0, Effective: 05 AUG 2024"
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-06",
    "verifiedBy": "GovSchema Engineering (Standards Engineer); independently re-verified by Review Engineer (GOV-1493)",
    "nextReviewBy": "2027-01-01",
    "notes": "Source-derived reference schema authored field-by-field from the Bureau of Immigration's own Consolidated General Application Form (CGAF) for Non-Immigrant Visa, Special Work Permit, and Provisional Work Permit (BOC04.QF.002 Rev. Lev. 0, effective 05 AUG 2024), listed and directly downloadable from immigration.gov.ph's own BI Forms page (no login, CAPTCHA, or WAF gate) with a genuine, legible text layer (confirmed via direct PDF read, not image/screenshot extraction). This opens the Philippines' 4th vertical (Visa), alongside the existing National ID & Civic Documents (ph/comelec) and Taxes (ph/bir, x2) verticals. Independent review-gate re-verification (GOV-1493) re-extracted both pages with pdfjs-dist coordinate data (not just visual row-clustering) and found the initial authoring pass had fabricated a 'petitionerIndividualContact*' trio duplicating Section IV's single, already-modelled Registered-Address contact block, while missing the genuine Contact Number(s)/E-mail block on the 'Character References in the Philippines' sub-section — corrected pre-merge (net field count unchanged at 68; see VERIFICATION.md's 'Review-gate correction' section). Status remains draft pending live/worked-example execution testing; see the review-gate issue and this document's own VERIFICATION.md for every disclosed scope cut and judgment call."
  },
  "maturity": {
    "level": "structural-reference",
    "criteria": {
      "structuralReference": true,
      "verifiedSchema": false,
      "agentReadySchema": false,
      "executionTestedSchema": false
    },
    "method": "maturity-self-assessment-v1",
    "assertedBy": "GovSchema Engineering (Standards Engineer)",
    "assertedAt": "2026-07-06"
  },
  "license": "CC-BY-4.0",
  "fields": [
    {
      "name": "presentImmigrationStatus",
      "label": "Present Immigration Status",
      "type": "string",
      "required": true,
      "sourceRef": "Section I. Application Information — Present Immigration Status",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "typeOfApplication",
      "label": "Type of Application",
      "type": "enum",
      "required": true,
      "sourceRef": "Section I. Application Information — Type of Application (Conversion / Extension / Inclusion / Permit checkboxes)",
      "validation": { "enum": ["conversion", "extension", "inclusion", "permit"] }
    },
    {
      "name": "typeOfVisaOrPermit",
      "label": "Type of Visa/Permit",
      "type": "string",
      "required": true,
      "description": "Free-text box; the form does not print an option list for this field.",
      "sourceRef": "Section I. Application Information — Type of Visa/Permit",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "durationAppliedFor",
      "label": "Number of Months/Years Applied For",
      "type": "enum",
      "required": true,
      "sourceRef": "Section I. Application Information — Number of Months/Years Applied For (3 Months / 6 Months / 1 Year / 2 Years / 3 Years checkboxes)",
      "validation": { "enum": ["3_months", "6_months", "1_year", "2_years", "3_years"] }
    },
    {
      "name": "methodOfApplication",
      "label": "Method of Application",
      "type": "enum",
      "required": true,
      "sourceRef": "Section I. Application Information — Method of Application (Personal / Authorized Representative checkboxes)",
      "validation": { "enum": ["personal", "authorized_representative"] }
    },
    {
      "name": "biAccreditationNumber",
      "label": "BI Accreditation Number",
      "type": "string",
      "required": false,
      "requiredWhen": { "field": "methodOfApplication", "equals": "authorized_representative" },
      "sourceRef": "Section I. Application Information — BI Accreditation Number",
      "validation": { "maxLength": 50 }
    },
    {
      "name": "authorizedRepresentativeName",
      "label": "Name of Authorized Representative",
      "type": "string",
      "required": false,
      "requiredWhen": { "field": "methodOfApplication", "equals": "authorized_representative" },
      "classification": "pii",
      "description": "Last Name, First/Given Name, Middle Name.",
      "sourceRef": "Section I. Application Information — Name of Authorized Representative [Last Name, First/Given Name, Middle Name]",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "authorizedRepresentativePosition",
      "label": "Position in the Company/Institution",
      "type": "string",
      "required": false,
      "sourceRef": "Section I. Application Information — Position in the Company/Institution",
      "validation": { "maxLength": 150 }
    },
    {
      "name": "passportNumber",
      "label": "Passport Number",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section II. Applicant's Travel Information — Passport Number",
      "validation": { "maxLength": 30 }
    },
    {
      "name": "passportPlaceOfIssuance",
      "label": "Place of Issuance",
      "type": "string",
      "required": true,
      "sourceRef": "Section II. Applicant's Travel Information — Place of Issuance",
      "validation": { "maxLength": 100 }
    },
    {
      "name": "dateOfLatestArrival",
      "label": "Date of Latest Arrival",
      "type": "date",
      "required": true,
      "sourceRef": "Section II. Applicant's Travel Information — Date of Latest Arrival [DD MMM YYYY e.g. 01 JAN 1990]"
    },
    {
      "name": "passportExpiryDate",
      "label": "Expiry Date/Valid Until",
      "type": "date",
      "required": true,
      "sourceRef": "Section II. Applicant's Travel Information — Expiry Date/Valid Until [DD MMM YYYY e.g. 01 JAN 1990]"
    },
    {
      "name": "lastDayOfAuthorizedStay",
      "label": "Last Day of Authorized Stay",
      "type": "date",
      "required": true,
      "sourceRef": "Section II. Applicant's Travel Information — Last Day of Authorized Stay [DD MMM YYYY e.g. 01 JAN 1990]"
    },
    {
      "name": "lastName",
      "label": "Last Name",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section III. Applicant's Personal Information — Last Name",
      "validation": { "maxLength": 100 }
    },
    {
      "name": "firstName",
      "label": "First/Given Name",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section III. Applicant's Personal Information — First/Given Name",
      "validation": { "maxLength": 100 }
    },
    {
      "name": "middleName",
      "label": "Middle Name (if applicable)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section III. Applicant's Personal Information — Middle Name (if applicable)",
      "validation": { "maxLength": 100 }
    },
    {
      "name": "otherNameOrAlias",
      "label": "Other Name(s)/Alias(es)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "The source form provides two numbered rows for other names/aliases; only the first is modeled here (GSP-0009, no repeating-field type in GovSchema v0.3 — see VERIFICATION.md).",
      "sourceRef": "Section III. Applicant's Personal Information — Other Name(s)/Alias(es), row 1",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "dateOfBirth",
      "label": "Date of Birth",
      "type": "date",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section III. Applicant's Personal Information — Date of Birth [DD MMM YYYY e.g. 01 JAN 1990]"
    },
    {
      "name": "sex",
      "label": "Sex",
      "type": "enum",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section III. Applicant's Personal Information — Sex (M / F checkboxes)",
      "validation": { "enum": ["M", "F"] }
    },
    {
      "name": "countryOfBirth",
      "label": "Country of Birth",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section III. Applicant's Personal Information — Country of Birth",
      "validation": { "maxLength": 100 }
    },
    {
      "name": "countryOfCitizenship",
      "label": "Country of Citizenship",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section III. Applicant's Personal Information — Country of Citizenship",
      "validation": { "maxLength": 100 }
    },
    {
      "name": "civilStatus",
      "label": "Civil Status",
      "type": "enum",
      "required": true,
      "sourceRef": "Section III. Applicant's Personal Information — Civil Status (Single / Married / Widowed / Separated / Annulled / Divorced checkboxes)",
      "validation": { "enum": ["single", "married", "widowed", "separated", "annulled", "divorced"] }
    },
    {
      "name": "heightCm",
      "label": "Height [cm]",
      "type": "number",
      "required": false,
      "sourceRef": "Section III. Applicant's Personal Information — Height [cm]",
      "validation": { "minimum": 0, "maximum": 300 }
    },
    {
      "name": "weightKg",
      "label": "Weight [kg]",
      "type": "number",
      "required": false,
      "sourceRef": "Section III. Applicant's Personal Information — Weight [kg]",
      "validation": { "minimum": 0, "maximum": 500 }
    },
    {
      "name": "professionOrOccupation",
      "label": "Profession/Occupation",
      "type": "string",
      "required": false,
      "sourceRef": "Section III. Applicant's Personal Information — Profession/Occupation",
      "validation": { "maxLength": 150 }
    },
    {
      "name": "taxpayerIdentificationNumber",
      "label": "Taxpayer Identification Number (TIN)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section III. Applicant's Personal Information — Taxpayer Identification Number (TIN)",
      "validation": { "maxLength": 20 }
    },
    {
      "name": "contactLandlinePh",
      "label": "Landline",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section III. Applicant's Personal Information — Contact Number(s) in the Philippines / Landline",
      "validation": { "maxLength": 30 }
    },
    {
      "name": "contactMobilePh",
      "label": "Mobile",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section III. Applicant's Personal Information — Contact Number(s) in the Philippines / Mobile",
      "validation": { "maxLength": 30 }
    },
    {
      "name": "email",
      "label": "E-mail Address",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section III. Applicant's Personal Information — E-mail Address",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "phAddressLine",
      "label": "Residential Address in the Philippines",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "House/Unit No., Street, Subdivision/Village, Barangay.",
      "sourceRef": "Section III. Applicant's Personal Information — Residential Address in the Philippines / House/Unit No., Street, Subdivision/Village, Barangay",
      "validation": { "maxLength": 250 }
    },
    {
      "name": "phBarangay",
      "label": "Barangay",
      "type": "string",
      "required": false,
      "sourceRef": "Section III. Applicant's Personal Information — Residential Address in the Philippines / Barangay",
      "validation": { "maxLength": 100 }
    },
    {
      "name": "phMunicipalityCity",
      "label": "Municipality/City",
      "type": "string",
      "required": true,
      "sourceRef": "Section III. Applicant's Personal Information — Residential Address in the Philippines / Municipality/City",
      "validation": { "maxLength": 100 }
    },
    {
      "name": "phProvinceZip",
      "label": "Province, Zip Code",
      "type": "string",
      "required": true,
      "sourceRef": "Section III. Applicant's Personal Information — Residential Address in the Philippines / Province, Zip Code",
      "validation": { "maxLength": 100 }
    },
    {
      "name": "abroadAddressLine",
      "label": "Residential Address Abroad",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "House/Unit No., Street.",
      "sourceRef": "Section III. Applicant's Personal Information — Residential Address Abroad / House/Unit No., Street",
      "validation": { "maxLength": 250 }
    },
    {
      "name": "abroadSubdivisionVillage",
      "label": "Subdivision/Village",
      "type": "string",
      "required": false,
      "sourceRef": "Section III. Applicant's Personal Information — Residential Address Abroad / Subdivision/Village",
      "validation": { "maxLength": 150 }
    },
    {
      "name": "abroadCityState",
      "label": "City, State",
      "type": "string",
      "required": false,
      "sourceRef": "Section III. Applicant's Personal Information — Residential Address Abroad / City, State",
      "validation": { "maxLength": 150 }
    },
    {
      "name": "abroadCountryZip",
      "label": "Country, Zip Code",
      "type": "string",
      "required": false,
      "sourceRef": "Section III. Applicant's Personal Information — Residential Address Abroad / Country, Zip Code",
      "validation": { "maxLength": 150 }
    },
    {
      "name": "spouseName",
      "label": "Name of Spouse",
      "type": "string",
      "required": false,
      "requiredWhen": { "field": "civilStatus", "equals": "married" },
      "classification": "pii",
      "description": "Last Name, First/Given Name, Middle Name.",
      "sourceRef": "Section III. Applicant's Personal Information — Name of Spouse [Last Name, First/Given Name, Middle Name]",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "spouseOtherNameOrAlias",
      "label": "Other Name(s)/Alias(es)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "The source form provides two numbered rows for the spouse's other names/aliases; only the first is modeled here (GSP-0009 — see VERIFICATION.md).",
      "sourceRef": "Section III. Applicant's Personal Information — Other Name(s)/Alias(es) (spouse), row 1",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "childFullName",
      "label": "Name(s) of Child(ren)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Last Name, First/Given Name, Middle Name. The source form provides two numbered rows and instructs applicants with more than two children to use a separate Consolidated General Application Form for Information on Applicant's Child(ren); only the first row is modeled here (GSP-0009 — see VERIFICATION.md).",
      "sourceRef": "Section III. Applicant's Personal Information — Name(s) of Child(ren) and Date(s) of Birth, row 1",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "childDateOfBirth",
      "label": "Date of Birth",
      "type": "date",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section III. Applicant's Personal Information — Name(s) of Child(ren) and Date(s) of Birth, row 1 / Date of Birth"
    },
    {
      "name": "characterReferenceName",
      "label": "Character References in the Philippines",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Last Name, First/Given Name, Middle Name.",
      "sourceRef": "Character References in the Philippines — Last Name, First/Given Name, Middle Name",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "characterReferenceAddressLine",
      "label": "Residential Address in the Philippines",
      "type": "string",
      "required": false,
      "description": "House/Unit No., Street, Subdivision/Village, Barangay.",
      "sourceRef": "Character References in the Philippines — Residential Address in the Philippines / House/Unit No., Street, Subdivision/Village, Barangay",
      "validation": { "maxLength": 250 }
    },
    {
      "name": "characterReferenceMunicipalityCity",
      "label": "Municipality/City",
      "type": "string",
      "required": false,
      "sourceRef": "Character References in the Philippines — Municipality/City",
      "validation": { "maxLength": 100 }
    },
    {
      "name": "characterReferenceProvinceZip",
      "label": "Province, Zip Code",
      "type": "string",
      "required": false,
      "sourceRef": "Character References in the Philippines — Province, Zip Code",
      "validation": { "maxLength": 100 }
    },
    {
      "name": "characterReferenceContactLandline",
      "label": "Landline",
      "type": "string",
      "required": false,
      "sourceRef": "Character References in the Philippines — Contact Number(s) in the Philippines / Landline",
      "validation": { "maxLength": 30 }
    },
    {
      "name": "characterReferenceContactMobile",
      "label": "Mobile",
      "type": "string",
      "required": false,
      "sourceRef": "Character References in the Philippines — Contact Number(s) in the Philippines / Mobile",
      "validation": { "maxLength": 30 }
    },
    {
      "name": "characterReferenceEmail",
      "label": "E-mail Address",
      "type": "string",
      "required": false,
      "sourceRef": "Character References in the Philippines — E-mail Address",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "petitionerSpouseName",
      "label": "Spouse Name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Last Name, First Name, Middle Name. Modeled when the petitioner is the applicant's Filipino/resident spouse rather than a company; see VERIFICATION.md.",
      "sourceRef": "Section IV. Petitioner's Information — Spouse Name [Last Name, First Name, Middle Name]",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "petitionerCompanyName",
      "label": "Company Name",
      "type": "string",
      "required": false,
      "sourceRef": "Section IV. Petitioner's Information — Company Name",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "petitionerCompanyRegistrationNumber",
      "label": "Registration Number",
      "type": "string",
      "required": false,
      "sourceRef": "Section IV. Petitioner's Information — Registration Number",
      "validation": { "maxLength": 50 }
    },
    {
      "name": "petitionerNatureOfInstitution",
      "label": "Nature of Institution",
      "type": "enum",
      "required": false,
      "sourceRef": "Section IV. Petitioner's Information — Nature of Institution (Commercial / Religious / Others checkboxes)",
      "validation": { "enum": ["commercial", "religious", "other"] }
    },
    {
      "name": "petitionerNatureOfInstitutionOtherSpecify",
      "label": "Others [Please specify]",
      "type": "string",
      "required": false,
      "requiredWhen": { "field": "petitionerNatureOfInstitution", "equals": "other" },
      "sourceRef": "Section IV. Petitioner's Information — Nature of Institution / Others [Please specify]",
      "validation": { "maxLength": 150 }
    },
    {
      "name": "petitionerRegisteredAddressLine",
      "label": "Registered Address in the Philippines",
      "type": "string",
      "required": false,
      "description": "House/Unit No., Street, Subdivision/Village, Barangay.",
      "sourceRef": "Section IV. Petitioner's Information — Registered Address in the Philippines / House/Unit No., Street, Subdivision/Village, Barangay",
      "validation": { "maxLength": 250 }
    },
    {
      "name": "petitionerRegisteredProvinceZip",
      "label": "Province, Zip Code",
      "type": "string",
      "required": false,
      "sourceRef": "Section IV. Petitioner's Information — Registered Address in the Philippines / Province, Zip Code",
      "validation": { "maxLength": 100 }
    },
    {
      "name": "petitionerCompanyContactLandline",
      "label": "Landline",
      "type": "string",
      "required": false,
      "sourceRef": "Section IV. Petitioner's Information — Registered Address in the Philippines / Contact Number(s) in the Philippines / Landline",
      "validation": { "maxLength": 30 }
    },
    {
      "name": "petitionerCompanyContactMobile",
      "label": "Mobile",
      "type": "string",
      "required": false,
      "sourceRef": "Section IV. Petitioner's Information — Registered Address in the Philippines / Contact Number(s) in the Philippines / Mobile",
      "validation": { "maxLength": 30 }
    },
    {
      "name": "petitionerCompanyEmail",
      "label": "E-mail Address",
      "type": "string",
      "required": false,
      "sourceRef": "Section IV. Petitioner's Information — Registered Address in the Philippines / Contact Number(s) in the Philippines / E-mail Address",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "positionInOrganization",
      "label": "Position in the Organization",
      "type": "string",
      "required": false,
      "sourceRef": "Section V. Applicant's Other Information — Position in the Organization",
      "validation": { "maxLength": 150 }
    },
    {
      "name": "expirationOfContract",
      "label": "Expiration of Contract",
      "type": "date",
      "required": false,
      "sourceRef": "Section V. Applicant's Other Information — Expiration of Contract [DD MMM YYYY e.g. 01 JAN 1990]"
    },
    {
      "name": "alienEmploymentPermitNumber",
      "label": "Alien Employment Permit (AEP) Number",
      "type": "string",
      "required": false,
      "sourceRef": "Section V. Applicant's Other Information — Alien Employment Permit (AEP) Number",
      "validation": { "maxLength": 50 }
    },
    {
      "name": "aepExpiryDate",
      "label": "AEP Expiry Date/Valid Until",
      "type": "date",
      "required": false,
      "sourceRef": "Section V. Applicant's Other Information — AEP Expiry Date/Valid Until [DD MMM YYYY e.g. 01 JAN 1990]"
    },
    {
      "name": "actualMonthlyGrossSalaryPhp",
      "label": "Actual Monthly Gross Salary in Philippine Currency",
      "type": "number",
      "required": false,
      "classification": "financial",
      "sourceRef": "Section V. Applicant's Other Information — Actual Monthly Gross Salary in Philippine Currency",
      "validation": { "minimum": 0 }
    },
    {
      "name": "acrNumber",
      "label": "Alien Certificate of Registration (ACR) Number",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section VI. ACR I-Card — Alien Certificate of Registration (ACR) Number",
      "validation": { "maxLength": 30 }
    },
    {
      "name": "acrDateOfIssuance",
      "label": "Date of Issuance",
      "type": "date",
      "required": false,
      "sourceRef": "Section VI. ACR I-Card — Date of Issuance [DD MMM YYYY e.g. 01 JAN 1990]"
    },
    {
      "name": "acrExpiryDate",
      "label": "Expiry Date/Valid Until",
      "type": "date",
      "required": false,
      "sourceRef": "Section VI. ACR I-Card — Expiry Date/Valid Until [DD MMM YYYY e.g. 01 JAN 1990]"
    },
    {
      "name": "certificateOfResidenceNumber",
      "label": "Certificate of Residence Number (CRN)",
      "type": "string",
      "required": false,
      "sourceRef": "Section VI. ACR I-Card — Certificate of Residence Number (CRN)",
      "validation": { "maxLength": 30 }
    },
    {
      "name": "dateSigned",
      "label": "Date",
      "type": "date",
      "required": true,
      "sourceRef": "Certification and Consent — Date [DD MMM YYYY e.g. 01 JAN 1990] (accompanying the Petitioner's/Applicant's signature block)"
    }
  ],
  "crossFieldValidation": [
    {
      "id": "passportExpiryNotBeforeLatestArrival",
      "compare": {
        "field": "passportExpiryDate",
        "operator": "greaterThanOrEqual",
        "compareTo": "dateOfLatestArrival"
      }
    },
    {
      "id": "acrExpiryNotBeforeIssuance",
      "compare": {
        "field": "acrExpiryDate",
        "operator": "greaterThanOrEqual",
        "compareTo": "acrDateOfIssuance"
      }
    }
  ],
  "documents": [
    {
      "id": "applicationCertification",
      "label": "Certification of truthfulness, document authenticity, and no duplicate filing",
      "category": "attestation",
      "required": true,
      "belongsTo": "applicant",
      "statement": "I/We certify that: (1) All the information in the application is truthful, complete and correct; (2) All documents are authentic and were legally obtained from the corresponding government agencies or private entities; (3) I/We understand that my/our application may be summarily denied if: (a) Any statement is false; (b) Any document submitted is falsified; or (c) I/We fail to comply with all the BI requirements without prejudice to whatever action the BI may take; and (4) I/We have not filed this or any similar application before any office of the Bureau.",
      "sourceRef": "CERTIFICATION AND CONSENT (page 2)"
    },
    {
      "id": "dataPrivacyConsent",
      "label": "Consent to collection, use, and sharing of personal data under the Data Privacy Act of 2012",
      "category": "attestation",
      "required": true,
      "belongsTo": "applicant",
      "statement": "I, _____, personally or through my agent/representative _____, voluntarily and freely consent to: (1) The collection and sharing of my personal information only in relation to BI protocols; (2) The collection, use, and transfer, in electronic or other forms, of my personal data, as described in the form by and among, as applicable, the latter's representative, petitioner, and any related entity for the exclusive purpose of filing, processing, and implementing the submitted application/form consistent with provisions of Republic Act 10173 or the Data Privacy Act of 2012 and its Implementing Rules and Regulations (IRR); (3) Data Sharing when it is expressly authorized by law: Provided, that there are adequate safeguards for data privacy and security, and processing which adheres to the principle of transparency, legitimate purpose, and proportionality.",
      "sourceRef": "CERTIFICATION AND CONSENT (page 2)"
    },
    {
      "id": "passportBioPageCopy",
      "label": "Photocopy of passport bio-page of the ACR I-Card holder",
      "category": "identity-document",
      "required": true,
      "belongsTo": "applicant",
      "constraints": { "mediaTypes": ["image/jpeg", "application/pdf"] },
      "sourceRef": "ACR I-CARD WILL ONLY BE RELEASED UPON COMPLIANCE/SUBMISSION OF THE FOLLOWING (page 2), item 1"
    },
    {
      "id": "parentValidId",
      "label": "Valid ID of either parent claiming the ACR I-Card, if applicant is a minor",
      "category": "identity-document",
      "required": false,
      "belongsTo": "other",
      "constraints": { "mediaTypes": ["image/jpeg", "application/pdf"] },
      "sourceRef": "ACR I-CARD WILL ONLY BE RELEASED UPON COMPLIANCE/SUBMISSION OF THE FOLLOWING (page 2), item 2"
    },
    {
      "id": "biAccreditationIdCopy",
      "label": "Photocopy of the BI-Accreditation ID card, if claimed by a travel agent or law firm",
      "category": "identity-document",
      "required": false,
      "belongsTo": "responsible-party",
      "constraints": { "mediaTypes": ["image/jpeg", "application/pdf"] },
      "sourceRef": "ACR I-CARD WILL ONLY BE RELEASED UPON COMPLIANCE/SUBMISSION OF THE FOLLOWING (page 2), item 3"
    },
    {
      "id": "specialPowerOfAttorney",
      "label": "Special Power of Attorney (SPA), if claimed by an authorized representative other than the parent or BI accredited entity",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "responsible-party",
      "constraints": { "mediaTypes": ["application/pdf"] },
      "sourceRef": "ACR I-CARD WILL ONLY BE RELEASED UPON COMPLIANCE/SUBMISSION OF THE FOLLOWING (page 2), item 4"
    }
  ],
  "steps": [
    {
      "id": "application_information",
      "title": "Application Information",
      "fields": ["presentImmigrationStatus", "typeOfApplication", "typeOfVisaOrPermit", "durationAppliedFor", "methodOfApplication", "biAccreditationNumber", "authorizedRepresentativeName", "authorizedRepresentativePosition"],
      "next": "travel_information"
    },
    {
      "id": "travel_information",
      "title": "Applicant's Travel Information",
      "fields": ["passportNumber", "passportPlaceOfIssuance", "dateOfLatestArrival", "passportExpiryDate", "lastDayOfAuthorizedStay"],
      "next": "personal_information"
    },
    {
      "id": "personal_information",
      "title": "Applicant's Personal Information",
      "fields": ["lastName", "firstName", "middleName", "otherNameOrAlias", "dateOfBirth", "sex", "countryOfBirth", "countryOfCitizenship", "civilStatus", "heightCm", "weightKg", "professionOrOccupation", "taxpayerIdentificationNumber", "contactLandlinePh", "contactMobilePh", "email", "phAddressLine", "phBarangay", "phMunicipalityCity", "phProvinceZip", "abroadAddressLine", "abroadSubdivisionVillage", "abroadCityState", "abroadCountryZip", "spouseName", "spouseOtherNameOrAlias", "childFullName", "childDateOfBirth", "characterReferenceName", "characterReferenceAddressLine", "characterReferenceMunicipalityCity", "characterReferenceProvinceZip", "characterReferenceContactLandline", "characterReferenceContactMobile", "characterReferenceEmail"],
      "next": "petitioner_information"
    },
    {
      "id": "petitioner_information",
      "title": "Petitioner's Information",
      "fields": ["petitionerSpouseName", "petitionerCompanyName", "petitionerCompanyRegistrationNumber", "petitionerNatureOfInstitution", "petitionerNatureOfInstitutionOtherSpecify", "petitionerRegisteredAddressLine", "petitionerRegisteredProvinceZip", "petitionerCompanyContactLandline", "petitionerCompanyContactMobile", "petitionerCompanyEmail"],
      "next": "applicant_other_information"
    },
    {
      "id": "applicant_other_information",
      "title": "Applicant's Other Information",
      "fields": ["positionInOrganization", "expirationOfContract", "alienEmploymentPermitNumber", "aepExpiryDate", "actualMonthlyGrossSalaryPhp"],
      "next": "acr_i_card"
    },
    {
      "id": "acr_i_card",
      "title": "ACR I-Card",
      "fields": ["acrNumber", "acrDateOfIssuance", "acrExpiryDate", "certificateOfResidenceNumber"],
      "next": "certification_and_consent"
    },
    {
      "id": "certification_and_consent",
      "title": "Certification and Consent",
      "fields": ["dateSigned"]
    }
  ]
}
