---
title: "Calculate a payroll"
method: PUT
path: "/v1/companies/{company_id}/payrolls/{payroll_id}/calculate"
tags: ["Payrolls"]
---

# Calculate a payroll

`PUT /v1/companies/{company_id}/payrolls/{payroll_id}/calculate`

## Request

- Base URL: `https://api.gusto-demo.com`
- URL: `https://api.gusto-demo.com/v1/companies/{company_id}/payrolls/{payroll_id}/calculate`
- Auth: HTTP bearer

Performs calculations for taxes, benefits, and deductions for an unprocessed payroll. The calculated payroll details provide a preview of the actual values that will be used when the payroll is run.

This calculation is asynchronous and a successful request responds with a 202 HTTP status. To view the details of the calculated payroll, use the GET /v1/companies/{company_id}/payrolls/{payroll_id} endpoint with *include=taxes,benefits,deductions* params.

If the company is blocked from running payroll due to issues like incomplete setup, missing information or other compliance issues, the response will be 422 Unprocessable Entity with a categorization of the blockers as described in the error responses.

scope: `payrolls:write`

## Path parameters

- `company_id` string, required
- `payroll_id` string, required

## Headers

- `X-Gusto-API-Version` '2026-06-15'

## Response `202`

Accepted

## Other responses

- `404`: Not Found
- `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)
