1. Employee
Payflow API
Spain
  • Spain
  • Colombia
  • Peru
  • Guides
    • API Integration guide
  • Definitions
    • Employees
      • Employee Statuses
      • Salary Concepts
    • Payments
      • Payment Lifecycle
  • Explore our Public API
    • Auth & Health
      • Health
      • Test an API Key
    • Company
      • Retrieve your Company Details
    • Employee
      • Retrieve an Employee
        GET
      • Retrieve all Employees
        GET
      • Retrieve all Employees (V1.1)
        GET
      • Create an Employee
        POST
      • Upsert Employees in Bulk
        POST
      • Update an Employee by Personal ID
        PUT
      • Update an Employee by Payflow ID
        PUT
      • Update an Employee by Payroll ID
        PUT
    • Leaves
      • Retrieve all Employees on Leave
      • Create an Employee Leave
      • Remove an Employee Leave
    • Payments
      • Retrieve a Payment
      • Retrieve all Payments
      • Retrieve Employee Payments
      • Calculate Employee Available Amount
      • Request a Payment
      • Subscribe to Payment Updates
      • Mark Payments as Informed
    • Flexflow
      • Retrieve all Flexflow Transactions
      • Retrieve Employee Flexflow Transactions
  • Notifications Structure
    • Payment Updates
  • Schemas
    • Company
      • Company Response
    • Employee
      • ES | Create Employee Request
      • ES | Update Employee Request
      • ES | Employee Response
      • Create Employee Leave Request
    • Payment
      • Payment Response
      • Payment Response Convoluted
      • Payment Update
    • Flexflow
      • Employee Flexflow Transactions
    • Error
      • Generic Error Response
  1. Employee

Create an Employee

Production
https://api-public.payflow.es
Production
https://api-public.payflow.es
POST
https://api-public.payflow.es
/employee
Creates a new employee in the company.
Best Practice
For bulk employee creation or updates, use Upsert Employees in Bulk instead.
Bulk synchronization is more efficient, more consistent, and helps reduce validation errors. This endpoint should only be used for individual employee creation or specific integration cases.

Required rules#

Each employee must belong to a subsidiary. Provide either subsidiary or subsidiaryCode.
At least one valid contact method (email or phone) must be provided.

Salary handling#

Employees require a salary to access the EWA and Flexible Compensation benefits.
You may provide either grossSalary or netSalary.
If netSalary is provided, it is used as the source of truth for internal calculations and grossSalary is ignored.
If only grossSalary is provided, netSalary is calculated automatically.
Learn more
See the Salary Concepts guide for more information.

Validation behavior#

Invalid email, phone or IBAN values are automatically set to null.
Emails and personal IDs must be unique. Duplicate data returns a 409 Conflict error.
About optional fields
Omit optional fields that you do not want to set instead of sending placeholder values such as null, "", or 0, including for salary fields, as these may cause validation errors.

Request

Authorization
API Key
Add parameter in header
authorization
Example:
authorization: ********************
or
Body Params application/jsonRequired

Examples

Responses

🟢201
application/json
Bodyapplication/json

Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://api-public.payflow.es/employee' \
--header 'authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "payrollId": "Emp02",
    "firstName": "Jane",
    "lastName": "Doe",
    "documentType": "DNI",
    "personalId": "12345678B",
    "iban": "ES0000000000000000000000",
    "bic_swift": "swift code",
    "grossSalary": 1500,
    "restrictedAmount": 0,
    "startDate": "2025-06-01",
    "contractEnd": "2028-06-01",
    "email": "jane.doe@payflow.es",
    "address": "Employee address",
    "phone": "+34 600 00 00 00",
    "status": "active",
    "subsidiary": "ESA00000000"
}'
Response Response Example
{
    "id": 2
}
Modified at 2026-05-14 18:46:21
Previous
Retrieve all Employees (V1.1)
Next
Upsert Employees in Bulk
Built with