API Changelog
This page documents all significant changes to the Invoicetronic API.
v1.3.3 - March 12, 2026
Fixes
- Fixed 500 error on
POST /sendand other transactional endpoints caused by incompatibility between the automatic retry strategy for transient PostgreSQL errors (introduced in v1.3.2) and manual transactions.
v1.3.2 - March 12, 2026
Fixes
- Fixed 500 error on
POST /send/xmlwhen Content-Type includes parameters (e.g.,charset=utf-8). The check now also supportstext/xmland is case-insensitive. - Fixed 500 error on
POST/PUTwhen DateTime fields lack an explicit timezone. Non-UTC values are now rejected with a 400 error. - The
createdfield of all entities is now fully managed by the server: set to UTC on creation and not modifiable on update. - Fixed 500 error on
GET /logandGET /webhookhistorywhen sorting bysuccess. Computed properties not mapped to the database now return a validation error.
v1.3.1 - March 10, 2026
Fixes
- Fixed 500 error when the
payloadfield is null or empty on invoice submission. Now correctly returns a 400 error.
v1.3.0 - March 7, 2026
New Features
- Added
nome_committentefield to sent invoices andnome_prestatorefield to received invoices. The business name is automatically extracted from the XML and is searchable via theqfilter.
v1.2.10 - March 6, 2026
Fixes
- Improved self-invoice (autofattura) detection: invoices with
soggetto_emittente= CC andtipo_documento= TD01, or withtipo_documentoTD16, TD17, TD18, TD19, TD20, TD21 or TD27 are now correctly recognized. - Added validation: invoices submitted without at least one body now return a 400 error.
v1.2.9 - March 3, 2026
New Features
- Added sorting support for
document_date(and-document_date) on/send/and/receive/endpoints, to order invoices by document date.
Documentation
- Clarified in the
/update/endpoint documentation that querying is free and not counted as an operation.
v1.2.8 - March 2, 2026
New Features
- Added
Retry-Afterheader on429 Too Many Requestsresponses, indicating how many seconds the client should wait before retrying. - Added
RateLimit-LimitandRateLimit-Policyheaders on all API responses, describing the active rate limit windows (per-second, per-minute, per-day).
v1.2.7 - March 2, 2026
New Features
- Added
GET /health/endpoint for checking API and database health status. No authentication required. Rate limited to 12 requests per minute. Returns 200 when all services are operational, 503 when one or more dependencies are unreachable.
v1.2.6 - February 27, 2026
New Features
- Added SDI filename format validation for outbound invoices. The
file_name, if provided, must follow the SDI naming convention: country code + fiscal id +_+ progressive +.xmlor.xml.p7m(e.g.,IT01234567890_00001.xml).
v1.2.5 - February 26, 2026
Fixes
- The
typeparameter on the/export/endpoint now accepts case-insensitive values (e.g.,send,Send,SEND) and returns a clear error for invalid values.
v1.2.4 - February 26, 2026
New Features
- Added
qparameter for full-text search across name, VAT number, and fiscal code on/company/list endpoint.
v1.2.3 - February 26, 2026
New Features
- Added
qparameter for full-text search across committente, prestatore, identifier, and file name on/send/and/receive/list endpoints.
v1.2.2 - February 25, 2026
Fixes
- The
sortparameter on list endpoints is now case-insensitive (e.g., bothsort=nameandsort=Namework).
v1.2.1 - February 25, 2026
New Features
- Added
GET /company/{vat}endpoint to retrieve a company by its VAT number.
Fixes
- Added default ordering by
idto paginated queries to prevent unpredictable results.
v1.1.6 - February 24, 2026
Fixes
- Transient database exceptions (connection timeouts, etc.) now return
503 Service Unavailablewith ProblemDetails.
v1.1.5 - February 23, 2026
New Features
- Added
GET /send/{id}/payloadandGET /receive/{id}/payloadendpoints to retrieve only the payload without invoice metadata. The receive endpoint marks the invoice as read and counts the operation.
Fixes
- GET responses for receive and update returned
is_read=falseeven when the read operation marked them as read. Nowis_readis correctlytruein the immediate response.
v1.1.4 - February 19, 2026
New
- The API Reference now includes entity schemas (Company, Send, Receive, Update, WebHook, Event, Status) with their descriptions.
v1.1.3 - February 17, 2026
Fixes
- Whitespace in XML
id_codiceorcodice_fiscalefields (e.g.,04467630614) caused false 400 errors when receiving invoices. Values are now automatically trimmed.
v1.1.2 - February 17, 2026
Fixes
- Validations are now correctly counted in the operations counter, even when sending with
?validate=true.
v1.1.1 - February 16, 2026
Fixes
- Malformed XML now returns 400 Bad Request instead of 500 Internal Server Error on all send and validation endpoints.
- The error message for VAT number not found now includes the VAT number extracted from the XML.
- The
prestatorefilter on/update/queries was being ignored. It now correctly filters through the linked sent invoice.
v1.1.0 - February 13, 2026
New Features
- Added
GET /export/endpoint to export sent and received invoices as a ZIP archive of FatturaPA XML files. Supports filters by company, period (month/quarter), and document date range. Sent invoices are included only when in final state.
Fixes
- Received invoices (Receive) are now counted as operations only when unread.
v1.0.27 - February 6, 2026
Fixes
- The
date_sentfield on sent invoices (Send) is now updated correctly.
Documentation
- Added State enum values table to Update documentation with detailed descriptions.
- Added note on the importance of monitoring sent document status.
v1.0.26 - February 5, 2026
New Features
- The DELETE
/company/{id}endpoint now requires the?force=trueparameter when there are linked invoices. Without it, returns 409 Conflict with details about existing invoices.
v1.0.25 - February 3, 2026
Fixes
- The
is_readfield on received invoices (receive) is now set only wheninclude_payload=true, both for single GET and list endpoints.
Documentation
- Updated receive endpoint descriptions to document the new
is_readbehavior. - Fixed typos in model descriptions.
v1.0.24 - February 2, 2026
Fixes
- Improved event logging.
v1.0.23 - February 2, 2026
Fixes
- Fixed base64 decoding in Basic Auth authentication that could cause login failure when credentials were encoded without the colon separator (e.g.
Base64(api_key)instead ofBase64(api_key:)).
v1.0.22 - January 18, 2026
Improvements
Enhanced API documentation
Added comprehensive descriptions to all API endpoints with detailed information about: - Description of each entity (send, receive, update, company, log, webhook, status) - Data retention periods - Available filters for searches - Links to Dashboard for resource management - Links to Sandbox and Webhooks documentation
v1.0.21 - January 5, 2026
New Features
German language support
Added full support for German language (de) in the Accept-Language header. All error and validation messages are now available in three languages:
- Accept-Language: it - Messages in Italian (default)
- Accept-Language: en - Messages in English
- Accept-Language: de - Messages in German
Regional variants are supported and automatically mapped to the base language (e.g., de-DE, de-AT, de-CH → de). For more details, see the localization documentation.
v1.0.20 - January 4, 2026
Breaking Changes
Localization Header - Migration to Accept-Language
The localization header has been migrated from the custom Invoicetronic-Language header to the standard HTTP Accept-Language header (RFC 7231). For more details, see the localization documentation.
Action required: Clients must update their integrations to use the Accept-Language header instead of Invoicetronic-Language:
- Before: Invoicetronic-Language: en
- Now: Accept-Language: en
The custom Invoicetronic-Language header is no longer supported. The default language is now Italian (previously it was English).
New Features
Full multi-language support
All validation error messages are now available in Italian and English. The API responds in the language specified in the Accept-Language header:
- Accept-Language: it - Messages in Italian
- Accept-Language: en - Messages in English
If the header is absent or contains an unsupported language, the API will respond in Italian. Currently supported languages: Italian (it), English (en).
v1.0.19 - January 2, 2026
Bug Fixes
Log Errors - More Readable error Field
Improved the error field in logs to show only the actual error message instead of the entire JSON response. The field now contains the real error message (e.g., "vat is required") instead of the full JSON wrapper, making logs more readable. For ProblemDetails errors, the detail field is extracted; otherwise, the title field is used, or for non-ProblemDetails responses, the raw response body (truncated to 500 characters).
v1.0.18 - January 1, 2026
Bug Fixes
Required field validation
Fixed required field validation to return 400 Bad Request instead of 500 Internal Server Error when vat, fiscal_code, name (Company) or payload (Send/Receive) are null. These fields were already marked as required in the API contract and OpenAPI specification, but the validation was not properly enforced at runtime.
v1.0.16 - December 9, 2025
Changes
Invoice Submission - DatiTrasmissione Auto-population
When submitting an invoice without specifying the file_name field, the system now automatically updates the DatiTrasmissione fields in the XML if they are empty:
- IdTrasmittente.IdPaese is set to "IT"
- IdTrasmittente.IdCodice is set to "01180680397" (Invoicetronic VAT number)
- ProgressivoInvio is set to the auto-generated Base36 counter
Previously, only the filename was auto-generated but the XML content remained unchanged. This change ensures consistency between the filename and the XML structure. Existing non-empty values are always preserved and never overwritten.
v1.0.15 - December 6, 2025
New Features
Invoicetronic-Version Header
Added Invoicetronic-Version header to all API responses. Clients can now verify the API version and detect updates by reading this header from any response. The version number matches the API release version (e.g., "1.0.15").
v1.0.14 - December 6, 2025
Bug Fixes
Webhook - Payload Encoding
Fixed webhook payload encoding from UTF-16 to UTF-8 for correct HMAC signature verification. The webhook HTTP payload was being sent with Encoding.Unicode (UTF-16LE) while the HMAC signature was computed using ASCII encoding, making it difficult for clients to verify the signature. Now both payload and HMAC computation use UTF-8 encoding, which is the standard for JSON payloads and ensures consistent signature verification.
v1.0.13 - December 5, 2025
Bug Fixes
Webhook - Wildcard event support
Fixed support for the wildcard event (*) in webhooks. Webhooks configured with the * event were accepted during creation but were never triggered. Now webhooks with * in their events list are correctly triggered for all events.
v1.0.12 - December 4, 2025
New Features
Webhook - resource_id field
Added resource_id field to webhook notifications. Webhook payloads now include the ID of the resource created or modified by the request.
For example, for update.add events, the resource_id field contains the ID of the newly created Update entity. This allows webhook receivers to directly fetch resource details without having to match based on timestamps or other heuristics.
v1.0.9 - December 4, 2025
Bug Fixes
Webhook notifications for receive.add and update.add
Fixed an issue that prevented webhook notifications from being sent correctly for receive.add and update.add events. Webhooks are now correctly triggered for the resource owner.
v1.0.7 - December 3, 2025
Bug Fixes
Webhook notifications with null company_id
Fixed an issue that prevented webhook notifications from being sent when the API response contained a null company_id value. Webhooks are now correctly sent even in these cases.
v1.0.0 - July 14, 2025
New Features
First official release of Invoicetronic API.