NetFood API – Documentazione

API REST in sola lettura che espone i dati NetFood (Angel Roofbar).
Tutti gli endpoint richiedono autenticazione via API key.

BASE URL  →  https://angel.netfood.cloud/api

🔐 Autenticazione

Header (preferito) X-Api-Key: NetFood_Angel_2026!
Alternativa Authorization: Bearer NetFood_Angel_2026!

La chiave si configura nel Web.config sotto <appSettings> con il formato ApiKey_CHIAVE = NomeRistorante.
Risposta in caso di chiave mancante o errata: HTTP 401.

Endpoint

GET /api/daily-revenue Fatturato giornaliero aggregato

Parametri querystring

NomeTipoDefaultDescrizione
date_fromYYYY-MM-DD-7 giorniData inizio periodo
date_toYYYY-MM-DDoggiData fine periodo
date_basisdocument / fiscaldocumentdocument = campo data  |  fiscal = campo ChiusuraCassaData

Esempio chiamata

GET https://angel.netfood.cloud/api/daily-revenue?date_from=2026-05-01&date_to=2026-05-27 X-Api-Key: LA_TUA_CHIAVE

Risposta (200 OK)

[ { "sale_date": "2026-05-21", "receipt_count": 87, "total_revenue": 4250.50, "total_covers": 112, "takeaway_count": 8 } ]
GET /api/payment-breakdown Pagamenti suddivisi per metodo

Parametri querystring

NomeTipoDefaultDescrizione
date_fromYYYY-MM-DD-7 giorniData inizio periodo
date_toYYYY-MM-DDoggiData fine periodo
date_basisdocument / fiscaldocumentdocument = campo data  |  fiscal = campo ChiusuraCassaData

Esempio chiamata

GET https://angel.netfood.cloud/api/payment-breakdown?date_from=2026-05-01&date_to=2026-05-27

Risposta (200 OK)

[ { "sale_date": "2026-05-21", "payment_code": "C1", "payment_name": "Carta di Credito", "total_amount": 2845.30, "transaction_count": 54 }, { "sale_date": "2026-05-21", "payment_code": "CO", "payment_name": "Contanti", "total_amount": 1405.20, "transaction_count": 33 } ]
GET /api/products-sold Articoli venduti per giorno

Parametri querystring

NomeTipoDefaultDescrizione
date_fromYYYY-MM-DD-7 giorniData inizio periodo
date_toYYYY-MM-DDoggiData fine periodo
date_basisdocument / fiscaldocumentdocument = campo data  |  fiscal = campo ChiusuraCassaData

Esempio chiamata

GET https://angel.netfood.cloud/api/products-sold?date_from=2026-05-21&date_to=2026-05-21

Risposta (200 OK)

[ { "sale_date": "2026-05-21", "article_id": 1234, "article_name": "Spaghetti alla Carbonara", "total_qty": 12.0, "total_revenue":168.00 } ]
GET /api/recipes Ricette con legami ingredienti (Articoli_Legami_Scarico)

Parametri querystring

NomeTipoDefaultDescrizione
Nessun parametro — restituisce sempre tutti gli articoli attivi

Esempio chiamata

GET https://angel.netfood.cloud/api/recipes

Risposta (200 OK)

// Una riga per ogni coppia piatto → ingrediente [ { "dish_id": 1234, "dish_name": "Spaghetti alla Carbonara", "dish_category": "PRIMI", "ingredient_id": 5678, "ingredient_name": "Spaghetti", "quantity": 0.12, "unit": "kg" }, { "dish_id": 1234, "dish_name": "Spaghetti alla Carbonara", "dish_category": "PRIMI", "ingredient_id": 5679, "ingredient_name": "Guanciale", "quantity": 0.05, "unit": "kg" }, // Piatto senza ingredienti → riga placeholder { "dish_id": 9999, "dish_name": "Acqua", "dish_category": "BEVANDE", "ingredient_id": null, "ingredient_name": null, "quantity": 0, "unit": null } ]
GET /api/staff Anagrafica personale attivo

Parametri querystring

NomeTipoDefaultDescrizione
Nessun parametro — restituisce solo utenti con stato = 'A'

Esempio chiamata

GET https://angel.netfood.cloud/api/staff

Risposta (200 OK)

[ { "staff_id": 12, "first_name": "Luca", "last_name": "Bianchi", "username": "lbianchi", "tipo": "CAM", "hourly_cost":9.50, "stato": "A" } ]
GET /api/staff-clockings Timbrature del personale

Parametri querystring

NomeTipoDefaultDescrizione
date_fromYYYY-MM-DD-365 giorniData inizio periodo
date_toYYYY-MM-DDoggiData fine periodo

Esempio chiamata

GET https://angel.netfood.cloud/api/staff-clockings?date_from=2026-05-01&date_to=2026-05-27

Risposta (200 OK)

[ { "id_sys": 45678, "staff_id": 12, "clock_date": "2026-05-21", "clock_in": "18:30", "clock_out": "23:45", "minutes_worked":315, "minutes_late": 0, "stato": "A" } ]
GET /api/table-stats Statistiche fatturato per tavolo

Parametri querystring

NomeTipoDefaultDescrizione
date_fromYYYY-MM-DD-7 giorniData inizio periodo
date_toYYYY-MM-DDoggiData fine periodo
date_basisdocument / fiscaldocumentdocument = campo data  |  fiscal = campo ChiusuraCassaData

Esempio chiamata

GET https://angel.netfood.cloud/api/table-stats?date_from=2026-05-21&date_to=2026-05-21

Risposta (200 OK)

[ { "sale_date": "2026-05-21", "table_id": 7, "table_name": "Tavolo 7", "room_name": null, "receipt_count":1, "total_revenue":245.50, "total_covers": 4 } ]
GET /api/event-sales Fatture eventi (tipo FAT) — storico completo dal 2018

Parametri querystring

NomeTipoDefaultDescrizione
date_fromYYYY-MM-DD2018-01-01Data inizio (default: tutto lo storico)
date_toYYYY-MM-DDoggiData fine periodo
date_basisdocument / fiscaldocumentdocument = campo data  |  fiscal = campo ChiusuraCassaData

Esempio chiamata

GET https://angel.netfood.cloud/api/event-sales?date_from=2026-01-01&date_to=2026-05-27

Risposta (200 OK)

[ { "id_sys": 9876, "sale_date": "2026-05-15", "document_number": 42, "net_amount": 4500.00, "vat_amount": 495.00, "total_amount": 4995.00, "description": "Evento privato 80 persone", "client_id": 234, "paid": true } ]

Codici di risposta

200OK — dati restituiti
401API key mancante o non valida
400Parametro non valido
500Errore interno / DB non raggiungibile

Tutti gli errori restituiscono un body JSON: { "error": "descrizione" }

NetFood API · Angel Roofbar · .Net Informatica