Scope: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.
people_batches:write
Request details
The body of the request is a JSON object that must contain:-
A unique UUID
idempotency_keyThisidempotency_keymust be generated on the caller’s side to ensure idempotency of requests. If theidempotency_keyis not unique for the given company, the upload will result in a 409 error.Theidempotency_keyis the caller’s unique identifier for a batch request - it is required to ensure that each batch is only created once. Once a batch is created the response will show thebatch_uuid. -
A
batch_action -
Within the
batch, there must be anentity_type, e.g. “employee” -
Each
personobject must contain anexternal_idfrom your system for create actions.- The
external_idwill not be persisted.
- The
Response details
Thebatch_uuid, Gusto’s unique identifier for a batch request, is returned. This is required to later fetch the batch status.
201 Created: Batch accepted and we return thebatch_uuid409 Conflict: When the sameidempotency_keyis used more than once422 Unprocessable Entity: When there is an issue with the batch data itself, e.g. JSON validation errors
Examples
Minimum / mandatory inputs for each Employee
external_id
As outlined in the Request section of this guide, the external_id is your unique identifier for a person—this will be your employee identifier.The external_id is used only ephemerally while the batch is processing, and then returned in the batch results alongside the person’s employee_uuid. You must associate the Gusto employee_uuid with your external_idin order to reference the person in later API calls.Full inputs for each Employee’s person data
Optional inputs
Only the minimum person data is mandatory—each of these sections is optional:-
home address , optionally with
"work_from_home"status- either home address or work location, or both can be provided
-
when home address with
"work_from_home"is given, we internally create a new work location, and passing-in a work address is not permitted.
-
work address (aka company location; needs to be created via regular API calls)
- this is taking the UUID of an existing work location
- job details
- compensation
-
Bank Accounts and Paycheck Distributions for Direct Deposit.
- ordered list of bank accounts with splits (all-in-one)
-
Department
department_uuid
People Batch API Person data