Changelog API
Questa pagina documenta tutte le modifiche significative all'Invoicetronic API.
v1.13.0 - 23 Aprile 2026
Novità
- Nuovo filtro
latest_statesuGET /send: recupera in un'unica chiamata tutte le fatture il cui stato SDI corrente corrisponde al valore indicato (ad esempio?latest_state=Scartato). Accetta il nome dello stato o il corrispondente valore numerico. Complementare al campolatest_stategià esposto inline sui record Send, elimina la necessità di paginare e filtrare lato client.
v1.12.1 - 22 Aprile 2026
Fix
- Corretto un bug per cui l'invio di un XML sintatticamente malformato a
/send/xmlpoteva restituire un errore 500 anziché il 400 atteso. Ora il server risponde sempre 400 con un ProblemDetails che include il dettaglio dell'errore di parsing XML.
v1.12.0 - 21 Aprile 2026
Novità
- Nuovo campo
latest_statesulle risposte di/send(dettaglio e lista) e sull'oggettosendincluso nelle risposte/update. Espone lo stato SDI corrente della fattura direttamente sul record Send, evitando una seconda chiamata a/updateper scoprirlo. - Il filtro multi-valore
idsè ora supportato suGET /send: accetta fino a 100 id separati da virgola per recuperare più record in una sola chiamata. Utile per visualizzare lo stato di un set noto di fatture senza pattern N+1.
Fix
- Il campo
last_updatesu/sende i filtrilast_update_from/last_update_topotevano mostrare valori obsoleti. Il campo è ora sempre allineato all'ultimo aggiornamento SDI ricevuto per la fattura.
Modifiche
- Limite di rate limiting sugli endpoint di polling allargato: burst fino a 500 richieste istantanee e 180 richieste al minuto sostenute (prima: 200 e 60). L'header
RateLimit-Policyriflette i nuovi valori sugli endpoint coinvolti. Dettagli nella guida al rate limiting.
v1.11.1 - 16 Aprile 2026
Fix
- Risolto un problema per cui un documento XML contenente caratteri invisibili iniziali (come il BOM UTF-8) poteva non essere elaborato correttamente.
v1.10.0 - 14 Aprile 2026
Novità
- Nuovo limite di rate limiting dedicato agli endpoint di polling. Le richieste
GETsu/receive,/update,/send,/loge/webhookhistorysono ora soggette a un limite aggiuntivo di 60 richieste al minuto a regime, con burst fino a 200 richieste istantanee. Il limite protegge l'API da pattern di polling in loop senza penalizzare la paginazione legittima. L'headerRateLimit-Policyriflette il nuovo limite sugli endpoint coinvolti. Dettagli nella guida al rate limiting.
v1.9.1 - 14 Aprile 2026
Fix
- Risolto un raro errore
500 Internal Server Errorche poteva comparire su chiamate API altrimenti riuscite in caso di problemi transitori al sistema di logging interno. La risposta corretta della richiesta viene ora sempre restituita al client.
v1.9.0 - 12 Aprile 2026
Modifiche importanti
- Rimosso il periodo di prova di 15 giorni sulle postazioni Desk: i nuovi checkout partono immediatamente come abbonamenti attivi, senza periodo di prova. Le chiavi API sandbox sono ora il percorso gratuito per valutare Desk — nessuna postazione richiesta, nessun limite di tempo.
v1.8.1 - 10 Aprile 2026
Novità
- Viene ora inviata una notifica email quando la consegna di un webhook fallisce ripetutamente, per consentire la diagnosi e la correzione tempestiva dell'endpoint.
v1.8.0 - 10 Aprile 2026
Novità
- Migliorata la resilienza e la diagnostica della consegna webhook. I tentativi falliti vengono ora ritentati automaticamente senza duplicare il log degli eventi. Ogni tentativo viene registrato nella cronologia webhook con il dettaglio dell'errore nel nuovo campo
error.
v1.7.6 - 10 Aprile 2026
Documentazione
- Il campo
status_codenella cronologia webhook ora documenta il significato del valore 0: errore di rete, tipicamente causato da un endpoint malconfigurato o non più esistente.
v1.7.5 - 10 Aprile 2026
Fix
- Migliorata la resilienza della consegna dei webhook: errori di rete (DNS irrisolvibile, timeout, connessione rifiutata) non causano più tentativi ripetuti dell'intero job. I fallimenti vengono ora registrati nella cronologia webhook con codice di stato 0.
v1.7.4 - 8 Aprile 2026
Fix
- Risolto un problema per cui l'invio di una fattura in formato JSON (
POST /send/jsonePOST /send/validate/json) poteva restituire un errore 500 quando uno dei campi numerici del documento veniva passato come stringa invece che come numero. Ora la risposta è un 400 chiaro che indica il campo malformato.
v1.7.3 - 8 Aprile 2026
Fix
- Risolto un problema per cui le richieste di test eseguite dal pannello "Try It" della API Reference potevano fallire con errore 400 a causa di valori segnaposto errati che venivano inseriti automaticamente nei campi gestiti dal server.
- L'endpoint di aggiornamento webhook (
PUT /webhook/) non rifiuta più le richieste quando il riferimento all'utente nel body non coincide con l'utente autenticato: lo allinea automaticamente, come fanno già gli altri endpoint di aggiornamento.
v1.7.2 - 7 Aprile 2026
Fix
- Risolto un problema che, dopo la cancellazione di una postazione Desk, poteva impedire l'acquisto di una nuova postazione sulla stessa chiave API. Ora la riattivazione dalla dashboard funziona correttamente.
v1.7.1 - 7 Aprile 2026
Fix
- Corretto un problema per cui l'acquisto di una postazione Desk aggiuntiva poteva creare un nuovo profilo cliente Stripe invece di riutilizzare quello già associato all'utente.
v1.7.0 - 7 Aprile 2026
Novità
- Postazioni Desk: nuovo modello per gestire l'accesso a Desk Cloud tramite postazioni associate alle API key, con integrazione al sistema di pagamento ricorrente. La chiave API principale include 15 giorni di prova gratuita.
- Supporto al doppio prezzo per postazioni Desk in base al paese (Italia/estero).
- Nuovo campo
has_active_seatnella risposta diGET /status, per verificare se la chiave API ha una postazione Desk attiva. - Nuovo campo
is_sub_keynella risposta diGET /status, per identificare le chiavi secondarie. - Il campo
descriptionè ora obbligatorio per la creazione di chiavi secondarie.
Fix
- La cancellazione di una postazione Desk avviene ora a fine periodo (status
cancelingconcurrent_period_end) invece che immediatamente.
v1.6.5 - 2 Aprile 2026
Fix
- Corretto un errore per cui l'invio di XML malformato restituiva errore 500 invece del corretto 400.
v1.6.4 - 2 Aprile 2026
Fix
- Corretta la generazione della specifica OpenAPI che produceva un requisito di sicurezza vuoto, causando la mancata autenticazione in tutti gli SDK.
v1.6.3 - 2 Aprile 2026
Fix
- Risolto un errore che impediva la ricezione di alcune fatture elettroniche in formato P7M.
v1.6.2 - 31 Marzo 2026
Fix
- Corretto il controllo sul limite di dimensione file (5MB) che verificava la lunghezza della stringa Base64 anziché la dimensione effettiva del file, causando falsi rifiuti su file entro il limite.
v1.6.1 - 30 Marzo 2026
Fix
- Migliorata la robustezza della decodifica Base64 dei payload.
v1.6.0 - 30 Marzo 2026
Novità
- Gli eventi del log ora includono il campo
user_agent, che riporta lo User-Agent della richiesta HTTP. Il campo è disponibile nelle risposte diGET /log/e filtrabile tramite query parameter.
v1.5.1 - 27 Marzo 2026
Fix
- Corretta identificazione di payload XML senza dichiarazione
<?xml>, che venivano erroneamente convertiti in Base64.
v1.5.0 - 26 Marzo 2026
Breaking Changes
- CORS non è più aperto a tutte le origini. Le origini consentite vanno configurate per ogni API key. Se nessuna origine è configurata, le richieste cross-origin vengono bloccate dal browser. Supporto wildcard per sottodomini (es.
*.example.com).
v1.4.2 - 26 Marzo 2026
Fix
- Corretta gestione della doppia codifica Base64 su fatture P7M ricevute da SDI.
v1.4.0 - 24 Marzo 2026
Novità
- Supporto chiavi con restrizioni. Le API key possono ora avere chiavi figlie con permessi configurabili e, opzionalmente, accesso limitato a specifiche aziende. Le chiavi con restrizioni condividono il billing con la chiave primaria e non possono creare altre chiavi figlie.
v1.3.3 - 12 Marzo 2026
Fix
- Corretto errore 500 su
POST /sende 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/xmlquando il Content-Type include parametri (es.charset=utf-8). Il controllo ora supporta anchetext/xmled è case-insensitive. - Corretto errore 500 su
POST/PUTquando i campi DateTime non hanno timezone esplicita. I valori non-UTC vengono ora rifiutati con errore 400. - Il campo
createddi 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 /logeGET /webhookhistoryquando si ordina persuccess. 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_committentealle fatture inviate enome_prestatorealle fatture ricevute. La ragione sociale viene estratta automaticamente dall'XML ed è cercabile tramite il filtroq.
v1.2.10 - 6 Marzo 2026
Fix
- Migliorato il rilevamento delle autofatture: ora vengono riconosciute correttamente le fatture con
soggetto_emittente= CC etipo_documento= TD01, oppure contipo_documentoTD16, 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-Aftersulle risposte429 Too Many Requests, che indica al client quanti secondi attendere prima di riprovare. - Aggiunti header
RateLimit-LimiteRateLimit-Policysu 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 +.xmlo.xml.p7m(es.IT01234567890_00001.xml).
v1.2.5 - 26 Febbraio 2026
Correzioni
- Il parametro
typedell'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
qper 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
qper 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
sortdegli endpoint di lista ora è case-insensitive (es.sort=nameesort=Namefunzionano 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
idalle 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 Unavailablecon ProblemDetails.
v1.1.5 - 23 Febbraio 2026
Novità
- Aggiunti endpoint
GET /send/{id}/payloadeGET /receive/{id}/payloadper 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=falseanche quando la lettura li marcava come letti. Orais_readè correttamentetruenella 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_codiceocodice_fiscaledel 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
prestatoresulle 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_sentdei documenti inviati (Send) viene ora aggiornato correttamente.
Documentazione
- Aggiunta tabella valori enum
Statenella 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=truese 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_readnelle fatture ricevute (receive) viene ora impostato solo quandoinclude_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 diBase64(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-CH → de). 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.