Registry entry
Ireland Register to Vote or Update Electoral Register Details
Register an eligible individual on Ireland's Register of Electors, or update an existing entry's name, address, or nationality, using the data model common to both the online service (checktheregister.ie, or voter.ie for Dublin) and the paper Form ERF1 processed by the applicant's local authority. Models the applicant's identity, PPSN, nationality (which gates the elections/referendums the applicant may vote in), current and previous address, contact details, the declaration, and — only when a PPSN is not provided or the local authority cannot match one — the witness/certification section that confirms identity in person. Pre-registration from age 16 uses the same fields; the applicant is added to the register on turning 18. Does not model the separate PV2/PV4 postal-vote or SV1 special-voters-list forms, or submit the application; the live checktheregister.ie service and the applicant's local authority are always authoritative — see VERIFICATION.md.
Registry entry
ie/electoral-commission/voter-registration
GovSchema spec v0.3
Authoritative source Form ERF1 — Register to vote or update details
Machine access
- Schema document
registry/ie/electoral-commission/voter-registration/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/ie/electoral-commission/voter-registration/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
21 fields across 7 steps, read from the published schema.json — names, types, requiredness, and validation as the document states them. The live government form remains the authoritative source.
Your name and date of birth
-
firstNamestring requiredFirst name
length: 1–100classification: pii -
surnamestring requiredSurname
length: 1–100classification: pii -
previousNamestring optionalComplete only if you were registered before but have since changed your name. Helps the local authority find and update your existing record.
length: 0–100classification: pii -
dateOfBirthdate requiredYYYY-MM-DD. You can complete this form to pre-register from age 16, but you must be 18 to vote — pre-registered applicants are added to the register automatically on their 18th birthday.
classification: sensitive-pii
Nationality
-
nationalitystring requiredYour nationality is needed to confirm which elections you are eligible to vote in: an Irish citizen may vote in all elections and referendums; an EU citizen (of another member state) in European and local elections; a UK citizen in Dáil (general) and local elections; all other nationalities in local elections only.
length: 1–100classification: pii -
previousNationalitystring optionalComplete only if you are updating your nationality (e.g. after naturalisation). Changing nationality may affect which electoral events you can vote in; provide evidence via the previousNationalityEvidence document.
length: 0–100classification: pii
PPSN
-
ppsnstring optional7 digits followed by 1 or 2 letters, e.g. 1234567FA. Providing your PPSN allows a basic check against Department of Social Protection records to help confirm your identity; PPSNs are never published on the register. If you do not provide a PPSN, or your local authority cannot match it, you must complete the witness/certification section (witnessType and related fields) and have this form witnessed.
patternclassification: sensitive-pii
Your address
-
addressLine1string requiredYour address affects where you will vote. To vote, you must be living full time at an address in the State.
length: 1–250classification: pii -
eircodestring optionale.g. D02 AF30. Providing your Eircode helps to accurately identify your address.
patternclassification: pii -
previousAddressstring optionalComplete only if you were registered before but have since changed your address.
length: 0–250classification: pii -
previousEircodestring optionalPrevious address — Eircode
patternclassification: pii
Contact details
-
phoneNumberstring optionalGives your local authority a quick and easy way to contact you about your application if necessary.
length: 0–30classification: pii -
emailstring optionalEmail address
length: 0–254classification: pii
Witnessing or certification (only if no PPSN provided)
-
witnessTypeenum optionalRequired only when ppsn is not provided, or when your local authority requests it because it could not match the PPSN given. Garda station or local authority: the applicant signs in the presence of a Garda Síochána member/civilian staff member, or local authority official, after their photo ID (e.g. passport or driving licence) is checked. Registered medical practitioner: used instead when the applicant cannot attend in person due to illness or disability.
enum: garda_station | local_authority | registered_medical_practitioner -
witnessFullNamestring optionalRequired only when witnessType is set.
length: 0–150classification: pii -
witnessProfessionstring optionalProfession of witness
length: 0–100 -
witnessMedicalCouncilNumberstring optionalMedical Council number (where applicable)
length: 0–30 -
witnessPhoneNumberstring optionalPhone number of witness
length: 0–30 -
witnessDatedate optionalYYYY-MM-DD. Required only when witnessType is set.
Declaration
-
declarationTruthfulCompleteboolean requiredIt is a legal offence under electoral law to knowingly give false or misleading information to a local authority.
-
declarationDatedate requiredYYYY-MM-DD, the date the applicant signs the declaration.
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-04
The document was derived directly from the current Form ERF1 ("Register to vote or update details") PDF, fetched without any bot-block from a local authority mirror (South Dublin County Council, sdcc.ie), together with the Electoral Commission's "How to Register to Vote" Easy-to-Read guide PDF (electoralcommission.ie CDN). Both are genuine, current, publicly-hosted PDFs (not challenge stubs or scanned images) and were extracted in full with pdfjs-dist getTextContent. Direct fetch of checktheregister.ie and electoralcommission.ie itself returned HTTP 403 to this tool's fetcher, so the live online service's own screen-by-screen labels were not independently captured; the Easy-to-Read guide confirms the online service asks for "your name, address, Eircode, PPSN, date of birth, nationality and email address" — the same data model as ERF1 — so sourceRef values cite the paper form, consistent with this registry's precedent on gb/co/register-to-vote (citing the ITR-E paper form on the same basis). Status remains draft, not verified.
Sources examined
- Document
(id, version):ie/electoral-commission/voter-registration/1.0.0 - Spec version: GovSchema
0.3.0 - Authority: An Coimisiún Toghcháin (Electoral Commission), which runs
checktheregister.ie/voter.ieand oversees electoral registration modernisation; local authorities remain the statutory registration authorities that process applications and maintain the Register of Electors. - Primary source: https://www.sdcc.ie/en/services/our-council/elections-and-voting/erf1-electoral-registration-form.pdf — Form ERF1, "Register to vote or update details" (4 pages), linked from South Dublin County Council's own elections page as the standard national ERF1 form (the same form checktheregister.ie/en-IE/forms distributes). Fetched directly with
curl, HTTP 200, a genuine 667,589-byte%PDFbinary. Full page text was extracted viapdfjs-distgetTextContentacross all 4 pages: page 1 (applicant details and declaration), page 2 (witness/certification, completed only if no PPSN), page 3 (guidance: how to register, eligibility-by-nationality table, field-by-field explanation of why each item is asked for), and page 4 (guidance: getting the form witnessed, deadlines, other forms, where to send it). - Secondary source: https://www.electoralcommission.ie/app/uploads/2024/11/ETR_How-to-Register-to-Vote_Accessible.pdf — "How to Register to Vote" Easy-to-Read Guide (13 pages), fetched directly with
curl, HTTP 200, a genuine 1,607,787-byte%PDFbinary. Used to independently corroborate the eligibility-by-election-type rules (general election: Irish or British citizen; presidential election and referendums: Irish citizen only; European Parliament election: EU citizen; local election: any resident), the pre-registration-from-16 rule, the postal-vote (PV2/PV4) and Special Voters' List (SV1) forms (out of scope here — see below), and the online-service field list. - Tertiary source (web-search summary only, not independently fetched):
citizensinformation.ie's "Registering to vote" page andchecktheregister.ie's own FAQ, both of which returned HTTP 403 to this tool's direct fetcher; only their web-search result summaries were available, and no field content was sourced from them beyond corroborating that PPSN/DOB/Eircode are required online — already established by the Easy-to-Read guide. - Retrieved / reviewed: 2026-07-04.
- Reviewer: GovSchema Engineering (Standards Engineer — initial authoring source review).
What was directly observed vs. inferred
| Field(s) | Basis | |---|---| | firstName, surname, previousName, dateOfBirth | Directly observed, ERF1 page 1's own field labels, including "if this applies" framing for previousName. The 16-to-pre-register / 18-to-vote rule is directly observed on page 1 ("You can complete this form from the age of 16 but you must be 18 to vote") and corroborated on page 3 and in the Easy-to-Read guide. | | ppsn | Directly observed, page 1 field plus page 3's explanation of why it's asked and what happens if it's omitted ("you will need to complete page 2 of this form where a witness confirms your identity"). The 7-digit-plus-1-or-2-letter pattern is the standard published Irish PPSN format, not read verbatim off the form (the form does not spell out the format), so the validation.pattern is a reasonable but not form-sourced constraint — flagged for a future reviewer to confirm against an authoritative PPSN format reference. | | nationality, previousNationality | Directly observed, page 1 fields; the four-tier eligibility table (Irish/EU/UK/other → which elections) is transcribed verbatim from page 3 and cross-checked against the Easy-to-Read guide's own election-by-election eligibility statements (both sources agree). previousNationality's evidence requirement (photocopy of passport photo page or naturalisation certificate) is directly observed on page 1. | | addressLine1, eircode, previousAddress, previousEircode | Directly observed, page 1 fields ("Address... Where you live now", "Eircode", "Previous address (if this applies)"). The full-time-residency-in-the-State requirement is directly observed on page 3. The Eircode validation.pattern (3-character routing key + 4-character unique identifier) is the standard published Eircode format, not read verbatim off the form, same caveat as the PPSN pattern above. | | phoneNumber, email | Directly observed, page 1 fields; page 3 explains they are used to contact the applicant if necessary. | | witnessType, witnessFullName, witnessProfession, witnessMedicalCouncilNumber, witnessPhoneNumber, witnessDate | Directly observed, page 2's own field labels and its own tick-box framing ("This form is being witnessed at the applicant's local Garda station. / ...local authority. / ...being certified by a registered medical practitioner"). Page 2's own text states this page is only completed "where the applicant has not provided a PPSN on page 1 or where PPSN details cannot be confirmed by a local authority" — modelled as a description-only condition on ppsn (this registry's established convention for a "required only when a sibling optional field was left blank" condition — the leaf-compare grammar has no explicit field-absence operator; see us/dos/passport-name-change-ds5504's cannotProvideDetailsReason and gb/co/register-to-vote's National Insurance handling for precedent), while witnessFullName/witnessDate/witnessPhotoId are structurally requiredWhen witnessType in [...] since witnessType itself has a fixed enum. | | declarationTruthfulComplete, declarationDate | Directly observed, page 1's declaration text and signature/date fields, including the "legal offence under electoral law" penalty sentence transcribed into the field description. | | documents[].previousNationalityEvidence | Directly observed, page 1 — "If updating your nationality, please write in your previous nationality and include a photocopy of your new passport (photo page) or a copy of your certificate of naturalisation." | | documents[].witnessPhotoId | Directly observed, page 4 — "Bring photographic identification (ID) with you. This ID could be, for example, your passport or driving licence." Scoped to the Garda-station/local-authority witness path only; a registered medical practitioner's certification is based on their own examination, not a photo-ID check, per page 2's own framing. |
Explicitly out of scope for v1.0.0
- Postal voting (Forms PV2, PV4) — a separate application for voters who are ill, have a disability, or are away for work/study reasons, with its own forms and deadlines distinct from ordinary registration.
- Special Voters' List (Form SV1) — a separate application for people in a hospital, nursing home, or mental health facility, or with an illness/disability preventing them from attending a polling station, requiring its own medical certificate on first application.
- Registering with no fixed address, or anonymous registration for safety reasons — both use separate, dedicated forms per ERF1 page 4's own "Other forms" list.
- The Dublin-specific
voter.iefront end. The Easy-to-Read guide notes that Dubliners registering online are routed fromchecktheregister.ietovoter.ie; this schema models the shared underlying data fields, not either front end's screen flow. - Screen-by-screen labels of the live online service (
checktheregister.ie,voter.ie). Both blocked direct fetch (HTTP 403) during this authoring pass; a future cycle could retry from different network egress or via a headless-browser walkthrough (the technique that worked for other Incapsula/bot-blocked targets in this registry, e.g. GOV-1038's NZTA schema) to capture and cross-check the exact online wording.
Test run with mock data
A mock application packet was assembled at conformance/ie/electoral-commission/voter-registration/1.0.0/application-packet.json for an adult applicant registering for the first time and providing a PPSN (so the witness/certification branch does not apply) — fabricated name, PPSN, address, and contact details, not a real person. It was checked with a standalone script re-implementing the schema's own required/requiredWhen/ validation/eligibleValues evaluation (GSP-0013 condition grammar all/any/not/leaf-compare, the same technique used for the last several registration/renewal cycles): 23 field/document entries evaluated, 0 violations. The witness branch was separately exercised by mutating a copy of the packet to clear ppsn and set witnessType: "garda_station" without supplying the newly-required witness fields; the same script correctly flagged 3 violations (witnessFullName, witnessDate, witnessPhotoId document all missing), confirming the requiredWhen conditions fire as intended. No value was submitted to any government system: this is a registration process with no sandbox/test environment, so — consistent with this registry's treatment of other in-person-or-live-service-only transactions — this review did not attempt a live submission.
Scope and jurisdiction notes
This closes a real gap flagged directly in GOV-1043's own instructions ("remaining voter registration"): of this registry's 11 core jurisdictions, Ireland had passport, driving-licence, motor-tax, vehicle-registration-tax, company-incorporation, and tax-return schemas but no voter-registration schema, unlike us/ca/sos/voter-registration, au/aec/voter-enrolment, gb/co/register-to-vote, ca/elections-canada/voter-registration, and in/eci/voter-registration. Germany and the Netherlands were checked and found genuinely not to need an equivalent schema: both auto-populate their electoral rolls from the existing municipal residence register (already modelled by de/bmi/residence-registration and, for NL, the RvIG civil registry), with no separate citizen-initiated registration process. France (inscription sur les listes électorales) appears to be a similar non-automatic gap to Ireland's but was not investigated this cycle — flagged as a candidate for a future research pass.
Review-gate correction (GOV-1045)
Re-running the mock packet through a from-scratch requiredWhen evaluator during review (rather than trusting the author's own evaluator script) surfaced one real conditional-logic defect, fixed prior to merge:
documents[].previousNationalityEvidencewas gated withrequiredWhen: { "field": "previousNationality", "notEquals": "" }. Under a natural leaf-compare evaluation, an absentpreviousNationality(the overwhelming common case — an applicant who is not updating their nationality never submits this optional field at all) isundefined, andundefined !== ""istrue— so the document would misfire as required for essentially every applicant, not just the ones actually updating their nationality. This is the same absent-vs-sentinel-default bug class already recorded againstfr/dgfip/income-tax-return-2042'snotEquals: 0(GOV-763) and still latent, unfixed, insg/ica/identity-card-replacementv1.0.0's identicalreasonForNameChangepattern (flagged separately as follow-up tech debt, out of scope for this PR since it would require a new version on an already-published schema).- Fixed by dropping the
requiredWhen(the leaf-compare grammar has no field-absence operator, so there is no condition that expresses "required only when this optional field was actually filled in" without this misfire) and folding the trigger into the document's ownlabelinstead — the same description-only treatment this schema's ownwitnessTypefield already uses for the symmetricppsn-absence case, so the fix is consistent with the document's own established convention, not a new one. - Re-ran both registry validators (183/183) and the conformance packet through a from-scratch evaluator across three scenarios — PPSN-provided/no previous-nationality (matches the committed mock packet), no-PPSN/witness branch, and previous-nationality-provided — confirming the fix does not regress the witness branch and the document is no longer flagged required when
previousNationalityis simply omitted.
All other sourceRef quotes and the requiredWhen/required shape of every other field and document were spot-checked against Form ERF1 and the Easy-to-Read guide during this review and found accurate; no other defects were found.
Path to a verified claim (next step)
To advance to status: verified, a reviewer applies manual-source-review-v1 (Procedure step 2) field-by-field against the live checktheregister.ie online flow (retrying past its bot-block, e.g. via headless browser), or an authoritative Electoral Commission field-mapping document if one is published, resolves any discrepancy by shipping a new schema version (immutability — VERSIONING §3, practice Procedure step 5), and records the outcome here plus sets status: verified with a current verification.lastVerifiedAt/nextReviewBy.
Re-verification
Per the practice's Cadence, nextReviewBy is set to 2027-01-01 (6 months). Re-check the source on or before that date and on any source.url change.
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 An Coimisiún Toghcháin (Electoral Commission), in conjunction with Ireland's local authorities or any government. The authoritative source is always the live government form and its official instructions.