PayCaptain Developers

Start

Quickstart

From API key to first accepted record in five steps.

View as Markdown

1. Get your credentials#

Email developer@paycaptain.com for two things:

  • an API key, sent as the X-API-Key header on every request
  • your company code, sent as company on 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#