Riferimento API¶
API REST completa con 341 endpoint in 34 aree. Autenticazione tramite token JWT Bearer (vedere API REST).
Panoramica¶
| Area | Endpoint | Descrizione |
|---|---|---|
| Analytics | 5 | Analitica |
| ArticleImport | 13 | Importazione articoli |
| Articles | 15 | Articoli e gruppi articoli |
| Auth | 6 | Login, token, refresh |
| AutoBeleg | 14 | |
| BankTransfer | 7 | |
| Banking | 50 | FinTS, recupero conto, SEPA |
| CustomerGroups | 4 | Gruppi clienti |
| Customers | 16 | Anagrafica clienti, credito, documenti |
| Delivery | 18 | Servizio consegna |
| Dunning | 3 | Solleciti (3 livelli) |
| Export | 6 | DSFinV-K, GDPdU |
| Geocoding | 3 | Geocoding |
| Invoice | 18 | Fatture clienti, PDF |
| MenuCard | 9 | Gestione menù |
| OpenBons | 9 | Ordini aperti (servizio al tavolo) |
| OptionTemplates | 5 | Modelli di opzioni |
| Payments | 2 | Eseguire pagamenti |
| Receipts | 12 | Scontrini, storno |
| Reports | 7 | Report fatturato, articoli, personale |
| Reservations | 8 | Prenotazioni tavoli |
| SavedTransfer | 8 | |
| SepaMandate | 7 | Mandati SEPA |
| Spendings | 9 | Spese / Prelievi di contante |
| StockBookings | 4 | |
| StockInventory | 2 | |
| StockOrders | 5 | |
| Stocks | 5 | Gestione magazzino |
| Subscription | 7 | Abbonamenti |
| Tables | 20 | Tavoli, gruppi tavoli, stato |
| TimeTracking | 8 | Rilevazione presenze |
| Vouchers | 9 | Buoni |
| 10 | Integrazione WhatsApp | |
| Workshop | 17 | Ordini di officina |
Analytics¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/analytics/customer-insights |
Recupera l'analitica degli insight clienti per un intervallo di date. |
| GET | /api/v1/analytics/disco-stats |
Recupera l'analitica disco per un intervallo di date. |
| GET | /api/v1/analytics/online-orders |
Recupera l'analitica degli ordini online per un intervallo di date. |
| GET | /api/v1/analytics/staff-performance |
Recupera l'analitica delle prestazioni del personale per un intervallo di date. |
| GET | /api/v1/analytics/workshop-stats |
Recupera l'analitica dell'officina per un intervallo di date. |
ArticleImport¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| POST | /api/v1/article-import/ai-extract |
|
| POST | /api/v1/article-import/ai-suggest |
|
| POST | /api/v1/article-import/ai/allergens |
|
| POST | /api/v1/article-import/ai/description |
|
| POST | /api/v1/article-import/analyze |
|
| POST | /api/v1/article-import/execute |
|
| GET | /api/v1/article-import/profiles |
|
| POST | /api/v1/article-import/profiles |
|
| DELETE | /api/v1/article-import/profiles/{id} |
|
| GET | /api/v1/article-import/profiles/{id} |
|
| PUT | /api/v1/article-import/profiles/{id} |
|
| GET | /api/v1/article-import/target-fields |
|
| GET | /api/v1/article-import/template |
Request Body: POST /api/v1/article-import/profiles (CreateImportProfileRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string? | ||
description |
string? | ||
sourceFormat |
string? | ||
presetId |
string? | ||
csvSettings |
object | ||
excelSettings |
object | ||
columnMappings |
array[ColumnMappingDto]? | ||
valueTransforms |
array[ValueTransformDto]? | ||
defaultGroupId |
string? | ||
defaultTaxRate |
number | ||
conflictMode |
string? | ||
matchField |
string? |
Request Body: PUT /api/v1/article-import/profiles/{id} (UpdateImportProfileRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string? | ||
description |
string? | ||
sourceFormat |
string? | ||
presetId |
string? | ||
csvSettings |
object | ||
excelSettings |
object | ||
columnMappings |
array[ColumnMappingDto]? | ||
valueTransforms |
array[ValueTransformDto]? | ||
defaultGroupId |
string? | ||
defaultTaxRate |
number? | ||
conflictMode |
string? | ||
matchField |
string? |
Articles¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/articles |
Elenca gli articoli, opzionalmente filtrati per gruppo, con paginazione. |
| POST | /api/v1/articles |
Crea un nuovo articolo. |
| GET | /api/v1/articles/barcode/{barcode} |
Cerca l'articolo che riporta un determinato codice a barre (ad es. da uno scanner). |
| GET | /api/v1/articles/groups |
|
| POST | /api/v1/articles/groups |
|
| DELETE | /api/v1/articles/groups/{documentId} |
|
| PUT | /api/v1/articles/groups/{documentId} |
|
| GET | /api/v1/articles/search |
|
| DELETE | /api/v1/articles/{id} |
|
| GET | /api/v1/articles/{id} |
Recupera un singolo articolo tramite il suo document id. |
| PUT | /api/v1/articles/{id} |
|
| PUT | /api/v1/articles/{id}/icon |
|
| POST | /api/v1/articles/{id}/images |
|
| DELETE | /api/v1/articles/{id}/images/{name} |
|
| GET | /api/v1/articles/{id}/images/{name} |
Request Body: POST /api/v1/articles/groups (CreateArticleGroupRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
groupId |
string? | ||
name |
string? | ||
shortName |
string? | ||
description |
string? | ||
color |
string? | ||
background |
string? | ||
sortOrder |
integer | ||
displayType |
integer | ||
isActive |
boolean |
Request Body: PUT /api/v1/articles/groups/{documentId} (UpdateArticleGroupRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string? | ||
shortName |
string? | ||
description |
string? | ||
color |
string? | ||
background |
string? | ||
sortOrder |
integer? | ||
displayType |
integer? | ||
isActive |
boolean? | ||
printOption |
object | ||
extraPrintOptions |
array[ExtraPrintOptionDto]? | ||
extraArticleIds |
array[string]? | ||
rules |
array[ArticleRuleDto]? | ||
optionGroups |
array[ArticleOptionGroupDto]? |
Auth¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| POST | /api/v1/auth/change-password |
Cambia la password per l'utente attualmente connesso. |
| POST | /api/v1/auth/login |
Accedi con nome utente e password e ricevi i token JWT. |
| POST | /api/v1/auth/login/card |
Autenticazione con carta NFC/RFID. |
| POST | /api/v1/auth/logout |
Disconnetti e invalida il refresh token. |
| GET | /api/v1/auth/me |
Recupera le informazioni dell'utente corrente. |
| POST | /api/v1/auth/refresh |
Scambia un refresh token con un nuovo access token. |
Request Body: POST /api/v1/auth/login (LoginRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
username |
string? | Nome utente per l'autenticazione. | |
password |
string? | Password per l'autenticazione. |
Request Body: POST /api/v1/auth/login/card (CardLoginRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
cardId |
string? | ID della carta dal lettore NFC/RFID. |
AutoBeleg¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/autobeleg/entries |
|
| GET | /api/v1/autobeleg/entries/{id} |
|
| PUT | /api/v1/autobeleg/entries/{id} |
|
| GET | /api/v1/autobeleg/entries/{id}/attachments/{fileName} |
|
| POST | /api/v1/autobeleg/entries/{id}/convert |
|
| POST | /api/v1/autobeleg/entries/{id}/ignore |
|
| POST | /api/v1/autobeleg/fetch |
|
| GET | /api/v1/autobeleg/rules |
|
| POST | /api/v1/autobeleg/rules |
|
| DELETE | /api/v1/autobeleg/rules/{id} |
|
| PUT | /api/v1/autobeleg/rules/{id} |
|
| POST | /api/v1/autobeleg/simulate |
|
| GET | /api/v1/autobeleg/stats |
|
| POST | /api/v1/autobeleg/test-connection |
Request Body: POST /api/v1/autobeleg/rules (CreateAutoBelegRuleRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string? | ||
senderEmail |
string? | ||
senderPattern |
string? | ||
subjectPattern |
string? | ||
fixedAmount |
number? | ||
defaultAccountMode |
integer | ||
defaultAmountNormal |
number | ||
defaultAmountReduced |
number | ||
defaultAmountTaxFree |
number | ||
defaultComment |
string? | ||
expenseCategoryId |
string? | ||
imapAccountId |
string? | ||
isActive |
boolean |
Request Body: PUT /api/v1/autobeleg/rules/{id} (UpdateAutoBelegRuleRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string? | ||
senderEmail |
string? | ||
senderPattern |
string? | ||
subjectPattern |
string? | ||
fixedAmount |
number? | ||
defaultAccountMode |
integer? | ||
defaultAmountNormal |
number? | ||
defaultAmountReduced |
number? | ||
defaultAmountTaxFree |
number? | ||
defaultComment |
string? | ||
expenseCategoryId |
string? | ||
imapAccountId |
string? | ||
isActive |
boolean? |
BankTransfer¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/bank-transfers |
|
| DELETE | /api/v1/bank-transfers/{id} |
|
| GET | /api/v1/bank-transfers/{id} |
|
| GET | /api/v1/bank-transfers/{id}/invoices |
|
| POST | /api/v1/bank-transfers/{id}/send-emails |
|
| GET | /api/v1/bank-transfers/{id}/sepa |
|
| POST | /api/v1/bank-transfers/{id}/submit-fints |
Request Body: POST /api/v1/bank-transfers/{id}/submit-fints (SubmitFinTsRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
bankAccountId |
string? |
Banking¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/banking/accounts |
|
| POST | /api/v1/banking/accounts |
|
| DELETE | /api/v1/banking/accounts/{id} |
|
| GET | /api/v1/banking/accounts/{id} |
|
| PUT | /api/v1/banking/accounts/{id} |
|
| GET | /api/v1/banking/aging-report |
|
| POST | /api/v1/banking/auto-match |
|
| GET | /api/v1/banking/cashflow-projection |
|
| GET | /api/v1/banking/expense-categories |
|
| POST | /api/v1/banking/expense-categories |
|
| DELETE | /api/v1/banking/expense-categories/{id} |
|
| PUT | /api/v1/banking/expense-categories/{id} |
|
| GET | /api/v1/banking/expense-summary |
|
| POST | /api/v1/banking/fints/balance |
|
| GET | /api/v1/banking/fints/bank-lookup |
|
| POST | /api/v1/banking/fints/batch-transfer |
|
| POST | /api/v1/banking/fints/direct-debit |
|
| POST | /api/v1/banking/fints/fetch |
|
| GET | /api/v1/banking/fints/protocol-log/{sessionToken} |
Restituisce un log di protocollo sanificato per una sessione FinTS (per la visualizzazione diagnostica prima della segnalazione). |
| POST | /api/v1/banking/fints/report-issue |
Segnala un problema SEPA con log di protocollo sanificato al team DiKAS. |
| DELETE | /api/v1/banking/fints/sessions/{id} |
|
| POST | /api/v1/banking/fints/tan |
|
| POST | /api/v1/banking/fints/transfer |
|
| POST | /api/v1/banking/fints/vop-confirm/{sessionId} |
Conferma una mancata corrispondenza del nome VoP (Verification of Payee) e procede con il bonifico. |
| Chiamato quando l'utente prende atto di un nome non corrispondente e vuole continuare. | ||
| POST | /api/v1/banking/import |
|
| GET | /api/v1/banking/invoice-search |
|
| GET | /api/v1/banking/open-items/export |
|
| GET | /api/v1/banking/overpayments |
|
| POST | /api/v1/banking/overpayments/{invoiceId}/redistribute |
|
| POST | /api/v1/banking/overpayments/{invoiceId}/refund |
|
| GET | /api/v1/banking/payment-journal |
|
| POST | /api/v1/banking/payment-reminders |
|
| POST | /api/v1/banking/recompute-hashes |
Ricalcola gli hash di deduplicazione per tutte le transazioni (correzione una tantum dopo la modifica dell'algoritmo di hash) |
| POST | /api/v1/banking/reconcile |
Reimposta le fatture nell'intervallo e le riconcilia nuovamente con i movimenti bancari |
| POST | /api/v1/banking/sepa |
|
| GET | /api/v1/banking/sessions/{id} |
|
| POST | /api/v1/banking/sessions/{id}/complete |
|
| PUT | /api/v1/banking/sessions/{id}/match |
|
| GET | /api/v1/banking/statements |
|
| POST | /api/v1/banking/statements/fetch |
|
| POST | /api/v1/banking/statements/import |
|
| DELETE | /api/v1/banking/statements/{id} |
|
| GET | /api/v1/banking/transactions |
|
| PUT | /api/v1/banking/transactions/{id}/categorize |
|
| PUT | /api/v1/banking/transactions/{id}/ignore |
|
| PUT | /api/v1/banking/transactions/{id}/match |
|
| POST | /api/v1/banking/transactions/{id}/multi-match |
|
| POST | /api/v1/banking/transactions/{id}/sepa-return |
|
| PUT | /api/v1/banking/transactions/{id}/unmatch |
|
| GET | /api/v1/banking/validate-iban |
Convalida un IBAN e restituisce le informazioni bancarie (BIC, nome della banca) se deducibili. |
Request Body: PUT /api/v1/banking/sessions/{id}/match (MatchBankEntryRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
entryIndex |
integer | ||
invoiceId |
string? | ||
customerId |
string? | ||
status |
integer |
Request Body: POST /api/v1/banking/accounts (CreateBankAccountRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string? | ||
iban |
string? | ||
bic |
string? | ||
blz |
string? | ||
finTsUrl |
string? | ||
userId |
string? | ||
pin |
string? | ||
accountHolder |
string? | ||
tanMethod |
string? | ||
isDefault |
boolean |
CustomerGroups¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/customer-groups |
Recupera tutti i gruppi clienti. |
| POST | /api/v1/customer-groups |
Crea un nuovo gruppo clienti. |
| DELETE | /api/v1/customer-groups/{id} |
Elimina un gruppo clienti (soft delete). |
| PUT | /api/v1/customer-groups/{id} |
Aggiorna un gruppo clienti esistente. |
Request Body: POST /api/v1/customer-groups (CreateCustomerGroupRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string? | ||
description |
string? | ||
defaultDiscount |
number? | ||
color |
string? | ||
sortOrder |
integer | ||
isActive |
boolean |
Request Body: PUT /api/v1/customer-groups/{id} (UpdateCustomerGroupRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string? | ||
description |
string? | ||
defaultDiscount |
number? | ||
color |
string? | ||
sortOrder |
integer? | ||
isActive |
boolean? |
Customers¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/customers |
Recupera tutti i clienti. |
| POST | /api/v1/customers |
Crea un nuovo cliente. |
| DELETE | /api/v1/customers/all |
Elimina tutti i clienti (hard delete). |
| GET | /api/v1/customers/card/{cardId} |
Cerca il cliente tramite ID carta. |
| DELETE | /api/v1/customers/without-receipts |
Elimina tutti i clienti che non hanno scontrini (hard delete). |
| DELETE | /api/v1/customers/{id} |
Elimina un cliente. |
| GET | /api/v1/customers/{id} |
Recupera un cliente tramite ID. |
| PUT | /api/v1/customers/{id} |
Aggiorna un cliente esistente. |
| GET | /api/v1/customers/{id}/account-transactions |
Recupera le transazioni di conto (saldo) di un cliente. |
| POST | /api/v1/customers/{id}/documents |
Carica un documento per un cliente. Max 5MB. |
| DELETE | /api/v1/customers/{id}/documents/{name} |
Elimina un documento del cliente. |
| GET | /api/v1/customers/{id}/documents/{name} |
Scarica un documento del cliente. |
| GET | /api/v1/customers/{id}/invoice-summary |
Recupera il riepilogo fatture di un cliente (ricerca rapida). |
| POST | /api/v1/customers/{id}/payout |
Versamento dal AccountBalance del cliente (non BonusBalance). |
| GET | /api/v1/customers/{id}/point-transactions |
Recupera le transazioni dei punti fedeltà di un cliente. |
| POST | /api/v1/customers/{id}/portal-invite |
Invia un'email di invito al portale a un cliente. |
Request Body: POST /api/v1/customers/{id}/payout (PayoutRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
amount |
number |
Delivery¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/delivery |
|
| POST | /api/v1/delivery |
|
| PUT | /api/v1/delivery/assign |
|
| GET | /api/v1/delivery/by-number/{number} |
|
| POST | /api/v1/delivery/dispatch |
|
| POST | /api/v1/delivery/optimize-route |
|
| POST | /api/v1/delivery/place |
Inserisce un ordine di consegna/ritiro con comande cucina (senza pagamento). |
| POST | /api/v1/delivery/send-route |
|
| GET | /api/v1/delivery/stats |
|
| DELETE | /api/v1/delivery/{id} |
|
| GET | /api/v1/delivery/{id} |
|
| GET | /api/v1/delivery/{id}/bons |
Recupera gli OpenBons non pagati di un ordine di consegna. |
| POST | /api/v1/delivery/{id}/complete-payment |
|
| POST | /api/v1/delivery/{id}/load-for-edit |
Carica un ordine di consegna con OpenBons per la modifica nel punto cassa. |
| POST | /api/v1/delivery/{id}/pay |
|
| PUT | /api/v1/delivery/{id}/reassign-driver |
|
| PUT | /api/v1/delivery/{id}/status |
|
| POST | /api/v1/delivery/{id}/void-item |
Storna un singolo articolo da un ordine di consegna non pagato. |
Request Body: POST /api/v1/delivery (CreateDeliveryOrderRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
orderType |
integer | ||
customerId |
string? | ||
customerName |
string? | ||
customerPhone |
string? | ||
street |
string? | ||
houseNumber |
string? | ||
zipCode |
string? | ||
city |
string? | ||
requestedTime |
string? | ||
items |
array[DeliveryOrderItemRequest]? | ||
notes |
string? | ||
source |
string? | ||
externalOrderId |
string? | ||
isPaid |
boolean | ||
paymentMethod |
string? | ||
latitude |
number? | ||
longitude |
number? |
Request Body: PUT /api/v1/delivery/{id}/status (UpdateDeliveryStatusRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
status |
integer |
Dunning¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| POST | /api/v1/dunning/execute |
|
| GET | /api/v1/dunning/preview/{customerId} |
Anteprima dell'email di sollecito per un cliente specifico. |
| POST | /api/v1/dunning/simulate |
Export¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| POST | /api/v1/export/dsfinvk |
|
| GET | /api/v1/export/dsfinvk/{sessionId} |
|
| GET | /api/v1/export/dsfinvk/{sessionId}/download |
|
| POST | /api/v1/export/gdpdu |
|
| GET | /api/v1/export/gdpdu/{sessionId} |
|
| GET | /api/v1/export/gdpdu/{sessionId}/download |
Request Body: POST /api/v1/export/gdpdu (StartExportRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
startDate |
string | ||
endDate |
string |
Request Body: POST /api/v1/export/dsfinvk (StartExportRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
startDate |
string | ||
endDate |
string |
Geocoding¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/geocoding/geocode |
|
| GET | /api/v1/geocoding/place-details |
Recupera i Google Place Details (completa una sessione di autocompletamento). |
| Fornisce l'indirizzo completo con le coordinate. | ||
| GET | /api/v1/geocoding/search |
Invoice¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/invoices |
|
| POST | /api/v1/invoices |
|
| POST | /api/v1/invoices/bulk-close |
|
| GET | /api/v1/invoices/overview |
|
| POST | /api/v1/invoices/write-off |
|
| DELETE | /api/v1/invoices/{id} |
|
| GET | /api/v1/invoices/{id} |
|
| PUT | /api/v1/invoices/{id} |
|
| POST | /api/v1/invoices/{id}/cancel |
|
| POST | /api/v1/invoices/{id}/credit-note |
|
| POST | /api/v1/invoices/{id}/duplicate |
|
| GET | /api/v1/invoices/{id}/email-preview |
Anteprima dell'email che verrebbe inviata per questa fattura. |
| POST | /api/v1/invoices/{id}/payment |
|
| GET | /api/v1/invoices/{id}/payment-journal |
|
| GET | /api/v1/invoices/{id}/pdf |
|
| POST | /api/v1/invoices/{id}/send |
|
| PUT | /api/v1/invoices/{id}/sepa-status |
|
| GET | /api/v1/invoices/{id}/xml |
Request Body: POST /api/v1/invoices (CreateInvoiceRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
customerId |
string? | ||
positions |
array[InvoicePositionRequest]? | ||
paymentTermDays |
integer | ||
isBankDebit |
boolean | ||
notes |
string? | ||
billingCompanyName |
string? | ||
billingName |
string? | ||
billingStreet |
string? | ||
billingZipCode |
string? | ||
billingCity |
string? |
Request Body: PUT /api/v1/invoices/{id} (UpdateInvoiceRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
customerId |
string? | ||
positions |
array[InvoicePositionRequest]? | ||
paymentTermDays |
integer | ||
isBankDebit |
boolean | ||
notes |
string? | ||
billingCompanyName |
string? | ||
billingName |
string? | ||
billingStreet |
string? | ||
billingZipCode |
string? | ||
billingCity |
string? |
MenuCard¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| DELETE | /api/v1/menu-card/custom-template |
|
| GET | /api/v1/menu-card/custom-template |
|
| POST | /api/v1/menu-card/custom-template |
|
| GET | /api/v1/menu-card/default-template |
|
| GET | /api/v1/menu-card/excel |
|
| GET | /api/v1/menu-card/pdf |
|
| GET | /api/v1/menu-card/settings |
|
| PUT | /api/v1/menu-card/settings |
|
| GET | /api/v1/menu-card/template |
Request Body: PUT /api/v1/menu-card/settings (UpdateMenuCardSettingsRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
restaurantName |
string? | ||
subtitle |
string? | ||
footerText |
string? | ||
showAllergens |
boolean | ||
showArticleNumbers |
boolean | ||
showDescriptions |
boolean | ||
showPrices |
boolean | ||
showGroupDescriptions |
boolean | ||
columnCount |
integer | ||
pageFormat |
string? | ||
fontSize |
integer | ||
groupIds |
array[string]? | ||
headerColor |
string? | ||
currency |
string? |
OpenBons¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/open-bons |
Recupera tutti gli ordini aperti con filtro opzionale. |
| POST | /api/v1/open-bons |
Crea un nuovo ordine aperto (aggiungi articolo all'ordine). |
| POST | /api/v1/open-bons/batch |
Registra una serie di articoli su un tavolo (la chiamata principale "ordinare"). |
| GET | /api/v1/open-bons/kitchen |
Recupera gli ordini aperti per il monitor cucina (filtrati per stato di lavorazione e opzione di stampa cucina). |
| POST | /api/v1/open-bons/move |
Sposta gli articoli di un ordine aperto su un altro tavolo. |
| GET | /api/v1/open-bons/table/{tableId}/summary |
Recupera il conto corrente di un tavolo: tutti gli articoli aperti (non pagati) e il totale attuale. |
| PUT | /api/v1/open-bons/{id} |
Aggiorna un articolo di un ordine aperto. |
| POST | /api/v1/open-bons/{id}/void |
Storna/annulla un articolo di un ordine aperto. |
| PATCH | /api/v1/open-bons/{id}/work-status |
Aggiorna lo stato di lavorazione di un ordine aperto (flusso cucina). |
Request Body: POST /api/v1/open-bons (CreateOpenBonRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
bonId |
string? | ID di un bon esistente a cui aggiungere, oppure null per crearne uno nuovo. | |
tableId |
string? | ID del tavolo per l'ordine. | |
subTableName |
string? | Nome del sotto-tavolo (ad es. "Gast 1"). | |
seatNumber |
integer? | Numero del posto per l'ordinazione basata sui posti. | |
articleId |
string? | Articolo da ordinare. | |
customerGroupId |
string? | Gruppo clienti per il prezzo. | |
price |
number? | Prezzo personalizzato (null = usa il prezzo dell'articolo). | |
count |
number | Quantità da ordinare. | |
gang |
string? | Numero della portata. | |
extraOptions |
array[CreateOpenBonExtraOptionRequest]? | Opzioni/modificatori extra. | |
extraDescription |
string? | Note/descrizione aggiuntive. |
Request Body: POST /api/v1/open-bons/batch (CreateOpenBonsBatchRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
tableId |
string? | ||
subTableName |
string? | ||
customerGroupId |
string? | ||
printerId |
string? | ||
workplaceId |
string? | ||
items |
array[BatchOpenBonItem]? |
OptionTemplates¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/option-templates |
|
| POST | /api/v1/option-templates |
|
| DELETE | /api/v1/option-templates/{id} |
|
| GET | /api/v1/option-templates/{id} |
|
| PUT | /api/v1/option-templates/{id} |
Request Body: POST /api/v1/option-templates (CreateOptionTemplateRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string? | ||
description |
string? | ||
isActive |
boolean | ||
sortOrder |
integer | ||
groups |
array[ArticleOptionGroupDto]? |
Request Body: PUT /api/v1/option-templates/{id} (UpdateOptionTemplateRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string? | ||
description |
string? | ||
isActive |
boolean? | ||
sortOrder |
integer? | ||
groups |
array[ArticleOptionGroupDto]? |
Payments¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| POST | /api/v1/payments/direct |
Registra e paga una vendita al banco in una sola chiamata (senza tavolo coinvolto). |
| POST | /api/v1/payments/table |
Paga gli ordini aperti di un tavolo e li chiude in uno scontrino. |
Request Body: POST /api/v1/payments/table (ProcessTablePaymentRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
tableId |
string? | ID del tavolo da pagare. | |
openBonIds |
array[string]? | ID specifici degli ordini aperti da pagare (null = paga tutto). | |
items |
array[PartialPaymentItemRequest]? | Articoli con pagamento parziale (alternativa a OpenBonIds). |
Permette di pagare una quantità parziale di un articolo. |
| payments | array[PaymentEntryRequest]? | | Voci di pagamento. |
| customerId | string? | | ID del cliente da collegare. |
| tipAmount | number | | Importo della mancia. |
| cashGiven | number | | Importo in contanti consegnato dal cliente (per il calcolo del resto). |
| notes | string? | | Note. |
| printerId | string? | | ID della stampante di destinazione per la stampa automatica dello scontrino. |
| autoPrint | boolean | | Se true, stampa lo scontrino anche se non è impostato alcun PrinterId esplicito (usa DefaultPrinterId). |
| isBewirtungsbeleg | boolean | | Se true, contrassegna lo scontrino come Bewirtungsbeleg (§4 Abs. 5 Nr. 2 EStG). |
| bewirtungTipAmount | number | | Importo della mancia per la Bewirtungsbeleg (incluso nel totale per il calcolo del 70%). |
Request Body: POST /api/v1/payments/direct (ProcessDirectSaleRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
items |
array[DirectSaleItemRequest]? | Articoli da vendere. | |
payments |
array[PaymentEntryRequest]? | Voci di pagamento. | |
customerId |
string? | ID del cliente da collegare. | |
customerGroupId |
string? | Gruppo clienti per il prezzo. | |
tipAmount |
number | Importo della mancia. | |
cashGiven |
number | Importo in contanti consegnato dal cliente (per il calcolo del resto). | |
notes |
string? | Note. | |
payoutAmount |
number | Importo del versamento dal saldo conto del cliente (0 = nessun versamento). | |
printerId |
string? | ID della stampante di destinazione per la stampa automatica dello scontrino. | |
autoPrint |
boolean | Se true, stampa lo scontrino anche se non è impostato alcun PrinterId esplicito (usa DefaultPrinterId). | |
workplaceId |
string? | ID della postazione per la determinazione del prezzo e il tracciamento. | |
isBewirtungsbeleg |
boolean | Se true, contrassegna lo scontrino come Bewirtungsbeleg (§4 Abs. 5 Nr. 2 EStG). | |
bewirtungTipAmount |
number | Importo della mancia per la Bewirtungsbeleg (incluso nel totale per il calcolo del 70%). |
Receipts¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/receipts |
Recupera tutti gli scontrini con filtro opzionale. |
| GET | /api/v1/receipts/today |
Recupera gli scontrini di oggi. |
| GET | /api/v1/receipts/{id} |
Recupera uno scontrino tramite ID. |
| POST | /api/v1/receipts/{id}/assign-customer |
Assegna un cliente a uno scontrino esistente (per Bewirtungsbeleg >=250€). |
| POST | /api/v1/receipts/{id}/bewirtungsbeleg/email |
Invia il PDF della Bewirtungsbeleg via email. |
| GET | /api/v1/receipts/{id}/bewirtungsbeleg/pdf |
Scarica una Bewirtungsbeleg come PDF. |
| POST | /api/v1/receipts/{id}/change-payment |
Cambia il tipo di pagamento di uno scontrino. |
| POST | /api/v1/receipts/{id}/email |
Invia lo scontrino come PDF + ZUGFeRD-XML via email. |
| GET | /api/v1/receipts/{id}/pdf |
Scarica uno scontrino come PDF. |
| GET | /api/v1/receipts/{id}/print |
Recupera il bon di stampa di uno scontrino. |
| POST | /api/v1/receipts/{id}/reopen |
Riapre uno scontrino: lo storna e registra nuovamente gli articoli come ordini aperti. |
| POST | /api/v1/receipts/{id}/void |
Storna/annulla uno scontrino. |
Request Body: POST /api/v1/receipts/{id}/void (VoidReceiptRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
reason |
string? | ||
terminalId |
string? |
Request Body: POST /api/v1/receipts/{id}/change-payment (ChangePaymentTypeRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
newPaymentMethod |
string? |
Reports¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/reports/article-stats |
Recupera le statistiche degli articoli (più/meno venduti). |
| GET | /api/v1/reports/dayclose |
Recupera lo storico delle chiusure giornaliere. |
| GET | /api/v1/reports/financial-overview |
Recupera la panoramica finanziaria di un anno con anno di confronto opzionale. |
| GET | /api/v1/reports/hourly |
Recupera la ripartizione oraria del fatturato. |
| GET | /api/v1/reports/points |
Recupera il report dei punti fedeltà. |
| GET | /api/v1/reports/revenue |
Recupera il report del fatturato per un intervallo di date. |
| GET | /api/v1/reports/staff-discounts |
Recupera il report degli sconti del personale per un intervallo di date. |
Reservations¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/reservations |
Recupera tutte le prenotazioni con filtro opzionale. |
| POST | /api/v1/reservations |
Crea una prenotazione per un ospite. |
| GET | /api/v1/reservations/today |
Recupera le prenotazioni di oggi. |
| GET | /api/v1/reservations/upcoming |
Recupera le prenotazioni imminenti (prossimi 7 giorni). |
| POST | /api/v1/reservations/{id}/cancel |
Annulla una prenotazione. |
| POST | /api/v1/reservations/{id}/confirm |
Conferma una prenotazione. |
| POST | /api/v1/reservations/{id}/seat |
Contrassegna una prenotazione come accomodata. |
| PATCH | /api/v1/reservations/{id}/status |
Aggiorna lo stato di una prenotazione. |
Request Body: POST /api/v1/reservations (CreateReservationRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
guestName |
string? | Nome dell'ospite. | |
guestPhone |
string? | Telefono dell'ospite. | |
guestEmail |
string? | Email dell'ospite. | |
customerId |
string? | ID del cliente se cliente esistente. | |
reservationDateTime |
string | Data e ora della prenotazione. | |
durationMinutes |
integer | Durata in minuti (predefinito: 120). | |
guestCount |
integer | Numero di ospiti. | |
tableId |
string? | ID del tavolo preferito. | |
source |
string? | Origine (Manual, Phone, Email, Website, Resmio, OpenTable). | |
externalReferenceId |
string? | ID di riferimento esterno. | |
notes |
string? | Richieste speciali/note. | |
internalNotes |
string? | Note interne. |
SavedTransfer¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/saved-transfers |
|
| POST | /api/v1/saved-transfers |
|
| DELETE | /api/v1/saved-transfers/{id} |
|
| GET | /api/v1/saved-transfers/{id} |
|
| PUT | /api/v1/saved-transfers/{id} |
|
| POST | /api/v1/saved-transfers/{id}/complete |
|
| POST | /api/v1/saved-transfers/{id}/execute |
|
| POST | /api/v1/saved-transfers/{id}/reset |
Request Body: POST /api/v1/saved-transfers (CreateSavedTransferRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
recipientName |
string? | ||
recipientIban |
string? | ||
recipientBic |
string? | ||
amount |
number | ||
purpose |
string? | ||
endToEndId |
string? | ||
bankAccountId |
string? |
Request Body: PUT /api/v1/saved-transfers/{id} (UpdateSavedTransferRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
recipientName |
string? | ||
recipientIban |
string? | ||
recipientBic |
string? | ||
amount |
number | ||
purpose |
string? | ||
endToEndId |
string? | ||
bankAccountId |
string? |
SepaMandate¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/sepa-mandates |
|
| POST | /api/v1/sepa-mandates |
|
| GET | /api/v1/sepa-mandates/sign/{token} |
|
| POST | /api/v1/sepa-mandates/sign/{token} |
|
| GET | /api/v1/sepa-mandates/{id} |
|
| POST | /api/v1/sepa-mandates/{id}/revoke |
|
| POST | /api/v1/sepa-mandates/{id}/send |
Request Body: POST /api/v1/sepa-mandates (CreateSepaMandateCommand)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
customerId |
string? | ||
debtorName |
string? | ||
debtorIban |
string? | ||
debtorBic |
string? | ||
mandateType |
integer |
Request Body: POST /api/v1/sepa-mandates/sign/{token} (SignMandateRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
signatureImageBase64 |
string? |
Spendings¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/spendings |
Elenca le spese con filtri opzionali. |
| POST | /api/v1/spendings |
Crea una nuova voce di spesa. |
| POST | /api/v1/spendings/migrate-categories |
Migra i vecchi SpendingTypes (OperationalConfig) in ExpenseCategories |
| e aggiorna le spese esistenti. | ||
| DELETE | /api/v1/spendings/{id} |
Elimina una voce di spesa (soft delete). |
| GET | /api/v1/spendings/{id} |
Recupera una voce di spesa tramite ID. |
| PUT | /api/v1/spendings/{id} |
Aggiorna una voce di spesa esistente. |
| POST | /api/v1/spendings/{id}/attachments |
Carica un allegato a una voce di spesa. |
| DELETE | /api/v1/spendings/{id}/attachments/{name} |
Elimina un allegato da una voce di spesa. |
| GET | /api/v1/spendings/{id}/attachments/{name} |
Scarica un allegato da una voce di spesa. |
Request Body: POST /api/v1/spendings (CreateSpendingRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
comment |
string? | Descrizione/commento. | |
accountType |
integer | Tipo di conto (Kontotyp). | |
accountMode |
integer | Modalità conto: 0=NotSet, 1=Expense, 2=Transfer, 3=Income, 4=DeferredPayment. | |
expenseCategoryId |
string? | ||
receiptDate |
string | Data della ricevuta/registrazione. | |
amountNormal |
number | Importo lordo con aliquota IVA al 19%. | |
amountReduced |
number | Importo lordo con aliquota IVA al 7%. | |
amountTaxFree |
number | Importo lordo con aliquota IVA allo 0%. |
Request Body: PUT /api/v1/spendings/{id} (UpdateSpendingRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
comment |
string? | Descrizione/commento (aggiornamento parziale opzionale). | |
accountType |
integer? | Tipo di conto (aggiornamento parziale opzionale). | |
accountMode |
integer? | Modalità conto (aggiornamento parziale opzionale). | |
expenseCategoryId |
string? | ||
receiptDate |
string? | Data della ricevuta/registrazione (aggiornamento parziale opzionale). | |
amountNormal |
number? | Importo lordo al 19% (aggiornamento parziale opzionale). | |
amountReduced |
number? | Importo lordo al 7% (aggiornamento parziale opzionale). | |
amountTaxFree |
number? | Importo lordo allo 0% (aggiornamento parziale opzionale). |
StockBookings¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/stock-bookings |
Recupera le registrazioni di magazzino aperte. |
| POST | /api/v1/stock-bookings |
Crea una nuova registrazione di magazzino. |
| GET | /api/v1/stock-bookings/{id} |
Recupera una registrazione di magazzino tramite ID. |
| POST | /api/v1/stock-bookings/{id}/process |
Elabora (esegue) una registrazione di magazzino, aggiornando l'inventario. |
Request Body: POST /api/v1/stock-bookings (CreateStockBookingRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
items |
array[StockBookingItemRequest]? | ||
targetStock |
string? | ||
workplaceName |
string? | ||
distributorId |
string? | ||
targetPrinter |
string? |
StockInventory¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/stock-inventory |
Recupera la panoramica dell'inventario per tutti i magazzini. |
| GET | /api/v1/stock-inventory/{stockId} |
Recupera l'inventario di un magazzino specifico. |
StockOrders¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/stock-orders |
Recupera gli ordini di magazzino aperti. |
| POST | /api/v1/stock-orders |
Crea un nuovo ordine di magazzino. |
| GET | /api/v1/stock-orders/{id} |
Recupera un ordine di magazzino tramite ID. |
| PUT | /api/v1/stock-orders/{id} |
Aggiorna un ordine di magazzino esistente. |
| PUT | /api/v1/stock-orders/{id}/status |
Aggiorna lo stato di un ordine di magazzino. |
Request Body: POST /api/v1/stock-orders (CreateStockOrderRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
targetStock |
string? | ||
distributorId |
string? | ||
company |
string? | ||
name2 |
string? | ||
street |
string? | ||
city |
string? | ||
zip |
string? | ||
country |
string? | ||
email |
string? | ||
fax |
string? | ||
distCustId |
string? | ||
comment |
string? | ||
deliveryDate |
string? | ||
positions |
array[StockOrderPositionRequest]? |
Request Body: PUT /api/v1/stock-orders/{id} (UpdateStockOrderRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
targetStock |
string? | ||
company |
string? | ||
name2 |
string? | ||
street |
string? | ||
city |
string? | ||
zip |
string? | ||
country |
string? | ||
email |
string? | ||
fax |
string? | ||
distCustId |
string? | ||
comment |
string? | ||
deliveryDate |
string? | ||
positions |
array[StockOrderPositionRequest]? |
Stocks¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/stocks |
Recupera tutte le ubicazioni di magazzino. |
| POST | /api/v1/stocks |
Crea una nuova ubicazione di magazzino. |
| DELETE | /api/v1/stocks/{id} |
Elimina un'ubicazione di magazzino (i magazzini di sistema non possono essere eliminati). |
| GET | /api/v1/stocks/{id} |
Recupera un'ubicazione di magazzino tramite ID. |
| PUT | /api/v1/stocks/{id} |
Aggiorna un'ubicazione di magazzino esistente. |
Request Body: POST /api/v1/stocks (CreateStockRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string? | ||
stockType |
integer | ||
isCookingMonitor |
boolean |
Request Body: PUT /api/v1/stocks/{id} (UpdateStockRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string? | ||
stockType |
integer? | ||
isCookingMonitor |
boolean? | ||
minMaxRules |
array[StockMinMaxRuleRequest]? | ||
articleOrder |
array[string]? |
Subscription¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/subscriptions |
|
| POST | /api/v1/subscriptions |
|
| POST | /api/v1/subscriptions/generate |
|
| POST | /api/v1/subscriptions/simulate |
|
| DELETE | /api/v1/subscriptions/{id} |
|
| GET | /api/v1/subscriptions/{id} |
|
| PUT | /api/v1/subscriptions/{id} |
Request Body: POST /api/v1/subscriptions (CreateSubscriptionRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
customerId |
string? | ||
name |
string? | ||
description |
string? | ||
positions |
array[InvoicePositionRequest]? | ||
interval |
integer | ||
startDate |
string | ||
endDate |
string? | ||
isBankDebit |
boolean | ||
paymentTermDays |
integer | ||
billingCompanyName |
string? | ||
billingName |
string? | ||
billingStreet |
string? | ||
billingZipCode |
string? | ||
billingCity |
string? | ||
billingCountry |
string? | ||
isNettoMode |
boolean |
Request Body: PUT /api/v1/subscriptions/{id} (UpdateSubscriptionRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string? | ||
description |
string? | ||
positions |
array[InvoicePositionRequest]? | ||
interval |
integer | ||
endDate |
string? | ||
isBankDebit |
boolean | ||
paymentTermDays |
integer | ||
isActive |
boolean | ||
billingCompanyName |
string? | ||
billingName |
string? | ||
billingStreet |
string? | ||
billingZipCode |
string? | ||
billingCity |
string? | ||
billingCountry |
string? | ||
isNettoMode |
boolean |
Tables¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/tables |
Recupera tutti i tavoli. |
| POST | /api/v1/tables |
Crea un nuovo tavolo. |
| GET | /api/v1/tables/groups |
Recupera tutti i gruppi tavoli. |
| POST | /api/v1/tables/groups |
Crea un nuovo gruppo tavoli. |
| DELETE | /api/v1/tables/groups/{id} |
Elimina un gruppo tavoli. |
| GET | /api/v1/tables/groups/{id} |
Recupera un gruppo tavoli tramite ID. |
| PUT | /api/v1/tables/groups/{id} |
Aggiorna un gruppo tavoli. |
| POST | /api/v1/tables/guest |
Trova o crea un tavolo ospite tramite ID cliente. |
| POST | /api/v1/tables/guest/by-card/{cardId} |
Trova o crea un tavolo ospite tramite ID carta NFC. |
| DELETE | /api/v1/tables/{id} |
Elimina un tavolo. |
| GET | /api/v1/tables/{id} |
Recupera un tavolo tramite ID. |
| PUT | /api/v1/tables/{id} |
Aggiorna un tavolo. |
| POST | /api/v1/tables/{id}/cleaned |
Contrassegna un tavolo come pulito (passa da Pulizia a Libero). |
| POST | /api/v1/tables/{id}/gang |
Cambia la portata (gang) per tutti gli ordini aperti su un tavolo. |
| GET | /api/v1/tables/{id}/qr |
Codice QR come PNG per la sessione del tavolo. |
| GET | /api/v1/tables/{id}/session |
Interroga la sessione QR attiva per un tavolo. |
| POST | /api/v1/tables/{id}/session |
Genera/rigenera la sessione QR per un tavolo. |
| PATCH | /api/v1/tables/{id}/status |
Aggiorna lo stato di un tavolo. |
| POST | /api/v1/tables/{id}/viewed |
Contrassegna un tavolo come visualizzato (azzera il timer di invecchiamento per tutti i client). |
| DELETE | /api/v1/tables/{id}/waiter-call |
Azzera la chiamata cameriere (quando il cameriere apre il tavolo). |
Request Body: POST /api/v1/tables/groups (CreateTableGroupRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string? | ||
description |
string? | ||
color |
string? | ||
icon |
string? | ||
sortOrder |
integer | ||
isActive |
boolean | ||
bonPrefix |
string? | ||
showPlan |
boolean | ||
useSeats |
boolean | ||
seatCount |
integer | ||
isPayOffsite |
boolean |
Request Body: POST /api/v1/tables (CreateTableRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
tableNumber |
string? | ||
name |
string? | ||
groupId |
string? | ||
seats |
integer | ||
positionX |
integer | ||
positionY |
integer | ||
width |
integer | ||
height |
integer | ||
shape |
string? | ||
color |
string? | ||
sortOrder |
integer | ||
isActive |
boolean | ||
rotation |
integer | ||
printTableId |
integer? | ||
extraBonText |
string? | ||
background |
string? | ||
isDecorative |
boolean | ||
decorationType |
string? | ||
beverageTableNr |
integer? | ||
customFields |
object? |
TimeTracking¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/time-tracking/active-workers |
Recupera tutti i lavoratori attualmente attivi (timbrati in entrata) per la dashboard del supervisore. |
| GET | /api/v1/time-tracking/report |
Recupera il report delle presenze per un intervallo di date. |
| GET | /api/v1/time-tracking/report/excel |
Esporta il report delle presenze come file Excel. |
| DELETE | /api/v1/time-tracking/sheets/{id}/stamps/{index} |
Elimina una timbratura (admin). |
| PUT | /api/v1/time-tracking/sheets/{id}/stamps/{index} |
Modifica una timbratura esistente (correzione admin). |
| GET | /api/v1/time-tracking/sheets/{userId}/{year}/{month} |
Recupera un foglio presenze per utente/anno/mese (vista admin). |
| POST | /api/v1/time-tracking/stamp |
Timbra un lavoratore in entrata o in uscita, oppure avvia/termina una pausa. |
| GET | /api/v1/time-tracking/status/{userId} |
Recupera lo stato attuale della rilevazione presenze di un utente (visualizzazione POS). |
Request Body: POST /api/v1/time-tracking/stamp (RecordTimeStampRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
userId |
string? | ||
type |
integer | ||
note |
string? | ||
timestamp |
string? |
Request Body: PUT /api/v1/time-tracking/sheets/{id}/stamps/{index} (EditTimeStampRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
newTimestamp |
string? | ||
newType |
integer? | ||
newNote |
string? |
Vouchers¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/vouchers |
Recupera tutti i buoni con filtro opzionale. |
| POST | /api/v1/vouchers |
Crea un nuovo buono. |
| POST | /api/v1/vouchers/batch |
Crea in blocco più buoni con le stesse impostazioni. |
| POST | /api/v1/vouchers/import |
Importa un buono con un numero di serie preesistente. |
| Verifica i seriali duplicati e li rifiuta se già esistenti. | ||
| GET | /api/v1/vouchers/search/{serial} |
Cerca un buono tramite numero di serie. |
| Supporta numero a 6 cifre (ad es. 481293), formato legacy V+numero (ad es. V000001) o seriale testuale. | ||
| GET | /api/v1/vouchers/{id} |
Recupera un buono tramite ID. |
| POST | /api/v1/vouchers/{id}/close |
Chiude manualmente un buono. |
| POST | /api/v1/vouchers/{id}/redeem |
Riscatta (utilizza) un buono parzialmente o per intero. |
| POST | /api/v1/vouchers/{id}/topup |
Ricarica un buono. |
Request Body: POST /api/v1/vouchers (CreateVoucherRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
amount |
number | Valore del buono. | |
articleId |
string? | ID articolo opzionale collegato al buono. | |
name |
string? | Nome/descrizione opzionale del buono. | |
taxClass |
integer | Classe fiscale (0 = normale, 1 = ridotta, ecc.). | |
validDays |
integer? | Periodo di validità opzionale in giorni da adesso. Null = illimitato. | |
serial |
string? | Codice seriale personalizzato opzionale. Se non impostato, viene generato automaticamente un codice alfanumerico. | |
articles |
array[VoucherArticleRequest]? | Articoli opzionali riscattabili con il buono. |
Request Body: POST /api/v1/vouchers/{id}/redeem (RedeemVoucherRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
amount |
number | Importo da riscattare dal buono. | |
bonId |
string? | ID scontrino/bon opzionale per il tracciamento. |
WhatsApp¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/whatsapp/messages |
|
| POST | /api/v1/whatsapp/send |
|
| POST | /api/v1/whatsapp/send/invoice/{invoiceId} |
|
| POST | /api/v1/whatsapp/send/work-order/{workOrderId} |
|
| GET | /api/v1/whatsapp/templates |
|
| POST | /api/v1/whatsapp/templates |
|
| DELETE | /api/v1/whatsapp/templates/{id} |
|
| GET | /api/v1/whatsapp/templates/{id} |
|
| PUT | /api/v1/whatsapp/templates/{id} |
|
| POST | /api/v1/whatsapp/test |
Request Body: POST /api/v1/whatsapp/send (SendWhatsAppRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
to |
string? | ||
templateName |
string? | ||
language |
string? | ||
parameters |
object? | ||
contextType |
integer | ||
contextId |
string? | ||
customerId |
string? |
Request Body: POST /api/v1/whatsapp/templates (CreateWhatsAppTemplateRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name |
string? | ||
metaTemplateName |
string? | ||
language |
string? | ||
contextType |
integer | ||
parameterMappings |
array[WhatsAppParameterMappingDto]? | ||
hasDocument |
boolean | ||
isDefault |
boolean | ||
isActive |
boolean | ||
description |
string? |
Workshop¶
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/workshop/orders |
|
| POST | /api/v1/workshop/orders |
|
| GET | /api/v1/workshop/orders/search |
|
| GET | /api/v1/workshop/orders/{id} |
|
| POST | /api/v1/workshop/orders/{id}/activities |
|
| DELETE | /api/v1/workshop/orders/{id}/activities/{index} |
|
| POST | /api/v1/workshop/orders/{id}/cancel |
|
| POST | /api/v1/workshop/orders/{id}/complete |
|
| POST | /api/v1/workshop/orders/{id}/invoice |
|
| PUT | /api/v1/workshop/orders/{id}/items |
|
| POST | /api/v1/workshop/orders/{id}/materials |
|
| DELETE | /api/v1/workshop/orders/{id}/materials/{index} |
|
| POST | /api/v1/workshop/orders/{id}/pause |
|
| POST | /api/v1/workshop/orders/{id}/print-label |
|
| POST | /api/v1/workshop/orders/{id}/reopen |
|
| POST | /api/v1/workshop/orders/{id}/resume |
|
| POST | /api/v1/workshop/orders/{id}/start |
Request Body: POST /api/v1/workshop/orders (CreateWorkOrderRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
customerId |
string? | ||
faultDescription |
string? | ||
bikeDescription |
string? | ||
frameNumber |
string? | ||
estimatedCompletionDate |
string? | ||
printLabel |
boolean | ||
printerId |
string? |
Request Body: POST /api/v1/workshop/orders/{id}/activities (AddActivityRequest)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
description |
string? | ||
durationMinutes |
integer |