Add a person to payroll
The bank account is confirmed by name enquiry through the partner bank before the person is saved; the name
the bank returns is stored as bank_account.account_name. Use the Payments name-enquiry endpoint to show
“Name confirmed by GTBank” before submitting. If the returned name does not match name and
confirm_account_name is not true, the call fails with 422 recipient_name_mismatch and
details.account_name.
The person is paid from the first run whose pay date is on or after start_date; until then status is
starting. Company-wide deduction types apply automatically.
Error codes: invalid_api_key, parameter_invalid, parameter_missing, scope_missing, csrf_token_invalid, idempotency_key_reused, recipient_name_mismatch, name_enquiry_failed, account_number_invalid, amount_too_small, currency_not_enabled, bank_unavailable, rate_limited.
Authorizations
Server API key, scoped. pk_test_ keys hit the sandbox tenant.
Headers
Optional on non-money POSTs; honoured when sent.
1 - 255Optional client correlation id, up to 128 characters. It is not echoed: the response's X-Request-Id is always
our own req_… id. We log your value with the request as client_request_id, so support can find a request by
either id. A longer value is refused with 400 parameter_invalid.
128Body
Full name, as on their bank account.
1 - 120Calendar date, interpreted in Africa/Lagos.
"2026-11-07"
Where the person is paid. Confirmed by name enquiry.
Monthly pay. Gross must be above zero.
1 - 20 elements254Job title, e.g. "Dispatch rider".
80Team, e.g. "Operations".
60Accept the bank's account name even if it differs from name.
Up to 20 string keys (≤ 40 chars) with string values (≤ 500 chars). Returned on the resource and its events.
Response
The person, with their computed pay.
A person on payroll (ppl_…).
ppl_…
Always payroll_person.
"payroll_person"RFC 3339, UTC.
"2026-10-27T08:41:00Z"
RFC 3339, UTC.
"2026-10-27T08:41:00Z"
Full name.
active is paid; on_leave is on paid leave and still paid ("On leave, paid"); starting has a start date
after today ("Starts 1 Nov"); offboarded is past their end date and never paid again.
active, on_leave, starting, offboarded Calendar date, interpreted in Africa/Lagos.
"2026-11-07"
The person's bank account. Only the last four digits are returned.
Monthly earnings.
What the next run would pay, with current deductions (before any one-off bonus).
Where payslips are sent.
254Job title.
Team.
Calendar date, interpreted in Africa/Lagos.
"2026-11-07"
RFC 3339, UTC.
"2026-10-27T08:41:00Z"
Up to 20 string keys (≤ 40 chars) with string values (≤ 500 chars). Returned on the resource and its events.