---
title: "Employer sign an employee's Form I-9"
method: PUT
path: "/v1/employees/{employee_id}/i9_authorization/employer_sign"
tags: ["I-9 Verification"]
---

# Employer sign an employee's Form I-9

`PUT /v1/employees/{employee_id}/i9_authorization/employer_sign`

## Request

- Base URL: `https://api.gusto-demo.com`
- URL: `https://api.gusto-demo.com/v1/employees/{employee_id}/i9_authorization/employer_sign`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/gusto/apis/gusto-api/docs/v1/employees/:employee_id/i9_authorization/employer_sign/put.ts> (a function with typed inputs; its response is checked against the schema)

Sign an employee's Form I-9 as an employer. Once the form is signed, the employee's I-9 authorization is considered complete and cannot be modified.

### Prerequisites
Before calling this endpoint:
1. The employee must have a completed [I-9 authorization](ref:put-v1-employees-employee_id-i9_authorization)
2. The employee must have signed the Form I-9
3. [I-9 verification documents](ref:put-v1-employees-employee_id-i9_authorization-documents) must be submitted

### Related guides
- [I-9 employment verification](doc:i-9-employment-verification)

scope: `i9_authorizations:manage`

## Path parameters

- `employee_id` string, required

## Headers

- `X-Gusto-API-Version` '2026-06-15'
- `x-gusto-client-ip` string

## Request body

- I9AuthorizationEmployerSignRequestBody: Request body for employer signing an employee's Form I-9.
  - `signature_text` string, required: The signature
  - `signer_title` string, required: The signer's job title
  - `signed_by_ip_address` string: The IP address of the signatory who signed the form. Both IPv4 AND IPv6 are supported. You must provide the IP address with either this parameter OR you can leave out this parameter and set the IP address in the request header using the `x-gusto-client-ip` header instead.
  - `agree` boolean, required: Whether you agree to sign electronically
  - `additional_info` string: Any additional notes
  - `alt_procedure` boolean: Whether an alternative procedure authorized by DHS to examine documents was used

## Response `200`

Success

- I9Authorization: An employee's I-9 authorization
  - `uuid` string, required: The UUID of the I-9 authorization
  - `form_uuid` string, nullable: The UUID of the Form associated with this I-9 authorization. Use this with "Employee Forms" API endpoints.
  - `version` string, required: The current version of the object. See the [versioning guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information on how to use this field.
  - `authorization_status` 'citizen' | 'noncitizen' | 'permanent_resident' | 'alien', required: The employee's authorization status
  - `document_type` 'uscis_alien_registration_number' | 'form_i94' | 'foreign_passport', nullable: The document's document type
  - `has_document_number` boolean, nullable: Whether or not a `document_number` exists for this document.
  - `expiration_date` string, nullable: The document's expiration date
  - `country` string, nullable: The document's country of issuance
  - `employer_signed` boolean, required: Whether the employer has signed the Form I-9
  - `employee_signed` boolean, required: Whether the employee has signed the Form I-9
  - `additional_info` string, nullable: Any additional notes
  - `alt_procedure` boolean, nullable: Whether an alternative procedure authorized by DHS to examine documents was used

## Other responses

- `404`: Not Found The requested resource does not exist. Make sure the provided UUID is valid.
- `422`: Unprocessable Entity This may happen when the body of your request contains errors such as `invalid_attribute_value`, or the request fails due to an `invalid_operation`. See the [Errors Categories](https://docs.gusto.com/embedded-payroll/docs/error-categories) guide for more details.

---

[API](https://skmtc.dev/gusto/apis/gusto-api.md) - [All operations](https://skmtc.dev/gusto/apis/gusto-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gusto/apis/gusto-api/revisions/f98575fa2a5e?raw)
