National Institute of Standards and Technology (NIST) Special Publication 1500-102, Voter Records Interchange Common Data Format Specification Version 1

March 2020

The following is an excerpt from the SP 1500-102 V1 specification. It contains the specification’s executive summary and class documentation.

The complete publication including JSON and XML schemas is available free of charge from:

https://github.com/usnistgov/VoterRecordsInterchange

Table of Contents

Executive Summary

Voter records are exchanged between an increasing number of entities. Whether it is voter registration offered during an interaction at the motor vehicles administration (MVA), an update to a voter record using an online portal, records exchanged as part of a voter matching database, or requests for absentee ballots, all of these systems need a common data format to effectively communicate.

However, the data exchanged is generally in a non-uniform format. This can cause a number of complications in that each state/territory, or sometimes each individual portal application, may have its own format that must be interpreted and translated on the receiving end. Voter addresses, in particular, are often provided to voter registration (VR) authorities in formats that are difficult to efficiently store in voter registration databases and use in various related applications. The collection of accurate voter registration address information is central to the routing of voter registration requests and subsequently in assigning voters to election districts. Each voter records application being developed must then be aware of each state’s specific formats or design its own format, which complicates development and inhibits the implementation of digital voter record systems.

This specification assists election officials and developers in more easily implementing and supporting the development of online voter registration (OVR) systems by providing them with a uniform common data format for voter records interchange (VRI), that is, the voter registration requests and responses needed for OVR and for voter records maintenance. The languages used in the common data format are XML (eXtensible Markup Language) and JSON (JavaScript Object Notation).

The advantages of using this specification include:

This specification provides background and explanation of how online voter registration typically works, using the data required by the National Voter Registration Act (NVRA) and Federal Post Card Application (FPCA) voter registration forms, including state-specific additions to these forms. It then contains an explanation of a UML (Unified Markup Language) model that was created to detail the data elements required in voter registration requests and responses. The UML model was used to generate XML and JSON schemas, which are both explained and used in various implementation examples.

The intended audience of this specification includes election officials, VR system designers and developers, and others in the election community including the general public. Some background in election administration and registration is useful in understanding the material in this specification.

Enumerations

The AssertionValue Enumeration

Image of AssertionValue

Used in request and response messages.

Enumeration for assertions from a voter or a third party such as a department of motor vehicles (DMV) in response to questions on a registration form, used in the Assertion attribute of VoterClassification.

Name Value
no For a voter’s or third party’s assertion of “no” or “false”.
yes For a voter’s or third party’s assertion of “yes” or “true”.
unknown For a voter’s or third party’s assertion of “unknown”.
other For a voter’s or third party’s assertion of “other”.

The BallotReceiptMethod Enumeration

Image of BallotReceiptMethod

Used in request messages.

Enumeration for methods for delivering a ballot to the voter, used in the BallotReceiptPreference attribute of BallotRequest. The sub-element may be repeated multiple times with different values as applicable, e.g., to specify both mail and online.

Name Value
email For email only.
email-or-online For electronic mail or downloadable from a website (this value is ambiguous, thus the separate values for email and online).
fax For use of a fax.
mail For postal mail.
online For downloadable from a website, e.g., the voter is sent a hypertext link to a ballot.

The ContactMethodType Enumeration

Image of ContactMethodType

Used in request and response messages.

Enumeration for methods for contacting a voter or an election administration office, used in the Type attribute of ContactMethod.

Name Value
email For electronic mail.
phone For use of a phone.
other Used when the type of contact method is not included in this enumeration.

The IdentifierType Enumeration

Image of IdentifierType

Used in request and response messages.

Enumeration for election data-related codes in the ExternalIdentifier class.

Name Value
fips For FIPS codes.
local-level For a code that is specific to a county or other similar locality.
national-level For a code that is used at the national level other than ocd-id.
ocd-id For Open Civic Data identifiers.
state-level For a code that is specific to a state.
other Used when the type of code is not included in this enumeration.

The PhoneCapability Enumeration

Image of PhoneCapability

Used in request and response messages.

Enumeration for telephone capabilities, used in the Capability attribute of PhoneContactMethod.

Name Value
fax For telephones that include facsimile capabilities.
mms For telephones that contain Multimedia Messaging Service (MMS) capabilities.
sms For telephones that contain Short Messaging Service (SMS) capabilities.
voice For telephones that contain voice capabilities.

The ReportingUnitType Enumeration

Image of ReportingUnitType

Used in request and response messages.

Enumeration for the type of geopolitical unit, used in the Type sub-element in the ReportingUnit element.

Name Value
ballot-batch Used for reporting batches of ballots that may cross precinct boundaries.
ballot-style-area Used for ballot style areas generally composed of precincts.
borough Used in CT, NJ, PA, other states, and New York City for boroughs. For AK and LA, see county.
city Used for a city that reports results and/or for the district that encompasses it.
city-council Used for city council districts.
combined-precinct Used for one or more precincts that have been combined for the purposes of reporting. Used for “Ward” if “Ward” is used interchangeably with “CombinedPrecinct”.
congressional Used for U.S. Congressional districts.
county Used for a county and/or for the district that encompasses it. In AK, used for counties that are called boroughs. In LA, used for parishes.
county-council Used for county council districts.
drop-box Used for a dropbox for absentee ballots.
judicial Used for judicial districts.
municipality Used as applicable for various units such as towns, townships, villages that report votes and/or for the district that encompasses it.
polling-place Used for a polling place.
precinct Used also for “Ward” or “District” when these terms are used interchangeably with “Precinct”.
school Used for a school district.
special Used for a special district.
split-precinct Used for splits of precincts.
state Used for a state and/or for the district that encompasses it.
state-house Used for a state house or assembly district.
state-senate Used for a state senate district.
town Used in some New England states as a type of municipality that reports votes and/or for the district that encompasses it.
township Used in some mid-western states as a type of municipality that reports votes and/or for the district that encompasses it.
utility Used for a utility district.
village Used as a type of municipality that reports votes and/or for the district that encompasses it.
vote-center Used for a vote center.
ward Used for combinations or groupings of precincts or other units.
water Used for a water district.
other Used for other types of reporting units not included in this enumeration.

The RequestError Enumeration

Image of RequestError

Used in response messages.

Enumeration for registration-related errors, used in the Error attribute of RegistrationRejection.

Name Value
identity-lookup-failed A lookup on the voter’s identity failed.
incomplete The registration request is incomplete.
ineligible The voter is ineligible to be registered.
invalid-form The registration form specified is invalid.
other Used when the type of error is not included in this enumeration.

The RequestForm Enumeration

Image of RequestForm

Used in request messages.

Enumeration for types of registration forms, used in the RegistrationForm attribute of VoterRecordsRequest.

Name Value
fpca For the Federal Post Card Application form.
nvra For the National Voter Registration Act form.
other Used when the type of form is not included in this enumeration.

The RequestMethod Enumeration

Image of RequestMethod

Used in request messages.

Enumeration for the method used by the voter to register, used in the RequestMethod attribute of VoterRecordsRequest.

Name Value
armed-forces-recruitment-office The voter assisted by an armed forces recruitment office.
motor-vehicle-office The voter via an MVA/DMV.
other-agency-designated-by-state The voter assisted by an unspecified state-designated agency.
public-assistance-office The voter assisted by a public assistance office.
registration-drive-from-advocacy-group-or-political-party The voter via a registration drive.
state-funded-agency-serving-persons-with-disabilities The voter assisted by a state-designated agency serving persons with disabilities.
voter-via-election-registrars-office The voter via an election or registrar’s office.
voter-via-email The voter via email.
voter-via-fax The voter via fax.
voter-via-internet The voter via the Internet, e.g., a website.
voter-via-mail The voter via postal mail.
unknown The method used is unknown.
other Used when the type of method is not included in this enumeration.

The RequestProxyType Enumeration

Image of RequestProxyType

Used in request messages.

Enumeration for the registration proxy, e.g., the MVA/DMV , involved in the voter’s registration request, used in the Type attribute of RegistrationProxy.

Name Value
armed-forces-recruitment-office The voter assisted by an armed forces recruitment office.
motor-vehicle-office The voter via an MVA/DMV.
other-agency-designated-by-state The voter assisted by an unspecified state-designated agency.
public-assistance-office The voter assisted by a public assistance office.
registration-drive-from-advocacy-group-or-political-party The voter via a registration drive.
state-funded-agency-serving-persons-with-disabilities The voter assisted by a state-designated agency serving persons with disabilities.
other Used when the type of source is not included in this enumeration.

The SignatureSource Enumeration

Image of SignatureSource

Used in request and response messages.

Enumeration for source of the voter’s signature, used in the Source sub-element of Signature.

Name Value
dmv For the department of motor vehicles or motor vehicle authority.
local For an unspecified local source.
state For an unspecified state source.
voter The voter has included a signature on the form.
other Used when the source of the signature is not included in this enumeration.

The SignatureType Enumeration

Image of SignatureType

Used in request and response messages.

Enumeration for the type of voter signature, used in the Type sub-element of Signature.

Name Value
dynamic For use with biometrics or other artifacts captured as part of the act of the voter signing the registration form.
electronic For a facsimile of the signature applied to a marking surface, e.g., paper.
other Used when the type of signature is not included in this enumeration.

The SuccessAction Enumeration

Image of SuccessAction

Used in response messages.

Enumeration for a response to a voter records request, indicating that the response to the request is successful and the action that occurred, used in the Action sub-element of RegistrationSuccess. The success action may not necessarily match the requested action.

Name Value
address-updated For indicating that an address was updated.
name-updated For indicating that a name was updated.
registration-cancelled For indicating that a registration was cancelled.
registration-created For indicating that a registration was created.
registration-updated For indicating that a registration was updated.
status-updated For indicating that a registration status was updated.
other Used for other types of success actions not included in this enumeration.

The VoterClassificationType Enumeration

Image of VoterClassificationType

Used in request and response messages.

Enumeration for voter status classifications, used in the Type attribute of VoterClassification. Whether the voter status, e.g., eighteen-on-election-day, is true, false, or unknown depends on the value of the Assertion attribute.

Name Value
activated-national-guard The voter is an activated National Guard member on State orders (FPCA).
active-duty The voter is a member of the Uniformed Services or Merchant Marine on active duty (FPCA).
active-duty-spouse-or-dependent The voter is an eligible spouse or dependent (FPCA).
citizen-abroad-intent-to-return The voter is a US citizen residing outside the US and has intention to return (FPCA).
citizen-abroad-return-uncertain The voter is a US citizen residing outside the US and their return is uncertain (FPCA).
citizen-abroad-never-resided The voter is a US citizen and has never resided in the US (FPCA).
deceased The voter is deceased (NVRA).
declared-incompetent The voter has been declared incompetent (NVRA).
eighteen-on-election-day The voter will be 18 on election day (NVRA).
felon The voter is a felon (NVRA).
permanently-denied The voter has not been permanently denied (NVRA).
protected-voter The voter status is protected (NVRA).
restored-felon The voter is a restored felon (NVRA).
united-states-citizen The voter is a United States citizen (NVRA).
other Used when the type of voter classification is not included in this enumeration.

The VoterHelperType Enumeration

Image of VoterHelperType

Used in request messages.

Enumeration for types of registration helpers, used in the Type attribute of RegistrationHelper.

Name Value
assistant For a registration assistant.
witness For a registration witness.

The VoterIdType Enumeration

Image of VoterIdType

Used in request and response messages.

Enumeration for the type of voter ID, used in the Type attribute of VoterId.

Name Value
drivers-license Used for a driver’s license.
local-voter-registration-id Used for a local voter registration record ID.
ssn Used for a complete Social Security number.
ssn4 Used for the last four digits of a Social Security number.
state-id Used for a state ID that is not a state voter registration ID.
state-voter-registration-id Used for a state’s voter registration record ID.
unspecified-document Used for an unspecified document, not known whether the document contains name, address, or photo ID.
unspecified-document-with-name-and-address Used for a document that contains the voter’s name and address, such as a utility bill.
unspecified-document-with-photo-identification Used for a document that contains a photograph of the voter.
unknown Used for documentation that was not captured.
other Used when the type of ID is not included in this enumeration.

The VoterRequestType Enumeration

Image of VoterRequestType

Used in request messages.

Enumeration for the type of voter records request, used in the Type attribute of VoterRecordsRequest.

Name Value
ballot-request For requesting a ballot, possibly in conjunction with an FPCA registration request.
lookup For a voter registration lookup.
registration For a voter registration request.
other Used when the type of request is not included in this enumeration.

The VoterStatus Enumeration

Image of VoterStatus

Used in response messages. Enumeration for the status of the voter in a Voter Registration Database.

Name Value
active For a voter in active status.
inactive For a voter in inactive status.
other Used when the type of voter status is not included in this enumeration.

Classes

The AdditionalInfo Class

Image of AdditionalInfo

Used in request messages.

Class for specifying information not addressed in this model by other attributes, e.g. state-specific information that does not “fit” in any other attribute. The information will thus be highly specific to the generating application, and consuming applications must “know” the meaning of the information to make use of it. For this reason, use of this class is discouraged as much as is possible.

The StringValue and FileValue attributes are both optional, however exactly one of them must be included.

Attribute Multiplicity Type Attribute Description
FileValue 0..1 File Used if the value is in a file; contains the filename and MIME type
Name 1 String Name of the value.
StringValue 0..1 String Used if the value is a string; contains the string.

The BallotRequest Class

Image of BallotRequest

Used in request messages. An abstract class representing a request for a ballot. Classes for specific types of BallotRequest inherit the attributes and define their own.

Attribute Multiplicity Type Attribute Description
BallotReceiptPreference 0..* BallotReceiptMethod The voter’s preference on how to receive their ballot in order from their most preferred method to least. If omitted, the default method for the form will be used.
MailForwardingAddress 0..1 Address  

The BallotStyle Class

Image of BallotStyle

Used in response messages. For referencing a ballot style defined elsewhere, such as in an Election Management System (EMS).

Attribute Multiplicity Type Attribute Description
ExternalIdentifier 0..* ExternalIdentifier For associating an ID with the ballot style.
ImageUri 0..* anyURI URI for a ballot image.
{Party} 0..* Party For associating one or more parties with the ballot style.

The ContactMethod Class

Image of ContactMethod

Used in request and response messages.

ElectionAdministration optionally includes this class to specify how to contact the election administration.

Voter optionally includes this class to specify the method for contacting a voter regarding the voter’s request. If the voter can be contacted in multiple ways, the application creating the data should order the occurrences of ContactMethod by priority.

The PhoneContactMethod class uses ContactMethod as a base class, and should be used with when the contact method is for a telephone and it is necessary to describe the capabilities of the telephone.

The Capability attribute is provided by the PhoneContactMethod class.

Attribute Multiplicity Type Attribute Description
Type 1 ContactMethodType The contact method type, e.g. email or phone.
OtherType 0..1 String Used when ContactMethodType value is other.
Value 1 String The value of the ContactMethod. This will be the text value of the phone number, email address, or other mechanism. The values must be free of any formatting characters, such as parentheses or dashes for a phone number.

The Election Class

Image of Election

Used in request and response messages. Describes an election event. Only the date of the election is required. Other attributes may be used to describe the election for which a ballot is requested or a voter participated.

Attribute Multiplicity Type Attribute Description
ExternalIdentifier 0..* ExternalIdentifier For associating an ID with the election.
Name 0..1 String For including a name for the election; the name could be the same name as appears on the ballot.
StartDate 1 date The first day of the election.
EndDate 0..1 date For an election that spans multiple days, the last day of the election.

The ElectionAdministration Class

Image of ElectionAdministration

Used in response messages.

ElectionAdministration optionally includes ContactMethod to specify contact information for the election authority.

Attribute Multiplicity Type Attribute Description
{ContactMethod} 0..* ContactMethod For including various contact information.
{Location} 0..1 Location Location of the election authority.
Name 0..1 String Name of the election authority.
Uri 0..* anyURI A URL for the election authority.

The ElectionBasedBallotRequest Class

Image of ElectionBasedBallotRequest

Used in request messages.

Implementation of BallotRequest in which a ballot for a single election event is requested.

Attribute Multiplicity Type Attribute Description
{Election} 1 Election The election for which the ballot is requested.

The Error Class

Image of Error

Used in response messages.

RequestRejection includes this class to describe the errors that caused the rejection.

Attribute Multiplicity Type Attribute Description
OtherError 0..1 String Used when Name value is other.
Name 1 RequestError Used to indicate the type of error.
Ref 0..1 String Reference (e.g. XPath) to the entity that the error applies.

The ExternalIdentifier Class

Image of ExternalIdentifier

Used in request and response messages.

BallotStyle, Election, Party and ReportingUnit optionally include this class for associating a jurisdiction’s codes, i.e., identifiers, with political parties or geopolitical units such as counties, towns, precincts, etc. Multiple occurrences of ExternalIdentifier can be used to associate multiple codes, e.g., if there is a desire to associate multiple codes with an object such as state-specific codes as well as OCD-IDs (Open Civic Data Identifiers).

Attribute Multiplicity Type Attribute Description
Type 1 IdentifierType An identifier type, e.g., FIPS.
OtherType 0..1 String Used when Type value is other.
Value 1 String The identifier used by the jurisdiction.

The File Class

Image of File

Used in request and response messages.

VoterId optionally uses this class for FileValue to specify a filename for voter identification purposes such as for a utility bill. AdditionalInfo also optionally includes FileValue.

File extends the xsd:base64Binary type to add the attributes for filename and (Multi-Purpose Internet Mail Extensions) MIME type, e.g., application/pdf for a file of type PDF.

The Image element uses this class as an base class, thus Image can be used when the type of file is for an image, e.g., image/png.

Attribute Multiplicity Type Attribute Description
Data 1 base64Binary The file content encoded using base64.
FileName 0..1 String The filename.
MimeType 0..1 String The MIME type associated with the file.

The Image Class

Image of Image

Used in request and response messages.

Signature optionally includes this class to indicate that a file contains an image of a voter’s signature. Image uses File as a base class, thus attributes of File can be included in Image.

The LatLng Class

Image of LatLng

Used in response messages.

Location optionally includes this element to specify the latitude and longitude of a voter’s voting location.

Attribute Multiplicity Type Attribute Description
Latitude 1 float Latitude of the location.
Longitude 1 float Longitude of the location.
Source 0..1 String System used to perform the lookup from location name to lat/lng, e.g., the name of a geocoding service.

The Location Class

Image of Location

Used in response messages.

ElectionAdministration and ReportingUnit optionally include this element to specify the address and directions to a voter’s voting location. The LatLng element can be included to specify the latitude and longitude of the voting location.

Attribute Multiplicity Type Attribute Description
Address 0..1 Address Address of the voting location.
Directions 0..1 String Directions to the voting location.
{LatLng} 0..1 LatLng Latitude/longitude of the voting location.

The Name Class

Image of Name

Used in request and response messages.

Voter includes this class for specifying the name of a voter and, optionally, for specifying a previous name of the voter, using PreviousName instead of Name. RequestHelper also includes this class for specifying the name of a request helper.

Multiple occurrences of the MiddleName attribute can be used as needed, e.g., for names with additional middle names or nicknames such as “John Andrew Winston (Jack) Smith”.

All elements are optional, however at least FullName must be included if the other attributes are not.

Attribute Multiplicity Type Attribute Description
FirstName 0..1 String Person’s first (given) name.
FullName 0..1 String Person’s full name.
LastName 0..1 String Person’s last (family) name.
MiddleName 0..* String Person’s middle name.
Prefix 0..1 String A prefix associated with the person, e.g., Mr.
Suffix 0..1 String A suffix associated with the person, e.g., Jr.

The Party Class

Image of Party

Used in request and response messages.

BallotStyle optionally includes this type to specify the associated political party, such as for closed primaries.

Voter optionally includes this type to specify a voter’s political party.

Attribute Multiplicity Type Attribute Description
Abbreviation 0..1 String Short name for the party, e.g., “DEM”.
{ExternalIdentifier} 0..* ExternalIdentifier For associating an ID with the party.
Name 1 String Official full name of the party, e.g., “Republican”.

The PermanentBallotRequest Class

Image of PermanentBallotRequest

Used in request messages.

Subtype of BallotRequest which serves to request ballots for election events that the voter is qualified on a long term basis. Although “permanent”, the request may be subject to renewal or cancellation procedures.

The PhoneContactMethod Class

Image of PhoneContactMethod

Used in request and response messages.

RequestHelper, and RequestProxy use this class to specify a telephone number as well as the capabilities of the telephone, e.g., sms, fax, etc.

PhoneContactMethod is subtype of ContactMethod. Thus, the elements that include ContactMethod could use PhoneContactMethod as applicable.

Attribute Multiplicity Type Attribute Description
Capability 0..* PhoneCapability Specifies the phone’s capabilities, e.g., fax, sms.

The ReportingUnit Class

Image of ReportingUnit

Used in response messages.

RequestSuccess and VoterRecord include this class so as to provide a list of geopolitical geography associated with the voter’s registration, e.g., the voter’s precinct, polling place, districts, etc. VoterParticipation optionally includes this class to specify the polling place used by the voter. The Type attribute uses the ReportingUnitType enumeration to specify the type of geopolitical geography being defined. If the reporting unit type is not listed in enumeration ReportingUnitType, use other and include the reporting unit type (that is not listed in the enumeration) in OtherType.

The IsDistricted boolean is not strictly necessary, as it is possible to identify districts by their Type attribute. However, if the type of district is not listed in the ReportingUnitType enumeration and therefore OtherType is used, then IsDistricted is necessary. The IsDistricted boolean can also be used to signify that a ReportingUnit defined as a jurisdiction, e.g., a county, is also used as a district for, e.g., county-wide contests.

Attribute Multiplicity Type Attribute Description
{ExternalIdentifier} 0..* ExternalIdentifier For associating an ID with the ReportingUnit.
IsDistricted 0..1 Boolean Boolean to indicate that the reporting unit is a district.
{Location} 0..1 Location Location of the district office.
Name 0..1 String Name of the reporting unit.
Type 1 ReportingUnitType Enumerated type of reporting unit, e.g., district, precinct.
OtherType 0..1 String Used when Type value is other.

The RequestAcknowledgement Class

Image of RequestAcknowledgement

Used in response messages. For indicating that the request was received but action on the request is pending.

The RequestHelper Class

Image of RequestHelper

Used in request messages.

VoterRecordsRequest optionally includes this element to specify information about a request helper, i.e., a request assistant or witness involved in a voter’s request.

RequestHelper optionally includes the Name element to specify the registration helper’s name and optionally includes the Signature element if a registration helper’s signature is required.

Attribute Multiplicity Type Attribute Description
Address 0..1 Address Address of the request helper.
{Name} 0..1 Name To specify the name of the helper.
Phone 0..1 PhoneContactMethod Request helper’s phone number.
{Signature} 0..1 Signature To specify the signature of the helper.
Type 1 VoterHelperType To specify the type of helper, e.g., assistant.

The RequestProxy Class

Image of RequestProxy

Used in request messages.

VoterRecordsRequest optionally includes this class to specify information about a request proxy involved in a voter records request.

OriginTransactionId can be used to include an optional identifier of the originating external transaction from the proxy, e.g., used for the transaction ID generated by a DMV application enacting a voter registration request to a registration portal application (on behalf of a citizen obtaining a driver’s license). This sub-element is not to be confused with TransactionId in VoterRecordsRequest, which is used to include a transaction ID of the voter records request, e.g., the transaction ID of the registration portal’s voter records request.

Attribute Multiplicity Type Attribute Description
Address 0..1 Address An address associated with the proxy.
Name 0..1 String A name associated with the proxy.
OriginTransactionId 0..1 String An identifier associated with the transaction between the proxy and, e.g., the registration portal.
Phone 0..1 PhoneContactMethod A phone number associated with the proxy.
TimeStamp 0..1 date The date of the request from the proxy.
Type 1 RequestProxyType The type of the requesting proxy, e.g., motor-vehicle-office, public-assistance-office.
OtherType 0..1 String Used when OtherType value is other.

The RequestRejection Class

Image of RequestRejection

Used in response messages.

For indicating that the request failed. The Error attribute is used to indicate the type of error that occurred. The AdditionalDetails attribute can be used to provide more information as to the rejection.

Attribute Multiplicity Type Attribute Description
AdditionalDetails 0..* String Used to provide additional details as applicable.
{Error} 0..* Error For associating a RequestRejection with one or more Error.

The RequestSuccess Class

Image of RequestSuccess

Used in response messages.

For indicating a successful response to a request. The Action attribute is used to indicate the action that occurred, which may differ from what was requested. For example, a request for a new voter registration may succeed, but if the voter was already registered, the response may indicate a registration update as opposed to a registration create.

The response also includes, optionally, other information useful to the voter, including a description of the voter’s polling place, districts (i.e., contests) associated with the polling place, or other geopolitical geographies such as the voter’s precinct.

Attribute Multiplicity Type Attribute Description
Action 0..* SuccessAction Used to indicate the action that occurred.
{District} 0..* ReportingUnit One or more districts associated with the voter’s precinct.
EffectiveDate 0..1 date The effective date of the action.
{ElectionAdministration} 0..1 ElectionAdministration The election administration that conducts elections for the voter.
{Locality} 0..* ReportingUnit Other geographies such as the voter’s precinct.
{PollingPlace} 0..1 ReportingUnit The voter’s polling place.

The Signature Class

Image of Signature

Used in request and response messages.

Voter optionally includes this class for specifying information about a voter’s signature on a registration request. If there is a need to include previous signature that uses a different name, e.g., a maiden name, Voter uses PreviousSignature instead of Signature.

RequestHelper optionally includes this class for specifying information about the helper’s signature.

Source is used to specify the source of the voter’s signature, for example, on file at a department of motor vehicles. FileValue is used to include an image of the voter’s signature.

Attribute Multiplicity Type Attribute Description
Date 0..1 date The date of the signature, i.e., when created.
FileValue 0..1 Image The signature image in base 64 binary.
Source 0..1 SignatureSource A source for the signature, e.g., dmv.
OtherSource 0..1 String Used when Source value is other.
Type 0..1 SignatureType A signature type, e.g., dynamic.
OtherType 0..1 String Used when Type value is other.

The TemporalBallotRequest Class

Image of TemporalBallotRequest

Used in request messages.

Subtype of BallotRequest in which election opportunities that the voter is qualified during a given time frame may be requested.

Attribute Multiplicity Type Attribute Description
StartDate 1 date The date at which the request comes into effect.
EndDate 1 date The date at which the request is no longer effective.

The Voter Class

Image of Voter

Used in request and response messages. Contains attributes specific to identifying a voter.

Attribute Multiplicity Type Attribute Description
{ContactMethod} 0..* ContactMethod How to contact the voter, listed in order of preference.
DateOfBirth 0..1 date The voter’s data of birth in YYYY-MM-DD format.
Ethnicity 0..1 String The voter’s ethnicity.
Gender 0..1 String Older systems may not understand values other than ‘Male’ or ‘Female’ (the only choices available on FPCA).
MailingAddress 0..1 Address Where the voter receives postal mail, mapped to the FGDC specification Address classes.
{Name} 1 Name Voter’s name.
{Party} 0..1 Party Voter’s political party.
{PreviousName} 0..1 Name A voter’s previous name.
PreviousResidenceAddress 0..1 Address Where the voter was previously registered, mapped to the FGDC specification Address classes.
{PreviousSignature} 0..1 Signature Information about a previous voter signature on the registration form.
ResidenceAddress 1 Address Where the voter is registered or requests to be registered, mapped to the FGDC specification Address classes.
ResidenceAddressIsMailingAddress 0..1 Boolean If set to true, MailingAddress need not be included.
{Signature} 0..1 Signature Information about the voter signature on the registration form.
{VoterClassification} 0..* VoterClassification How the voter is classified per assertions the voter has made on a registration form.
{VoterId} 0..* VoterId Information to provide voter identity.

The VoterClassification Class

Image of VoterClassification

Used in request and response messages.

Voter optionally includes this class to describe a voter’s classification per criteria on the voter’s request form, e.g., united-states-citizen or eighteen-on-election-day.

VoterClassification includes assertions of the voter in response to the voter request form criteria. For example, an assertion of true may be used with a criterion of united-states-citizen. Assertions can be negative, such as providing an assertion of false for a criterion of felon, an assertion of unknown to indicate that the voter does not know whether they meet or do not meet the specific criteria on the form or an assertion of other, in which the assertion is specified by the value of OtherAssertion.

Attribute Multiplicity Type Attribute Description
Assertion 1 AssertionValue A positive, negative, other or unknown assertion
OtherAssertion 0..1 String An locally defined assertion value.
Type 1 VoterClassificationType A classification type, e.g., felon.
OtherType 0..1 String Used when Type value is other.

The VoterId Class

Image of VoterId

Used in request and response messages.

Used to include information about a voter’s identification that may be required in a registration request. Voter includes VoterId.

AttestNoSuchId is used to attest that the voter has no ID of a specified type, thus it must be included with a value of true if attesting that the voter has no ID for that specified type. It can be included with a value of false to attest that the voter does have an ID of the specified type, in which case either StringValue or FileValue must be included; however, it is assumed to be false if not included. The StringValue and FileValue sub-elements are both optional, however at least one of them must be included.

Attribute Multiplicity Type Attribute Description
AttestNoSuchId 0..1 Boolean Used to attest that the voter has no ID. Assumed to be false if not present.
DateOfIssuance 0..1 date Date the ID was issued.
FileValue 0..1 File Used to include a file name for the ID.
StringValue 0..1 String Used to include the ID as a string.
Type 1 VoterIdType The type of voter ID.
OtherType 0..1 String Used when Type value is other.

The VoterParticipation Class

Image of VoterParticipation

Used in response messages. For indicating an election that the voter participated in. Participation does not imply a counted ballot.

Attribute Multiplicity Type Attribute Description
{BallotStyle} 0..1 BallotStyle For associating the voter participation to a specific ballot style, such to a partisan ballot in a closed primary.
{Election} 1 Election For associating the voter participation to a specific election event.
{PollingLocation} 0..1 ReportingUnit The polling place used by the voter.

The VoterRecord Class

Image of VoterRecord

Used in response messages. Used to represent a voter record stored in a Voter Registration Database (VRDB). VoterRecord optionally contains additional information useful to the voter, including a description of the voter’s polling place, districts associated with the voter’s precinct, or other geopolitical geographies such as the voter’s precinct.

Attribute Multiplicity Type Attribute Description
{District} 0..* ReportingUnit One or more districts associated with the voter’s precinct.
{ElectionAdministration} 0..1 ElectionAdministration The election administration that conducts elections for the voter.
HavaIdRequired 0..1 Boolean Indicates that the voter must present identification at the polls per HAVA.
{Locality} 0..* ReportingUnit Other geographies such as the voter’s precinct.
{PollingLocation} 0..1 ReportingUnit The voter’s polling place.
{Voter} 1 Voter For details specific to a particular voter.
{VoterParticipation} 0..* VoterParticipation For associating a VoterRecord to elections the voter has participated in.
VoterStatus 0..1 VoterStatus The status of the VoterRecord, possibly to indicate the ability to receive a regular ballot.
OtherVoterStatus 0..1 String Used when VoterStatus value is other.

The VoterRecordResults Class

Image of VoterRecordResults

Used in response messages.

For indicating a successful response to a lookup request.

A lookup for a single voter may result in multiple VoterRecord being returned. This can occur if the voter has duplicate records in the VRDB, or if the criteria specified in the lookup request was broad.

Attribute Multiplicity Type Attribute Description
{VoterRecord} 0..* VoterRecord The voter record(s) returned.

The VoterRecordsRequest Class

Image of VoterRecordsRequest

The root element for request messages.

For defining items pertaining to the status and type of the voter records request and when it was generated. VoterRecordsRequest includes the Subject association to specify various information about the voter in question. It includes the BallotRequest association to handle a request for an ballot; this request may be part of an FPCA form registration or may be submitted independently.

Attribute Multiplicity Type Attribute Description
{AdditionalInfo} 0..* AdditionalInfo For including other information not specified by this model.
{BallotRequest} 0..1 BallotRequest Specifies information relating to a request for a ballot.
Form 0..1 RequestForm If the request is for a voter registration, the registration form used by the voter.
OtherForm 0..1 String Used when Form value is other.
GeneratedDate 1 date The date that the voter records request was generated.
Issuer 0..1 String The name of the issuer of the voter records request transaction, e.g., State of West Virginia Voter Registration Portal.
{RequestHelper} 0..* RequestHelper Included if the registration involves a registration assistant organization.
RequestMethod 1 RequestMethod The method used by the voter to register.
OtherRequestMethod 0..1 String Used when RequestMethod value is other.
{RequestProxy} 0..1 RequestProxy Included if the registration request is via a proxy, e.g., the DMV.
SelectedLanguage 0..1 language The language specified by the voter, if any.
{Subject} 1 Voter Specifies information about the voter who is the subject of the request.
TransactionId 0..1 String An identifier of the voter records request transaction.
Type 1..* VoterRequestType The type of request, e.g., registration.
OtherType 0..1 String Used when RequestType value is other.
VendorApplicationId 0..1 String An identifier of the vendor application generating the voter registration request, e.g., X-VRDB Version 3.1.a.

The VoterRecordsResponse Class

Image of VoterRecordsResponse

The root element for response messages.  

 

For defining items pertaining to the status of a response to a voter records request. VoterRecordsResponse is an abstract class with four subtypes that get used according to the type of response:

VoterRecordsResponse optionally includes the TransactionId attribute associated with the voter records request.  

Attribute Multiplicity Type Attribute Description
TransactionId 0..1 String Transaction ID associated with the voter records request.