List payroll exports
Returns your organisation's payroll files, newest first: each one's period, sites, format and layout, how many
people and lines it holds, how many of those people are corrections of an earlier file, how many a later file
corrected, and its file's name, size and SHA-256. Filter by period_id.
Scope: attendance:payroll · Plan: Pro and Enterprise, with the payroll export; in test mode too, the payroll export needs Pro.
AuthorizationBearer <token>Send Authorization: Bearer <token> on every request. The token is one of:
| Prefix | What it is | Where it may be used |
|---|---|---|
agoo_sk_live_ | Secret key, live mode | Your servers only |
agoo_sk_test_ | Secret key, test mode | Your servers only |
agoo_pk_live_ | Publishable key, live mode | Browsers and apps: create pre-registrations and bookings, read public booking types (with their intake questions) and their free slots, read the visit types open for pre-registration with their public forms. Never lists people. |
agoo_pk_test_ | Publishable key, test mode | As above, in test mode |
Admins create keys in Console → Developers → API keys and choose each key's scopes. A key is shown once. Never put a secret key in a URL, a browser or a mobile app.
Scope: attendance:payroll
limit?integerHow many items to return, from 1 to 100.
1 <= value <= 10025cursor?stringThe next_cursor from the previous page. Leave it out for the first page.
length <= 512period_id?stringOnly this timesheet period's payroll exports.
^tsp_[0-7][0-9a-hjkmnp-tv-z]{25}$"tsp_01m5a2b3c4d5e6f7g8h9jkmnpr"A page of payroll exports.
application/json- response
data*array<>next_cursor*|Pass this as cursor to get the next page. null on the last page.
"b3BhcXVlLWN1cnNvcg"has_more*booleancurl -X GET 'https://api.agoo.ardent.africa/v1/payroll-exports?limit=25'{ "data": [ { "id": "payroll_export_01m5c4d5e6f7g8h9jkmnpqrstv", "number": 3, "period": { "id": "tsp_01m5a2b3c4d5e6f7g8h9jkmnpr", "starts_on": "2019-08-24", "ends_on": "2019-08-24", "payroll_on": "2019-08-24" }, "site_ids": [ "site_01kjpt3yw0fz0v414608h9x65s" ], "format": "csv", "layout": "long", "people": 0, "corrections": 0, "lines": 0, "superseded": 0, "file": { "name": "ridge-hospital-payroll-september-2026-3.csv", "content_type": "string", "byte_size": 0, "sha256": "string" }, "created_by": "string", "created_via": "person", "created_at": "2019-08-24T14:15:22Z" } ], "next_cursor": "b3BhcXVlLWN1cnNvcg", "has_more": true}Reopen a timesheet POST
Reopens an approved timesheet, with a reason the person and whoever approved it see: it's unlocked, its days are worked out again, and it goes back through your organisation's approval steps. A timesheet that isn't approved returns `invalid_state`. `timesheet.reopened` fires. **Scope:** `attendance:manage` · **Plan:** Pro and Enterprise in live mode; every plan in test mode.
Make a payroll export POST
Makes a payroll file from a timesheet period's approved, locked timesheets, for the whole organisation or chosen sites. People not in an earlier file for the period get their first lines; people whose figures changed since one (a timesheet reopened and approved again, or a leaver's annual leave balance) get the difference as correction lines; people with nothing new aren't repeated. Hours are by pay code and net of unpaid breaks; days by pay code. Returns `invalid_state` while a type of leave in it has no pay code or two pay codes clash, while the period is running, and when nothing is new. The file is kept: download it from `/payroll-exports/{payroll_export_id}/file`. `payroll_export.created` fires. **Scope:** `attendance:payroll` · **Plan:** Pro and Enterprise, with the payroll export; in test mode too, the payroll export needs Pro.