Autenticazione
Ogni chiamata usa una chiave Bearer per-locale. La generi nell'app: Impostazioni → Integrazioni → Nuova chiave. La chiave (brg_…) si vede una sola volta e a riposo è conservata solo come hash SHA-256. Revocabile in qualsiasi momento.
Authorization: Bearer brg_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Base URL: https://brigata.app/api/v1 · Rate limit: 300 richieste/ora per chiave (HTTP 429 al superamento).
Scopi
Ogni chiave concede solo gli scopi che scegli. Una chiamata fuori scopo risponde 403.
Endpoint
| Metodo | Percorso | Scopo | Descrizione |
|---|---|---|---|
| GET | /v1/menu | menu:read | Sezioni e piatti visibili online (prezzo canale, allergeni). |
| GET | /v1/prenotazioni?data=YYYY-MM-DD | prenotazioni:read | Prenotazioni del giorno. |
| POST | /v1/prenotazioni | prenotazioni:write | Crea una prenotazione (data, ora, coperti, cliente…). |
| GET | /v1/vendite?da=&a= | vendite:read | Serie giornaliera e totali del periodo. |
| GET | /v1/report?da=&a= | report:read | Totali, per categoria, metodi di pagamento, top piatti. |
| GET | /v1/fatture?da=&a= | fatture:read | Fatture emesse (numero, cliente, totale, stato). |
| GET | /v1/clienti | clienti:read | Anagrafica clienti (ultimi 500 per visita). |
Esempio
curl https://brigata.app/api/v1/report?da=2026-07-01&a=2026-07-31 \ -H "Authorization: Bearer brg_xxxxxxxx…"
Webhook
Registra una o più destinazioni HTTPS (nell'app, sezione Integrazioni) e scegli gli eventi. Brigata invia un POST JSON a ogni evento; il retry orario riprova le consegne non riuscite.
Eventi
Firma
Ogni consegna porta l'header X-Brigata-Firma = HMAC-SHA256 (hex) del corpo grezzo col segreto della destinazione, più X-Brigata-Evento. Verifica così:
import crypto from "node:crypto";
function verifica(corpoGrezzo, firma, segreto){
const atteso = crypto.createHmac("sha256", segreto).update(corpoGrezzo).digest("hex");
return crypto.timingSafeEqual(Buffer.from(atteso), Buffer.from(firma));
}
Corpo: { "evento": "…", "creato": 1720000000000, "dati": { … } }
Note
- Commission-free: l'API non aggiunge commissioni sulle transazioni.
- Privacy: dati in UE; esporta o revoca gli accessi quando vuoi.
- Catene: i locali dello stesso gruppo possono essere consolidati (contattaci per l'accesso multi-sede).