Italian Invoicing API
OpenAPI Definition: Download
Getting started
A-CUBE API helps you handling the interaction with SDI (Sistema Di Interscambio) through simple REST APIs.
Here is a high-level description of the outgoing invoicing flow and how preservation works with our partner Intesi.
- Invoice submission
- Sending to SDI
- While the invoice is being sent, its status (
marking
) isWAITING
. - Once successfully handed over to SDI, the status becomes
SENT
.
- While the invoice is being sent, its status (
- SDI processing
- SDI performs its own checks. If the invoice does not pass, SDI returns a rejection notification (
NS
) and we update the status toREJECTED
. In this case, the invoice needs to be corrected and sent again. - If the invoice is accepted, SDI tries to deliver it to the recipient.
- If delivery succeeds, SDI sends a Delivery Receipt (
RC
) → we update the status toDELIVERED
. - If delivery fails, SDI sends a Failed Delivery (
MC
) → in Italy this is still considered a successful submission, and we set the status toNOT-DELIVERED
.
- If delivery succeeds, SDI sends a Delivery Receipt (
- SDI performs its own checks. If the invoice does not pass, SDI returns a rejection notification (
- Preservation with Intesi
- Once an invoice has received either an
RC
or anMC
, we forward it to Intesi Group, our certified partner for legal preservation. - Intesi archives the invoice according to Italian law and sends us back a preservation receipt.
- This receipt is linked to the invoice and visible in your dashboard. It is not expected that Intesi ever fails to preserve a valid invoice.
- Once an invoice has received either an
- Monitoring
- You can always follow the full status of your invoices and their preservation directly in the dashboard.Specifically, after logging in, in the left-hand menu under the 'Invoices' section, you can consult subsections that include 'Invoices Sent', 'Invoices Received', 'Transfers Invoices', and 'Invoice Drafts'. There is also a 'Preservation' section, where you can search for your invoices and check if they are correctly stored.
When you get onboard the A-CUBE API Platform you will receive:
- username and password for the authentication
- a recipient code that must be used in all the invoices that you will receive from third party companies
This is the process to create and send a new invoice explained in few steps:
- Login into the platform to obtain a JWT token
- Create an invoice payload in JSON format
- The invoice payload is sent to
POST /invoices
- The invoice payload is validated, translated into FatturaPA XML format and sent to the SDI
- Every notification from SDI will be dispatched in real time to the configured endpoints. All the notification will always be available using the notifications API
Environments
- sandbox is the environment where you can test the entire platform without paying at any time, the communication with SDI is simulated. The base URL is https://api-sandbox.acubeapi.com
- production is the environment where the communication with SDI is real, you can't send an invoice to test. If you want to make a real test then you will need to send a credit note to cancel the sent invoice. The base URL is https://api.acubeapi.com
We support the following TLS protocols: TLSv1_2016 TLSv1.1_2016 TLSv1.2_2018
Authentication
You can find all the information about the authentication here.