Vai al contenuto

Changelog API

Questa pagina documenta tutte le modifiche significative all'Invoicetronic API.

v1.3.3 - 12 Marzo 2026

Fix

  • Corretto errore 500 su POST /send e altri endpoint con transazioni, causato dall'incompatibilità tra la strategia di retry automatico su errori transienti PostgreSQL (introdotta nella v1.3.2) e le transazioni manuali.

v1.3.2 - 12 Marzo 2026

Fix

  • Corretto errore 500 su POST /send/xml quando il Content-Type include parametri (es. charset=utf-8). Il controllo ora supporta anche text/xml ed è case-insensitive.
  • Corretto errore 500 su POST/PUT quando i campi DateTime non hanno timezone esplicita. I valori non-UTC vengono ora rifiutati con errore 400.
  • Il campo created di tutte le entity viene ora gestito interamente dal server: impostato a UTC in fase di creazione e non modificabile in fase di aggiornamento.
  • Corretto errore 500 su GET /log e GET /webhookhistory quando si ordina per success. Le proprietà calcolate non mappate al database ora restituiscono errore di validazione.

v1.3.1 - 10 Marzo 2026

Fix

  • Corretto errore 500 quando il campo payload è nullo o vuoto nell'invio fattura. Ora restituisce correttamente un errore 400.

v1.3.0 - 7 Marzo 2026

Novità

  • Aggiunto campo nome_committente alle fatture inviate e nome_prestatore alle fatture ricevute. La ragione sociale viene estratta automaticamente dall'XML ed è cercabile tramite il filtro q.

v1.2.10 - 6 Marzo 2026

Fix

  • Migliorato il rilevamento delle autofatture: ora vengono riconosciute correttamente le fatture con soggetto_emittente = CC e tipo_documento = TD01, oppure con tipo_documento TD16, TD17, TD18, TD19, TD20, TD21 o TD27.
  • Aggiunta validazione: le fatture inviate senza almeno un body restituiscono ora un errore 400.

v1.2.9 - 3 Marzo 2026

Novità

  • Aggiunto supporto per il sorting per document_date (e -document_date) negli endpoint /send/ e /receive/, per ordinare le fatture in base alla data documento.

Documentazione

  • Chiarito nella documentazione dell'endpoint /update/ che l'interrogazione è gratuita e non viene conteggiata come operazione.

v1.2.8 - 2 Marzo 2026

Novità

  • Aggiunto header Retry-After sulle risposte 429 Too Many Requests, che indica al client quanti secondi attendere prima di riprovare.
  • Aggiunti header RateLimit-Limit e RateLimit-Policy su tutte le risposte API, che descrivono le finestre di rate limiting attive (al secondo, al minuto, al giorno).

v1.2.7 - 2 Marzo 2026

Novità

  • Aggiunto endpoint GET /health/ per il controllo dello stato dell'API e dei database. Non richiede autenticazione. Rate limited a 12 richieste al minuto. Restituisce 200 se tutti i servizi sono operativi, 503 se uno o più dipendenze non sono raggiungibili.

v1.2.6 - 27 Febbraio 2026

Novità

  • Aggiunta validazione del formato filename SDI per le fatture in invio. Il file_name, se fornito, deve rispettare la convenzione SDI: codice paese + id fiscale + _ + progressivo + .xml o .xml.p7m (es. IT01234567890_00001.xml).

v1.2.5 - 26 Febbraio 2026

Correzioni

  • Il parametro type dell'endpoint /export/ ora accetta valori case-insensitive (es. send, Send, SEND) e restituisce un errore chiaro per valori non validi.

v1.2.4 - 26 Febbraio 2026

Novità

  • Aggiunto parametro q per la ricerca full-text su nome, partita IVA e codice fiscale nell'endpoint di lista /company/.

v1.2.3 - 26 Febbraio 2026

Novità

  • Aggiunto parametro q per la ricerca full-text su committente, prestatore, identifier e nome file negli endpoint di lista /send/ e /receive/.

v1.2.2 - 25 Febbraio 2026

Correzioni

  • Il parametro sort degli endpoint di lista ora è case-insensitive (es. sort=name e sort=Name funzionano entrambi).

v1.2.1 - 25 Febbraio 2026

Novità

  • Aggiunto endpoint GET /company/{vat} per il recupero di un'azienda tramite partita IVA.

Correzioni

  • Aggiunto ordinamento predefinito per id alle query con paginazione per evitare risultati imprevedibili.

v1.1.6 - 24 Febbraio 2026

Correzioni

  • Le eccezioni transient di database (timeout di connessione, ecc.) ora restituiscono 503 Service Unavailable con ProblemDetails.

v1.1.5 - 23 Febbraio 2026

Novità

  • Aggiunti endpoint GET /send/{id}/payload e GET /receive/{id}/payload per ottenere solo il payload senza i metadati della fattura. L'endpoint receive marca la fattura come letta e conta l'operazione.

Correzioni

  • Le risposte GET di receive e update restituivano is_read=false anche quando la lettura li marcava come letti. Ora is_read è correttamente true nella risposta immediata.

v1.1.4 - 19 Febbraio 2026

Novità

  • La sezione API Reference ora include gli schemi delle entity (Company, Send, Receive, Update, WebHook, Event, Status) con le relative descrizioni.

v1.1.3 - 17 Febbraio 2026

Correzioni

  • Spazi nell'id_codice o codice_fiscale del XML (es. 04467630614) causavano errore 400 nella ricezione fatture. I valori vengono ora trimmati automaticamente.

v1.1.2 - 17 Febbraio 2026

Correzioni

  • Le validazioni vengono ora conteggiate correttamente nel contatore operazioni, anche quando si invia con ?validate=true.

v1.1.1 - 16 Febbraio 2026

Correzioni

  • XML malformato ora restituisce 400 Bad Request invece di 500 Internal Server Error su tutti gli endpoint di invio e validazione.
  • Il messaggio di errore per partita IVA non trovata ora include la partita IVA estratta dall'XML.
  • Il filtro prestatore sulle query /update/ veniva ignorato. Ora filtra correttamente tramite la fattura inviata collegata.

v1.1.0 - 13 Febbraio 2026

Novità

  • Aggiunto endpoint GET /export/ per esportare fatture inviate e ricevute come archivio ZIP di file XML FatturaPA. Supporta filtri per azienda, periodo (mese/trimestre) e range di date documento. Le fatture inviate vengono incluse solo se in stato definitivo.

Correzioni

  • Le fatture ricevute (Receive) vengono ora conteggiate come operazione solo se non ancora lette.

v1.0.27 - 6 Febbraio 2026

Correzioni

  • Il campo date_sent dei documenti inviati (Send) viene ora aggiornato correttamente.

Documentazione

  • Aggiunta tabella valori enum State nella documentazione Update con descrizioni dettagliate.
  • Aggiunta nota sull'importanza di monitorare lo stato dei documenti inviati.

v1.0.26 - 5 Febbraio 2026

Novità

  • L'endpoint DELETE /company/{id} ora richiede il parametro ?force=true se esistono fatture collegate alla company. Senza il parametro, ritorna 409 Conflict con i dettagli delle fatture esistenti.

v1.0.25 - 3 Febbraio 2026

Correzioni

  • Il campo is_read nelle fatture ricevute (receive) viene ora impostato solo quando include_payload=true, sia per GET singolo che per lista.

Documentazione

  • Aggiornate le descrizioni degli endpoint receive per documentare il nuovo comportamento di is_read.
  • Corretti typo nelle descrizioni dei modelli.

v1.0.24 - 2 Febbraio 2026

Correzioni

  • Migliorato il log degli eventi.

v1.0.23 - 2 Febbraio 2026

Correzioni

  • Corretta la decodifica base64 nell'autenticazione Basic Auth che poteva causare il fallimento del login quando le credenziali venivano codificate senza il separatore colon (es. Base64(api_key) invece di Base64(api_key:)).

v1.0.22 - 18 Gennaio 2026

Miglioramenti

Documentazione API migliorata

Aggiunte descrizioni complete a tutti gli endpoint API con informazioni dettagliate su: - Descrizione di ogni entità (send, receive, update, company, log, webhook, status) - Periodi di retention dei dati - Filtri disponibili per le ricerche - Link alla Dashboard per la gestione delle risorse - Link alla documentazione Sandbox e Webhooks

v1.0.21 - 5 Gennaio 2026

Novità

Supporto per la lingua tedesca

Aggiunto il supporto completo per la lingua tedesca (de) nell'header Accept-Language. Tutti i messaggi di errore e validazione sono ora disponibili in tre lingue: - Accept-Language: it - Messaggi in italiano (predefinito) - Accept-Language: en - Messaggi in inglese - Accept-Language: de - Messaggi in tedesco

Le varianti regionali sono supportate e mappate automaticamente alla lingua base (es. de-DE, de-AT, de-CHde). Per maggiori dettagli, consulta la documentazione sulla localizzazione.

v1.0.20 - 4 Gennaio 2026

Modifiche Breaking

Header di localizzazione - Migrazione a Accept-Language

L'header di localizzazione è stato migrato dall'header custom Invoicetronic-Language all'header HTTP standard Accept-Language (RFC 7231). Per maggiori dettagli, consulta la documentazione sulla localizzazione.

Azione richiesta: I client devono aggiornare le loro integrazioni per usare l'header Accept-Language invece di Invoicetronic-Language: - Prima: Invoicetronic-Language: it - Ora: Accept-Language: it

L'header custom Invoicetronic-Language non è più supportato. La lingua predefinita è ora italiano (in precedenza era inglese).

Novità

Supporto multi-lingua completo

Tutti i messaggi di errore di validazione sono ora disponibili in italiano e inglese. L'API risponde nella lingua specificata nell'header Accept-Language: - Accept-Language: it - Messaggi in italiano - Accept-Language: en - Messaggi in inglese

Se l'header è assente o contiene una lingua non supportata, l'API risponderà in italiano. Lingue attualmente supportate: italiano (it), inglese (en).

v1.0.19 - 2 Gennaio 2026

Correzioni

Log errori - Campo error più leggibile

Migliorato il campo error nei log per mostrare solo il messaggio di errore effettivo invece dell'intera risposta JSON. Il campo ora contiene il messaggio reale (es. "vat is required") invece del wrapper JSON completo, rendendo i log più leggibili. In caso di errori ProblemDetails, viene estratto il campo detail, altrimenti viene usato il campo title o, per risposte non-ProblemDetails, la risposta grezza (troncata a 500 caratteri).

v1.0.18 - 1 Gennaio 2026

Correzioni

Validazione campi obbligatori

Corretta la validazione dei campi obbligatori per restituire 400 Bad Request invece di 500 Internal Server Error quando i campi vat, fiscal_code, name (Company) o payload (Send/Receive) sono null. Questi campi erano già contrassegnati come obbligatori nel contratto API e nella specifica OpenAPI, ma la validazione non era correttamente applicata a runtime.

v1.0.16 - 9 Dicembre 2025

Modifiche

Invio fatture - Auto-compilazione DatiTrasmissione

Quando si invia una fattura senza specificare il campo file_name, il sistema ora aggiorna automaticamente i campi DatiTrasmissione nel XML se sono vuoti: - IdTrasmittente.IdPaese viene impostato a "IT" - IdTrasmittente.IdCodice viene impostato a "01180680397" (P.IVA Invoicetronic) - ProgressivoInvio viene impostato al contatore Base36 auto-generato

In precedenza, veniva generato solo il nome del file ma il contenuto XML rimaneva invariato. Questa modifica garantisce coerenza tra il nome del file e la struttura XML. I valori esistenti non vuoti vengono sempre preservati e mai sovrascritti.

v1.0.15 - 6 Dicembre 2025

Novità

Header Invoicetronic-Version

Aggiunto l'header Invoicetronic-Version a tutte le risposte API. I client possono ora verificare la versione dell'API e rilevare aggiornamenti leggendo questo header da qualsiasi risposta. Il numero di versione corrisponde alla versione di release dell'API (es. "1.0.15").

v1.0.14 - 6 Dicembre 2025

Correzioni

Webhook - Codifica payload

Corretta la codifica del payload webhook da UTF-16 a UTF-8 per la corretta verifica della firma HMAC. Il payload HTTP del webhook veniva inviato con Encoding.Unicode (UTF-16LE) mentre la firma HMAC veniva calcolata usando la codifica ASCII, rendendo difficile per i client verificare la firma. Ora sia il payload che il calcolo HMAC utilizzano la codifica UTF-8, che è lo standard per i payload JSON e garantisce una verifica coerente della firma.

v1.0.13 - 5 Dicembre 2025

Correzioni

Webhook - Supporto evento wildcard

Corretto il supporto per l'evento wildcard (*) nei webhook. I webhook configurati con l'evento * venivano accettati durante la creazione ma non venivano mai attivati. Ora i webhook con * nella lista degli eventi vengono correttamente attivati per tutti gli eventi.

v1.0.12 - 4 Dicembre 2025

Novità

Webhook - Campo resource_id

Aggiunto il campo resource_id alle notifiche webhook. I payload webhook ora includono l'ID della risorsa creata o modificata dalla richiesta.

Per esempio, per gli eventi update.add, il campo resource_id contiene l'ID dell'entità Update appena creata. Questo permette ai ricevitori webhook di recuperare direttamente i dettagli della risorsa senza dover fare matching basato su timestamp o altre euristiche.

v1.0.9 - 4 Dicembre 2025

Correzioni

Notifiche webhook per receive.add e update.add

Corretta un'anomalia che impediva l'invio corretto delle notifiche webhook per gli eventi receive.add e update.add. I webhook vengono ora attivati correttamente per il proprietario della risorsa.

v1.0.7 - 3 Dicembre 2025

Correzioni

Notifiche webhook con company_id null

Corretto un problema che impediva l'invio delle notifiche webhook quando la risposta API conteneva un valore company_id null. Ora i webhook vengono correttamente inviati anche in questi casi.

v1.0.0 - 14 Luglio 2025

Novità

Prima release ufficiale di Invoicetronic API.