personalId. If an employee with the same personalId already exists in the company, that employee is updated. If the personalId does not exist, a new employee is created.4xx error. Instead, validation errors are returned per employee in the response body. An empty response array means all employees were processed successfully.api-version header. We recommend using api-version: 1.1 for improved stability and performance.subsidiary or subsidiaryCode.email or phone) must be provided.grossSalary or netSalary.netSalary is provided, it is used as the source of truth for internal calculations and grossSalary is ignored.grossSalary is provided, netSalary is calculated automatically.email, phone or IBAN values are automatically set to null.personalId and email values. If duplicate values are sent in the same request, only the last repeated record is processed.null, "", or 0, including for salary fields, as these may cause validation errors.curl --location 'https://api-public.payflow.es/employees' \
--header 'api-version: 1.1' \
--header 'authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data-raw '[
{
"payrollId": "Emp01",
"firstName": "John",
"lastName": "Doe",
"documentType": "DNI",
"personalId": "12345678X",
"iban": "ES0000000000000000000000",
"grossSalary": 1500,
"restrictedAmount": 0,
"startDate": "2025-06-01",
"email": "john.doe@payflow.es",
"address": "Employee address",
"phone": "+34 600 00 00 00",
"status": "active",
"subsidiary": "1"
},
{
"payrollId": "Emp02",
"firstName": "Jane",
"lastName": "Doe",
"documentType": "DNI",
"personalId": "12345678Y",
"iban": "ES1000000000000000000000",
"grossSalary": 1400,
"restrictedAmount": 0,
"startDate": "2025-06-01",
"email": "jane.doe@payflow.es",
"address": "Employee address",
"phone": "+34 610 00 00 00",
"status": "active",
"subsidiary": "1"
},
{
"payrollId": "Emp03",
"firstName": "Jack",
"lastName": "Doe",
"documentType": "DNI",
"personalId": "12345678Z",
"iban": "ES2000000000000000000000",
"grossSalary": 1250,
"restrictedAmount": 0,
"startDate": "2025-06-01",
"email": "jack.doe@payflow.es",
"address": "Employee address",
"phone": "+34 620 00 00 00",
"status": "active",
"subsidiary": "1"
}
]'{
"created": [
{
"personalId": "12345678X",
"id": 1
}
],
"updated": [
{
"personalId": "12345678Y",
"id": 2
}
],
"error": [
{
"personalId": "12345678Z",
"message": "Employee is on the blacklist"
}
]
}