Create payroll draft

Create a payroll draft from the initialized payroll data. This is the second step of the payroll process.

Flow: GET /payrolls/period-optionsPOST /payrolls/initialize → edit payrollData → POST /payrolls (create draft) → review → approve.

Send the modified payrollData for each employee and contractor. The same mutual-exclusivity rule from the initialize response applies: each employee entry must contain either payrollData (non-split) or splits (split), never both. payment_method and note are always at the employee root level.

Contractors always use payrollData (no splits).

The server processes payrollData, creates the payroll, and returns a full preview with per-employee tax/benefit/deduction breakdowns, aggregate totals, and an actions.approve hint. This is the review step — inspect the preview and call approve when ready. Requires the payroll plan or higher.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
enum
required
Allowed:
string
required

Pay period start date (YYYY-MM-DD)

string
required

Pay period end date (YYYY-MM-DD)

string
required

Payday (YYYY-MM-DD)

string | null
enum

Required for type=regular

Allowed:
integer | null

Required for type=regular

employees
array of objects

Employee payroll entries

employees
contractors
array of objects

Contractor payroll entries

contractors
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json