https://app.gestionesala.com/api/v1. Autenticazione: header Authorization: Bearer gsk_... su ogni richiesta.
Specifica sorgente: openapi.yaml.
Recupera la chiave API corrente
GET /me
Risposte
Campi della risposta
Verifica lo stato del servizio
GET /health
Verifica che il servizio e il database rispondano. Non richiede autenticazione.
Risposte
Campi della risposta
Recupera la specifica OpenAPI
GET /openapi.json
Restituisce la specifica OpenAPI 3.1 di questa API. Non richiede autenticazione.
Risposte
Elenca i locali accessibili alla chiave
GET /venues
Scope: venues:read
Parametri
Risposte
Campi della risposta
Recupera un locale
GET /venues/{id}
Scope: venues:read
Parametri
Risposte
Campi della risposta
Elenca i turni di un locale
GET /venues/{id}/shifts
Scope: venues:read
Parametri
Risposte
Campi della risposta
Elenca le chiusure di un locale
GET /venues/{id}/closures
Scope: venues:read
Parametri
Risposte
Campi della risposta
Elenca le sale di un locale
GET /venues/{id}/areas
Scope: floor:read
Parametri
Risposte
Campi della risposta
Elenca i tavoli della pianta attiva
GET /venues/{id}/tables
Scope: floor:read
Parametri
Risposte
Campi della risposta
Elenca le piante di un locale
GET /venues/{id}/floor-plans
Scope: floor:read
Parametri
Risposte
Campi della risposta
Recupera una pianta
GET /venues/{id}/floor-plans/{planId}
Scope: floor:read
Parametri
Risposte
Campi della risposta
Recupera lo stato della sala
GET /venues/{id}/floor
Scope: floor:read e reservations:read
Parametri
Risposte
Campi della risposta
Elenca le regole di durata del tavolo
GET /venues/{id}/turn-time-rules
Scope: venues:read
Parametri
Risposte
Campi della risposta
Elenca le regole di ritmo degli arrivi
GET /venues/{id}/pacing-rules
Scope: venues:read
Parametri
Risposte
Campi della risposta
Elenca i tag di servizio
GET /service-tags
Scope: guests:read
Parametri
Risposte
Campi della risposta
Verifica la disponibilità
GET /availability
Scope: reservations:read
Parametri
Risposte
Campi della risposta
Elenca gli orari disponibili
GET /availability/slots
Scope: reservations:read. Ogni orario, a passi di 15 minuti dall’apertura del turno, è un orario in cui una prenotazione verrebbe accettata in questo momento.
Parametri
Risposte
Campi della risposta
Elenca i giorni disponibili
GET /availability/days
Scope: reservations:read. Intervallo di al massimo 62 giorni, estremi inclusi.
Parametri
Risposte
Campi della risposta
Elenca le prenotazioni
GET /reservations
Scope: reservations:read
Parametri
Risposte
Campi della risposta
Crea una prenotazione
POST /reservations
Scope: reservations:write
Parametri
Body (JSON)
Risposte
Campi della risposta
Recupera una prenotazione
GET /reservations/{id}
Scope: reservations:read
Parametri
Risposte
Campi della risposta
Aggiorna una prenotazione
PATCH /reservations/{id}
Scope: reservations:write. Conferma, sposta o cambia stato, tavolo o ospite. Gli stati della sala (arrived, seated, released, completed, no_show) e tableId/tableCombinationId chiedono anche floor:write. Per annullare si usa DELETE.
Parametri
Body (JSON)
Risposte
Campi della risposta
Annulla una prenotazione
DELETE /reservations/{id}
Scope: reservations:write. Porta la prenotazione allo stato cancelled. Se è già cancelled, risponde 200 senza effetti. Dagli stati seated, released, completed e no_show risponde 409 conflict con details.allowedTransitions.
Parametri
Risposte
Campi della risposta
Elenca le voci della lista d’attesa
GET /waitlist
Scope: waitlist:read
Parametri
Risposte
Campi della risposta
Crea una voce in lista d’attesa
POST /waitlist
Scope: waitlist:write
Parametri
Body (JSON)
Risposte
Campi della risposta
Recupera una voce della lista d’attesa
GET /waitlist/{id}
Scope: waitlist:read
Parametri
Risposte
Campi della risposta
Aggiorna una voce della lista d’attesa
PATCH /waitlist/{id}
Scope: waitlist:write. Modifica coperti o fascia oraria. Una voce già richiamata torna in attesa. Una voce convertita o rimossa risponde 409.
Parametri
Body (JSON)
Risposte
Campi della risposta
Rimuovi una voce dalla lista d’attesa
DELETE /waitlist/{id}
Scope: waitlist:write. Porta la voce allo stato cancelled ed emette l’evento waitlist_entry_cancelled. La richiesta ripetuta non ha effetti; una voce già convertita risponde 409.
Parametri
Risposte
Campi della risposta
Converti una voce in prenotazione
POST /waitlist/{id}/convert
Scope: waitlist:write e reservations:write. La prenotazione ha lo stesso ospite e gli stessi coperti; l’orario è quello del richiamo, se c’è stato, altrimenti l’inizio della fascia. Una voce già convertita risponde 200 con la sua prenotazione.
Parametri
Risposte
Campi della risposta
Elenca gli ospiti
GET /guests
Scope: guests:read
Parametri
Risposte
Campi della risposta
Crea o aggiorna un ospite
POST /guests
Scope: guests:write. Crea l’ospite o aggiorna quello con lo stesso telefono. Risponde 201 se l’ospite è nuovo, 200 se il telefono esiste già (i campi inviati vengono scritti) o se la stessa Idempotency-Key ritrova la richiesta precedente.
Parametri
Body (JSON)
Risposte
Campi della risposta
Cerca un ospite per telefono
GET /guests/lookup
Scope: guests:read
Parametri
Risposte
Campi della risposta
Recupera un ospite
GET /guests/{id}
Scope: guests:read
Parametri
Risposte
Campi della risposta
Aggiorna un ospite
PATCH /guests/{id}
Scope: guests:write. Aggiorna la scheda, i consensi e i tag di campagna. null o "" rimuove un campo. Se SQUADD è collegato all’organizzazione, consents e campaignTags appartengono a SQUADD e la modifica risponde 403.
Parametri
Body (JSON)
Risposte
Campi della risposta
Elimina un ospite
DELETE /guests/{id}
Scope: guests:write. Sposta l’ospite nel Cestino; dopo 30 giorni viene eliminato definitivamente.
Parametri
Risposte
Imposta i tag di servizio di un ospite
PUT /guests/{id}/tags
Scope: guests:write. Sostituisce i tag dell’ospite; i nomi vengono dal catalogo (GET /service-tags). [] li rimuove tutti.
Parametri
Body (JSON)
Risposte
Campi della risposta
Recupera la scheda di servizio di un ospite
GET /guests/{id}/service-card
Scope: guests:read. Nome, allergie e tag di servizio dell’ospite.
Parametri
Risposte
Campi della risposta
Elenca gli eventi
GET /events
Scope: events:read. Ogni evento ha la stessa busta dei webhook.
Parametri
Risposte
Campi della risposta
Recupera il consuntivo di un periodo
GET /reports/period
Scope: reports:read. Una riga per giorno del periodo.
Parametri
Risposte
Campi della risposta
Recupera la chiusura di fine serata
GET /reports/eod
Scope: reports:read. Include il confronto con lo stesso giorno della settimana precedente.
Parametri
Risposte
Campi della risposta
Esporta le prenotazioni
GET /exports/reservations
Scope: reports:read e reservations:read. Risposta in streaming: CSV (RFC 4180) o una prenotazione JSON per riga.
Parametri
Risposte
Formati della risposta:
text/csv, application/x-ndjson
Campi della risposta
Elenca le consegne dei webhook
GET /webhook-deliveries
Scope: webhooks:read. Le consegne con status=discarded formano la coda di scarto.
Parametri
Risposte
Campi della risposta
Reinvia una consegna
POST /webhook-deliveries/{id}/redeliver
Scope: webhooks:write. Rimette in coda una consegna conclusa, con la stessa chiave di idempotenza.
Parametri
Risposte
Campi della risposta
Elenca le destinazioni dei webhook
GET /webhook-endpoints
Scope: webhooks:read. Le destinazioni dei locali accessibili alla chiave.
Parametri
Risposte
Campi della risposta
Invia un evento di prova
POST /webhook-endpoints/test
Scope: webhooks:write. Invia subito un evento di prova firmato, fuori dalla coda: nessun nuovo tentativo, l’esito è nella risposta.
Body (JSON)
Risposte
Campi della risposta
Ruota il segreto di firma
POST /webhook-endpoints/{id}/rotate-secret
Scope: webhooks:write. Genera un nuovo segreto di firma; il precedente resta valido per overlapMinutes minuti.
Parametri
Body (JSON)
Risposte
Campi della risposta
Importa ospiti
POST /imports/guests
Scope: imports:write. Fino a 1000 righe per richiesta. Crea o aggiorna ogni ospite per telefono. Una riga storta non ferma le altre: finisce in rejections col motivo. Chi importa anche le prenotazioni passate non manda visitCount/noShowCount (si conterebbero due volte).
Parametri
Body (JSON)
Risposte
Campi della risposta
Importa prenotazioni
POST /imports/reservations
Scope: imports:write. Fino a 1000 righe per richiesta, passate e future. Origine import. Il passato entra nel suo stato finale, senza controllo di disponibilità e senza tavolo; il futuro passa dal motore come ogni prenotazione. Nessuna automazione e nessun webhook partono.
Parametri
Body (JSON)
Risposte
Campi della risposta
Recupera un import
GET /imports/{id}
Scope: imports:write. Restituisce il resoconto di un import.

