Skip to main content
POST
/
api
/
v1
/
payroll
/
payslips
cURL
curl -sS -X POST "$FLUIDE_BASE_URL/api/v1/payroll/payslips" \
  -H "Authorization: Bearer $FLUIDE_ACCESS_TOKEN" \
  -H "X-Fluide-Api-Key: $FLUIDE_API_KEY" \
  -H "X-Fluide-Client-Id: fluide-developer" \
  -H "Content-Type: application/json" \
  -d '{}'
{
  "success": false,
  "message": "Validation failed",
  "code": "VALIDATION_FAILED",
  "statusCode": 400,
  "timestamp": "2026-06-03T12:00:00.000Z",
  "errors": {
    "from": [
      "from must be a valid date"
    ]
  }
}

Authorizations

Authorization
string
header
required

Access token JWT. Use as Authorization: Bearer . In the API playground, paste the JWT only.

X-Fluide-Api-Key
string
header
default:fl_dev_your_key
required

Developer API key (fl_dev_...). Required on every API call with a machine access token.

X-Fluide-Client-Id
string
header
default:fluide-developer
required

First-party client audience. Must match the fluide_client_id claim on the JWT. Use fluide-developer for Connect.

Body

application/json
payrollRunId
string<uuid>
required

Payroll run ID

employeeId
string<uuid>
required

Employee ID

basicSalary
number
required

Basic salary for this period

Example:

5000

grossPay
number
required

Gross pay

Example:

5700

netPay
number
required

Net pay

Example:

4700

allowances
object

Allowances breakdown

Example:
{ "housing": 500, "transport": 200 }
deductions
object

Deductions breakdown

Example:
{ "tax": 800, "insurance": 200 }

Response

Successful response