Receive Completed I-9 Data
Once an employee’s Form I-9 is completed (both Section 1 and Section 2 are complete), Symmetry returns all completed Form I-9 metadata and PDF data as JSON to the postback URL configured for the relevant employer. Additionally, completed Form I-9 data can be retrieved at any time using the I-9 submission endpoint for the appropriate submission. Completed I-9 data includes a full audit log of metadata associated with the I-9 as well as a Base64 encoded PDF for storage in your platform.
Retrieve I-9 Submission
To retrieve a completed I-9, make a GET request to the /employers/{employerId}/employees/{employeeId}/submissions/{submissionId}
endpoint.
Sample Request
curl --location 'https://api.symmetry.com/i9/v1/employers/01971d41-b29d-75cf-a308-15ca267af31c/employees/01972151-86d6-7447-aa2a-123456/submissions/118' \
--header 'Authorization: Bearer ••••••'
Path Parameters
Element | Type | Description |
---|---|---|
employerId | string | Required. The unique identifier of the employer. |
employeeId | string | Required. The unique identifier of the employee who completed the I-9. |
submissionId | string | Required. The unique identifier of the employee's I-9 submission. Retrieved from the /employers/{employerId}/employees/{employeeId}/submissions endpoint. |
Response
A successful request returns a JSON response with I-9 details, including document verification results, audit log, and the completed PDF encoded in Base64.
{
"submission": {
"id": 23,
"documentName": "Form I-9",
"documentFileName": "Form I-9.pdf",
"verificationDocuments": [
{
"listKey": "A",
"listIndex": 0,
"documentationKey": "us_passport",
"documentTitle": "U.S. Passport",
"documentNumber": "123456789",
"issuingAuthority": "U.S. Department of State",
"expirationDate": "10/01/2025",
"receipt": false,
"fileFrontContentType": "image/jpeg",
"fileFrontFilename": "U.S. Passport.jpeg"
}
],
"countersigned": true,
"countersignable": true,
"status": "accepted",
"statusChangedBy": "AuthRep test (Authorized Representative)",
"statusChangedAt": "2025-07-30T15:12:31Z",
"submittedAt": "2025-07-30T15:03:48Z",
"auditLogs": [
{
"eventName": "employee_submission_created",
"details": {},
"request": {
"url": "https://symmetry-demo.workbright.com/i9_submission",
"referrer": "https://symmetry-demo.workbright.com/forms/i9/submission/new",
"remoteIp": "2600:4040:2970:6400:cd33:eda6:5512:cdad",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
"serverName": "symmetry-demo.workbright.com"
},
"actorId": 74,
"actorType": "EMPLOYEE",
"serverTimestamp": "2025-07-30T11:03:48-04:00"
},
{
"eventName": "employee_submit_location",
"details": {
"action": "event",
"controller": "i9/remote_countersign"
},
"request": {
"url": "https://symmetry-demo.workbright.com/rc/81ee14bd-fa84-44e0-98b0-9273897c77d3/event",
"referrer": "https://symmetry-demo.workbright.com/i9_remote_countersign",
"remoteIp": "2600:4040:2970:6400:cd33:eda6:5512:cdad",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
"serverName": "symmetry-demo.workbright.com"
},
"serverTimestamp": "2025-07-30T11:11:21-04:00"
},
{
"eventName": "employee_submit_auth_rep_phone",
"details": {
"action": "event",
"controller": "i9/remote_countersign"
},
"request": {
"url": "https://symmetry-demo.workbright.com/rc/81ee14bd-fa84-44e0-98b0-9273897c77d3/event",
"referrer": "https://symmetry-demo.workbright.com/i9_remote_countersign",
"remoteIp": "2600:4040:2970:6400:cd33:eda6:5512:cdad",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
"serverName": "symmetry-demo.workbright.com"
},
"serverTimestamp": "2025-07-30T11:11:27-04:00"
},
{
"eventName": "authorized_representative_submit_location",
"details": {
"action": "event",
"controller": "i9/remote_countersign"
},
"request": {
"url": "https://symmetry-demo.workbright.com/rc/81ee14bd-fa84-44e0-98b0-9273897c77d3/event",
"referrer": "https://symmetry-demo.workbright.com/rc/81ee14bd-fa84-44e0-98b0-9273897c77d3",
"remoteIp": "2600:4040:2970:6400:d476:1e72:8872:948",
"userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1",
"serverName": "symmetry-demo.workbright.com"
},
"serverTimestamp": "2025-07-30T09:11:37-06:00"
},
{
"eventName": "authorized_representative_qr_scan",
"details": {
"action": "event",
"controller": "i9/remote_countersign"
},
"request": {
"url": "https://symmetry-demo.workbright.com/rc/81ee14bd-fa84-44e0-98b0-9273897c77d3/event",
"referrer": "https://symmetry-demo.workbright.com/rc/81ee14bd-fa84-44e0-98b0-9273897c77d3",
"remoteIp": "2600:4040:2970:6400:d476:1e72:8872:948",
"userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1",
"serverName": "symmetry-demo.workbright.com"
},
"serverTimestamp": "2025-07-30T09:12:01-06:00"
},
{
"eventName": "authorized_representative_auth_rep_certify_identity",
"details": {
"action": "event",
"controller": "i9/remote_countersign"
},
"request": {
"url": "https://symmetry-demo.workbright.com/rc/81ee14bd-fa84-44e0-98b0-9273897c77d3/event",
"referrer": "https://symmetry-demo.workbright.com/rc/81ee14bd-fa84-44e0-98b0-9273897c77d3",
"remoteIp": "2600:4040:2970:6400:d476:1e72:8872:948",
"userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1",
"serverName": "symmetry-demo.workbright.com"
},
"serverTimestamp": "2025-07-30T09:12:20-06:00"
},
{
"eventName": "authorized_representative_submit_document_review",
"details": {
"action": "event",
"controller": "i9/remote_countersign"
},
"request": {
"url": "https://symmetry-demo.workbright.com/rc/81ee14bd-fa84-44e0-98b0-9273897c77d3/event",
"referrer": "https://symmetry-demo.workbright.com/rc/81ee14bd-fa84-44e0-98b0-9273897c77d3",
"remoteIp": "2600:4040:2970:6400:d476:1e72:8872:948",
"userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1",
"serverName": "symmetry-demo.workbright.com"
},
"serverTimestamp": "2025-07-30T09:12:27-06:00"
},
{
"eventName": "authorized_representative_submit_countersign",
"details": {
"action": "event",
"controller": "i9/remote_countersign"
},
"request": {
"url": "https://symmetry-demo.workbright.com/rc/81ee14bd-fa84-44e0-98b0-9273897c77d3/event",
"referrer": "https://symmetry-demo.workbright.com/rc/81ee14bd-fa84-44e0-98b0-9273897c77d3",
"remoteIp": "2600:4040:2970:6400:d476:1e72:8872:948",
"userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1",
"serverName": "symmetry-demo.workbright.com"
},
"serverTimestamp": "2025-07-30T09:12:32-06:00"
}
],
"authRepRejected": false,
"isCurrentSubmissionOfAssignment": true,
"fields": {
"firstName": "Laura",
"lastName": "TEST",
"street": "14350 N 87th St",
"apt": "Ste 250",
"city": "Scottsdale",
"state": "AZ",
"zip": "85260-2662",
"ssn": "456-01-2785",
"email": "[email protected]",
"phone": "480-223-4567",
"birthdate": "1975-03-15",
"otherNames": "N/A",
"citizenshipDesignation": "citizen",
"employeeSignDate": "2025-07-30",
"employeeStartDate": "2025-06-01",
"employerCertifyDate": "2025-07-30",
"employerTitle": "Authorized Representative",
"employerFirstName": "AuthRep",
"employerLastName": "test",
"businessName": "Symmetry Software",
"businessStreet": "14350 N 87th St",
"businessCity": "Scottsdale",
"businessState": "AZ",
"businessZip": "85260",
"lateReason": "OTHER",
"lateReasonOther": "Remote Authorized Representative delay",
"usedAltProcedure": "false"
},
"isExpired": false,
"isReverified": false,
"reverifyExists": false,
"reverifyInProgress": false,
"documentVerificationResult": "failed",
"zipFile": "UEsDBBQACAgIAKF5inRVsrfUJmmtP"
}
}
Response Elements
Submission object
A successful response returns the submission
object. Below are the fields within the submission.
Element | Description |
---|---|
id | Integer. Unique ID of the I-9 submission |
auditLogs | Array , where each object represents a recorded event or action related to the I-9 submission process |
authRepRejected | Boolean. Indicates whether the authorized representative rejected the submission. |
countersigned | Boolean. Indicates Section 2 has been countersigned |
countersignable | Boolean. Indicates the form is eligible for countersignature |
documentationExpirationDate | String. Expiration of the next eligible document requiring update. |
documentVerificationResolution | Object. Status of document verification. See fields below. |
documentVerificationResult | String. Status of document verification (approved , completed , declined , or failed ). |
documentName | String. Name of the submitted document. Will always return Form I-9 |
documentFileName | String. |
fields | Object. Contains key details about the Form I-9 submission. |
isCurrentSubmissionOfAssignment | Boolean. Indicates if this is the most recent submission for the employee. |
isExpired | Boolean. Indicates if the Form I-9 has expired. |
isReverified | Boolean. Indicates if this submission is part of a reverification. |
rejectionReason | String. Reason provided, if the submission was rejected. |
rejectionAdditionalDetails | String. |
reverificationRehire | Array. Contains data related to an employee's reverification or rehire. |
reverifyExists | Boolean. Indicates the employee has been reverified. |
reverifyInProgress | Boolean. Indicates the remote verification for this submission been started. |
status | Enum. Current status of the submission (pending , accepted , rejected ) |
statusChangedBy | String. Name of individual who accepted or rejected the form |
statusChangedAt | String. Timestamp of when submission was accepted or rejected |
submittedAt | String. Timestamp of when the submission was received |
verificationDocuments | Array, where each object represents a document used for Form I-9 verification |
zipFile | String. A base64-encoded representation of the signed PDF of the Form I-9. Can be decoded for file generation. |
Verification Documents
The verification documents array contains information on the documentation submitted for review.
Element | Description |
---|---|
listKey | Indicates which document list (A , B , or C ) the provided document belongs to, according to Form I-9 requirements |
documentationKey | Internal key identifying the document type. See full list below. |
documentTitle | Human-readable name of the document, displayed in the user interface and included in the final Form I-9. See full list below . |
documentNumber | The unique identifying number found on the document (e.g. passport number, license number). This is printed on the finalized Form I-9. |
issuingAuthority | The agency or institution that issued the document. This is printed on the finalized Form I-9. |
expirationDate | Date the document expires |
receipt | Indicates whether the employee presented a receipt in place of the document (true = yes, false = no) |
Document Types
Below is the full list of documentation (documentationKey
and documentTitle
) employees can use to complete their I-9.
documentationKey | documentTitle |
---|---|
us_passport | U.S. Passport |
us_passport_card | U.S. Passport Card |
permanent_resident_card | Permanent Resident Card |
alien_registration_receipt_card | Alien Registration Receipt Card (Form I-551) |
foreign_passport | Foreign passport containing temporary I-551 stamp |
foreign_passport_mriv | Foreign passport containing a temporary I-551 printed notation on a machine-readable immigrant visa |
employment_auth_doc | Employment Authorization Document w/ photograph (Form I-776) |
foreign_passport_with_i94 | Foreign passport and Form I-94/I-94A for a nonimmigrant alien authorized to work for a specific employer because of his or her status |
fsm_passport_with_i94 | Passport from Federated States of Micronesia (FSM) with Form I-94 |
rmi_passport_with_i94 | Passport from Republic of Marshall Islands (RMI) with Form I-94 |
i551_stamp | A supporting document required for certain other types of documentation |
mriv | A supporting document required for certain other types of documentation |
form_i94 | A supporting document required for certain other types of documentation |
i94_supporting_doc | A supporting document required for certain other types of documentation |
drivers_license | Driver's license issued by a state or territory |
state_id_card | ID card issued by a state or territory |
id_card | ID card issued by federal, state or local government agencies or entities |
school_id_card | School ID card |
voter_registration_card | Voter registration card |
military_card | U.S. military card |
military_draft_record | U.S. military draft record |
military_dependent_id_card | Military dependent's ID card |
uscgmm_card | US Coast Guard Merchant Mariner Card |
native_american_tribal_document | Native American tribal document |
canadian_drivers_license | Driver's license issued by a Canadian government authority |
under18_school_report_card | School record or report card (under age 18 only) |
under18_doctor_record | Clinic, doctor or hospital record (under age 18 only) |
under18_daycare_record | Day-care or nursery school record (under age 18 only) |
under18_none | Minor under age 18 without identification document |
special_placement | Special placement |
ssn_card | Social Security Card |
cert_birth_abroad | Certification of Birth Abroad (Form FS-545) |
cert_report_birth | Certification of Report of Birth (Form DS-1350) |
cert_consular_report_birth | Consular Report of Birth Abroad (Form FS-240) |
us_birth_certificate | U.S. birth certificate (original or certified copy) |
native_american_tribal_document2 | Native American tribal document |
us_citizen_id_card | U.S. Citizen ID card (Form I-197) |
id_card_resident_citizen | ID Card for Use of Resident Citizen in the U.S. (Form I-179) |
employment_auth_by_dhs | Employment authorization issued by the DHS |
Audit Logs
Each audit log object represents an action taken on the submission, tracked for compliance. An array is returned that contains an object for each action. Read more about audit logs here.
Element | Description |
---|---|
eventName | Name of the event. See full list here. |
eventTitle | Deprecated |
details | Information related to the specific event |
request | Metadata about the HTTP request that triggered the audit event |
userType | User type who triggered the event (EMPLOYEE , ADMIN ) |
serverTimestamp | Timestamp of when the event occurred based on the time zone of the server. ISO 8601 format. |
Document Verification Resolution
The document verification resolution object (documentVerificationResolution
) contains a list of events for I-9 document verification acted on by the administrator.
Field Name | Description |
---|---|
actorId | Internal ID for audit purposes |
actorName | Name of the actor taking action on the document verification |
actorType | Type of actor performing the event (for example, admin ) |
resolvedAt | Timestamp of when the resolution action occurred |
Reverification Rehire
The reverificationRehire
array captures details related to an employee’s reverification or rehire event within the I-9 process.
Field Name | Description |
---|---|
submittedAt | Timestamp when the reverification or rehire submission was completed by the authorized representative or employer. |
date | Date the reverification or rehire action was taken |
rehireDate | Employee's new hire date |
newLastName | Updated last name of the employee, if changed |
newFirstName | Updated first name of the employee, if changed |
newMiddleInitial | Updated middle initial of the employee, if changed |
reverifyDocumentTitle | Title of the document provided for reverification |
reverifyDocumentNumber | Identification number on the reverification document |
reverifyExpirationDate | Expiration date of the reverification document (format: YYYY-MM-DD) |
reverifyUsedAltProcedure | Indicates whether the USCIS alternative procedure was used for reverification |
employerOrAuthrepName | Name of the employer or authorized representative who submitted the reverification |
additionalInfo | Optional free-form notes or comments included with the submission |
Fields
The fields
object contains key details on the Form I-9 submission.
Field Name | Description |
---|---|
firstName | Employee's legal first name |
middleInitial | Employee's legal middle initial |
lastName | Employee's legal last name |
street | Street address of the employee's residence (streetAddress1 ) |
apt | Apartment number or unit (streetAddress2 ) |
city | City of the employee's residence |
state | State abbreviation |
zip | ZIP code of the employee's residence (zipCode ) |
ssn | Employee’s Social Security Number (socialSecurityNumber ) |
email | Employee's email address (emailAddress ) |
phone | Employee's phone number (telephoneNumber ) |
birthdate | Employee's date of birth (dateOfBirth ) |
otherNames | Any other names used by the employee. Will return N/A if none. |
citizenshipDesignation | Citizenship status: citizen , noncitizen_national , permanent_resident , or alien . |
employeeSignDate | Date the employee signed Section 1 of the I-9 (format: YYYY-MM-DD) |
employeeStartDate | Employee's start date |
employerCertifyDate | Date the employer completed and signed Section 2 |
employerTitle | Title of the employer representative who countersigned the Form I-9 |
employerFirstName | First name of the employer representative who countersigned the Form I-9 |
employerLastName | Last name of the employer representative who countersigned the Form I-9 |
businessName | Name of the service provider |
businessStreet | Employer's street address (streetAddress1 ) |
businessCity | City of the employer's business |
businessState | State abbreviation of the employer's business |
businessZip | ZIP code of the employer's business (zipCode ) |
lateReason | Reason for certification occurring more than 3 business days after the employee's start date |
lateReasonOther | Explanation provided if "Other" is selected as lateReason . |
usedAltProcedure | Indicates that the employer used alternative procedure to verify the employee's documents |
Updated 14 days ago