Facturation Électronique SDI

Facturation électronique facile, rapide et avec des normes de sécurité élevées

Automatise l'envoi, la signature, la réception et le stockage numérique des factures électroniques via l'API

Toutes les connaissances dont vous avez besoin

Vous trouverez ici quelques conseils à prendre en compte pour aborder cette API. Si vous préférez, nous fournissons des exemples de code, la documentation OAS3, la possibilité d'essayer l'API en direct via Swagger UI ou d'importer l'intégralité de la collection dans Postman. Nous proposons également un environnement Sandbox où vous pouvez expérimenter toutes sortes de requêtes de manière totalement gratuite.

Conseils utiles pour commencer Facturation Électronique SDI

Obtenir le Token dans la section appropriée avant de commencer.

Utilisez l'outil en ligne ou générez-le via l'API. Définissez la date d'expiration, un nom utile et ajoutez maintenant un ensemble d'étendues pour limiter les actions possibles que votre jeton peut effectuer.

Configurer l'entreprise

Configurer l'entreprise avec /business_registry_configurations en choisissant entre les types de factures suivants : facture normale, facture signée et facture signée et conservée. Si vous avez choisi d'activer la conservation, les informations d'identification seront envoyées à l'adresse e-mail indiquée lors de la configuration. Attention, l'adresse e-mail et le numéro de TVA sont des données uniques. Cette opération doit être effectuée uniquement lorsque vous configurez l'entreprise pour la première fois.

Configurer les notifications pour gérer les approbations et les rejets

Configurer les callbacks avec /api_configurations en définissant une ou plusieurs de ces options si nécessaire : 'supplier-invoice' (facture passive), 'customer-invoice' (facture active), 'customer-notification' (notification de rejet ou d'acceptation), 'legal-storage-missing-vat', 'legal-storage-receipt' (reçu de conservation). De cette façon, vous recevrez un appel avec l'objet facture directement à l'URL que vous avez fournie.
Cette opération doit être effectuée uniquement lorsque vous configurez l'entreprise pour la première fois.
Si vous êtes intéressé par le cycle passif, suivez d'abord ce guide : https://openapi.it/en/blog/register-recipient-code-italian-revenue-agency.html

Envoyer la première facture

Utilisez les endpoints /invoices, /invoices_signature, /invoices_legal_storage ou /invoices_signature_legal_storage en fonction de vos besoins. Ils permettent d'envoyer la facture en mode XML (compatible avec la norme XML de facturation) ou en mode JSON.
Une fois la facture envoyée, la notification sera reçue à l'URL indiquée dans la configuration des notifications.
La réponse à un envoi de facture contiendra un uuid qui pourra être utilisé ultérieurement pour récupérer la facture /invoices, les notifications éventuelles /invoices_notifications ou télécharger la facture /invoices_download.

SDI (1.0.0)

Ce service vous permet de gérer les interactions avec le SDI (Sistema Di Interscambio) italien

Vous pouvez configurer votre compte de manière à ce que les factures soient envoyées directement au stockage légal en définissant la configuration de l'api en fonction de vos besoins

Avant de commencer

Pour pouvoir opérer, vous devez enregistrer notre Code de bénéficiaire sur le site web de l'Agence italienne du revenu. Veuillez suivre ce [guide étape par étape] (https://openapi.it/en/blog/register-recipient-code-italian-revenue-agency.html) et fournir le code suivant si nécessaire : JKKZDGR

Commencez :

  1. Créez une BusinessRegistryConfiguration avec POST /business_registry_configurations pour votre fiscal_id et votre email

  2. Un courrier sera envoyé à votre adresse pour activer le compte sur la plateforme de stockage légal, si nécessaire.

  3. Créez une ApiConfiguration pour votre BusinessRegistryConfiguration avec POST /api_configurations. Ce point de terminaison peut être configuré pour recevoir toutes les notifications avec un rappel.

  4. Créez une facture XML sur le point de terminaison relatif à votre configuration

Pour voir un exemple des objets de rappel, veuillez consulter l'onglet Callbacks dans la requête /api_configurations


Veuillez noter que dans la traduction anglaise :

Customer invoices : Fatture attive

Factures fournisseurs : Fatture passive

Stockage légal : Certificazione a norma

Réactivation d'une BusinessRegistryConfiguration

Si vous recevez un rappel mais que vous n'avez plus de crédit sur votre porte-monnaie, votre compte sera temporairement suspendu : dans ce cas, un courriel de rappel vous sera immédiatement envoyé. Afin de le réactiver après une recharge du portefeuille, vous devrez soumettre une requête PATCH à /business_registry_configurations/{fiscal_id}/activate

Interagir avec l'administration publique (AP)

Les factures adressées à l'administration publique sont automatiquement détectées et signées.

ApiConfigurations

Créer une ApiConfiguration pour un fiscal_id

Créez les configurations de vos points d'extrémité de rappel.

Toutes les notifications reçues par SDI seront envoyées à vos points de terminaison configurés.

Le "fiscal_id" est l'identifiant unique de l'entreprise que vous souhaitez configurer.

Vous pouvez créer des points de terminaison distincts pour chaque événement : le code de l'événement peut être l'un des suivants : "supplier-invoice", "customer-invoice", "customer-notification", "legal-storage-missing-vat", "legal-storage-receipt"

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

Responses

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

La liste des ApiConfiguration créées pour ce 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": {
    }
}

Récupérer une liste d'ApiConfigurations

Authorizations:
bearerAuth
query Parameters
fiscal_id
string

Filtres pour un identifiant fiscal

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"
}

Suppression des ApiConfigurations

Authorizations:
bearerAuth
path Parameters
id
required
string

L'identifiant de l'ApiConfiguration

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

Les factures standard et simplifiées sont prises en charge, qu'elles soient destinées à des entités privées ou à l'administration publique

Créer une facture

Créez une nouvelle facture et envoyez-la au canal gouvernemental. Vous devez expliciter le format du corps de la demande en utilisant l'en-tête content-type. Votre facture sera mise en file d'attente instantanément et vous recevrez l'UUID de la facture en rappel

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"
}

Créer une facture en appliquant la signature

Créez une nouvelle facture et envoyez-la au canal gouvernemental. Vous devez expliciter le format du corps de la demande en utilisant l'en-tête content-type. Votre facture sera mise en file d'attente instantanément et vous recevrez l'UUID de la facture en rappel

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

Récupérer la collection de ressources Facture.

Ce point d'accès permet de récupérer des informations sur les factures. Différents paramètres de requête peuvent être spécifiés pour filtrer les résultats en fonction des besoins de l'utilisateur.

Paramètres de la requête :

  • type (facultatif) : Le type de recherche à effectuer. Valeurs autorisées : 0 ou 1. Si 0, les factures dont l'utilisateur est l'expéditeur sont retournées. Si la valeur est 1, les factures dont l'utilisateur est le destinataire sont retournées. Si elle n'est pas spécifiée, la valeur par défaut est 0.
  • expéditeur (facultatif) : Indique l'expéditeur des factures. Il peut s'agir d'un seul expéditeur ou d'une liste d'expéditeurs séparés par des virgules.
  • destinataire (optionnel) : Indique le destinataire des factures. Il peut s'agir d'un seul destinataire ou d'une liste de destinataires séparés par des virgules.

Exemple : Récupérer toutes les factures de l'utilisateur :

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

Note : Si type n'est pas spécifié, il n'y a pas d'erreur : Si type n'est pas spécifié, la valeur par défaut est 0, et toutes les factures de l'utilisateur de type 0 sont renvoyées.

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

Rechercher les factures qui ont été envoyées à PA.

type
string

Lorsque le type est 0, la recherche porte sur les factures envoyées à un client, lorsque le type est 1, la recherche porte sur les factures reçues par un fournisseur

sender
string

Recherche par expéditeur (numéro de TVA OU code fiscal). Vous pouvez spécifier plusieurs valeurs à la fois en les séparant par des virgules.

recipient
string

Recherche par destinataire (numéro de TVA OU code fiscal). Vous pouvez spécifier plusieurs valeurs à la fois en les séparant par des virgules.

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

Le numéro de page de la collection

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 facture a été téléchargée (automatiquement lorsqu'elle est reçue par un webhook ou manuellement pour les intégrations par sondage).

downloaded_at
string <date-time>
marking
string

Le marquage représente le statut actuel de la facture.

notice
string
retry_information
string
transmission_format
string

Format de transmission spécifié dans la facture.

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
[
  • {
    }
]

Récupérer la ressource Facture.

Obtenir une facture en application/json par défaut

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 facture a été téléchargée (automatiquement lorsqu'elle est reçue par un webhook ou manuellement pour les intégrations par sondage).

downloaded_at
string <date-time>
marking
string

Le marquage représente le statut actuel de la facture.

notice
string
retry_information
string
transmission_format
string

Format de transmission spécifié dans la facture.

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
}

Télécharger une facture.

Vous pouvez obtenir une facture dans de nombreux formats différents en spécifiant simplement un en-tête Accept différent :

  • application/xml, vous obtenez le format XML
  • text/html, vous obtenez la facture formatée avec la feuille de style choisie (via l'en-tête X-PrintTheme, voir ci-dessous)
  • application/pdf, même chose que HTML mais sous forme de fichier PDF
  • application/octet-stream, vous obtenez le fichier brut (format P7M ou 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 facture a été téléchargée (automatiquement lorsqu'elle est reçue par un webhook ou manuellement pour les intégrations par sondage).

downloaded_at
string <date-time>
marking
string

Le marquage représente le statut actuel de la facture.

notice
string
retry_information
string
transmission_format
string

Format de transmission spécifié dans la facture.

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);

Récupérer la collection de notifications de factures.

Récupère la collection de notifications pour une facture donnée. Vous pouvez obtenir le message de notification au format JSON ou au format XML original en envoyant l'en-tête HTTP Accept à application/json ou application/xml

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Responses

Response Schema:
Array
uuid
string
invoice_uuid
string
created_at
string

La date de réception de la notification.

type
string

Le type de notification (code de 2 lettres).

message
string

Le modèle de message de notification.

downloaded
boolean

La notification a été téléchargée (automatiquement lorsqu'elle est reçue par un webhook ou manuellement pour les intégrations par sondage).

downloaded_at
string <date-time>

Date de téléchargement de la notification.

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

Créer une configuration de registre d'entreprise

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

Le code fiscal ou le numéro de TVA SANS le préfixe du pays

name
string

Le nom du propriétaire de l'identifiant fiscal.

email
string

L'adresse électronique à laquelle le propriétaire de l'identifiant fiscal recevra les communications de la plateforme.

apply_signature
boolean

Appliquez la signature numérique avant d'envoyer les factures à SDI.

apply_legal_storage
boolean

Appliquer le stockage légal pour les factures envoyées/reçues par l'identifiant fiscal.

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"
}

Récupérer la liste des configurations du registre des entreprises

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"
}

Récupérer une configuration du registre des entreprises

Authorizations:
bearerAuth
path Parameters
fiscal_id
required
string

L'identité 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"
}

Supprimer une configuration du registre des entreprises

Authorizations:
bearerAuth
path Parameters
fiscal_id
required
string

L'identité 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"
}

Réactiver une configuration du registre des entreprises

Cette méthode vous permet de réactiver une configuration du registre d'entreprise qui a été désactivée précédemment, soit automatiquement, soit manuellement par l'utilisateur.

Authorizations:
bearerAuth
path Parameters
fiscal_id
required
string

L'identité 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

Importer la facture du client (fattura attiva)

Importer une facture client qui a déjà été envoyée à SDI. La facture ne sera pas envoyée à SDI. Vous pouvez désactiver les événements webhook en envoyant l'en-tête X-DisableEndpoints : true.

Authorizations:
bearerAuth
Request Body schema: application/json

La nouvelle ressource CustomerInvoiceImport

invoice
required
string

XML de la facture encodé en base64.

notifications
Array of strings

Type de notification comme clé (RC, MC, NS, DT, NE, AT, EC), notification base64 comme valeur. Si au moins une notification n'est pas fournie, vous devez indiquer le nom du fichier de la facture et l'identifiant de l'utilisateur (sdi_id).

invoice_file_name
string

Le nom du fichier de la facture, à fournir uniquement lorsqu'il n'y a pas de notification.

sdi_id
string

L'ID SDI de la facture, à ne fournir que lorsqu'il n'y a pas de notification.

Responses

Response Schema: application/json
uuid
string

L'UUID utilisé pour identifier la facture de manière unique.

Request samples

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

Response samples

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

Importation de la facture du fournisseur (fattura passiva)

Importer une facture fournisseur déjà reçue de SDI.

Authorizations:
bearerAuth
Request Body schema:

La nouvelle ressource SupplierInvoiceImport

invoice
required
string

XML de la facture encodé en base64.

metadata
string

Le XML des métadonnées de la facture encodé en base64. S'il n'est pas fourni, vous devez indiquer le nom du fichier de la facture et l'identifiant de l'utilisateur.

invoice_file_name
string

Le nom du fichier de la facture, à fournir uniquement s'il n'y a pas de métadonnées.

sdi_id
string

l'ID SDI de la facture, à fournir uniquement en l'absence de métadonnées.

Responses

Response Schema:
uuid
string

L'UUID utilisé pour identifier la facture de manière unique. Si le XML de la facture contient plusieurs corps, vous obtiendrez un tableau d'UUIDs.

Request samples

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

Response samples

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

Simuler la facture du fournisseur dans l'Environnement de travail (fattura passiva)

ici, vous devez envoyer une facture en tant que charge utile, elle sera livrée à vos points de terminaison configurés pour l'événement supplier-invoice. Le codice_destintario n'a pas d'importance, vous recevrez la facture sur votre compte. Le corps doit contenir un payload Invoice valide. Ce service n'est valable que dans l'Environnement de test

Authorizations:
bearerAuth
Request Body schema: application/json

id_codice in cessionario_committente.dati_anagrafici.id_fiscale_iva is required and is the fiscal_id

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"
}