GuidesAPI ReferenceChangelogAPI StatusAPI PolicyGusto Security
Changelog
Improved

Added support for parallel payroll updates on large rosters

Partners can now split a payroll update across up to 10 concurrent requests to the same payroll, each covering up to 100 employees.

Why this matters

For partners running payroll on behalf of companies with large rosters, sequential per-employee updates have been the dominant bottleneck on end-to-end runtime—a risk that scales with roster size. Running those pages in parallel brings a 1,000-employee update down to roughly the length of a single request, with no change to the endpoint, request shape, or retry behavior.

Key functionality

  • Send up to 10 PUT /v1/companies/{company_id}/payrolls requests to the same payroll concurrently, each covering up to 100 employees.
  • Each request must cover a disjoint set of employees. Overlapping employee_uuid values across concurrent requests fail with a 422 invalid_attribute_value on the version token.
  • Retry logic is safe. Because the endpoint sets absolute values rather than increments, a 409 lock-contention response can be retried with the same request body unchanged.
🚧

Keep payroll-level fields (selected_funding_method_uuid, withholding_pay_period, skip_regular_deductions, fixed_withholding_rate) out of concurrent requests. Changing any of them acquires a broader lock that serializes every request in the batch.

Read more in the Parallelize payroll updates guide.