Updates multiple payrolls. Returns 200 on success, or 400 if any entry fails validation.
Headers
-
API token (can be retrieved from account settings)
-
ID of organization, for which the operation must be performed
Body
Required
-
Entity ID. If negative value, a new entity will be created
-
Organization ID
-
Creation date (format dd/MM/yyyy)
-
Payment date (format dd/MM/yyyy). Populated from createdOn on the client side before sending
-
Calendar year
-
Payroll month
Values are
JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER, orDECEMBER. -
Start date of the month period (format yyyy-MM-dd)
-
End date of the month period (format yyyy-MM-dd)
-
Staff entity ID
-
Contact entity ID linked to the staff member
-
Currency ID
-
Employee info ID
-
Delivery address for the payslip
-
Gross salary as string
-
Net salary as string
-
Payable amount as string
-
Description or notes
-
Payroll status
Values are
UNPAID,PAID,PARTIALLY_PAID, orWIRED. -
Staff payslip template ID
-
Journal entry ID linked to this payroll
-
Line numbers removed since last save
-
Request model for a payroll salary line
-
Request model for a payroll payment
curl \
--request POST 'https://wyzio.app/api-v1/payroll/batch' \
--header "Content-Type: application/json" \
--data '[{"id":12345678,"organizationId":12345678,"createdOn":"01/06/2026","paymentDate":"01/06/2026","calendarYear":2026,"monthType":"JANUARY","monthStartDate":"2026-06-01","monthEndDate":"2026-06-30","staffEntityId":12345678,"contactEntityId":12345678,"currencyId":12345678,"employeeInfoId":12345678,"address":{"id":12345678,"name":"Main Office","line1":123,"line2":"Suite 4B","city":"Geneva","region":{"id":206},"countryCode2":"CH","countryId":12345678,"postCode":1200,"houseNumber":42,"toTheAttentionOf":"John Doe","position":1,"service":"HR"},"grossSalary":5000.0,"netSalary":3500.0,"payable":3500.0,"description":"June 2026 payroll","status":"DRAFT","staffPayslipId":12345678,"journalEntryId":12345678,"removedPayrollLineNumbers":[1],"payrollLines":[{"id":12345678,"payrollEntityId":12345678,"payslipLineEntityId":12345678,"number":1,"localizations":{"id":12345678,"en":"English translation","fr":"Traduction française","de":"Deutsche Übersetzung","it":"Traduzione in italiano"},"payslipValueType":"AMOUNT","payslipLineType":"EARNING","isAutomaticallyAdded":false,"isChanged":false,"isShownOnSalarySlip":true,"description":"Bonus","baseAmount":5000.0,"employeeRate":5.25,"employerRate":8.0,"employeeAmount":262.5,"employerAmount":400.0,"specialAttributionType":"NONE","orgEmployeeGroupId":12345678}],"payrollPayments":[{"id":12345678,"payrollEntityId":12345678,"requestedDate":"01/06/2026","plannedDate":"05/06/2026","sentDate":"05/06/2026","valueDate":"05/06/2026","requestedAmount":3500.0,"paidAmount":3500.0,"bankCharges":5.0,"payableByAccountId":12345678,"payableToBankId":12345678}]}]'
# Headers
# Payload
[
{
"id": 12345678,
"organizationId": 12345678,
"createdOn": "01/06/2026",
"paymentDate": "01/06/2026",
"calendarYear": 2026,
"monthType": "JANUARY",
"monthStartDate": "2026-06-01",
"monthEndDate": "2026-06-30",
"staffEntityId": 12345678,
"contactEntityId": 12345678,
"currencyId": 12345678,
"employeeInfoId": 12345678,
"address": {
"id": 12345678,
"name": "Main Office",
"line1": 123,
"line2": "Suite 4B",
"city": "Geneva",
"region": {
"id": 206
},
"countryCode2": "CH",
"countryId": 12345678,
"postCode": 1200,
"houseNumber": 42,
"toTheAttentionOf": "John Doe",
"position": 1,
"service": "HR"
},
"grossSalary": 5000.0,
"netSalary": 3500.0,
"payable": 3500.0,
"description": "June 2026 payroll",
"status": "DRAFT",
"staffPayslipId": 12345678,
"journalEntryId": 12345678,
"removedPayrollLineNumbers": [
1
],
"payrollLines": [
{
"id": 12345678,
"payrollEntityId": 12345678,
"payslipLineEntityId": 12345678,
"number": 1,
"localizations": {
"id": 12345678,
"en": "English translation",
"fr": "Traduction française",
"de": "Deutsche Übersetzung",
"it": "Traduzione in italiano"
},
"payslipValueType": "AMOUNT",
"payslipLineType": "EARNING",
"isAutomaticallyAdded": false,
"isChanged": false,
"isShownOnSalarySlip": true,
"description": "Bonus",
"baseAmount": 5000.0,
"employeeRate": 5.25,
"employerRate": 8.0,
"employeeAmount": 262.5,
"employerAmount": 400.0,
"specialAttributionType": "NONE",
"orgEmployeeGroupId": 12345678
}
],
"payrollPayments": [
{
"id": 12345678,
"payrollEntityId": 12345678,
"requestedDate": "01/06/2026",
"plannedDate": "05/06/2026",
"sentDate": "05/06/2026",
"valueDate": "05/06/2026",
"requestedAmount": 3500.0,
"paidAmount": 3500.0,
"bankCharges": 5.0,
"payableByAccountId": 12345678,
"payableToBankId": 12345678
}
]
}
]
{
"items": [
{
"errorCode": {
"errorCode": "NO_ERROR",
"errorDetailValues": [
{
"errorCode": "string",
"fieldName": "string",
"data": "string",
"isSevere": true
}
]
},
"possibleWorkflows": [
{
"id": 42,
"name": "string"
}
],
"error": true,
"severeError": true
}
]
}