structuredContent, e come testo JSON del primo blocco di content. Leggi quello che il tuo client espone; sono identici. Ogni strumento pubblica un outputSchema corrispondente, così un client conforme alla specifica valida structuredContent contro di esso.
data
- Gli strumenti list restituiscono
data.results, un array. - Gli strumenti detail (
get-venue,get-order,get-menu,get-payment-link,get-order-stats, le due scritture) restituiscono il record stesso indata. get-snooze-reportrestituisce insieme un riepilogo, una time series e un arrayitemspaginato.- I campi sono in allowlist per risorsa. Qualsiasi cosa non presente nell’
outputSchemadi uno strumento non viene mai inviata, indipendentemente da ciò che contiene il record sottostante.
meta
meta è strict: non compaiono chiavi non documentate, e nuove chiavi arrivano con un bump di versione.
Paginazione
Le pagine partono da 1.limit è limitato a 100 (25 per list-top-products) e ridotto silenziosamente se ne chiedi di più.
hasMore e nextPage derivano dal fetch di una riga oltre la pagina, quindi sono sempre esatti. total è null quando lo strumento non conta, e può essere contrassegnato totalIsEstimate: true su grandi liste di ordini dove un conteggio esatto è troppo lento. Guida i loop da hasMore, non da total:
Date e fusi orari
Gli input (from, to) accettano:
YYYY-MM-DD: una data di calendario locale nel fuso orario effettivo, inclusiva a entrambe le estremità (to: "2026-09-18"arriva fino a23:59:59.999di quel giorno); oppure- un datetime ISO con
Zo un offset numerico e al massimo tre cifre frazionarie, ad esempio2026-09-18T14:00:00+01:00. I datetime senza offset vengono rifiutati.
timezone se fornito, altrimenti il fuso orario del locale quando è dato venueId, altrimenti UTC. meta.timezone indica sempre quale è stato usato.
Gli intervalli possono coprire al massimo 90 date di calendario locali; gli intervalli più lunghi vengono rifiutati con INVALID_INPUT. Ogni strumento ha un intervallo di default (7 o 30 date) e un basis (creation, fulfillment, refund o snooze_overlap) che indica quale timestamp filtra l’intervallo; consulta Strumenti. meta.dateRange ripete l’intervallo risolto in modo che un client possa mostrare esattamente ciò che è stato conteggiato.
Gli input di scrittura (startDate, endDate, expiresAt) devono essere timestamp ISO completi con offset. I valori solo data non sono accettati per le scritture.
Valuta
Tutti gli importi sono interi in unità minori della valuta (pence, cent) e non vengono mai convertiti. La valuta viaggia con i dati: come campocurrency su locali, ordini, conti e link, e come meta.currencyCodes per il risultato nel suo complesso. codeAmount su uno sconto percentuale è in decimi di percentuale, non in un importo di valuta.
Le statistiche a livello di account e le query sui top-product su un account i cui locali usano più di una valuta vengono rifiutate (INVALID_INPUT); passa venueId.
Immagini
get-payment-link-qr è l’unico strumento che restituisce dati binari. Il suo array content contiene il blocco di testo JSON seguito da un blocco immagine MCP nativo:
structuredContent porta solo l’URL di checkout e i metadata del link; non c’è alcun campo base64 dentro data.
Errori
Una chiamata fallita non è un envelope. È un risultatoisError: true il cui singolo blocco di testo è un oggetto { error }, senza structuredContent. Consulta Errori.