How hours leave Shiftbrook
Approved hours leave as a CSV, on every plan that can approve a timesheet. A paid plan can also read and write records through the API, and can subscribe to webhooks. Nothing on this page sends those hours into a payroll product.
The CSV
A manager approves the timesheet. The approved hours download as a CSV. That file is the handover to payroll, to a spreadsheet, or to an accountant. Shiftbrook does not calculate the wage, the tax, or a pension. The CSV is hours, not money. You do not need an API key to download it.
Sending approved hours to Xero Payroll UK is not available until that connection works end to end. A card in settings may say a connection is coming soon. Coming soon is not a live send. Do not plan a pay run on it. Slack and Microsoft Teams are in the same position: they are not a live connection you can switch on from this page.
The paid-plan API
Paid plans create a key in Settings, then Integrations, then API. The key is shown once and stored as a hash. Send it as a bearer token. Free plans see an upgrade prompt instead of a key. A key is limited to 60 requests a minute. A read key cannot create or change records. List responses include data and a next cursor. Pass cursor and limit, up to 100.
The resources are people, locations, shifts, leave requests, timesheets and absences. GET and POST people, with name, email and role. Creating a person sends an invite, and the invite token is not returned. GET locations. GET, POST and PATCH shifts. A new shift is a draft. Publish it in the app, not by assuming the POST already published it. GET and POST leave requests, then approve one by its id. GET approved timesheets, which include the approved hours. GET absences for a date range of approved leave. The field list and the examples are on the developers page.
Webhooks
Create a webhook in the API settings or with POST /api/v1/webhooks. The signing secret is shown once. Each delivery is JSON with an id, a type, a createdAt and data. The signature is a hex HMAC SHA256 of the timestamp, a dot, and the raw body. It is sent as v1= in X-Shiftbrook-Signature. The timestamp is X-Shiftbrook-Timestamp.
The events are shift.published, leave.approved, timesheet.approved and person.created. There is no fifth event for a pay run. A failed delivery is tried again after one minute, five minutes and thirty minutes. That is the live set. There is no payroll event, because nothing is sent to payroll. The machine-readable description is linked from the developers page. It is a description of this API, not a directory of other products.
Questions
Can I send approved hours to Xero Payroll?
No. Sending approved hours to Xero Payroll UK is not available until that connection works end to end. Download the CSV and use that in payroll.
Is the API on the free plan?
No. Free plans see an upgrade prompt instead of a key. The CSV of approved hours does not need a key.
Sources
Developers · Timesheets · Agencies · Pricing