Skip to main content

Overview

  • Rollfi supports employee I-9 onboarding and optional E-Verify for supported companies.
  • Employees complete Section 1 through a secure embedded flow.
  • Employers complete Section 2 through a separate embedded counter-sign flow.
  • E-Verify can only be enabled when I-9 is enabled.

Tracking Status

  • Use getUser to retrieve the employee’s latest onboarding state.
  • When I-9 verification has been provisioned for the employee, the status object in getUser and employee status webhooks may include i9Verification.
  • Treat i9Verification as optional in your response parsing. It is omitted when I-9 verification has not been provisioned for that employee.

Webhooks You Will Receive

  • When an employee’s I-9 record is created or its status changes, Rollfi sends the standard employee.employeestatus.update webhook.
  • The employee payload mirrors the standard employee status webhook payload. status.userStatus continues to represent the employee’s overall lifecycle status, while status.i9Verification reflects the employee’s progress in the I-9 process when I-9 verification has been provisioned.
  • status.userStatus does not need to change for an I-9 webhook to be sent. For example, you may receive an employee.employeestatus.update because the employee completed Section 1, the submission was rejected and restarted, the employer countersigned Section 2, the form was finalized, or the record became overdue.

Interpreting I-9 Webhook States

  • Section 1 Complete means the employee has completed Section 1 and the I-9 is now waiting for the employer or admin to take action by completing Section 2.
  • Section 2 Complete means the employer or admin completed Section 2 and the I-9 is awaiting final completion in the verification workflow.
  • Complete means the I-9 workflow has been finalized and no further I-9 action is required.
  • Overdue means a required I-9 step was not completed in time and follow-up is required before the workflow can be considered complete. The company admin should check on the I9 status through the whitelabel when this status is received.

Example Payload

In this example, userStatus is still Invite Sent, but the full status object also includes the onboarding progress fields. status.i9Verification has moved to Section 1 Complete, which means the employee finished Section 1 and the I-9 is waiting on employer action.