Ir al contenido
Fusehub
ACS

Actualizar persona

PUT
/api/integration/v1/sites/{site_id}/acs/persons/by-external/{external_person_id}

Modifica una persona y envía los cambios a sus terminales. Se envía como multipart/form-data y solo cambian los campos que vengan; si no viene foto, se conserva la actual.

Autenticación

IntegrationKey
headerX-Integration-Key<token>

Tu clave de integración. Se crea en la consola de Fusehub, en Herramientas de desarrollo → API Keys.

site_id*Site Id

Código de la sede.

external_person_id*External Person Id

Identificador de la persona, el mismo que se envió al crearla.

multipart/form-data
  1. body
userType?|

normal (empleado) o visitor (visitante).

hasExpiration?|

true si el acceso vence; exige startTime y endTime. Con false no se envían fechas.

startTime?|

Inicio del acceso en hora local de la sede, por ejemplo 2026-10-06T09:00:00.

endTime?|

Fin del acceso en hora local de la sede, por ejemplo 2026-10-06T18:00:00.

accessGroupId?|

Código del grupo. Solo para empleados.

accessLevelId?|

Código del nivel de acceso. Solo para visitantes, en lugar de deviceSerials.

deviceSerials?|

Solo para visitantes: números de serie de los terminales, separados por coma. Fusehub arma un nivel de acceso temporal con sus puertas.

maxOpenDoorTime?|

Cantidad máxima de entradas del visitante (0 a 1000). 0 es sin límite.

name?|

Nombre completo.

givenName?|

Nombre.

familyName?|

Apellido.

photo?|

Foto de la cara en JPEG o PNG. Si no se envía, se conserva la actual.

Cuerpo de la respuesta

OK

application/json
  1. response
ok?Ok
Por defectotrue
person*
deviceLinks?array<>
accessLevels?array<>
directAccessLevels?array<>
groups?array<>
accessStatus?|

granted (tiene acceso), denied (no tiene niveles de acceso) o expired (su acceso venció).

sync?|

Resultado del envío a los terminales. Viene al crear, modificar o reenviar la persona.

[key: string]?any
Ejemplo de petición
curl -X PUT 'https://api.fusehub.lat/api/integration/v1/sites/string/acs/persons/by-external/string'
Ejemplo de respuesta
{  "ok": true,  "person": {    "id": "00000000-0000-4000-8000-000000000101",    "siteId": "00000000-0000-4000-8000-000000000044",    "externalPersonId": "invite-9001",    "name": "Invitado Demo",    "enabled": true,    "validFrom": "2026-10-06T09:00:00",    "validTo": "2026-10-06T18:00:00",    "userType": "visitor",    "maxOpenDoorTime": 3,    "accessStatus": "granted"  },  "deviceLinks": [],  "accessLevels": [    {      "id": "aa10c4d2-1e77-4b90-8c33-91f0a2b64d10",      "name": "Visitantes",      "kind": "permanent",      "doorBindings": [        {          "deviceId": "00000000-0000-4000-8000-000000000163",          "doorNos": [            1          ],          "deviceSerial": "DS-K1T343-ABC",          "serialNumber": "DS-K1T343-ABC",          "shortSerial": "ABC"        }      ]    }  ],  "directAccessLevels": [],  "groups": [],  "accessStatus": "granted",  "sync": {    "status": "synced",    "applied": 1,    "failed": 0,    "results": [      {        "deviceId": "00000000-0000-4000-8000-000000000163",        "serial": "DS-K1T343-ABC",        "deviceSerial": "DS-K1T343-ABC",        "shortSerial": "ABC",        "ok": true      }    ]  }}