2. Configure Employees & Administrators
Once you've established the employer, you are ready to register the employee (new hire) and employer administrators to the employer, which can happen at any time. As a reminder, employees must be configured before starting an I-9 for that employee.
Register Employee
To establish a new hire, register the employee by calling the /employers/{employerId}/employees POST endpoint. A successful request will return the employee's id that can then be used to generate the employee's access link to their I-9. Registering an employee can be completed in advance for an employee with a start date in the future, or it can be completed “just in time” right before the I-9 verification process begins.
When registering employees, you will also specify if an employee should not be eligible for Remote I-9 Section 2 verification within the employeeDocumentOptions object. (note: this is only applicable if you have Remote I-9 enabled by default).
Request
{
"firstName": "Wendy",
"lastName": "Kopp",
"emailAddress": "[email protected]",
"telephoneNumber": "202-789-4567",
"address": {
"zipCode": "85260-2662",
"city": "Scottsdale",
"streetAddress1": "14350 N 87th St",
"streetAddress2": "Ste 250",
"state": "AZ"
},
"socialSecurityNumber": "456-01-2785",
"dateOfBirth": "1975-01-01",
"employment": {
"hireDate": "2025-05-18",
"startDate": "2025-06-01",
"status": "active",
"employeeDocumentOptions": {
"i9RemoteCounterSignAuthorized": true,
"i9RemoteReverificationAuthorized": true
}
}
}
Request Elements
Below is the data necessary to register your employee within Symmetry.
| Element | Type | Description |
|---|---|---|
firstName | string | Required. Employee's first name. |
middleName | string | Employee's middle name |
lastName | string | Required. Employee's last name. |
nickname | string | Employee's preferred nickname |
emailAddress | string | Email address associated with employee |
telephoneNumber | string | The phone number associated with employee. Required when remote verification fields (i9RemoteCounterSignAuthorized or i9RemoteReverificationAuthorized) are enabled. |
socialSecurityNumber | string | Employee's Social Security Number. Must be exactly 9 digits. All non-numeric characters will be automatically removed before validation (for example, 123-45-6789 will be validated as 123456789). |
appliedForSsn | boolean | If true, means the employee has applied for a Social Security Number and as such should not have their I-9 submitted to E-Verify until their SSN has been entered. Defaults to false. |
dateOfBirth | string date | Required. Date of birth associated with the employee |
employment | object | Required. Employee's employment details |
address | object | Employee's physical address |
skipEverify | boolean | Allows employer to manage E-Verify cases manually using the E-Verify website directly. When true, employee will not be automatically sent to E-Verify when Form I-9 is completed. |
Employment Object
The employment object contains key employment details for the employee, including important dates, current employment status, and document authorization options specific to Form I-9 processing.
| Element | Type | Description |
|---|---|---|
hireDate | string, date | The official date the employee was hired by the employer. This may be earlier than the start date if onboarding began in advance. |
startDate | string, date | The employee’s actual first day of work for pay. This date is required on the I-9 and should reflect when work began. |
status | string | The employee’s current employment status, "active" and "inactive". Defaults to "active" if not set. |
employeeDocumentOptions | object | For service providers with remote verification enabled, this allows you to turn off remote I-9 for this specific employee. This should be applied consistently across all employees for this specific employer. |
employeeDocumentOptions. i9RemoteCounterSignAuthorized | boolean | Indicates whether the employee is authorized to use a remote countersigner (authorized representative) for Section 2 of the I-9. |
employeeDocumentOptions. i9RemoteReverificationAuthorized | boolean | Indicates whether the employee can complete remote reverification (for example, when their work authorization is reverified) via a remote representative. |
Response
The response contains the employee identifier (id), along with the data from the request.
Below is an example of a successful response.
{
"employee": {
"id": "019721ce-cfcb-7224-972c-1234567",
"emailAddress": "[email protected]",
"firstName": "Wendy",
"lastName": "Kopp",
"socialSecurityNumber": "456-01-2785",
"telephoneNumber": "202-789-4567",
"dateOfBirth": "1975-01-01",
"address": {
"streetAddress1": "14350 N 87th St",
"streetAddress2": "Ste 250",
"city": "Scottsdale",
"state": "AZ",
"zipCode": "85260-2662",
"country": "US"
},
"employment": {
"hireDate": "2025-05-18",
"startDate": "2025-06-01",
"employeeDocumentOptions": {
"i9RemoteCounterSignAuthorized": true,
"i9RemoteReverificationAuthorized": true
},
"status": "active",
"statusChangedBy": "0",
"statusChangedAt": "2025-05-30T15:28:11.073Z",
"onBoardingStarted": false
}
}
}
Response Elements
A successful response returns the employee object.
Employee Object
| Element | Type | Description |
|---|---|---|
id | string | Employee's unique identifier |
firstName | string | Employee's first name |
middleName | string | Employee's middle name |
lastName | string | Employee's last name |
nickname | string | Employee's preferred nickname |
emailAddress | string | Email address associated with a employee |
telephoneNumber | string | The phone number associated with employee |
socialSecurityNumber | string | Employee's Social Security Number. Must be exactly 9 digits. All non-numeric characters will be automatically removed before validation (for example, 123-45-6789 will be validated as 123456789). |
dateOfBirth | string date | Date of birth associated with the employee |
gender | string | Employee's gender (M, F, X) |
employment | object | Employee's employment details |
address | object | Employee's physical address |
Employment Object
| Element | Type | Description |
|---|---|---|
hireDate | string | Employee's hire date |
startDate | string | Employee's start date |
employeeDocumentOptions | object | For service providers with remote verification enabled, this allows you to turn off remote I-9 for this specific employee. This should be applied consistently across all employees for this specific employer. |
onBoardingStartDate | string | Date the employee started the onboarding process |
status | string | Employee's current employment status (active, inactive) |
statusChangedBy | string | Name of individual who last changed employee's status |
statusChangedAt | string, date-time | Timestamp of when employee's employment status was last changed |
onBoardingStarted | boolean | Whether or not the employee has started the onboarding process |
Employee Document Options Object
| Element | Type | Description |
|---|---|---|
i9RemoteCounterSignAuthorized | boolean | Indicates whether the employee is authorized to use a remote countersigner (authorized representative) for Section 2 of the I-9. |
i9RemoteReverificationAuthorized | boolean | Indicates whether the employee can complete remote reverification (for example, when their work authorization is reverified) via a remote representative. |
Address Object
| Element | Type | Description |
|---|---|---|
streetAddress1 | string | Street number and street name |
streetAddress2 | string | Address identifier (e.g., apartment number, suite number, etc.) |
city | string | City name |
state | string | State name or abbreviation |
zipCode | string | Postal zip code (either 5 or 9 digits) |
Register Administrator
This one-time step is required to set up the employer administrator (HR, Compliance, or other executive functions at the employer) within that company who will administer Forms I-9 and take action on any documentation verification or E-Verify cases. Companies may have more than one administrator and administrators can be created at any time.
To create a new administrator, call the /employers/{employerId}/admins POST endpoint with the administrator details.
A successful call will return the administrator's ID that will then be used to generate the administrator's access to employer embedded experience.
Email Address Unique Across Employers
Administrator records are linked across employers by email address. If the same email address is registered as an administrator at more than one employer (including across staging and production), the administrator’s name and profile information is shared between those employers. Retrieving the admin from either employer returns the most recently saved name, and updating the admin’s name at one employer updates it everywhere that email is registered.
If you need administrators to appear with different names per employer (for example, to distinguish a staging admin from a production admin), use unique email addresses for each. Email aliases (such as [email protected] versus [email protected] are treated as distinct.
Request
{
"emailAddress": "[email protected]",
"firstName": "AdminFirst",
"middleName": "AdminMiddle",
"lastName": "AdminLast"
}
Request Elements
Below is the data necessary to register your administrator within Symmetry.
| Element | Type | Description |
|---|---|---|
emailAddress | string | Required. Employer administrator's email address. Must be unique. |
firstName | string | Required. Legal first name. |
middleName | string | Legal middle name |
lastName | string | Required. Legal last name |
Response
The response contains the admin object, which includes the administrator's unique identifier.
Below is an example of a successful response.
{
"admin": {
"id": "01973711-0f1a-7325-9499-1234567",
"firstName": "AdminFirst",
"middleName": "AdminMiddle",
"lastName": "AdminLast",
"emailAddress": "[email protected]"
}
}
Response Elements
The fields below are returned in the admin object.
Admin Object
| Element | Type | Description |
|---|---|---|
id | string | Unique identifier for the administrator |
firstName | string | First name as provided in the request |
middleName | string | Middle name as provided in the request |
lastName | string | Last name as provided in the request |
emailAddress | string | Email address as provided in the request |
There are times when you may need to promote an employee to an administrator. Read about how to do that here: Promote Employee to Administrator.