Crear usuario
POST
/api/v1/users Da de alta un empleado en tu empresa (datos de cuenta). Solo email y full_name son obligatorios. La contraseña es opcional: si no la envías, el empleado la fija con "He olvidado mi contraseña"; si la envías, mínimo 8 caracteres. Crear un usuario con role="admin" requiere que la clave actúe como un administrador. El email debe ser único. Devuelve la ficha del usuario creado (201).
Cuerpo (JSON)
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
email | string | Sí | Email de acceso (único). |
full_name | string | Sí | Nombre completo. |
password | string | No | Contraseña inicial (mín. 8). Si se omite, el empleado la fija por reset. |
role | string | No | "member" (por defecto) o "admin" (requiere clave admin). |
department_id | string | No | Departamento (id) al que pertenece. |
work_center_id | string | No | Sede / centro de trabajo (id). |
hire_date | string | No | Fecha de alta (YYYY-MM-DD). |
vacation_days | integer | No | Días de vacaciones anuales. Por defecto el de la empresa. |
works_holidays | boolean | No | Si trabaja en festivos. |
remote_work_allowed | boolean | No | Si puede fichar en modalidad remota. |
dni | string | No | DNI/NIE: de sus dígitos se deriva el identificador de kiosko. |
phone | string | No | Teléfono: de sus últimos 4 dígitos se deriva el PIN inicial de kiosko. |
Ejemplo
Sustituye db_live_tu_clave por tu clave.
curl -s -X POST -H "Authorization: Bearer db_live_tu_clave" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","full_name":"Lucía Prieto Vega","department_id":"dept-estm","work_center_id":"wc-madrid"}' \
"https://api.dutybeat.com/api/v1/users" | jq Respuesta de ejemplo
Lo que imprime cada snippet al ejecutarlo: cURL devuelve el JSON crudo; los snippets de Python y PowerShell piden campos concretos, así que su salida es la de cada uno.
{
"data": {
"id": "u-nuevo",
"full_name": "Lucía Prieto Vega",
"email": "[email protected]",
"role": "member",
"status": "active",
"hire_date": null,
"vacation_days": 23,
"works_holidays": false,
"remote_work_allowed": false,
"overtime_compensation": null,
"overtime_comp_expiry": null,
"created_at": "2026-07-11T10:00:00.000Z",
"has_photo": false,
"department": {
"id": "dept-estm",
"name": "Estructuras – Madrid"
},
"work_center": {
"id": "wc-madrid",
"name": "Madrid – Sede central"
},
"profile": {
"phone_company": null,
"phone_personal": null,
"personal_email": null,
"birth_date": null,
"nationality": null,
"dni": null,
"dni_expiry": null,
"address": null,
"city": null,
"postal_code": null,
"passport_number": null,
"passport_issue": null,
"passport_expiry": null,
"health_insurance": null,
"iban": null,
"swift": null,
"country": null,
"company_name": null,
"company_cif": null,
"ssn": null,
"qualifications": []
},
"folders": null
}
}