Sviluppatori API

API ordini — V2 per registratori & gestionali

Solo i campi necessari a scontrino, consegna e riepilogo. Stabili, documentati, facili da mappare.

REST JSON Key / Bearer Cursor & Limit

Quickstart

Ottieni gli ordini in coda, in modo idempotente.

Endpoint
GET /api_v2_registratori.php
Auth ?key=LA_TUA_CHIAVE oppure header Authorization: Bearer …
Parametri limit (def. 100), cursor (ultimo id_ordini), data (YYYY-MM-DD)

Se ometti data, vengono serviti gli ordini da oggi 00:00:01 in avanti.

Esempio cURL
curl -s "https://tuo-dominio/api_v2_registratori.php?limit=50&cursor=0" \
  -H "Authorization: Bearer LA_TUA_CHIAVE"
Usa cursor per scaricare a blocchi senza duplicati (paginazione su id_ordini crescente).

Schema risposta V2 (reale)

Campi effettivamente ritornati dall’endpoint V2 “solo-cassa”.

JSON di esempio
[
  {
    "id_ordini": "409",
    "totale": "22.00",
    "pagamento": "Alla consegna",
    "dataconsegna": "2025-10-31",
    "oraconsegna": "10:20",
    "tipo_ordine": "consegna",
    "note_preparazione": "",
    "note_consegna": "",
    "posizione_servizio": "",
    "zona": "0",
    "km": 201,
    "coordinate_gps": "",
    "REMOTE_ADDR": "86.125.229.31",
    "costo_consegna_commissioni": 2,
    "ora_produzione": "10:00",
    "totaleappo": 20,
    "dati_consegna": {
      "status": "OK",
      "origin": "Via dei Cimatori, 8, 00186 Roma RM, Italy",
      "destination": "Via dei Cimatori, 80, 00186 Roma RM, Italy",
      "element_status": "OK",
      "distance_text": "0.2 km",
      "distance_value": 201,
      "duration_text": "1 min",
      "duration_value": 36
    },
    "carrello": [
      {
        "id_prodotto": "1557-0",
        "nome_prodotto": "Bianca con Prosciutto",
        "nomecategoria": "Pizze Bianche al Pezzo",
        "categoria_originale": "8",
        "prezzo": "2.00",
        "senzaglutine": "no",
        "aggiungere": "",
        "rimuovere": "",
        "foto_prodotto": "",
        "varianti": []
      }
    ],
    "dati_utente": [
      {
        "first_name": "fabio pucci",
        "last_name": "fabio pucci",
        "email": "andromeda78ita@gmail.com",
        "prefisso_int": "+39",
        "telefono": "3513048018",
        "indirizzo": "Via dei Cimatori",
        "numero_civico": "80",
        "citta": "Roma",
        "cap": "00186",
        "provincia": "Città metropolitana di Roma Capitale",
        "presso": "nomesocieta"
      }
    ]
  }
]

I campi vuoti vengono restituiti come stringa vuota "" o array vuoto [] per semplicità di parsing.

Campi per blocchi
  • Ordine: id_ordini, totale, pagamento, dataconsegna, oraconsegna, tipo_ordine, note_preparazione, note_consegna, posizione_servizio, zona, km, coordinate_gps, REMOTE_ADDR, costo_consegna_commissioni, ora_produzione, totaleappo
  • Dati consegna: status, origin, destination, element_status, distance_text, distance_value, duration_text, duration_value
  • Carrello[]: id_prodotto, nome_prodotto, nomecategoria, categoria_originale, prezzo, senzaglutine, aggiungere, rimuovere, foto_prodotto, varianti[]
  • Dati utente[0]: first_name, last_name, email, prefisso_int, telefono, indirizzo, numero_civico, citta, cap, provincia, presso
Privacy by design: vengono esclusi cookie, analytics, flag interni, segmenti push, ecc. Solo informazioni utili a scontrino/consegna.
Mappatura tipica verso registratore
  • id_ordini → Numero documento/ordine
  • carrello[].nome_prodotto → Descrizione riga
  • carrello[].prezzo → Prezzo unitario
  • varianti[] / aggiungere / rimuovere → Nota riga/descrizione estesa
  • pagamento → Metodo pagamento (contanti/POS/online)
  • dati_utente[0].* → Dati consegna/ritiro (etichette)
  • km / dati_consegna → Stima logistica (tempi/distanza)

L’aliquota IVA può essere gestita lato gestionale tramite regole per categoria (nomecategoria / categoria_originale).

Autenticazione & filtri
  • Auth: ?key=LA_TUA_CHIAVE o header Authorization: Bearer <chiave>
  • limit: predef. 100 (max 200 consigliato)
  • cursor: ultimo id_ordini processato
  • data: YYYY-MM-DD — default oggi 00:00:01
Idempotenza: ripeti la chiamata con lo stesso cursor senza creare duplicati. Avanza il cursore solo quando hai stampato/registrato.

Esempi rapidi

cURL, JavaScript e PHP (server-to-server).

cURL
curl -s "https://tuo-dominio/api_v2_registratori.php?limit=50&cursor=0" \
  -H "Authorization: Bearer LA_TUA_CHIAVE"
JavaScript (fetch)
fetch('/api_v2_registratori.php?limit=50&cursor=0', {
  headers: { 'Authorization': 'Bearer LA_TUA_CHIAVE' }
}).then(r => r.json()).then(console.log);
PHP (server-to-server)
<?php
$ch = curl_init('https://tuo-dominio/api_v2_registratori.php?limit=50&cursor=0');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer LA_TUA_CHIAVE'));
$body = curl_exec($ch);
curl_close($ch);
$data = json_decode($body, true);
print_r($data);
Errori standard
403 {"errore":"Chiave_KEY_Errata","requestId":"..."}
500 {"errore":"DB_Conn_Error","dettaglio":"...","requestId":"..."}

HTTP code coerenti, messaggi sintetici, requestId per correlare i log.

Hai già un fornitore di registratori?

Lo mettiamo in copia: inviamo documentazione e accesso test. L’adattatore lo fa lui, come hanno fatto gli altri.

Contattaci per la sandbox