Registry entry
Netherlands Admission and Residence to Stay with a Family Member (MVV Entry Visa + Residence Permit), Form 9511
Apply for admission and residence in the Netherlands to stay with a family member (the sponsor), via the Immigration and Naturalisation Service's (IND) Form 9511, 'Application for admission and residence 'to stay with a family member' (foreign national)'. This is the family-reunification route to a provisional residence visa (MVV, a Type D national entry visa) and the follow-on ordinary residence permit: a foreign national aged 12 or older, staying outside the Netherlands, applies at a Dutch embassy or consulate in their country of origin or continuous residence to join a sponsor who is married to, in a registered partnership with, or the unmarried partner of the applicant, or is the sponsor's (or the sponsor's spouse's/partner's) minor child. The embassy/consulate registers the application and issues a V-number; the applicant then completes and returns this form, with means of evidence and the civic-integration-examination-abroad and tuberculosis-test declarations, to the IND within three weeks. This document models the form's own field set: the applicant's core identity/travel-document data, the minor-applicant legal-representative branch, the sponsor's situation and (if already resident in the Netherlands) their own identity/residence-status data, the civic integration exam and TB test declarations, the means-of-evidence relationship classifier and its branching document requirements, the post-approval MVV collection details, and signing. The harmonised Schengen short-stay (C-visa) route for the Netherlands is a confirmed dead end for this registry (consular.mfaservices.nl is account-gated); this document is unrelated to that route. It does not model the 'Notification form for family members and relatives' (used after admission to report a change in circumstances), the appendices this form's own means-of-evidence section references by name (e.g. 'Declaration by sponsor (family and relatives)', 'Antecedents certificate', 'Declaration of relationship', 'Questionnaire for residence with partner', 'Certificate of non-impediment', 'Civic integration examination abroad') as separate schema documents, or the Basisregistratie Personen (BRP) municipal-registration step that follows a granted application. It does not submit the application; the live ind.nl source is always authoritative — see VERIFICATION.md.
Registry entry
nl/ind/family-member-admission-and-residence-application
Machine access
- Schema document
registry/nl/ind/family-member-admission-and-residence-application/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/nl/ind/family-member-admission-and-residence-application/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
61 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.
Your personal details
-
vNumberstring requiredAssigned by the embassy/consulate employee when registering the application at the appointment (see the form's own information box, filled in by embassy/consulate staff, which this document does not otherwise model). It is imperative this number is included; without it, the application cannot be processed.
length: 1–30classification: sensitive-pii -
citizenServiceNumberstring optionalThe Burgerservicenummer (BSN) is a unique number for everyone who has dealings with the Dutch government; an applicant with no prior dealings will not yet have one.
length: 0–20classification: sensitive-pii -
surnamestring requiredSurname (as stated in the passport)
length: 1–100classification: pii -
firstNamesstring requiredFirst names (as stated in the passport)
length: 1–100classification: pii -
sexenum requiredSex
enum: male | female -
dateOfBirthdate requiredDate of birth
classification: sensitive-pii -
placeOfBirthstring requiredPlace of birth
length: 1–100classification: pii -
countryOfBirthstring requiredCountry of birth (as stated in the passport)
length: 1–100 -
nationalityAtBirthstring requiredNationality at birth
length: 1–100 -
currentNationalitystring requiredCurrent nationality
length: 1–100 -
civilStatusenum required'unmarried' corresponds to the form's 'unmarried (single or living together)' option.
enum: unmarried | married | registered_partnership | divorced | widowed
Home address, contact details, and travel document
-
homeAddressStreetstring requiredHome address — street and number
length: 1–200classification: pii -
homeAddressPostcodestring requiredHome address — postcode
length: 1–20classification: pii -
homeAddressTownstring requiredHome address — town
length: 1–100classification: pii -
homeAddressCountrystring requiredHome address — country
length: 1–100classification: pii -
telephoneNumberstring requiredTelephone number
length: 1–30classification: pii -
emailstring requiredE-mail
length: 1–200classification: pii -
travelDocumentTypeenum requiredType of travel document
enum: national_passport | diplomatic_passport | service_passport | official_passport | special_passport | other -
otherTravelDocumentDetailsstring optionalOther type of travel document, namely
length: 0–200 -
travelDocumentNumberstring requiredTravel document number
length: 1–30classification: sensitive-pii -
travelDocumentDateOfIssuedate requiredTravel document — date of issue
-
travelDocumentValidUntildate requiredTravel document — valid until
-
travelDocumentIssuedBystring requiredTravel document — issued by
length: 1–200
Legal representative (minor applicants only)
-
applicantIsMinorboolean requiredGates fields 1.16-1.18. The source form has no separate checkbox for this; it is implied by the applicant's date of birth at the time of application, under the heading 'Only if the applicant is under 18 years of age (1.16 to 1.18)'. Modelled as an explicit boolean, the same treatment nl/rvig/passport-application uses for its own applicantIsMinor gate, since GovSchema's requiredWhen grammar has no age-computation operator.
-
legalRepresentativeSurnamestring optionalName of legal representative of the applicant (parent or guardian) — surname
length: 0–100classification: pii -
legalRepresentativeFirstNamesstring optionalName of legal representative of the applicant (parent or guardian) — first names
length: 0–100classification: pii -
legalRepresentativeAddressStreetstring optionalAddress of legal representative — street and number
length: 0–200classification: pii -
legalRepresentativeAddressPostcodestring optionalAddress of legal representative — postcode
length: 0–20classification: pii -
legalRepresentativeAddressTownstring optionalAddress of legal representative — town
length: 0–100classification: pii -
legalRepresentativeAddressCountrystring optionalAddress of legal representative — country
length: 0–100classification: pii -
legalRepresentativeNationalitystring optionalNationality of legal representative
length: 0–100
Situation of your sponsor
-
sponsorAlreadyInNetherlandsboolean requiredtrue routes to Section 3 (sponsor's own identity/residence-status data). false means the sponsor applies for admission and residence at the same time as the applicant, and Section 3 is skipped.
Details of your sponsor in the Netherlands
-
sponsorVNumberstring optionalV-number of your sponsor
length: 0–30classification: sensitive-pii -
sponsorCitizenServiceNumberstring optionalDutch Citizen service number of your sponsor, if applicable
length: 0–20classification: sensitive-pii -
sponsorSurnamestring optionalName of your sponsor (as stated in the passport) — surname
length: 0–100classification: pii -
sponsorFirstNamesstring optionalName of your sponsor (as stated in the passport) — first names
length: 0–100classification: pii -
sponsorSexenum optionalSex of your sponsor
enum: male | female -
sponsorDateOfBirthdate optionalDate of birth of your sponsor
classification: sensitive-pii -
sponsorPlaceOfBirthstring optionalPlace of birth of your sponsor
length: 0–100classification: pii -
sponsorCountryOfBirthstring optionalCountry of birth of your sponsor (as stated in the passport)
length: 0–100 -
sponsorNationalityAtBirthstring optionalNationality at birth of your sponsor
length: 0–100 -
sponsorCurrentNationalitystring optionalCurrent nationality of your sponsor
length: 0–100 -
sponsorCivilStatusenum optionalCivil status of your sponsor
enum: unmarried | married | registered_partnership | divorced | widowed -
sponsorResidenceStatusenum optionalThe source form prints this as a two-level checklist: five top-level checkboxes, one of which ('Residence Permit, namely.') has its own indented sub-choice of four (see sponsorResidencePermitType) — recovered from the PDF's own glyph x-coordinates (top-level boxes at x=218, sub-choice boxes indented to x=254).
enum: dutch_nationality | privileged | residence_permit | waiting_for_residence_permit_decision | none -
sponsorResidencePermitTypeenum optionalSponsor's residence permit, namely
enum: paid_employment | study | asylum | other -
sponsorAddressStreetstring optionalAddress of the sponsor in the Netherlands — street and number
length: 0–200classification: pii -
sponsorAddressPostcodestring optionalAddress of the sponsor in the Netherlands — postcode
length: 0–20classification: pii -
sponsorAddressTownstring optionalAddress of the sponsor in the Netherlands — town
length: 0–100classification: pii -
sponsorTelephoneNumberstring optionalTelephone number of your sponsor
length: 0–30classification: pii -
sponsorEmailstring optionalE-mail of your sponsor
length: 0–200classification: pii
Civic integration examination abroad and TB test declaration
-
civicIntegrationExamStatusenum requiredpassed_exam = has passed all parts and the passed examination is still valid; enclose the results issued by the Education Executive Agency (DUO). exempt = is exempt from the examination; enclose the 'Civic integration examination abroad' appendix and proof of the exemption qualification. wants_exemption = wants to obtain an exemption; enclose the same appendix and the proof required to obtain one.
enum: passed_exam | exempt | wants_exemption -
tbTestDeclarationenum requiredagrees_to_tb_test = declares willingness to cooperate in a TB test and any treatment, and to undergo the test within three months of receiving the residence permit. exempt_nationality = does not need a TB test as a national of a country listed in the form's own exemption appendix.
enum: agrees_to_tb_test | exempt_nationality
Means of evidence
-
relationshipToSponsorenum requiredThe form's Section 7 'Means of evidence' presents these three relationship categories as the applicant's own applicable-situation checklist, each with its own distinct set of required supporting documents — see documents[] entries gated on this field. The bracketed codes in the source ('320-340', '322-342', '326') are internal form/procedure codes, not modelled as data.
enum: spouse_or_registered_partner | unmarried_partner | minor_child -
otherParentRemainsInCountryOfOriginboolean optionalGates the Declaration of Consent from the left-behind parent and a copy of that parent's identity document (see documents[]).
Declaration of consent, MVV, and residence permit collection
-
communicationConsentenum optionalconsent_email = agrees to e-mail communication (via Zivver) using the address given in section 1.13, which the applicant accesses regularly. consent_postal = does not agree; correspondence is sent to the home address given in section 1.11. Only asked when the sponsor does not already live in the Netherlands, per the section's own heading; when the sponsor already resides in the Netherlands, the IND corresponds with the sponsor instead (Section 10).
enum: consent_email | consent_postal -
intendedDepartureDatedate requiredIntended date of departure to the Netherlands
-
residencePermitCollectionLocationenum required's_hertogenbosch' corresponds to the form's "'s-Hertogenbosch (Den Bosch)".
enum: amsterdam | goes | s_hertogenbosch | den_haag | maastricht | zwolle
Signing
-
appendicesCountinteger requiredNumber of appendices/documents in evidence submitted with this form
range: 0–∞ -
signatoryNamestring requiredThe applicant, or (for a minor applicant) the legal representative, per the signing section's own attestation statements.
length: 1–200classification: pii -
signaturePlacestring requiredPlace of signing
length: 1–100 -
signatureDatedate requiredDate of signing
Verification record
This file is the source-review record for this document version, per the manual-source-review-v1 practice.
Current claim
status:draftverification.method:manual-source-review-v1verification.lastVerifiedAt:2026-07-21maturity.level:structural-reference
Why this cycle picked up the Netherlands' family-member visa application
This is the recurring "GovSchema Standard Research" cycle (GOV-4107). The Netherlands stood at 5 of 6 verticals, Visa being the only gap, since the harmonised Schengen short-stay (C-visa) route for NL is a confirmed dead end (consular.mfaservices.nl, account-gated — recorded in this registry's Known Gaps section). The GOV-4092 cycle (2026-07-21) had screened and banked IND Form 9511 as a genuinely open, ready-to-author candidate for this exact gap, alongside Austria's DMV candidate (authored the same day via GOV-4100). This cycle re-confirmed the source is still reachable and authored the schema. This document closes the NL x Visa cell, giving the Netherlands all 6 of its verticals.
Sources examined
- Document
(id, version):nl/ind/family-member-admission-and-residence-application/1.0.0 - Spec version: GovSchema
0.3.0 - Authority: Immigration and Naturalisation Service (Immigratie- en Naturalisatiedienst, IND).
- Primary source (field-by-field, the form itself): https://ind.nl/en/forms/9511.pdf — fetched fresh this cycle (HTTP 200, 397,176 bytes, 10 pages), the IND's own canonical English-language edition of Form 9511 (edition 2025/8), "Application for admission and residence 'to stay with a family member' (foreign national)". A raw byte scan for the
/AcroFormmarker confirmed the PDF carries no AcroForm/XFA fields (a plain printed-form text layer, the same class as several other static PDFs already used in this registry, e.g.at/bmi/driving-licence-application). Text was extracted with the registry's establishedpdfjs-disttechnique, reading each page's text-content items and grouping by y-coordinate into lines. - Structural cross-check via glyph x-coordinates: Section 3.11 ("Residence status of your sponsor") prints what a naive line-by-line read would flatten into one 9-item list. Extracting each item's raw
transform[4](x-position) instead reveals two distinct checkbox columns: a top-level column at x=218 (5 items: Dutch nationality / Privileged / Residence Permit, namely. / Waiting for the application... / None) and an indented sub-choice column at x=254, nested specifically under "Residence Permit, namely." (4 items: Paid employment / Study / Asylum / A residence permit other than as mentioned above). Modelled assponsorResidenceStatus(5-value enum) plus a conditionalsponsorResidencePermitType(4-value enum,requiredWhen sponsorResidenceStatus == "residence_permit"). - Retrieved / reviewed: 2026-07-21.
- Reviewer: GovSchema Engineering (Standards Engineer — initial authoring source review).
What the form's 14 sections map to
- Page 1 header ("To be filled in by the Dutch embassy or consulate": location of embassy/consulate, date, name/initials of the embassy employee) — not modelled. This box is completed by embassy/consulate staff at the registration appointment, not supplied by the applicant; the applicant only receives the resulting V-number back (
vNumber). - Section 1 (applicant identity, civil status, address/contact, travel document) →
vNumberthroughtravelDocumentIssuedBy. - Heading above 1.16-1.18 ("Only if the applicant is under 18 years of age") →
applicantIsMinor(an explicit boolean gate this document introduces, since GovSchema'srequiredWhengrammar has no age-computation operator — the same treatmentnl/rvig/passport-applicationuses for its ownapplicantIsMinorfield) pluslegalRepresentativeSurnamethroughlegalRepresentativeNationality. - Section 2 (does the sponsor already live in the Netherlands?) →
sponsorAlreadyInNetherlands, modelled as asteps[].transitionsbranch point:trueroutes to Section 3,falseskips it (the sponsor applies concurrently). - Section 3 (sponsor's own identity, civil status, residence status, address/contact "in the Netherlands", if applicable) →
sponsorVNumberthroughsponsorEmail, allrequiredWhen sponsorAlreadyInNetherlands == trueexceptsponsorCitizenServiceNumber(itself marked "if applicable" even within this conditional section, so modelledvisibleWhenrather thanrequiredWhen). - Section 4 (identification — passport copies) → the
applicantPassportCopy/sponsorIdentityDocumentCopydocuments[]entries. The Turkey/Dutch-Turkish-nationality footnote's alternative supporting documents (Turkish passport page, Nüfus card, or a Turkish authorities' statement) are a narrow edge case not modelled as separate document entries. - Section 5 (civic integration examination abroad) →
civicIntegrationExamStatusplus thecivicIntegrationExamResults/civicIntegrationExemptionProofdocuments. - Sections 6-7 intro (TB test declaration, two checkboxes) →
tbTestDeclaration. - Section 7 (means of evidence — three relationship-to-sponsor categories, each with its own document checklist) →
relationshipToSponsorplus 13 conditionaldocuments[]entries branching on it (and, within thespouse_or_registered_partnerbranch, further branching oncivilStatusformarriageCertificatevs.registeredPartnershipDeed). The minor-child branch's "if your other parent... remains in the country of origin" clause is modelled as its own gate,otherParentRemainsInCountryOfOrigin, since it determines two further conditional documents (consentFromLeftBehindParent,leftBehindParentIdCopy). Two age-based nuances the source states in prose — the antecedents certificate is only needed for a minor-child applicant aged 12+, and the certificate of non-impediment only for one aged 15+ — are disclosed in each affected document's ownsourceRefbut not separately gated, for the same reasonapplicantIsMinorneeded an explicit boolean: there is no age-computation operator in the currentrequiredWhengrammar to express "applicant's age at signatureDate ≥ N" directly againstdateOfBirth. A strict evaluation of this schema therefore over-requires those two documents for a younger child; the mock-data test run below demonstrates and works around this by supplyingcertificateOfNonImpedimenteven for an under-15 scenario. This is a genuine spec-vocabulary gap, in the same family as GOV-4037's disclosed inability to express a stated multiplication formula incrossFieldValidation— worth flagging to the Founding Engineer as a future age/date-arithmetic operator proposal, not fixed unilaterally here. - Section 8 (payment of fees; bank details, V-number as payment reference) → the
applicationFeePaymentdocument; the fee amount itself is deliberately not encoded as a single authoritative figure (it varies by situation), the same conventionnl/rvig/passport-applicationandde/bmi/passport-applicationuse. - Section 9 (declaration of consent to e-mail communication, "only if your sponsor not already lives in the Netherlands") →
communicationConsent,requiredWhen sponsorAlreadyInNetherlands == false. - Section 10 (what happens next) — informational only, not modelled.
- Section 11 (MVV and residence permit: intended departure date, collection location) →
intendedDepartureDate/residencePermitCollectionLocation(6-option enum: Amsterdam, Goes, 's-Hertogenbosch (Den Bosch), Den Haag, Maastricht, Zwolle). - Section 12 (registering in the Netherlands, BRP/BSN) — informational only, describing a post-approval municipal step outside this form; not modelled.
- Section 13 (signing) →
appendicesCountthroughsignatureDate. - Section 14 (submission instructions/address) — informational only, not modelled.
Mock-data test run
Per the issue's phase-4 instruction to test-run the schema with valid mock data, a one-off Node.js script (not committed to the repo) implementing the same equals/notEquals/in/greaterThan/greaterThanOrEqual/all/any grammar as GSP-0013's Condition type checked every type/required/requiredWhen/validation.enum field constraint, every documents[].requiredWhen, and both crossFieldValidation rules against four scenarios:
`` OK Scenario 1: adult spouse, sponsor in NL on paid-employment permit OK Scenario 2: unmarried partner, sponsor applying concurrently, email consent OK Scenario 3: minor child, legal representative, left-behind parent consent FAIL Negative control: minor applicant, missing legalRepresentativeSurname (expected FAIL) - MISSING required field: legalRepresentativeSurname - MISSING required field: legalRepresentativeFirstNames - MISSING required field: legalRepresentativeAddressStreet - MISSING required field: legalRepresentativeAddressPostcode - MISSING required field: legalRepresentativeAddressTown - MISSING required field: legalRepresentativeAddressCountry - MISSING required field: legalRepresentativeNationality - MISSING required field: otherParentRemainsInCountryOfOrigin - MISSING required field: communicationConsent - MISSING required document: applicantPassportPhoto - MISSING required document: applicantPassportCopy - MISSING required document: civicIntegrationExemptionProof - MISSING required document: sponsorIncomeEvidence - MISSING required document: declarationBySponsorAppendix - MISSING required document: birthCertificateOrFamilialRelationshipEvidence - MISSING required document: parentalAuthorityEvidence - MISSING required document: certificateOfNonImpediment - MISSING required document: applicationFeePayment ``
Scenarios 1-3 together exercise every requiredWhen/visibleWhen branch this document defines: the minor/legal-representative gate, the sponsor-already-in-NL branch (both true with a residence_permit + sponsorResidencePermitType sub-choice, and false with the communicationConsent gate it triggers), all three relationshipToSponsor means-of-evidence branches (including the civilStatus-nested marriage-certificate-vs-partnership-deed choice and the otherParentRemainsInCountryOfOrigin sub-gate), and both civicIntegrationExamStatus paths. The travelDocumentValidAfterIssue crossFieldValidation rule holds in all three; departureDateNotBeforeSignatureDate also holds. The fourth scenario is a negative control confirming the evaluator actually enforces requiredWhen (a minor applicant with no legal-representative data correctly fails on all of that branch's fields and every downstream document it withholds an ID for) rather than trivially passing everything. No defects were found in the schema itself during this pass; the one caveat (certificateOfNonImpediment's age nuance, above) is a disclosed, intentional non-modelled gap, not a bug.
Both registry validators were run against the schema document itself and pass:
``` $ node tools/validate.mjs registry/nl/ind/family-member-admission-and-residence-application/1.0.0/schema.json ok registry/nl/ind/family-member-admission-and-residence-application/1.0.0/schema.json
$ node tools/validate-ajv.mjs registry/nl/ind/family-member-admission-and-residence-application/1.0.0/schema.json ok registry/nl/ind/family-member-admission-and-residence-application/1.0.0/schema.json [v0.3] ```
The full registry (566/566 schema documents, 3/3 mapping.json companions) continues to validate after this addition.
What is NOT modelled (out of scope), and why
- The page-1 "to be filled in by the Dutch embassy or consulate" box — completed by embassy staff, not the applicant (see above).
- The named appendices this form's own means-of-evidence section references (e.g. "Declaration by sponsor (family and relatives)", "Antecedents certificate", "Declaration of relationship", "Questionnaire for residence with partner", "Certificate of non-impediment", "Civic integration examination abroad") — modelled here only as
documents[]entries (attestations/evidence the applicant must obtain and submit), not as their own schema documents with their own field sets. Each is a candidate for a future companion schema. - The "Notification form for family members and relatives" referenced in Section 13's attestation (used post-admission to report a change in circumstances) — a distinct downstream process, out of scope.
- The Basisregistratie Personen (BRP) municipal-registration step (Section 12) that follows a granted application — already the subject of
nl/rvig/passport-application's andnl/rvig/national-identity-card-application's own BRP-adjacent modelling; not re-modelled here. - Two age-based document-requirement nuances (antecedents certificate needs the applicant to be 12+; certificate of non-impediment needs 15+) — disclosed in-line in the affected
sourceReftext but not encoded asrequiredWhengates, since expressing "age at a given date" is outside the currentrequiredWhengrammar. See the Section 7 mapping note above. - Exact fee amounts — vary by situation and change over time; not encoded as a single authoritative figure, consistent with
nl/rvig/passport-applicationandde/bmi/passport-application.
Scope and jurisdiction notes
- This is the Netherlands' first Visa-vertical document, and closes the jurisdiction to 6 of 6 verticals (
nl/rvig/*,nl/rdw/*,nl/kvk/*,nl/belastingdienst/*,nl/denhaag/*already cover Passport/National ID/DMV/Business Formation/Taxes/voter-registration; this document opens a newnl/ind/*authority segment for Visa). iduses theindauthority segment (the IND's own English abbreviation), consistent with this registry's convention of using an authority's own short-form abbreviation as the segment (e.g.nl/rvig,nl/rdw,nl/kvk).- Conditional requiredness/visibility uses
requiredWhen/visibleWhen(GSP-0013), targeting spec v0.3, the same as every other Visa-vertical document in this registry. registry-index.jsonwas regenerated vianpm run build-indexintools/govschema-client/after adding this document.
Re-verification
Per the practice's cadence, nextReviewBy is set to 2027-01-01 (6 months). Because status remains draft and only a single source copy (ind.nl's own canonical hosting) was cross-checked this cycle, a future review should locate and byte-for-byte cross-check an independently hosted mirror (e.g. a specific Dutch mission's own site, following the pattern de/auswaertiges-amt/national-visa-application used against a mission mirror), and should reconsider the age-based document-gating nuance above if a future spec revision adds an age/date-arithmetic Condition operator.
View the raw record (VERIFICATION.md)
Version history
-
1.0.0draftlatestthis pagehas verification recordschema.json
Independent and non-affiliated
GovSchema is an independent, open-source project. This reference is not produced, reviewed, or endorsed by Immigration and Naturalisation Service (Immigratie- en Naturalisatiedienst) or any government. The authoritative source is always the live government form and its official instructions.