Skip to main content
POST
/
api
/
v1
/
payroll
/
payroll
/
process
cURL
curl -sS -X POST "$FLUIDE_BASE_URL/api/v1/payroll/payroll/process" \
  -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 '{}'
{
  "organizationId": "<string>",
  "companyId": "<string>",
  "title": "<string>",
  "periodMonth": 123,
  "periodYear": 123,
  "countryCode": "<string>",
  "idempotencyKey": "<string>",
  "totalGross": 123,
  "totalDeductions": 123,
  "totalNet": 123,
  "currency": "<string>",
  "totalsByCurrency": {},
  "processedBy": "<string>",
  "processedAt": "2023-11-07T05:31:56Z",
  "lockedAt": "2023-11-07T05:31:56Z",
  "submittedAt": "2023-11-07T05:31:56Z",
  "approvedAt": "2023-11-07T05:31:56Z",
  "rejectedAt": "2023-11-07T05:31:56Z",
  "validatedAt": "2023-11-07T05:31:56Z",
  "ruleSnapshotId": "<string>",
  "calculationFingerprint": "<string>",
  "includedEmployeeIds": [
    "<string>"
  ],
  "payrollCycleId": "<string>",
  "isOffCycle": true,
  "periodStart": "<string>",
  "periodEnd": "<string>",
  "payDate": "<string>",
  "runType": {},
  "offCycleReason": "<string>",
  "retroEffectiveDate": "<string>",
  "retroReason": "<string>",
  "referencePayrollRunId": "<string>",
  "settlementSnapshot": {},
  "taxRemittanceDocumentUrl": "<string>",
  "taxRemittanceArtifactId": "<string>",
  "payslips": [
    {
      "payrollRunId": "<string>",
      "payrollRun": "<unknown>",
      "employeeId": "<string>",
      "employee": {},
      "basicSalary": 123,
      "allowances": {},
      "deductions": {},
      "grossPay": 123,
      "netPay": 123,
      "currency": "<string>",
      "payoutCurrency": "<string>",
      "employerLegalName": "<string>",
      "disbursementQueuedAt": "2023-11-07T05:31:56Z",
      "disbursementReference": "<string>",
      "disbursementError": "<string>",
      "documentPublicUrl": "<string>",
      "documentContentHash": "<string>",
      "documentArtifactId": "<string>",
      "documentReadyAt": "2023-11-07T05:31:56Z",
      "id": "<string>",
      "createdAt": "2023-11-07T05:31:56Z",
      "updatedAt": "2023-11-07T05:31:56Z",
      "deletedAt": "2023-11-07T05:31:56Z"
    }
  ],
  "id": "<string>",
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z",
  "deletedAt": "2023-11-07T05:31:56Z"
}

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
companyId
string<uuid>
required

Company ID (from FluideAuth)

Example:

"c0a80123-..."

month
number
required

Payroll period month (1-12)

Required range: 1 <= x <= 12
Example:

3

year
number
required

Payroll period year

Example:

2026

periodStart
string

Inclusive period start (ISO date)

Example:

"2026-03-01"

periodEnd
string

Inclusive period end (ISO date)

Example:

"2026-03-15"

payDate
string

Scheduled pay date (ISO date)

Example:

"2026-03-16"

runType
enum<string>
default:SCHEDULED
Available options:
SCHEDULED,
OFF_CYCLE
offCycleReason
string

Required when runType is OFF_CYCLE

Maximum string length: 255
clientIdempotencyKey
string

Client-supplied idempotency key for off-cycle runs (dedupes retries)

Maximum string length: 128
forceRecalculate
boolean
default:false

If true, recompute when prior run failed/processing (immutability preserved after validation)

employeeIds
string<uuid>[]

Payroll employee UUIDs to include. Omit for all active employees. Must match an existing run unless forceRecalculate is true.

Minimum array length: 1
cycleId
string<uuid>

Reusable payroll cycle template to seed period and roster

Response

Successful response