Sirio CloudDocumentazione API

Muovere il magazzino da fuori

Carichi, scarichi, trasferimenti e allineamento inventariale.

1. Carico, scarico, trasferimento

curl -X POST https://tuaazienda.siriocloud.it/api/v1/movimenti \
  -H 'Authorization: Bearer sc_live_LATUACHIAVE' -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: rientro-2026-1188' \
  -d '{
    "natura": "carico",
    "magazzino": 1,
    "causale": "reso da noleggio",
    "righe": [
      { "ean": "8001234567890", "quantita": 2 },
      { "codice": "ART-002", "quantita": 1, "prezzo": "7.50" }
    ]
  }'

Gli esiti sono per riga; le righe scritte tornano con l'id del movimento e il numero dell'operazione che le raggruppa (per accodare altre chiamate alla stessa: "operazione": N). Il prezzo assente è il suggerito della catena d'acquisto; lo scarico per lotti verifica il residuo del lotto; il trasferimento vuole anche magazzino_origine.

2. L'inventario esterno: «porta a X»

Il terminale d'inventario dichiara il valore contato; la differenza la calcola e la registra il gestionale:

curl -X POST https://tuaazienda.siriocloud.it/api/v1/giacenze/allinea \
  -H 'Authorization: Bearer sc_live_LATUACHIAVE' -H 'Content-Type: application/json' \
  -d '{
    "magazzino": 1,
    "righe": [
      { "codice": "ART-001", "contato": 48 },
      { "codice": "ART-002", "contato": 12 }
    ]
  }'
{
  "scritte": 1, "invariate": 1,
  "righe": [
    { "articolo": { "id": 17, "codice": "ART-001" }, "attuale": "50", "contato": "48", "delta": "-2" },
    { "articolo": { "id": 18, "codice": "ART-002" }, "attuale": "12", "contato": "12", "delta": "0" }
  ]
}

L'operazione è ripetibile: la stessa chiamata rilanciata non scrive nulla (tutte le righe risultano «invariate»). Ogni articolo può comparire una volta sola per chiamata; gli articoli con varianti si contano variante per variante.

3. Leggere il magazzino

GET /movimenti espone tutti i movimenti — anche quelli scritti dalle schermate, dalle vendite, dagli arrivi — ognuno con la sua origine dichiarata: la giacenza è la loro somma, e un estratto parziale non tornerebbe mai. I lotti aperti di un articolo: GET /articoli/{id}/lotti?magazzino=1.