Registry entry
Sweden Application for a Coordination Number — Samordningsnummer, Ansökan (SKV 7540)
Skatteverket's (the Swedish Tax Agency) form SKV 7540, "Samordningsnummer – Ansökan" (Coordination Number — Application), the citizen-facing route by which a person with a connection to Sweden but not registered as a resident (e.g. a foreign worker, student, or property owner) requests a samordningsnummer — a Swedish coordination number, the personnummer-equivalent identifier issued to non-residents so they can interact with Swedish authorities, employers, and banks. This schema models the form's own applicant-facing page 1 in full: the application date, the applicant's own personal data (date of birth, sex, citizenship, name, previous surname, place and country of birth), an optional contact address in Sweden and/or abroad, the applicant's disclosed connection to Sweden (a non-exclusive checkbox group — family, studies, owned/rented housing, other — plus two free-text explanation fields), and a two-column signature block (printed name, phone, email) that the form's own instruction text states must be completed by both custody holders when the application concerns a child under 18. It deliberately does NOT model the form's own second page, printed under the heading "Skatteverkets anteckningar (fylls i av myndigheten)" ("The Tax Agency's notes (completed by the authority)") — a caseworker-only in-person identity-verification checklist (document type, biometric-chip check, machine/UV/ink/RFID checks, facial-comparison status, and the officiating caseworker's own name and service office) — because the form's own printed heading discloses these fields are filled in by Skatteverket staff during the applicant's mandatory in-person identity-check appointment, not by the applicant. Submitting this application requires booking and attending an in-person identity-check appointment at a Skatteverket service office (servicekontor), where the applicant presents a passport, ID card, or other equivalent document (and a residence permit card, if the applicant holds a Swedish residence permit); this schema does not submit the application itself, and the live source (skatteverket.se) is always authoritative. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Kingdom of Sweden or Skatteverket.
Registry entry
se/skatteverket/samordningsnummer-ansokan
Machine access
- Schema document
registry/se/skatteverket/samordningsnummer-ansokan/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/se/skatteverket/samordningsnummer-ansokan/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
30 fields, 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.
Fields
-
applicationDatedate requiredThe date the applicant completes this application, printed directly beneath the form's own "Samordningsnummer / Ansökan" header on page 1 (the applicant-facing page, distinct from the excluded page-2 caseworker section). This is a plain fillable Tx widget, not read-only, consistent with an applicant-entered date rather than a staff-entered one.
-
dateOfBirthdate requiredThe applicant's date of birth. The applicant has no personnummer or samordningsnummer of their own yet — obtaining one is the entire purpose of this form — so date of birth (not a national identity number) is the form's own primary identifying data point.
classification: sensitive-pii -
genderenum requiredThe applicant's sex, a genuine two-option PDF radio-button group (confirmed via radioButton:true in getAnnotations()) printed as "Man" / "Kvinna"; exportValue "0" aligns with the "Man" label and "1" with "Kvinna" by on-page x-coordinate.
enum: man | kvinnaclassification: sensitive-pii -
citizenshipstring requiredThe applicant's citizenship(s).
length: 1–200classification: pii -
firstNamestring requiredThe applicant's given name(s).
length: 1–200classification: pii -
lastNamestring requiredThe applicant's surname.
length: 1–200classification: pii -
previousLastNamestring optionalThe applicant's previous surname, if any (e.g. before marriage or a name change).
length: 0–200classification: pii -
placeOfBirthstring requiredThe applicant's place of birth.
length: 1–200classification: pii -
countryOfBirthstring requiredThe applicant's country of birth.
length: 1–200classification: pii -
careOfAddressSwedenstring optionalA care-of (c/o) line for the applicant's contact address in Sweden, if applicable.
length: 0–200classification: pii -
streetAddressSwedenstring optionalThe street address of the applicant's contact address in Sweden. Left optional field-by-field: see this document's own VERIFICATION.md for why Skatteverket's own stated requirement that an applicant supply at least one contact address (Sweden or abroad) is disclosed here rather than enforced structurally — the form prints no selector field distinguishing which of the two address blocks applies, unlike e.g. Norway's addressType choice.
length: 0–200classification: pii -
apartmentNumberSwedenstring optionalThe apartment number of the applicant's contact address in Sweden, if the building has one.
length: 0–20classification: pii -
postalCodeSwedenstring optionalThe postal code of the applicant's contact address in Sweden.
length: 0–10classification: pii -
postTownSwedenstring optionalThe post town of the applicant's contact address in Sweden.
length: 0–200classification: pii -
addressLine1Abroadstring optionalThe first line of the applicant's contact address outside Sweden. The form's own instruction states this block should be filled in only if a Swedish contact address is missing ("Anges endast om svensk kontaktadress saknas"), and caps each field at 35 characters ("Max 35 tecken per fält").
length: 0–35classification: pii -
addressLine2Abroadstring optionalThe second line of the applicant's contact address outside Sweden, if needed. Optional for the same reason as addressLine1Abroad.
length: 0–35classification: pii -
addressLine3Abroadstring optionalThe third line of the applicant's contact address outside Sweden, if needed. Optional for the same reason as addressLine1Abroad.
length: 0–35classification: pii -
countryAbroadstring optionalThe country of the applicant's contact address outside Sweden. Optional for the same reason as addressLine1Abroad.
length: 0–35classification: pii -
reasonForConnectionFamilyboolean optionalThe applicant's connection to Sweden includes family. One of four independently checkable (non-mutually-exclusive) Btn widgets confirmed via checkBox:true/radioButton:false — an applicant may check more than one, so no exclusivityGroups entry is modelled, unlike this registry's se/polisen travel-document-type precedent for the same class of printed checkbox row.
-
reasonForConnectionStudentboolean optionalThe applicant's connection to Sweden includes being a student. See reasonForConnectionFamily for the non-exclusivity rationale.
-
reasonForConnectionOwnsOrRentsHousingboolean optionalThe applicant's connection to Sweden includes owning or renting housing. See reasonForConnectionFamily for the non-exclusivity rationale.
-
reasonForConnectionOtherboolean optionalThe applicant's connection to Sweden is some other reason not covered by the other three checkboxes. See reasonForConnectionFamily for the non-exclusivity rationale.
-
descriptionOfConnectionToSwedenstring requiredA free-text description of the applicant's connection to Sweden, elaborating on the checkbox(es) selected above. Required per Skatteverket's own info-page guidance ("Du ska lämna information om din anknytning till Sverige").
length: 0–1000classification: pii -
reasonForNeedingCoordinationNumberstring requiredA free-text description of why the applicant needs a coordination number. Required per Skatteverket's own info-page guidance ("...och varför du har ett behov av ett samordningsnummer").
length: 0–1000classification: pii -
signatory1PrintedNamestring requiredThe first (left-column) signatory's own printed/clarified name, alongside their (not separately modelled) handwritten signature. For an adult applicant this is ordinarily the applicant themselves; the form's own instruction states that when the application concerns a child under 18, both custody holders must sign — see signatory2PrintedName.
length: 1–200classification: pii -
signatory1Phonestring requiredThe first (left-column) signatory's telephone number.
length: 0–30classification: pii -
signatory1Emailstring requiredThe first (left-column) signatory's email address.
length: 0–200classification: pii -
signatory2PrintedNamestring optionalA second (right-column) signatory's own printed/clarified name, required in practice only when the application concerns a child under 18 ("Om ansökan gäller ett barn som är under 18 år ska båda vårdnadshavarna skriva under" — both custody holders must sign). The form prints no dedicated selector field indicating whether the applicant is a minor, so — per this registry's established precedent for the identical class of gap (e.g. se/polisen's secondGuardian* fields) — no synthetic gating field is invented and this field is left plainly optional.
length: 0–200classification: pii -
signatory2Phonestring optionalA second (right-column) signatory's telephone number. Optional for the same reason as signatory2PrintedName.
length: 0–30classification: pii -
signatory2Emailstring optionalA second (right-column) signatory's email address. Optional for the same reason as signatory2PrintedName.
length: 0–200classification: pii
Verification record
Why this candidate (GOV-2372, "GovSchema Standard Research")
Sweden stood at 5 of 6 verticals (Business Formation, DMV, Visa, Taxes, Passport published via GOV-2363/PR #387; National ID & Civic Documents was Sweden's sole remaining open, unscreened vertical per that cycle's own disclosure). This session's task named Skatteverket's (the Swedish Tax Agency) form SKV 7540, "Samordningsnummer – Ansökan" (Coordination Number — Application), as a pre-scouted candidate: the personnummer-equivalent identity mechanism for people with a connection to Sweden who are not registered residents (foreign workers, students, property owners, etc.). Every figure the pre-scout supplied was independently re-verified this session rather than trusted at face value — see below.
Source fetch, including a disclosed discrepancy from the pre-scout
- Info page:
https://www.skatteverket.se/privat/etjansterochblanketter/blanketterbroschyrer/blanketter/info/7540.4.339cd9fe17d1714c077642d.html— fetched fresh this session: HTTP 200, 89,606 bytes. - The task's literal direct-PDF URL (
https://www1.skatteverket.se/lcmp2/lc_webapp/secure/PdfServlet.do?formularID=7540&sprak=sv&format=sform) returned HTTP 302 to a login page (login.do) when fetched fresh from this session's sandbox with a plain GET — a genuine discrepancy from the pre-scout's claim of "no login/BankID needed", disclosed here rather than silently reconciled or worked around invisibly. - Correction from GOV-2375's independent review re-derivation: the original hypothesis here — that the info page's embedded GET
<form>'s hiddenformPageURLparameter (the info page's own canonical URL) is what the bare query string omitted, and that replaying it is what makes the fetch succeed — does not hold up under a fresh, cold re-fetch. Replaying the exactformularID=7540&sprak=sv&format=sform&formPageURL=<info page URL>parameter set on a brand-new connection still 302s tologin.do, identically to the bare query string. What actually gates access is a two-request session/WAF cookie handshake: any firstGETtoPdfServlet.do— with or withoutformPageURL— receives aJSESSIONIDplus three F5/BIG-IP-styleTS...cookies (andcw1/ZiAnonymous); a secondGETreusing those cookies then succeeds — HTTP 200,application/pdf— independently of whetherformPageURLis present (confirmed by replaying the plain bare-parameter URL as the second request and getting an identical successful result). This is anti-automation cookie-bootstrapping at the WAF layer, not a missing-parameter servlet-routing quirk as originally described, and still not a genuine BankID/login authentication gate — no credentials are ever exchanged either way. The practical conclusion is unchanged (this form is genuinely fetchable unauthenticated once the session cookies are primed, with a genuine%PDF-1.7header and the same 82 widgets / field structure documented below); only the causal explanation is corrected here. - SHA-256:
8f24e223860b73c9b93fbd3d82321c3448fa55213de4a01c2ef4dc19085352f2 - Byte size: 125,496 bytes — close to but not identical to the pre-scout's ~125,387-byte estimate. Both figures are consistent with the same edition of the same form; the small difference is most likely session/response variance in the servlet's dynamically-assembled response (it embeds Oracle DMS request-tracking metadata) rather than a different document, and does not affect this schema's field mapping. Disclosed rather than silently reconciled to the pre-scout's number.
tools/verify-sources.mjsflags this same bare-parameter URL with a transient-failure warning (not a hard failure) when re-checked without a browser session, for the same underlying reason: the CI-side check makes a single request and does not perform the two-request session-cookie handshake described above (regardless offormPageURL). This is expected and disclosed here so a reviewer does not mistake it for a dead link — the form remains live and fetchable, as demonstrated above.
Extraction technique
pdfjs-dist@3.11.174 (legacy/build/pdf.js, a throwaway /tmp scratch install, not added to this repo's tracked package.json) was used via page.getAnnotations() per page:
- Page 1 (the applicant-facing page): 33 Widget annotations — 24
Txtext fields, 2Btnwidgets forming one genuine 2-option radio group (Kön/sex), and 4 independentBtncheckboxes (krsAlternativ[0-3], the "Vilken anknytning har du till Sverige?" connection-to-Sweden question). - Page 2: 49 Widget annotations, entirely
Tx/Btnfields nested under a form hierarchy rooted atsubSKVAnt/subDok1/subDok2/subOvrigt/subUtfordAv. - Total: 82 widgets (33
Tx+ 49Btn), exactly matching the pre-scout's count, despite the byte-size discrepancy above.
page.getTextContent() was extracted for both pages with per-item x/y coordinates, and independently confirms page 2's own printed heading reads verbatim: "Skatteverkets anteckningar (fylls i av myndigheten)" ("The Tax Agency's notes (completed by the authority)") — establishing, independently of the task brief, that the entire second page is caseworker-only. Every one of page 2's 49 widgets sits under a checklist for an in-person identity-verification appointment: document type (pass / EU-EES ID card / uppehållstillståndskort / annat), whether the document has a biometric chip, automated/MRZ/UV/ink/RFID checks, facial-comparison status, and the officiating caseworker's own name and service office (Utförd av — Förnamn och efternamn, Servicekontor (ort)). None of it is modelled.
Field structure: 33 page-1 widgets → 30 applicant-facing fields
Two collapses account for the 33→30 reduction, both disclosed rather than silently applied:
gender: the twoBtnwidgets forming theKönradio group (radioButton: true, confirmed viagetAnnotations()) collapse into oneenumfield. Coordinate cross-reference (getTextContent()item positions) confirmsbuttonValue "0"sits directly beneath the printed "Man" label and"1"beneath "Kvinna", fixing theenumorder (["man", "kvinna"]).- The two
Underskriftwidgets are excluded, not modelled. Both are genuineTx(text-type) widgets, but both are markedreadOnly: trueingetAnnotations()— i.e. the AcroForm layer itself does not allow digital fill-in for these two boxes, unlike every otherTxwidget on the page. This is a distinct case from this registry's more common "no widget at all for a wet-ink signature line" finding (e.g.dk/cpr,no/skatteetaten,fi/dvv): here a widget exists, but it is structurally non-fillable, so it is excluded fromfields[]for the same underlying reason (no data-entry mechanism), disclosed as a distinct variant of that same convention.
No other page-1 widget required merging or splitting; every remaining widget maps 1:1 to a fields[] entry.
Two disclosed modelling judgment calls
- The Swedish and foreign contact-address blocks are each left fully optional, field-by-field, even though Skatteverket's own info-page prose states a contact address is mandatory: "Du ska också uppge en kontaktadress... Kontaktadressen kan vara i Sverige eller i ett annat land" ("You must also state a contact address... The contact address can be in Sweden or in another country"), and the foreign-address block's own printed instruction — "Anges endast om svensk kontaktadress saknas" ("Specify only if a Swedish contact address is missing") — implies the two blocks are meant as alternatives, not independent options. Unlike Norway's
addressTypestreet/property choice (which has a dedicated 2-optionBtnpair to gate arequiredWhencondition on), this form prints no selector field distinguishing which of the two address blocks the applicant intends to use. Per this registry's established "spec precision over cleverness" convention (seefi/dvv'smaritalStatus,no/skatteetaten's mailing-address exclusivity, and this cycle's own task brief, which explicitly names this as the preferred approach when no printed field exists to key a condition on), no synthetic gating field is invented; the "at least one contact address is required" constraint is disclosed in each address field's owndescriptionand in this schema's top-leveldescription, not enforced structurally. - The non-exclusive "Vilken anknytning har du till Sverige?" checkbox group (family / student / owns-or-rents-housing / other) is modelled as four independent optional booleans with no
exclusivityGroupsentry, since all fourBtnwidgets are confirmed independently checkable (checkBox: true,radioButton: falseon every one, viagetAnnotations()) and the form's own layout permits selecting more than one (e.g. an applicant could plausibly be both a student and a housing owner) — unlike this registry'sse/polisenprecedent's mutually exclusive travel-document-type row, which usesexclusivityGroupsbecause only one of its three options can apply.
documents[]: sourced from the info page, not the PDF's own text layer
This form's PDF has no in-PDF attachment checklist on its applicant-facing page. The identity-verification document requirement is instead stated only on Skatteverket's own SKV 7540 info page (fetched fresh this session): "Vid identitetskontrollen ska du överlämna pass, identitetskort eller annan motsvarande handling. Har du uppehållstillstånd i Sverige ska du även överlämna ditt uppehållstillståndskort." ("At the identity check, you must hand over a passport, ID card, or other equivalent document. If you hold a residence permit in Sweden, you must also hand over your residence permit card.") This yields two documents[] entries:
identityDocument—required: true(always needed for the mandatory in-person identity check).residencePermitCard—required: false, conditional on the applicant holding a Swedish residence permit, a status this form has no field to key arequiredWhengate on — left descriptive, following this registry's established convention for the same class of gap (e.g.fi/dvv'sproofOfWorkOrStudy).
Excluded (not modelled), and why
- The entire page-2 "Skatteverkets anteckningar (fylls i av myndigheten)" section — 49 widgets — per the form's own printed heading, confirmed independently via
getTextContent()(see "Extraction technique" above), consistent with this registry'sdk/cpr,no/skatteetaten, andfi/dvvprecedent for excluding an authority-completed in-person-process section. - The two
Underskrift(signature) widgets — see "Field structure" above: genuineTxwidgets, butreadOnly: true, i.e. non-fillable.
Mock conformance test run
Two valid scenarios and four mutation controls were built under conformance/se/skatteverket/samordningsnummer-ansokan/1.0.0/ and checked with a disposable checker script (/tmp/se-skv-extract/check_conformance.mjs, not committed — same technique used across this registry's other v1.0.0 cycles) that evaluates every field's required/requiredWhen/visibleWhen/ validation (pattern, enum, minLength/maxLength, minimum/ maximum) and every documents[] entry's required/requiredWhen explicitly — not just fields[], per this registry's own documented blind spot (a disposable checker limited to fields[] alone has previously reported a false "0 errors" on a schema with unconditionally-required documents; see conformance-checker-documents-blind-spot precedent):
application-packet-minimal-required-only.json— a single applicant (Indian citizen on a remote-work assignment) with only the required fields and the requiredidentityDocumentfilled. 0 errors.application-packet-full-family-of-two-signatories.json— a minor applicant (Brazilian citizen moving to live with a parent in Stockholm), both connection checkboxes (family + student) ticked, a Swedish contact address filled in full, both signatory columns completed (parent 1 and parent 2, per the form's own "both custody holders must sign for a minor" instruction), and bothdocuments[]entries provided. 0 errors.- Four mutation/negative controls, each derived from the minimal scenario with exactly one defect introduced: All four were correctly and individually flagged with exactly 1 error each, confirming the checker script discriminates rather than trivially passing every input, and that
documents[]requiredness specifically (mutation 2) is genuinely exercised, not just asserted.- removing required
signatory1Phone→missing-required. - dropping the required
identityDocumentfromdocuments[]→missing-required-document. - setting
genderto"other"(violatesvalidation.enum: ["man", "kvinna"]) →enum-violation. - setting
addressLine1Abroadto a 36-character string (violatesvalidation.maxLength: 35) →max-length-violation.
- removing required
Registry validation
node tools/validate.mjs registry/se/skatteverket/samordningsnummer-ansokan/1.0.0/schema.json→ok, 1/1 passednode tools/validate-ajv.mjs registry/se/skatteverket/samordningsnummer-ansokan/1.0.0/schema.json→okagainst the v0.3 meta-schema, 1/1 validatednode tools/validate.mjs(full registry run) → 361/361 documents passed, 3/3mapping.jsoncompanions passednode tools/verify-sources.mjs registry/se/skatteverket/samordningsnummer-ansokan/1.0.0→ "1 directory, 4 URLs checked, 1 warning(s), 0 allowlisted, all clear" — the one warning is the bare-parameterPdfServlet.doURL discussed above (a servlet-routing quirk, not a dead link)tools/govschema-client/registry-index.jsonregenerated vianpm run build-index(361 entries)
Scope and jurisdiction notes
This closes Sweden's National ID & Civic Documents vertical, bringing Sweden to 6 of 6 verticals (Business Formation, DMV, Visa, Taxes, Passport, National ID) — no vertical remains open for Sweden. Per CATALOG.md's own "By Jurisdiction" table, Sweden joins a set of 18 jurisdictions in this registry now at full 6/6 vertical coverage (a mix of jurisdictions from the registry's original launch set and later additions such as Colombia and Denmark) — this is a real milestone for Sweden, not a rare one for the registry as a whole, and this document does not claim otherwise. This schema does not submit the application on the applicant's behalf, and does not replace the mandatory in-person identity-check appointment at a Skatteverket service office; the live source (skatteverket.se) is always authoritative. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Kingdom of Sweden or Skatteverket.
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 Swedish Tax Agency or any government. The authoritative source is always the live government form and its official instructions.