Vai al contenuto

Changelog — API

Cronologia delle modifiche dell'Amica Cloud API. Vedi anche il changelog degli SDK.

In Development

Nessuna modifica ancora annunciata.

v3.3.3 — 2026-11-06

  • fix: la copia restituita da POST documento/{id}/newinstancefromtemplate si può salvare anche quando il documento ha spese: prima la POST della copia falliva perché le spese perdevano il riferimento alla spesa. La copia ora ha anche Numero, come GET documento/new, e la quantità evasa delle righe a 0.
  • fix: GET preferenze restituisce sempre la riga usata dal gestionale desktop, anche quando nel database ce ne sono altre.

v3.3.2 — 2026-11-05

  • fix: GET preferenze non risponde più 500 quando nel gestionale desktop la periodicità IVA, la liquidazione IVA o il tipo di bilancio non sono mai stati impostati. Arrivano come Mensile, Competenza e Analitico.
  • fix: le liste e le ricerche dei documenti non restituiscono più i modelli salvati dal gestionale desktop, che comparivano come documenti normali. Letto per id, un modello risponde 404.

v3.3.1 — 2026-10-28

  • fix: liste e dettagli non rispondono più 500 quando un dato salvato dal gestionale desktop, o importato da versioni precedenti, ha vuoto un campo obbligatorio. Il campo arriva con il valore che ha nel gestionale: i testi obbligatori (ragione sociale, codici e nomi, sigla della valuta) vuoti, costi, quantità evasa, quantità ordinata e posizione della riga a 0, il cambio del documento a 1, la data di una scadenza senza data uguale a quella del documento. In POST e PUT questi campi restano obbligatori.
  • fix: le letture non restituiscono i dati incompleti che il gestionale non mostra o non può usare: righe e spese senza documento, spese vuote, documenti senza tipo o senza anagrafica, giacenze e righe di movimento senza magazzino o articolo, reparti senza causale IVA, componenti di distinta base e colori senza articolo. La numerazione dei documenti li conta comunque, quindi il numero proposto non si sovrappone a uno già usato.
  • fix: una fattura fornitore (differita, accompagnatoria, da professionista, nota di credito o di debito) non risulta più duplicata quando un altro fornitore ha usato lo stesso numero nell'anno: il numero è controllato solo per lo stesso fornitore.

v3.3.0 — 2026-10-23

  • new: POST listino/compute esegue sulle righe di un listino le procedure della scheda listino del gestionale: Aggiungi (gli articoli attivi, tutti o per produttore, marca, categoria, gruppo merceologico o data di inserimento), Duplica (le righe articolo di un altro listino), ModificaPrezzi (di una percentuale o di un importo fisso), Sconti e Provvigioni. Il listino può non essere ancora salvato; la risposta contiene il listino con le righe risultanti (quelle nuove con id 0) e gli avvisi da mostrare. Non salva nulla: il risultato si salva con POST o PUT listino.
  • fix: le letture vedono subito le modifiche fatte dal gestionale desktop. Prima liste, dettagli, totali dei documenti e grafici di situazione potevano mostrare dati vecchi fino a 20 minuti dopo una scrittura.

v3.2.4 — 2026-10-23

  • fix: GET situazione/creditidebitimensili conta le scadenze aperte degli ultimi 36 mesi a partire da oggi. Prima la finestra partiva dalla scadenza più lontana nel futuro: inserirne una spostava la finestra in avanti e faceva uscire dal conteggio scadenze vecchie ancora aperte.

v3.2.3 — 2026-10-22

  • fix: POST e PUT documento accettano senza descrizione le righe di totale per aliquota create dal richiamo dei DDT «solo totali» (tipoImportazione Totali): hanno causaleIvaId e importo ma nessun articoloId. Prima rispondevano 400. Sulle altre righe la descrizione resta obbligatoria; nello schema descrizione di BeneServizio non è più tra i campi obbligatori.

v3.2.2 — 2026-10-21

  • fix: nelle scadenze importoDaPagare è arrotondato al centesimo e pagata è true anche quando l'importo pagato ha residui di virgola mobile (46.880000000000003 su 46.88).

v3.2.1 — 2026-10-21

  • fix: GET situazione/creditidebitimensili restituisce per ogni mese il credito e il debito ancora da pagare, con entrambe le preferenze di pagamento delle scadenze. Prima contava l'importo intero delle scadenze, o ignorava quelle segnate pagate a mano.

v3.2.0 — 2026-10-21

  • change: DELETE documento/{id} su un documento emesso (o fatturato, evaso, chiuso, accreditato) risponde 400 con overridable: true, come la PUT: si forza con ?validationOverride=true. Tutte le DELETE accettano validationOverride.
  • new: GET scadenza accetta Stato=Aperta (comprese le parziali) o Stato=Saldata; conteggio e paginazione ne tengono conto.
  • new: articolocolore, i colori degli articoli a taglie e colori, in lettura e scrittura. Un POST con un colore che l'articolo ha già risponde 200 con quello esistente. Il salvataggio di documenti e movimenti merce aggiunge da solo i colori nuovi.
  • new: GET movimentomerce/riga/new e POST movimentomerce/riga/compute: una riga di movimento con i valori predefiniti, e la riga completata (magazzino, listino, causale IVA, taglia, prezzi, importi) al cambio di un campo, senza salvare nulla.
  • new: le righe dei documenti restituiscono importoIvato, calcolato dai prezzi e dall'IVA del documento; in scrittura è ignorato.
  • new: POST documento/compute accetta ivaEsclusa (default true) e, per ogni riga, importoIvato, e calcola i riepiloghi come l'applicazione desktop. POST beneservizio/compute restituisce importoIvato.
  • fix: POST beneservizio/compute arrotonda l'importo ai centesimi con IVA esclusa e calcola i prezzi negativi in valore assoluto, applicando il segno alla fine.
  • fix: gli import di un documento (import/ddt, ordine, preventivo, reso, acconto, proforma) producono righe con l'importo e il documento con i totali, e scrivono il secondo riepilogo IVA nel suo slot.
  • fix: POST documento/{id}/import/ddt gestisce spese e pagamento come l'applicazione desktop: le spese seguono speseIncluse, e una fattura senza pagamento prende quello dell'anagrafica.
  • fix: l'espansione Righe.Prestazione di listini e documenti restituisce la prestazione, non più null o l'articolo con lo stesso Id.
  • fix: POST, PUT e DELETE listino non richiedono più ?TipoListino=, e indirizzo non richiede più ?AnagraficaId=: rispondevano 500.
  • fix: POST documento/compute e POST beneservizio/compute con una causale IVA inesistente rispondono 400 invece di 500.
  • fix: movimenti merce ed evasione degli ordini riconoscono la giacenza di una taglia o di un colore senza distinguere maiuscole e minuscole e ignorando gli spazi in coda.
  • docs: nella API Reference aliquote, sconti e percentuali hanno esempi come frazioni (0.22 per il 22%).

v3.1.6 — 2026-10-06

  • breaking: lo spec OpenAPI non ha più il parametro di path version (i path sono /api/v3/...) e ogni operazione ha un operationId leggibile, come NazioneList o DocumentoImportDdt. Le rotte HTTP non cambiano, ma i client generati dallo spec cambiano i nomi dei metodi: vedi il changelog degli SDK.
  • new: dalla API Reference ci si autentica con OAuth 2.0, sia con Client Credentials sia con Authorization Code (PKCE).
  • fix: lo spec e la API Reference hanno di nuovo descrizioni ed esempi di tutti i modelli, mancanti dalla v3.1.0.

v3.1.5 — 2026-10-06

  • new: inventario, gli inventari di magazzino. Le righe si producono con l'elaborazione: POST inventario/{id}/compute restituisce l'anteprima senza scrivere nulla, POST inventario/{id}/process salva le righe e, con alignStock (default true), allinea le giacenze. Le stesse operazioni esistono senza {id} per una testata nuova o non ancora salvata, mandata nel corpo.
  • new: GET documento/totali, i totali dei documenti che soddisfano Filter, raggruppati per Mese, Anno o Anagrafica; le note di credito sono sottratte.
  • new: distinct su giornalemagazzino (anche sui campi del movimento, come MovimentoMerce.Data) e su movimentomerce. giornalemagazzino espande il movimento di ogni riga (expand=MovimentoMerce) e si filtra e ordina per i suoi campi.
  • fix: distinct su date, numeri, booleani ed enum non risponde più 400; su un'azienda inesistente risponde 404 invece di 500.

v3.1.4 — 2026-10-01

  • fix: POST movimentomerce con righe annidate non richiede più movimentoMerceId nelle righe; PUT movimentomerce/{id} senza righe lascia invariate quelle esistenti.
  • fix: PUT giacenza/{id} non richiede più l'articolo annidato.

v3.1.3 — 2026-10-01

  • breaking: giornalemagazzino è di sola lettura: POST, PUT e DELETE rispondono 405. Le righe di magazzino si scrivono attraverso movimentomerce.
  • fix: POST, PUT e DELETE movimentomerce aggiornano giacenze e costi degli articoli, come l'applicazione desktop.
  • fix: i documenti e i movimenti con righe senza descrizione si leggono, si emettono e si esportano in XML senza errori 500.

v3.1.2 — 2026-09-28

  • fix: GET contocontabile non risponde più 500 su alcuni piani dei conti.

v3.1.1 — 2026-09-28

  • fix: PUT articolo cancella i componenti tolti da DistintaBase; una DistintaBase null lascia la distinta invariata.

v3.1.0 — 2026-09-22

  • breaking: rimosso l'endpoint reparto, insieme ai campi repartoId e reparto di Articolo.
  • new: lo schema ProblemDetails documenta il campo code, e ogni operazione dichiara le risposte 401 e 403 (vedi Cause del 403).

v3.0.2 — 2026-09-11

  • new: le richieste su un'azienda con la licenza non attiva ricevono 403 con code: company_license_not_active.

v3.0.1 — 2026-09-02

  • breaking: i corpi dei 400 e dei 409 sono Problem Details (RFC 7807), come dichiarato dalla documentazione, e non più una stringa JSON con il solo messaggio. Il campo overridable arriva così al client.
  • new: una partita IVA o un codice fiscale formalmente errati sull'anagrafica sono errori forzabili con validationOverride=true.
  • new: gli account senza servizio cloud attivo ricevono 403 con code: cloud_not_active.
  • new: beneservizio si filtra e ordina per i campi della testata (Documento.Data, Documento.ClasseDocumento, …) ed espande Documento e Documento.Anagrafica.

v3.0.0 — 2026-07-20

  • new: Prima release pubblica dell'Amica Cloud API (v3): accesso REST ad anagrafiche, magazzino, documenti, scadenze e fatturazione elettronica, con autenticazione OAuth 2.0, supporto multi-azienda, paginazione, filtri e ordinamento, espansione oggetti correlati, controllo di concorrenza ottimistico, rate limiting e header Idempotency-Key su POST e PUT.