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 Email de acceso (único).
full_name string 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
  }
}

Prueba la demo

Déjanos tus datos y accede a tu entorno de prueba al instante.

Para acceder deberás leer y aceptar nuestra Política de Privacidad.

Política de Privacidad

Léela hasta el final para poder continuar.

Al solicitar la demo de DutyBeat tratamos los datos que nos facilitas (nombre, email y teléfono) con el único fin de crear tu entorno de prueba, facilitarte el enlace de acceso y atender tu solicitud comercial. La demo es solo para mayores de 18 años, lo que confirmas en el formulario.

Responsable: DutyBeat. Base jurídica: tu consentimiento y el interés legítimo en responder a tu solicitud. Conservación: el entorno de demo se elimina automáticamente al caducar; conservamos tus datos de contacto como lead comercial un máximo de 12 meses.

No cedemos tus datos a terceros salvo obligación legal ni para fines distintos a los descritos. Puedes ejercer tus derechos de acceso, rectificación, supresión, oposición, limitación y portabilidad escribiendo a [email protected].

Puedes consultar la versión completa en nuestra página de Política de Privacidad.

Al pulsar “He leído y acepto” confirmas haber leído esta información y consientes el tratamiento de tus datos para los fines indicados.