Italian Invoicing API

OpenAPI Definition:

Getting started

A-CUBE API helps you handling the interaction with SDI (Sistema Di Interscambio) through simple REST APIs.

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:

  1. Login into the platform to obtain a JWT token
  2. Create an invoice payload in JSON format
  3. The invoice payload is sent to POST /invoices
  4. The invoice payload is validated, translated into FatturaPA XML format and sent to the SDI
  5. 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


  • 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
  • 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

We support the following TLS protocols: TLSv1_2016 TLSv1.1_2016 TLSv1.2_2018


You can find all the information about the authentication here.

Api orchestration

You can configure your own webhooks that A-CUBE API will call when an event happens. To manage your endpoints you can use the API or the dashboard.

The events that may happen into the platform are:

  • supplier-invoice when an invoice is received from SDI
  • customer-invoice when an invoice is sent successfully to SDI
  • customer-notification when a notification for a sent invoice comes from SDI
  • legal-storage-missing-vat when a BusinessRegistryConfiguration is missing the email address required to activate the Legal Storage
  • legal-storage-receipt when a PreservedDocument receives the receipt from the legal storage
Every invoice in the platform is identified by a UUID. This key is received for both created and received invoices. All the messages sent to your endpoint are sent with a POST request. We manage sending the messages to your endpoints with a queue: if your endpoint fails (we don't get a 200 response) then we will retry every 15 minutes for 8 hours.If you want to disable endpoints during an operation you can send header X-DisableEndpoints: true. This header takes effect when sending a new customer invoice or when importing customer or supplier invoices.