Fatturazione Elettronica SDI

Fatturazione elettronica facile, veloce e con alti standard di sicurezza

Automatizza l’invio, la firma, la ricezione e la conservazione digitale delle fatture elettroniche tramite API

Tutte le informazioni di cui hai bisogno

Qui trovi qualche consiglio da prendere in considerazione per approcciare a questa API. Se preferisci forniamo esempi di codice, documentazione in OAS3, la possibilità di provare l'API dal vivo con la Swagger UI oppure importare l'intera collezione in Postman. Offriamo inoltre un ambiente di Sandbox dove puoi sperimentare tutte le API gratuitamente.

Utili consigli per iniziare con Fatturazione Elettronica SDI

Prendi il token nell'apposita sezione prima di cominciare.

Usa lo strumento online o generalo via API. Imposta una data di scadenza e aggiungi una serie di Scopes per limitare le possibli azioni permesse al token.

Configura l'azienda

Configurare l'azienda con /business_registry_configurations decidendo che tipi di opzioni tra fattura normale, fattura firmata e fattura firmata ed in conservazione. Se si è scelto di attivare la conservazione le credenziali verranno inviate all'indirizzo email indicato in fase di configurazione. Attenzione l'indirizzo email e la partita iva sono dati univoci. Questa operazione va eseguita solo quando si imposta l'azienda la prima volta.

Configura le notifiche per gestire approvazioni e scarti

Configurare le callback con /api_configurations impostando una o più tra queste opzioni se occorrono: 'supplier-invoice' (fattura passiva), 'customer-invoice' (fattura_attiva), 'customer-notification' (notifica di scarto o accettazione), 'legal-storage-missing-vat', 'legal-storage-receipt' (ricevuta di conservazione). In questo modo riceverai una chiamata con l'oggetto fattura direttamente all'url da te fornito.
Questa operazione va eseguita solo quando si imposta l'azienda la prima volta.
Se si è interessati al ciclo passivo seguire questa guida prima di tutto: https://openapi.it/en/blog/register-recipient-code-italian-revenue-agency.html

Invia la prima fattura

Utilizzare gli endpoint /invoices, /invoices_signature, /invoices_legal_storage o /invoices_signature_legal_storage in base alla propria necessità. Essi permettono di inviare la fattura sia in modalità xml (compatibile con lo standard xml di fatturazione) che in modalità json.
Un volta inviata la fattura la notifica verrà reacpitata all'url indicato nella configurazione delle notifiche.
La risposta ad un invio di fattura conterrà un uuid che potrà essere successivamente usato per recuperare la fattura /invoices, eventuali notifiche /invoices_notifications o scaricare la fattura /invoices_download

SDI (1.0.0)

Questo servizio consente di gestire le interazioni con il Sistema Di Interscambio (SDI) italiano

È possibile configurare il proprio account per inviare le fatture direttamente alla conservazione legale impostando l'api_configuration in base alle proprie esigenze

Prima di iniziare

Per poter operare, è necessario registrare il nostro Codice Destinatario sul sito dell'Agenzia delle Entrate. Seguite questa guida passo-passo e fornite il seguente codice quando necessario: JKKZDGR

Iniziare:

  1. Creare una BusinessRegistryConfiguration con POST /business_registry_configurations per il proprio fiscal_id e la propria email

  2. Verrà inviata una mail al vostro indirizzo per attivare l'account sulla piattaforma di conservazione legale, se necessario.

  3. Creare una ApiConfiguration per la propria BusinessRegistryConfiguration con POST /api_configurations. Questo endpoint può essere configurato per ricevere tutte le notifiche con un callback.

  4. Creare una fattura XML sull'endpoint relativa alla propria configurazione

Per vedere un esempio di oggetti callback, controllare la scheda Callbacks nella richiesta /api_configurations


Si prega di notare che nella traduzione inglese:

Fatture clienti: Fatture attive

Fatture fornitori: Fatture passive

Conservazione a norma: Certificazione a norma

Interagire con la conservazione legale

La Conservazione Legale è il servizio che consente la conservazione legale dei vostri documenti. Tutti i documenti conservati sono disponibili nel software di gestione della conservazione legale, un software di terze parti.

Al momento della creazione di una BusinessRegistryConfiguration, vi verrà chiesto di fornire un indirizzo e-mail che verrà registrato sulla piattaforma. Riceverete un'e-mail contenente tutti i passaggi per completare la registrazione e accedere alla piattaforma.

Riattivazione di una BusinessRegistryConfiguration

Se ricevete un richiamo ma non avete più credito nel vostro portafoglio, il vostro account verrà temporaneamente sospeso: quando ciò accade, vi verrà inviata immediatamente un'e-mail di promemoria. Per riattivarlo dopo una ricarica del portafoglio, è necessario inviare una richiesta PATCH a /business_registry_configurations/{fiscal_id}/activate

Interagire con la Pubblica Amministrazione (PA)

Le fatture alla Pubblica Amministrazione vengono rilevate e firmate automaticamente.

ApiConfigurations

Creare una ApiConfiguration per un fiscal_id

Creare le configurazioni degli endpoint di callback. <Tutte le notifiche ricevute da SDI saranno inviate agli endpoint configurati.
Il "fiscal_id" è l'identificatore univoco dell'attività che si desidera configurare.

Si possono creare endpoint separati per ogni evento: il codice dell'evento può essere uno dei seguenti: "fattura-fornitore", "fattura-cliente", "notifica-cliente", "deposito-legale-mancante-iva", "deposito-legale-ricevuta"

Authorizations:
bearerAuth
Request Body schema: application/json
fiscal_id
string
Array of objects

Responses

Response Schema: application/json
Array of objects (ApiConfiguration-read)

L'elenco delle ApiConfiguration create per questo fiscal_id

message
string
success
boolean
error
string <nullable>

Callbacks

Request samples

Content type
application/json
{
  • "fiscal_id": "000133445566",
  • "callbacks": []
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "message": "string",
  • "success": true,
  • "error": "string"
}

Callback payload samples

Callback
POST: {your_url}
Content type
application/json
Example
{
  • "event": "customer-invoice",
  • "data": {
    }
}

Recuperare un elenco di ApiConfigurazioni

Authorizations:
bearerAuth
query Parameters
fiscal_id
string

Filtri per un codice fiscale

Responses

Response Schema: application/json
Array of objects (ApiConfiguration-read)
message
string
success
boolean
error
string <nullable>

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://sdi.openapi.it/api_configurations?fiscal_id=SOME_STRING_VALUE");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "message": "string",
  • "success": true,
  • "error": "string"
}

Eliminazione di ApiConfigurations

Authorizations:
bearerAuth
path Parameters
id
required
string

L'id della configurazione Api

Responses

Response Schema: application/json
data
string
message
string
success
boolean
error
string <nullable>

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(hnd, CURLOPT_URL, "https://sdi.openapi.it/api_configurations/%7Bid%7D");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "Deleted",
  • "success": true,
  • "error": "string"
}

Create invoices

Sono supportate sia le fatture standard che quelle semplificate, verso soggetti privati o verso la Pubblica Amministrazione

Creare una fattura

Creare una nuova fattura e inviarla al canale governativo. Si deve esplicitare il formato del corpo della richiesta utilizzando l'intestazione content-type. La fattura sarà messa in coda immediatamente e si otterrà l'UUID della fattura come callback

Authorizations:
bearerAuth
Request Body schema: application/xml
required
object (FatturaPAFatturaElettronicaHeader-read)
required
Array of objects (FatturaPAFatturaElettronicaBody-read)

Responses

Response Schema: application/json
object
message
string
success
boolean
error
string <nullable>

Request samples

Content type
application/xml
<?xml version="1.0" encoding="UTF-8"?>
<p:FatturaElettronica versione="FPR12" >
    <FatturaElettronicaHeader>
        <DatiTrasmissione>
            <IdTrasmittente>
                <IdPaese>IT</IdPaese>
                <IdCodice>10442360961</IdCodice>
            </IdTrasmittente>
            <ProgressivoInvio>06V27</ProgressivoInvio>
            <FormatoTrasmissione>FPR12</FormatoTrasmissione>
            <CodiceDestinatario>Codice destinatario</CodiceDestinatario>
        </DatiTrasmissione>
        <CedentePrestatore>
            <DatiAnagrafici>
                <IdFiscaleIVA>
                    <IdPaese>IT</IdPaese>
                    <IdCodice>Codice destinatario</IdCodice>
                </IdFiscaleIVA>
                <Anagrafica>
                    <Denominazione>John Doe</Denominazione>
                </Anagrafica>
                <RegimeFiscale>RF01</RegimeFiscale>
            </DatiAnagrafici>
            <Sede>
                <Indirizzo>Via di Qua, 1</Indirizzo>
                <CAP>20145</CAP>
                <Comune>Milano</Comune>
                <Provincia>MI</Provincia>
                <Nazione>IT</Nazione>
            </Sede>
        </CedentePrestatore>
        <CessionarioCommittente>
            <DatiAnagrafici>
                <IdFiscaleIVA>
                    <IdPaese>IT</IdPaese>
                    <IdCodice>09876543211</IdCodice>
                </IdFiscaleIVA>
                <Anagrafica>
                    <Denominazione>Jane Doe</Denominazione>
                </Anagrafica>
            </DatiAnagrafici>
            <Sede>
                <Indirizzo>Via di La, 2</Indirizzo>
                <CAP>20145</CAP>
                <Comune>Milano</Comune>
                <Provincia>MI</Provincia>
                <Nazione>IT</Nazione>
            </Sede>
        </CessionarioCommittente>
    </FatturaElettronicaHeader>
    <FatturaElettronicaBody>
        <DatiGenerali>
            <DatiGeneraliDocumento>
                <TipoDocumento>TD01</TipoDocumento>
                <Divisa>EUR</Divisa>
                <Data>2018-07-10</Data>
                <Numero>1</Numero>
            </DatiGeneraliDocumento>
        </DatiGenerali>
        <DatiBeniServizi>
            <DettaglioLinee>
                <NumeroLinea>1</NumeroLinea>
                <Descrizione>Descrizione articolo</Descrizione>
                <PrezzoUnitario>10.00</PrezzoUnitario>
                <PrezzoTotale>10.00</PrezzoTotale>
                <AliquotaIVA>22.00</AliquotaIVA>
            </DettaglioLinee>
            <DatiRiepilogo>
                <AliquotaIVA>22.00</AliquotaIVA>
                <ImponibileImporto>10.00</ImponibileImporto>
                <Imposta>2.20</Imposta>
            </DatiRiepilogo>
        </DatiBeniServizi>
    </FatturaElettronicaBody>
</p:FatturaElettronica>

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "",
  • "success": true,
  • "error": "string"
}

Creare una fattura applicando la firma

Creare una nuova fattura e inviarla al canale governativo. Si deve esplicitare il formato del corpo della richiesta utilizzando l'intestazione content-type. La fattura sarà messa in coda immediatamente e si otterrà l'UUID della fattura come callback

Authorizations:
bearerAuth
Request Body schema: application/xml
required
object (FatturaPAFatturaElettronicaHeader-read)
required
Array of objects (FatturaPAFatturaElettronicaBody-read)

Responses

Response Schema: application/json
object
message
string
success
boolean
error
string <nullable>

Request samples

Content type
application/xml
<?xml version="1.0" encoding="UTF-8"?>
<p:FatturaElettronica versione="FPR12" >
    <FatturaElettronicaHeader>
        <DatiTrasmissione>
            <IdTrasmittente>
                <IdPaese>IT</IdPaese>
                <IdCodice>10442360961</IdCodice>
            </IdTrasmittente>
            <ProgressivoInvio>06V27</ProgressivoInvio>
            <FormatoTrasmissione>FPR12</FormatoTrasmissione>
            <CodiceDestinatario>Codice destinatario</CodiceDestinatario>
        </DatiTrasmissione>
        <CedentePrestatore>
            <DatiAnagrafici>
                <IdFiscaleIVA>
                    <IdPaese>IT</IdPaese>
                    <IdCodice>Codice destinatario</IdCodice>
                </IdFiscaleIVA>
                <Anagrafica>
                    <Denominazione>John Doe</Denominazione>
                </Anagrafica>
                <RegimeFiscale>RF01</RegimeFiscale>
            </DatiAnagrafici>
            <Sede>
                <Indirizzo>Via di Qua, 1</Indirizzo>
                <CAP>20145</CAP>
                <Comune>Milano</Comune>
                <Provincia>MI</Provincia>
                <Nazione>IT</Nazione>
            </Sede>
        </CedentePrestatore>
        <CessionarioCommittente>
            <DatiAnagrafici>
                <IdFiscaleIVA>
                    <IdPaese>IT</IdPaese>
                    <IdCodice>09876543211</IdCodice>
                </IdFiscaleIVA>
                <Anagrafica>
                    <Denominazione>Jane Doe</Denominazione>
                </Anagrafica>
            </DatiAnagrafici>
            <Sede>
                <Indirizzo>Via di La, 2</Indirizzo>
                <CAP>20145</CAP>
                <Comune>Milano</Comune>
                <Provincia>MI</Provincia>
                <Nazione>IT</Nazione>
            </Sede>
        </CessionarioCommittente>
    </FatturaElettronicaHeader>
    <FatturaElettronicaBody>
        <DatiGenerali>
            <DatiGeneraliDocumento>
                <TipoDocumento>TD01</TipoDocumento>
                <Divisa>EUR</Divisa>
                <Data>2018-07-10</Data>
                <Numero>1</Numero>
            </DatiGeneraliDocumento>
        </DatiGenerali>
        <DatiBeniServizi>
            <DettaglioLinee>
                <NumeroLinea>1</NumeroLinea>
                <Descrizione>Descrizione articolo</Descrizione>
                <PrezzoUnitario>10.00</PrezzoUnitario>
                <PrezzoTotale>10.00</PrezzoTotale>
                <AliquotaIVA>22.00</AliquotaIVA>
            </DettaglioLinee>
            <DatiRiepilogo>
                <AliquotaIVA>22.00</AliquotaIVA>
                <ImponibileImporto>10.00</ImponibileImporto>
                <Imposta>2.20</Imposta>
            </DatiRiepilogo>
        </DatiBeniServizi>
    </FatturaElettronicaBody>
</p:FatturaElettronica>

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "",
  • "success": true,
  • "error": "string"
}

Invoices

Recupera l'insieme di risorse Fattura.

Questo endpoint consente di recuperare informazioni sulle fatture. È possibile specificare diversi parametri di interrogazione per filtrare i risultati in base alle esigenze dell'utente.

Parametri della query:

  • tipo (opzionale): Il tipo di ricerca da eseguire. Valori ammessi: 0 o 1. Se 0, vengono restituite le fatture di cui l'utente è il mittente. Se 1, vengono restituite le fatture in cui l'utente è il destinatario. Se non viene specificato, il valore predefinito è 0.
  • mittente (opzionale): Specifica il mittente delle fatture. Può essere un singolo mittente o un elenco di mittenti separati da virgole.
  • destinatario (opzionale): Specifica il destinatario delle fatture. Può essere un singolo destinatario o un elenco di destinatari separati da virgole.

Esempio: Recuperare tutte le fatture dell'utente:

GET /fatture?tipo=1
GET /invoices?type=1&recipient=987654321,123456789
GET /invoices?type=0&sender=123456789,987654321

Nota: Se tipo non è specificato, il valore predefinito è 0 e vengono restituite tutte le fatture per l'utente di tipo 0.

Authorizations:
bearerAuth
query Parameters
createdAt[before]
string
createdAt[strictly_before]
string
createdAt[after]
string
createdAt[strictly_after]
string
signed
boolean
downloaded
boolean
toPa
string

Cerca le fatture inviate alla PA.

type
string

Quando il tipo è 0 ricerca le fatture inviate a un cliente, quando il tipo è 1 ricerca le fatture ricevute da un fornitore

sender
string

Ricerca per mittente (numero di partita IVA O codice fiscale). È possibile specificare più valori contemporaneamente separati da virgola.

recipient
string

Ricerca per destinatario (numero di partita IVA O codice fiscale). È possibile specificare più valori contemporaneamente separati da virgola.

invoiceDate[before]
string
invoiceDate[strictly_before]
string
invoiceDate[after]
string
invoiceDate[strictly_after]
string
invoiceNumber
string
recipient.businessName
string
recipient.businessVatNumberCode
string
recipient.businessVatNumberCode[]
Array of strings
recipient.businessFiscalCode
string
recipient.businessFiscalCode[]
Array of strings
sender.businessName
string
sender.businessVatNumberCode
string
sender.businessVatNumberCode[]
Array of strings
sender.businessFiscalCode
string
sender.businessFiscalCode[]
Array of strings
marking
string
marking[]
Array of strings
page
integer

Il numero di pagina della collezione

Responses

Response Schema: application/json
Array
created_at
string <date-time>
uuid
string
type
integer
payload
string
object (BusinessRegistry-read)
object (BusinessRegistry-read)
notifications
Array of strings
sdi_file_name
string
sdi_file_id
string
signed
boolean
legally_stored
boolean
object (PreservedDocument-read)
downloaded
boolean

La fattura è stata scaricata (automaticamente se ricevuta tramite webhook o manualmente per le integrazioni di polling).

downloaded_at
string <date-time>
marking
string

Il contrassegno rappresenta lo stato attuale della fattura.

notice
string
retry_information
string
transmission_format
string

Formato di trasmissione specificato nella fattura.

to_pa
boolean

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://sdi.openapi.it/invoices?createdAt%5Bbefore%5D=SOME_STRING_VALUE&createdAt%5Bstrictly_before%5D=SOME_STRING_VALUE&createdAt%5Bafter%5D=SOME_STRING_VALUE&createdAt%5Bstrictly_after%5D=SOME_STRING_VALUE&signed=SOME_BOOLEAN_VALUE&downloaded=SOME_BOOLEAN_VALUE&toPa=SOME_STRING_VALUE&type=SOME_STRING_VALUE&sender=SOME_STRING_VALUE&recipient=SOME_STRING_VALUE&invoiceDate%5Bbefore%5D=SOME_STRING_VALUE&invoiceDate%5Bstrictly_before%5D=SOME_STRING_VALUE&invoiceDate%5Bafter%5D=SOME_STRING_VALUE&invoiceDate%5Bstrictly_after%5D=SOME_STRING_VALUE&invoiceNumber=SOME_STRING_VALUE&recipient.businessName=SOME_STRING_VALUE&recipient.businessVatNumberCode=SOME_STRING_VALUE&recipient.businessVatNumberCode%5B%5D=SOME_ARRAY_VALUE&recipient.businessFiscalCode=SOME_STRING_VALUE&recipient.businessFiscalCode%5B%5D=SOME_ARRAY_VALUE&sender.businessName=SOME_STRING_VALUE&sender.businessVatNumberCode=SOME_STRING_VALUE&sender.businessVatNumberCode%5B%5D=SOME_ARRAY_VALUE&sender.businessFiscalCode=SOME_STRING_VALUE&sender.businessFiscalCode%5B%5D=SOME_ARRAY_VALUE&marking=SOME_STRING_VALUE&marking%5B%5D=SOME_ARRAY_VALUE&page=SOME_INTEGER_VALUE");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

Response samples

Content type
application/json
[
  • {
    }
]

Recuperare la risorsa Fattura.

Ottenere una fattura in application/json per impostazione predefinita

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Responses

Response Schema: application/json
created_at
string <date-time>
uuid
string
type
integer
payload
string
object (BusinessRegistry-read)
object (BusinessRegistry-read)
notifications
Array of strings
sdi_file_name
string
sdi_file_id
string
signed
boolean
legally_stored
boolean
object (PreservedDocument-read)
downloaded
boolean

La fattura è stata scaricata (automaticamente se ricevuta tramite webhook o manualmente per le integrazioni di polling).

downloaded_at
string <date-time>
marking
string

Il contrassegno rappresenta lo stato attuale della fattura.

notice
string
retry_information
string
transmission_format
string

Formato di trasmissione specificato nella fattura.

to_pa
boolean

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://sdi.openapi.it/invoices/%7Buuid%7D");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

Response samples

Content type
application/json
{
  • "created_at": "2019-08-24T14:15:22Z",
  • "uuid": "string",
  • "type": 0,
  • "payload": "string",
  • "sender": {
    },
  • "recipient": {
    },
  • "notifications": [
    ],
  • "sdi_file_name": "string",
  • "sdi_file_id": "string",
  • "signed": true,
  • "legally_stored": true,
  • "preserved_document": {
    },
  • "downloaded": true,
  • "downloaded_at": "2019-08-24T14:15:22Z",
  • "marking": "string",
  • "notice": "string",
  • "retry_information": "string",
  • "transmission_format": "string",
  • "to_pa": true
}

Scarica una risorsa per le fatture.

È possibile ottenere una fattura in molti formati diversi, semplicemente specificando un'intestazione diversa di Accept:

  • application/xml, si ottiene il formato XML
  • text/html, si ottiene la fattura formattata con il foglio di stile scelto (tramite l'intestazione X-PrintTheme, vedi sotto)
  • application/pdf, come HTML ma come file PDF
  • application/octet-stream, si ottiene il file grezzo (formato P7M o XML)
Authorizations:
bearerAuth
path Parameters
uuid
required
string

Responses

Response Schema:
created_at
string <date-time>
uuid
string
type
integer
payload
string
object (BusinessRegistry-read)
object (BusinessRegistry-read)
notifications
Array of strings
sdi_file_name
string
sdi_file_id
string
signed
boolean
legally_stored
boolean
object (PreservedDocument-read)
downloaded
boolean

La fattura è stata scaricata (automaticamente se ricevuta tramite webhook o manualmente per le integrazioni di polling).

downloaded_at
string <date-time>
marking
string

Il contrassegno rappresenta lo stato attuale della fattura.

notice
string
retry_information
string
transmission_format
string

Formato di trasmissione specificato nella fattura.

to_pa
boolean

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://sdi.openapi.it/invoices_download/%7Buuid%7D");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

Recupera la raccolta di notifiche di fatture.

Recupera la raccolta di notifiche per una determinata fattura. È possibile avere il messaggio di notifica in formato JSON o l'XML originale inviando l'intestazione HTTP Accept a application/json o application/xml

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Responses

Response Schema:
Array
uuid
string
invoice_uuid
string
created_at
string

La data di ricezione della notifica.

type
string

Il tipo di notifica (codice di 2 lettere).

message
string

Il modello dei messaggi di notifica.

downloaded
boolean

La notifica è stata scaricata (automaticamente se ricevuta tramite webhook o manualmente per le integrazioni di polling).

downloaded_at
string <date-time>

Data di download della notifica.

file_name
string

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://sdi.openapi.it/invoices_notifications/%7Buuid%7D");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

Response samples

Content type
[
  • {
    }
]

BusinessRegistryConfiguration

Creare una configurazione di registro aziendale

Authorizations:
bearerAuth
Request Body schema: application/json
fiscal_id
string

Il codice fiscale o il numero di partita iva SENZA il prefisso nazionale

name
string

Il nome del proprietario per l'id fiscale.

email
string

L'email con cui il proprietario del fiscalId riceverà le comunicazioni dalla piattaforma.

apply_signature
boolean

Applicare la firma digitale prima di inviare le fatture a SDI.

apply_legal_storage
boolean

Applicare la conservazione legale per le fatture inviate/ricevute dall'id fiscale.

Responses

Response Schema: application/json
object (BusinessRegistryConfiguration-read)
message
string
success
boolean
error
string <nullable>

Request samples

Content type
application/json
{
  • "fiscal_id": "string",
  • "name": "string",
  • "email": "string",
  • "apply_signature": true,
  • "apply_legal_storage": true
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "success": true,
  • "error": "string"
}

Recuperare un elenco di Configurazione del registro delle imprese

Authorizations:
bearerAuth

Responses

Response Schema: application/json
Array of objects (BusinessRegistryConfiguration-read)
message
string
success
boolean
error
string <nullable>

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://sdi.openapi.it/business_registry_configurations");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "message": "string",
  • "success": true,
  • "error": "string"
}

Recuperare la configurazione di un registro aziendale

Authorizations:
bearerAuth
path Parameters
fiscal_id
required
string

L'id fiscale

Responses

Response Schema: application/json
object (BusinessRegistryConfiguration-read)
message
string
success
boolean
error
string <nullable>

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://sdi.openapi.it/business_registry_configurations/%7Bfiscal_id%7D");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "success": true,
  • "error": "string"
}

Eliminare una configurazione del registro aziendale

Authorizations:
bearerAuth
path Parameters
fiscal_id
required
string

L'id fiscale

Responses

Response Schema: application/json
data
any or null
message
string
success
boolean
error
string or null

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(hnd, CURLOPT_URL, "https://sdi.openapi.it/business_registry_configurations/%7Bfiscal_id%7D");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "Deleted",
  • "success": true,
  • "error": "string"
}

Riattivare la configurazione di un registro aziendale

Questo metodo consente di riattivare una configurazione del Registro delle imprese precedentemente disattivata, automaticamente o manualmente dall'utente.

Authorizations:
bearerAuth
path Parameters
fiscal_id
required
string

L'id fiscale

Responses

Response Schema: application/json
object (BusinessRegistryConfiguration-read)
message
string
success
boolean
error
string <nullable>

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(hnd, CURLOPT_URL, "https://sdi.openapi.it/business_registry_configurations/%7Bfiscal_id%7D/activate");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "success": true,
  • "error": "string"
}

Import

Importazione della fattura del cliente (fattura attiva)

Importare una fattura cliente già inviata a SDI. La fattura non verrà inviata a SDI. È possibile disabilitare gli eventi webhook inviando l'intestazione X-DisableEndpoints: true.

Authorizations:
bearerAuth
Request Body schema: application/json

La nuova risorsa CustomerInvoiceImport

invoice
required
string

L'XML della fattura codificato in base64.

notifications
Array of strings

Tipo di notifica come chiave (RC, MC, NS, DT, NE, AT, EC), notifica base64 come valore. Se non viene fornita almeno una notifica, è necessario fornire nome_file_fattura e sdi_id.

invoice_file_name
string

Il nome del file della fattura, da fornire solo se non c'è alcuna notifica.

sdi_id
string

L'ID SDI della fattura, da fornire solo quando non c'è alcuna notifica.

Responses

Response Schema: application/json
uuid
string

L'UUID utilizzato per identificare in modo univoco la fattura.

Request samples

Content type
application/json
{
  • "invoice": "string",
  • "notifications": {
    },
  • "invoice_file_name": "string",
  • "sdi_id": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "string"
}

Fattura fornitore di importazione (fattura passiva)

Importare una fattura fornitore già ricevuta da SDI.

Authorizations:
bearerAuth
Request Body schema:

La nuova risorsa SupplierInvoiceImport

invoice
required
string

L'XML della fattura codificato in base64.

metadata
string

L'XML dei metadati della fattura codificato in base64. Se non viene fornito, è necessario fornire nome_file_fattura e sdi_id.

invoice_file_name
string

Il nome del file della fattura, da fornire solo se non ci sono metadati.

sdi_id
string

l'ID SDI della fattura, da fornire solo in assenza di metadati.

Responses

Response Schema:
uuid
string

L'UUID utilizzato per identificare in modo univoco la fattura. Se l'XML della fattura contiene più corpi, si otterrà un array di UUID.

Request samples

Content type
{
  • "invoice": "string",
  • "metadata": "string",
  • "invoice_file_name": "string",
  • "sdi_id": "string"
}

Response samples

Content type
{
  • "uuid": "string"
}

Simulare la fattura del fornitore in Sandbox (fattura passiva)

qui si deve inviare una fattura come payload, che verrà consegnata agli endpoint configurati per l'evento fornitore-fattura. Non importa il codice_destintario, si riceverà la fattura sul proprio conto. Il corpo deve contenere un payload Fattura valido. Questo servizio è valido solo in Sandbox

Authorizations:
bearerAuth
Request Body schema: application/json

l'id_codice in cessionario_committente.dati_anagrafici.id_fiscale_iva è richiesto ed è l'id_fiscale

object
Array of objects

Responses

Request samples

Content type
application/json
{
  • "fattura_elettronica_header": {
    },
  • "fattura_elettronica_body": [
    ]
}

Response samples

Content type
application/json
{
  • "success": "true",
  • "message": "",
  • "error": "null"
}