This process involves both the employee and employer completing specific sections of the Form I-9 and verifying supporting documents, ensuring that every employee hired in the US is authorized to live and work in the US. While this process can be done manually, outside of a partner’s payroll application, this functionality reduces the manual overhead and helps employers remain compliant.Documentation Index
Fetch the complete documentation index at: https://gusto-preview.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
1. Create an employee and invite them to self-onboard
Employee self-onboarding is required because I-9 verification requires the employee to sign the form. See the Onboard a W2 Employee guide for more details. If an employer onboards an employee, the employer and employee will have to to complete Form I-9 manually.2. Update an employee’s onboarding documents configuration
You can indicate whether an employee is required to complete an I-9 on a per-employee basis. This is done via aPUT request to the Update an employee's onboarding documents config endpoint.
onboarding_documents_config: { i9_document: true/false } to indicate this choice.
3. Employee fills out I-9 info in the self-onboarding flow
Create an I-9 authorization
APUT request to the Create or update an employee's I-9 authorization endpoint creates an I-9 authorization for the employee, collecting the I-9 info required in Section 1 of the Form I-9.
When creating an I-9 authorization record, validations are conditional based on the authorization_status you select.
-
citizenornoncitizen:- No extra data is required or allowed
-
permanent_resident:document_typemust beuscis_alien_registration_numberdocument_numbermust be a USCIS number, in the format ‘A000000000’
-
alien:-
document_typemay be:uscis_alien_registration_number- with
document_numberfollowing the format described above.
- with
-
form_i94- with
document_numberin the format ‘000000000 A0’
- with
-
foreign_passportdocument_numberis requiredcountryis requiredexpiration_dateis optional. NOTE: an expiration date in the past is allowed.
-
Submitting unnecessary fields when creating an I-9 authorization record will result in a validation error.
Example: submitting adocument_type when using "authorization_status": "citizen"- Validation errors will report that
document_typeis not used for this authorization status.
Update an I-9 authorization
APUT request can be made to the same endpoint to update an I-9 authorization with the addition of the version field. Updates are allowed as long as the employee has not yet signed their Form I-9.
Updating an authorization_status that requires extra fields to an authorization_status that does not require those fields will automatically remove the unnecessary data.
This is to avoid generating needless validation errors about unnecessary data.permanent_resident (which requires document_type and document_number) to citizen (which does not use either of these fields)
document_typeanddocument_numberare automatically removed from the existing database record.document_typeanddocument_numberincluded in any updates are ignored.
Get an I-9 authorization
Make aGET request to the Get an employee’s I-9 authorization endpoint to fetch the employee’s I-9 authorization.
4. Employee signs Form I-9 in the self-onboarding flow
Make aPUT request to the Sign an employee form endpoint to sign the Form I-9 that gets generated, which can be fetched from the Get all employee forms endpoint or the form_uuid field of the I-9 authorization. This fills out the signature information in Section 1 of the form and the optional Preparer and/or Translator Certification information.
5. Employer completes onboarding for the employee
Complete onboarding for the employee, after reviewing and verifying all the information the employee submitted. See the Onboard a W2 Employee guide for more details. The employee must be fully onboarded in order to proceed to the following steps.6. Employer verifies I-9 documents
Within three business days of the employee’s start date, the employer must review the employee’s I-9 documents and fill out the document details in Section 2 of the form. This can be done using the following endpoints.Show I-9 evidence document options
Call theGet an employee's I-9 verification documents endpoint to list the various documents an employee can provide to prove their status. This endpoint can be used to build a UI allowing the employer to indicate which documents the employee is providing.
Create/update I-9 evidence documents
APUT request to the Create an employee's I-9 authorization verification documentsendpoint can be used to bulk create I-9 evidence documents for an employee. Make a GET request to the Get an employee's I-9 verification document options endpoint to get the possible document types and titles, which can vary depending on the employee’s authorization status. API responses do not include document numbers to minimize exposure of private employee data.
An employee must provide EITHER (See USCIS website for more information)
- 1 document from “List A”
- 1 document from “List B” AND 1 document from “List C”.
- 1 document from “List A1” AND 1 document from “List A2” AND 1 document from “List A3”. if the employee has an authorization status of alien (non-citizen authorized to work)
Every PUT call to this endpoint completely replaces any previously-created verification document records.
Remove I-9 documents
If needed, a request toDelete an employee's I-9 verification document endpoint can be used to remove an I-9 document using the UUID.
7. Employer signs Form I-9
APUT request to the Employer sign an employee's Form I-9endpoint can be made by the employer to sign the I-9 document. The previous steps must be completed in order to successfully sign the form.
8. Get the I-9 PDF
Make aGET request to the Get the employee form pdf endpoint to view the completed I-9 form. The PDF should be completed and include both employee and employer signatures.
W2 employee forms I-9 Verification Using Flows