Integrazioni più comuni: come fare per
Pattern di integrazione più comuni tra il controllo accessi LabKey e gestionali, PMS, piattaforme di prenotazione e di pagamento, con esempi reali già in produzione.
Lo schema tecnico è semplice e robusto, puoi collegare i tuoi software allo strato di API della tua installazione e governarla in autonomia.

La struttura API permette di effettuare le operazioni simulando quasi la totalità delle funzioni del pannello di manage che diamo a corredo del KIT. Tutte le chiamate devono essere attivate e provenire da un IP autorizzato.
Di seguito trovi la guida completa a tutte le chiamate disponibili, organizzate per area funzionale. La stessa documentazione è consultabile anche in formato interattivo su Postman: clicca qui!.
NB: è disponibile anche una versione corazzata del servizio di API (API PRO) che permette di avere i log delle chiamate API e di effettuare la chiamata di apertura da remoto — vedi la sezione Api Pro o contattaci per saperne di più.
Per esempi pratici di integrazione con gestionali, PMS, piattaforme di prenotazione e di pagamento, consulta Integrazioni più comuni: come fare per.
Tutte le chiamate (ad eccezione della verifica di stato) richiedono un token Bearer, ottenuto tramite la chiamata authorize e passato come header nelle richieste successive.
authorize.authorize: IP non autorizzato o secret_key errata (invalid_access), credenziali errate (invalid_credentials), errore generico (could not create token).invalid_token). Eventuali errori specifici sono indicati nel campo messages della risposta JSON.POST /api/v2/authorize — Ottieni il tokenRestituisce il token Bearer da usare per tutte le chiamate successive.
email (email dell’operatore), password (password dell’operatore), secret_key (associata all’IP autorizzato, si trova nel pannello nella sezione API / Setup)tokeninvalid_credentials (email o password errate), invalid_credentials2 (IP non autorizzato o secret_key errata), invalid_access1 (secret_key mancante)GET /api/v2/ — Test di statoVerifica che il pannello sia attivo e funzionante (stampa Test). Non richiede autenticazione né parametri.
PUT /api/v2/adduser — Crea nuovo utenteCrea un nuovo utente sul pannello.
name (nome), surname (cognome)email, phone, prefix (prefisso nazionale urlencoded, es. +39 → %2b39), tags (array; ogni virgola viene sostituita con un underscore), status (1 = abilitato, 0 = disabilitato), fields (array di campi aggiuntivi personalizzati nel formato fields[id_campo]=valore)PUT /api/v2/updateuser — Modifica utenteAggiorna i dati di un utente esistente.
user_id, name, surnameemail, phone, prefix, tags, status (1 = abilitato, 0 = disabilitato), fields (array di campi aggiuntivi, stesso formato di AddUser)DELETE /api/v2/deleteuser — Elimina utenteElimina un utente dal pannello.
user_idGET /api/v2/getusers — Elenco utentiRestituisce i dati di tutti gli utenti presenti sul pannello, oppure di uno specifico se viene passato il parametro opzionale.
user_id, tags (filtra gli utenti per tag), getGrantInfo (se 1, include anche i dettagli degli accessi associati)GET /api/v2/users/getStatus — Stato utenteRestituisce se un utente è abilitato o disabilitato.
user_idPOST /api/v2/users/changeStatus — Cambia stato utente (non ancora disponibile)Se status = 1 l’utente viene abilitato agli accessi, se status = 0 viene disabilitato.
user_id, status (1 = abilitato, 0 = disabilitato)GET /api/v2/getGroup — Elenco gruppiRestituisce i dati di tutti i gruppi presenti sul pannello, oppure di uno o più specifici se viene passato il parametro opzionale.
group_id (può essere un array)POST /api/v2/grantAccessGroup — Abilita accesso a un gruppoAbilita l’accesso di uno o più utenti a uno o più gruppi indicati, creando l’associazione utente-gruppo.
user_id (può essere un array), group_id (può essere un array)POST /api/v2/dropAccessGroup — Revoca accesso a un gruppoRevoca i permessi di accesso di un utente appartenente a un gruppo, rimuovendo l’associazione utente-gruppo.
user_id (può essere un array), group_id (può essere un array)GET /api/v2/getcredits — Saldo creditiRestituisce il saldo crediti disponibile.
GET /api/v2/getprices — Listino prezziRestituisce il listino prezzi per la ricarica dei crediti.
POST /api/v2/recharge — Ricarica creditiEffettua una ricarica di credito.
user_id, amount (es. 10.50)GET /api/v2/getunusednfc — Chiavi NFC libereRestituisce l’elenco delle chiavi NFC non associate a nessun utente. Nessun parametro richiesto.
GET /api/v2/getallnfc — Elenco chiavi NFCRestituisce i dati relativi a tutte le chiavi NFC presenti sul pannello, associate o meno.
limit, offsetoffset usato senza limitPUT /api/v2/addkey — Inserisci chiave NFCInserisce una nuova chiave NFC.
nfc_key_code (codice RFID letto con un lettore standard: verrà convertito secondo lo standard LabKey — non usare un codice preso da un log accessi), nfc_key_name (nome da associare alla chiave)force_hex (forza la conversione del codice da stringa esadecimale; se omesso, la conversione avviene automaticamente solo se il codice contiene almeno una lettera)PUT /api/v2/addkey2user — Associa chiave NFC a utenteAssocia una chiave NFC a uno specifico utente.
user_id, nfc_key_idDELETE /api/v2/deletekey — Elimina chiave NFCElimina una chiave NFC.
nfc_key_code (codice RFID convertito secondo lo standard LabKey, es. 1234567890 → 210215073)nfc_key_code mancanteGET /api/v2/getnfcdetails — Dettagli chiave NFCRestituisce i dettagli relativi a una chiave NFC.
nfc_key_code (codice convertito secondo lo standard LabKey)POST /api/v2/editnfc — Modifica chiave NFCModifica i dettagli di una chiave NFC.
nfc_key_code, namenfc_key_code non trovato o mancante, name mancantePOST /api/v2/edittastierino — Modifica codice tastierinoCambia il codice di un tastierino (pinpad).
old_pinpad_key_code (vecchio codice da sostituire), new_pinpad_key_code (nuovo codice)POST /api/v2/updatepinpad — Aggiorna codice tastierino per utenteAggiorna il codice tastierino selezionando l’utente.
user_id, new_pinpad_key_codePOST /api/v2/getqrcode — Genera QR CodeGenera un QR Code per l’utente selezionato, utilizzabile a partire dalla “messagge string”.
user_idimage (se 1, restituisce l’immagine del QR Code codificata in base64), with_background (richiede image=1; se 1, aggiunge uno sfondo decorativo all’immagine)POST /api/v2/getfasturl — Genera Fast URLGenera la Fast URL per l’utente selezionato, utilizzabile a partire dal campo “fast_url”.
user_idGET /api/v2/getallpinpad — Elenco codici tastierinoRestituisce tutti i codici tastierino e i relativi dettagli.
limit, offsetlimit che offset oppure lasciarli entrambi vuoti; limit/offset devono essere interiPOST /api/v2/getGrantInfo — Dettagli di un accessoRestituisce i dati relativi all’accesso specificato.
involved_associations (uno o più ID restituiti dalla chiamata grantaccess)involved_associations validoinvolved_associations non trovataPOST /api/v2/automategetGrantInfo — Dettagli accesso semplificatoChiamata di comodo per semplificare l’uso di getGrantInfo.
user_id (può essere un array), unique_name (può essere un array — nome della LabKey selezionata)GET /api/v2/getuservarcodetails — Dettagli varchi utenteRestituisce tutti i dettagli sui varchi associati all’utente selezionato.
user_idPOST /api/v2/grantaccess — Abilita accessoAbilita l’accesso di un utente. Per configurare una combo di più tecnologie (NFC, tastierino, barcode) è possibile richiamare questa API più volte cambiando la key_id.
user_id, key_id (ID della chiave d’accesso associata all’utente: usare nfc_key_id per NFC/Pocket, pinpad_key_id per tastierino/barcode), data (stringa JSON con i parametri di ogni varco: intervallo date datei/datef, orari houri/hourf, giorni della settimana mo,tu,we,th,fr,sa,su, giorni festivi tv, command_device_id, id_rele, technology)check_overalapping, force_same_idrele_commanddeviceidPOST /api/v2/editaccess — Modifica accessoChiamata di comodo che esegue in sequenza dropaccess e grantaccess, restituendo un nuovo involved_associations per l’utente. Non è un’operazione atomica: se dropaccess termina correttamente ma grantaccess fallisce, le associazioni risultano comunque eliminate.
involved_associations (può essere un array), user_id, key_id, data (stringa JSON, stesso formato di GrantAccess)DELETE /api/v2/dropaccess — Revoca accessoRevoca i permessi di accesso.
involved_associations (codice ottenuto dalla risposta di grantaccess)POST /api/v2/isAccessible — Verifica accessibilità varcoVerifica se un varco è accessibile in un determinato intervallo di tempo.
unique_name, from_date (timestamp), to_date (timestamp), id_releGET /api/v2/antipassback/ — Dettagli contatoreRestituisce i dettagli sulla gestione contatori per l’utente e il varco indicati. La risposta è un array con il dettaglio per ogni relè.
user_id, unique_nameis_active (1/0, contatore attivo o meno), has_total/number_total (limite totale accessi), has_day/number_day (limite giornaliero), has_week/number_week (limite settimanale), has_month/number_month (limite mensile)POST /api/v2/antipassback/update_or_create — Imposta contatoreCrea o aggiorna la configurazione del contatore per uno o più relè.
user_id, data (stringa JSON con, per ogni LabKey e relè, i campi is_active, has_total/number_total, has_day/number_day, has_week/number_week, has_month/number_month)is_active è impostato, si può attivare solo uno tra has_total, has_day, has_week o has_month — non è possibile attivarli contemporaneamente.GET /api/v2/getlabkeys — Elenco LabKeyRestituisce i dettagli delle centraline/LabKey.
unique_name, labkey_id, key_tipeGET /api/v2/getbuildings — Elenco struttureRestituisce le informazioni sulle strutture associate al pannello.
structure_id, structure_name, referentGET /api/v2/getlogs — Log accessiRestituisce i log degli accessi.
from (data inizio), to (data fine), unique_name (nome della LabKey), labkey_id, user_id, limit (paginazione), offset (paginazione)POST /api/v2/sendemail — Invia emailInvia una email a un cliente, ad esempio con i dettagli di accesso.
user_id (destinatario), operator_email (mittente)message (messaggio personalizzato; se omesso viene inviato un messaggio predefinito), cc_emails (array di indirizzi in copia), show_sender_name, send_permissions_list, send_fast_url, send_qr_codeAlerts — Notifiche in tempo realePermette di ricevere notifiche automatiche verso un proprio endpoint ogni volta che si verifica un evento (es. un accesso). Il webhook si configura dal pannello di Manage, nella sezione Alert → Alert Standard.
user_id, full_name, id_log, key_code, result_boolean (accesso consentito o meno), timestamp, is_log_offline, unique_name, labkey_id, tags, event_typeGestione dei campi personalizzati che si possono associare all’anagrafica utente (vedi anche Inserimento nuovo utente).
GET /api/v2/customfields — Elenco campiRestituisce l’elenco dei campi aggiuntivi con i relativi attributi.
limit, offsetGET /api/v2/customfields/{id_field} — Dettaglio campoRestituisce i dettagli di uno specifico campo aggiuntivo.
GET /api/v2/customfields/count — Conteggio campiRestituisce il numero di campi aggiuntivi salvati.
POST /api/v2/customfields/create — Crea campoCrea un nuovo campo aggiuntivo.
type_field (text o date), name_field (max 255 caratteri)order (numerico), is_required (1 = obbligatorio in fase di compilazione utente), can_disable_user (1 = sì; utilizzabile solo con type_field=date — il sistema disabilita automaticamente l’utente a mezzanotte se la data inserita è passata)POST /api/v2/customfields/{id_field}/update — Modifica campoAggiorna un campo aggiuntivo esistente. Stessi parametri di create.
GET /api/v2/customfieldsuser/{id_user}/ — Elenco campi per utenteRestituisce tutti i campi aggiuntivi valorizzati per un utente.
limit, offsetGET /api/v2/customfieldsuser/{id_user}/{id_field} — Valore campo per utenteRestituisce il valore di uno specifico campo aggiuntivo per l’utente indicato.
POST /api/v2/customfieldsuser/{id_user}/{id_field}/create — Imposta valore campoCrea il valore di un campo aggiuntivo per l’utente.
value (max 255 caratteri)can_disable_user (0 = no, 1 = sì)POST /api/v2/customfieldsuser/{id_user}/{id_field}/update — Aggiorna valore campoAggiorna il valore di un campo aggiuntivo per l’utente. Stessi parametri di create.
Gestione dei modelli predefiniti per gli accessi ricorrenti (vedi anche Template).
GET /api/v2/templates/count — Conteggio templateRestituisce il numero di template salvati.
GET /api/v2/templates/ — Elenco templateRestituisce l’elenco dei template.
limit, offsetGET /api/v2/templates/detail — Dettaglio templateRestituisce il dettaglio di un template specifico.
template_idPOST /api/v2/templates/addAccessUser — Applica template a utenteApplica un template di accesso a un utente. Si può usare in due modi: indicando sia timestamp_start che timestamp_end (il sistema imposta inizio e fine accesso su questi valori), oppure indicando solo timestamp_start e lasciando che il sistema calcoli automaticamente la fine in base alle impostazioni del template.
user_id, template_idtimestamp_start (default: adesso), timestamp_endGestione delle festività (vedi anche Festività): durante gli intervalli configurati, i varchi selezionati aprono solo agli utenti ammessi.
GET /api/v2/festivita — Elenco festivitàRestituisce tutte le festività, oppure una specifica se viene passato l’ID.
idGET /api/v2/festivita/count — Conteggio festivitàRestituisce il numero di festività configurate.
idGET /api/v2/festivita/is_holiday — Verifica festivitàVerifica se una data/ora specifica ricade in un periodo festivo.
datetime (formato YYYY-MM-DD HH:MM:SS)unique_name, labkey_id, rele (array), user_idis_holiday (booleano)POST /api/v2/festivita/create — Crea festivitàCrea una nuova festività.
title, start_datetime (formato YYYY-MM-DD HH:MM:SS), end_datetime (formato YYYY-MM-DD HH:MM:SS)description, recurring (1 = ricorrente ogni anno), notification_email, monday…sunday (1 = attiva in quel giorno), varcos (array JSON di labkey_id/rele coinvolti), user_ids (array di utenti coinvolti)POST /api/v2/festivita/update — Modifica festivitàAggiorna una festività esistente. Stessi parametri opzionali di create.
idtitle, start_datetime, end_datetime, recurring, active (1 = abilitata, 0 = disabilitata), notification_email, monday…sunday, varcos, user_idsDELETE /api/v2/festivita/delete — Elimina festivitàElimina una festività.
idPattern di integrazione più comuni tra il controllo accessi LabKey e gestionali, PMS, piattaforme di prenotazione e di pagamento, con esempi reali già in produzione.