1. Get your credentials#
Email developer@paycaptain.com for two things:
- an API key, sent as the
X-API-Keyheader on every request - your company code, sent as
companyon every record and query
Store the key in a secrets manager and call the API from your server only. Trust and security has the full list of requirements.
2. Make a first call#
All requests go to https://api.paycaptain.com over HTTPS with JSON bodies.
curl "https://api.paycaptain.com/employees?company=ABC" \
-H "X-API-Key: $PAYCAPTAIN_API_KEY"
A 200 returns a page of up to 50 employees. A 204 means there are no more pages.
3. Create an employee#
POST /employee creates the employee, or updates them if the hrEmployeeId already exists. This is the smallest valid record for a salaried employee:
{
"company": "ABC",
"hrEmployeeId": "9876543210",
"payrollCode": "123",
"firstName": "Jason",
"lastName": "Smith",
"dateOfBirth": "2000-01-01",
"gender": "Male",
"email": "jason@example.com",
"mailingStreet": "1 Main Street",
"mailingCity": "Green City",
"mailingStateProvince": "Happy County",
"mailingPostalCode": "SW1A 1AA",
"mailingCountry": "United Kingdom",
"startDate": "2023-12-01",
"payBasis": "Salaried",
"salary": 12000,
"payEffectiveDate": "2023-12-01",
"payGroup": "Monthly"
}
curl -X POST "https://api.paycaptain.com/employee" \
-H "X-API-Key: $PAYCAPTAIN_API_KEY" \
-H "Content-Type: application/json" \
-d @employee.json
Check every value against the Employee fields before sending. Only send PAYE employees.
4. Send a shift#
Shifts must be approved in your system first.
{
"shiftId": "SH-000481",
"company": "ABC",
"hrEmployeeId": "9876543210",
"payrollCode": "123",
"date": "2026-11-02",
"type": "Working",
"payBasis": "Hourly",
"units": 7.5,
"rate": 15.25
}
Pay elements work the same way through POST /payment. See Shift fields and Payment fields.
5. Read payslips#
curl "https://api.paycaptain.com/payslips?company=ABC&payPeriod=2026-11&page=1" \
-H "X-API-Key: $PAYCAPTAIN_API_KEY"
payPeriod is the Pay Period reference shown in the PayCaptain app. Keep requesting the next page until you receive a 204.
Before you go live#
- Enforce every field rule and business rule in your own validation layer.
- Stay inside the rate limits and retry safely.
- Pass the compliance tests in your deployment pipeline.