---
title: "Draft a payroll run"
method: POST
path: "/payroll/draft"
tags: ["Payroll"]
---

# Draft a payroll run

`POST /payroll/draft`

NOT available to API keys — requires an interactive admin/approver session. Computes a draft payroll run for the period from current employees, tax cards, and employer settings. Drafting does not pay anyone — a separate approval is required. Pass `idempotency_key` to make retries safe.

## Request body

- object
  - `customer_id` string — Target company. Optional for API keys.
  - `period` string, required — Payroll period, `YYYY-MM`.
  - `payment_date` string — Intended payment date, `YYYY-MM-DD`.
  - `idempotency_key` string — Client-chosen key to deduplicate retries.

## Response `200`

Updated payroll workspace including the draft run.

- PayrollWorkspaceData — The payroll workspace for a period: employees, employer settings, and runs. Amounts are integer cents; rates are basis points. Interior shapes beyond the top level vary and are returned as-is.

## Other responses

- `401` — Missing or invalid bearer token.
- `403` — Insufficient scope or role — e.g. a read-scoped key on a mutating method, or an API key on an admin/approver-only endpoint.

---

[API](https://skmtc.net/lastaccountingcompany/apis/lac-customer-api.md) · [All operations](https://skmtc.net/lastaccountingcompany/apis/lac-customer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lastaccountingcompany/lac-customer-api/versions/52e277b4f031/schema)
