Elektronische Rechnungsstellung SDI

Elektronische Rechnungsstellung einfach, schnell und mit hohen Sicherheitsstandards

Automatisiert das Senden, Signieren, Empfangen und digitale Speichern von elektronischen Rechnungen über API

All das Wissen, das Sie benötigen

Hier finden Sie einige Ratschläge, die Sie berücksichtigen sollten, um sich dieser API zu nähern. Wenn Sie möchten, bieten wir Code-Beispiele, OAS3-Dokumentation, die Möglichkeit, die API live über Swagger UI auszuprobieren oder die gesamte Sammlung in Postman zu importieren. Wir bieten auch eine Sandbox-Umgebung an, in der Sie kostenlos mit allen Arten von Anfragen experimentieren können.

Nützliche Tipps für den Einstieg Elektronische Rechnungsstellung SDI

Holen Sie sich das Token im entsprechenden Abschnitt, bevor Sie beginnen.

Verwenden Sie das Online-Tool oder generieren Sie es über die API. Legen Sie das Ablaufdatum, einen nützlichen Namen fest und fügen Sie jetzt eine Vielzahl von Scopes hinzu, um die möglichen Aktionen Ihres Tokens zu begrenzen.

Unternehmen konfigurieren

Das Unternehmen mit /business_registry_configurations konfigurieren und auswählen, ob normale, signierte oder signierte und archivierte Rechnungen erstellt werden sollen. Wenn die Archivierung aktiviert wurde, werden die Zugangsdaten an die in der Konfiguration angegebene E-Mail-Adresse gesendet. Achtung: E-Mail-Adresse und Umsatzsteuer-Identifikationsnummer sind eindeutige Daten. Diese Operation muss nur durchgeführt werden, wenn das Unternehmen zum ersten Mal eingerichtet wird.

Benachrichtigungen konfigurieren, um Genehmigungen und Ablehnungen zu verwalten

Die Callbacks mit /api_configurations konfigurieren und eine oder mehrere dieser Optionen festlegen, wenn erforderlich: 'supplier-invoice' (passive Rechnung), 'customer-invoice' (aktive Rechnung), 'customer-notification' (Benachrichtigung über Ablehnung oder Annahme), 'legal-storage-missing-vat', 'legal-storage-receipt' (Eingang des Archivs). Auf diese Weise erhalten Sie einen Anruf mit dem Rechnungsobjekt direkt an die von Ihnen bereitgestellte URL.
Diese Operation muss nur durchgeführt werden, wenn das Unternehmen zum ersten Mal eingerichtet wird.
Wenn Sie sich für den passiven Zyklus interessieren, sollten Sie diese Anleitung zuerst befolgen: https://openapi.it/en/blog/register-recipient-code-italian-revenue-agency.html

Senden Sie die erste Rechnung

Verwenden Sie die Endpunkte /invoices, /invoices_signature, /invoices_legal_storage oder /invoices_signature_legal_storage je nach Bedarf. Diese ermöglichen es Ihnen, die Rechnung sowohl im XML-Format (kompatibel mit dem XML-Rechnungsstandard) als auch im JSON-Format zu senden.
Sobald die Rechnung gesendet wurde, wird die Benachrichtigung an die in der Benachrichtigungskonfiguration angegebene URL gesendet.
Die Antwort auf eine Rechnungsübermittlung enthält eine uuid, die später verwendet werden kann, um die Rechnung abzurufen /invoices, eventuelle Benachrichtigungen /invoices_notifications oder die Rechnung herunterzuladen /invoices_download

SDI (1.0.0)

Dieser Dienst ermöglicht es Ihnen, Interaktionen mit dem italienischen SDI (Sistema Di Interscambio) abzuwickeln

Sie können Ihr Konto so konfigurieren, dass Rechnungen direkt an die gesetzliche Aufbewahrungsstelle gesendet werden, indem Sie die api_configuration auf Ihre Bedürfnisse einstellen

Bevor wir beginnen

Um arbeiten zu können, müssen Sie unseren Empfängercode auf der Website der italienischen Steuerbehörde registrieren. Bitte folgen Sie dieser [Schritt-für-Schritt-Anleitung] (https://openapi.it/en/blog/register-recipient-code-italian-revenue-agency.html) und geben Sie bei Bedarf den folgenden Code ein: JKKZDGR

Los geht's:

  1. Erstellen Sie eine BusinessRegistryConfiguration mit POST /business_registry_configurations für Ihre fiscal_id und Ihre email

  2. Es wird eine Mail an Ihre Adresse geschickt, um das Konto auf der legalen Speicherplattform zu aktivieren, falls erforderlich.

  3. Erstellen Sie eine ApiConfiguration für Ihre BusinessRegistryConfiguration mit POST /api_configurations. Dieser Endpunkt kann so konfiguriert werden, dass er alle Benachrichtigungen mit einem Callback empfängt.

  4. Erstellen Sie eine XML-Rechnung für den Endpunkt mit Bezug auf Ihre Konfiguration

Ein Beispiel für die Callback-Objekte finden Sie auf der Registerkarte Callbacks in der Anfrage /api_configurations


Bitte beachten Sie, dass in der englischen Übersetzung:

Customer invoices: Fatture attive

Lieferantenrechnungen: Fatture passiv

Gesetzliche Aufbewahrung: Certificazione a norma

Interaktion mit der gesetzlichen Aufbewahrung

Legal Storage ist ein Dienst, der die rechtliche Aufbewahrung Ihrer Dokumente ermöglicht. Alle gespeicherten Dokumente sind in der Legal Storage Management Software, einer Software eines Drittanbieters, verfügbar.

Wenn Sie eine BusinessRegistryConfiguration erstellen, werden Sie aufgefordert, eine E-Mail-Adresse anzugeben, die auf der Plattform registriert werden soll. Sie erhalten eine E-Mail, die alle Schritte enthält, um die Registrierung abzuschließen und auf die Plattform zuzugreifen.

Reaktivierung einer BusinessRegistryConfiguration

Wenn Sie einen Rückruf erhalten, aber kein Guthaben mehr auf Ihrer Geldbörse haben, wird Ihr Konto vorübergehend gesperrt: In diesem Fall erhalten Sie sofort eine Erinnerungs-E-Mail. Um es nach einer Aufladung der Brieftasche wieder zu aktivieren, müssen Sie eine PATCH-Anfrage an /business_registry_configurations/{fiscal_id}/activate stellen

Interaktion mit der öffentlichen Verwaltung (PA)

Rechnungen an die öffentliche Verwaltung werden automatisch erkannt und signiert.

ApiConfigurations

Eine ApiConfiguration für eine fiscal_id erstellen

Erstellen Sie die Konfigurationen Ihrer Callback-Endpunkte.

Alle von SDI empfangenen Benachrichtigungen werden an die von Ihnen konfigurierten Endpunkte weitergeleitet.
Die "fiscal_id" ist die eindeutige Kennung des Unternehmens, das Sie konfigurieren möchten.

Sie können separate Endpunkte für jedes Ereignis erstellen: der Ereigniscode kann einer der folgenden sein: "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)

Die Liste der für diese fiscal_id erstellten ApiConfiguration

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

Abrufen einer Liste von ApiConfigurations

Authorizations:
bearerAuth
query Parameters
fiscal_id
string

Filter für eine fiscal_id

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

Löschen von ApiConfigurations

Authorizations:
bearerAuth
path Parameters
id
required
string

Die ID der 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

Es werden sowohl Standard- als auch vereinfachte Rechnungen an Privatpersonen oder an die öffentliche Verwaltung unterstützt

Eine Rechnung erstellen

Erstellen Sie eine neue Rechnung und senden Sie sie an den Regierungskanal. Sie sollten das Format des Anfragekörpers mit dem Header "content-type" angeben. Ihre Rechnung wird sofort in die Warteschlange gestellt und Sie erhalten die UUID der Rechnung als Rückruf zurück

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

Erstellen Sie eine Rechnung mit der Signatur

Erstellen Sie eine neue Rechnung und senden Sie sie an den Regierungskanal. Sie sollten das Format des Anfragekörpers mit dem Header "content-type" angeben. Ihre Rechnung wird sofort in die Warteschlange gestellt und Sie erhalten die UUID der Rechnung als Rückruf zurück

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

Abrufen einer Sammlung von Rechnungsressourcen.

Dieser Endpunkt ermöglicht den Abruf von Informationen über Rechnungen. Es können verschiedene Abfrageparameter angegeben werden, um die Ergebnisse nach den Bedürfnissen des Benutzers zu filtern.

Abfrage-Parameter:

  • typ (optional): Die Art der Suche, die durchgeführt werden soll. Erlaubte Werte: 0 oder 1. Bei 0 werden die Rechnungen zurückgegeben, bei denen der Benutzer der Absender ist. Bei 1 werden die Rechnungen zurückgegeben, bei denen der Benutzer der Empfänger ist. Wenn nicht angegeben, ist der Standardwert 0.
  • absender (optional): Gibt den Absender der Rechnungen an. Es kann ein einzelner Absender oder eine durch Komma getrennte Liste von Absendern sein.
  • empfänger (optional): Gibt den Empfänger der Rechnungen an. Es kann sich um einen einzelnen Empfänger oder eine durch Komma getrennte Liste von Empfängern handeln.

Beispiel: Alle Rechnungen für den Benutzer abrufen:

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

Anmerkung: Wenn "Typ" nicht angegeben wird, ist der Standardwert 0, und alle Rechnungen für den Benutzer mit Typ 0 werden zurückgegeben.

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

Suche nach Rechnungen, die an PA gesendet wurden.

type
string

Bei Typ 0: Suche nach Rechnungen, die an einen Kunden gesendet wurden, bei Typ 1: Suche nach Rechnungen, die von einem Lieferanten empfangen wurden

sender
string

Suche nach Absender (Umsatzsteuernummer ODER Steuernummer). Sie können mehrere Werte auf einmal durch Komma getrennt angeben.

recipient
string

Suche nach Empfänger (Umsatzsteuernummer ODER Steuernummer). Sie können mehrere Werte auf einmal durch Komma getrennt angeben.

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

Die Seitenzahl der Sammlung

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

Die Rechnung wurde heruntergeladen (automatisch, wenn sie per Webhook empfangen wurde, oder manuell bei Polling-Integrationen).

downloaded_at
string <date-time>
marking
string

Die Markierung stellt den aktuellen Status der Rechnung dar.

notice
string
retry_information
string
transmission_format
string

Das in der Rechnung angegebene Übertragungsformat.

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

Ressource "Rechnung abrufen".

Eine Rechnung standardmäßig in application/json abrufen

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

Die Rechnung wurde heruntergeladen (automatisch, wenn sie per Webhook empfangen wurde, oder manuell bei Polling-Integrationen).

downloaded_at
string <date-time>
marking
string

Die Markierung stellt den aktuellen Status der Rechnung dar.

notice
string
retry_information
string
transmission_format
string

Das in der Rechnung angegebene Übertragungsformat.

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
}

Laden Sie die Ressource Rechnungen herunter.

Sie können eine Rechnung in vielen verschiedenen Formaten erhalten, indem Sie einfach einen anderen Accept-Header angeben:

  • application/xml, Sie erhalten das XML-Format
  • text/html, Sie erhalten die Rechnung mit dem gewählten Stylesheet formatiert (über den X-PrintTheme-Header, siehe unten)
  • application/pdf, wie bei HTML, aber als PDF-Datei
  • application/octet-stream, Sie erhalten die Rohdatei (P7M- oder XML-Format)
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

Die Rechnung wurde heruntergeladen (automatisch, wenn sie per Webhook empfangen wurde, oder manuell bei Polling-Integrationen).

downloaded_at
string <date-time>
marking
string

Die Markierung stellt den aktuellen Status der Rechnung dar.

notice
string
retry_information
string
transmission_format
string

Das in der Rechnung angegebene Übertragungsformat.

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

Abrufen der Sammlung von Rechnungsmeldungen.

Ruft die Sammlung von Benachrichtigungen für eine bestimmte Rechnung ab. Sie können die Benachrichtigung im JSON-Format oder im ursprünglichen XML-Format haben format haben, indem Sie den HTTP-Header Accept entweder auf application/json oder application/xml setzen

Authorizations:
bearerAuth
path Parameters
uuid
required
string

Responses

Response Schema:
Array
uuid
string
invoice_uuid
string
created_at
string

Das Datum, an dem die Meldung eingegangen ist.

type
string

Die Art der Meldung (2-Buchstaben-Code).

message
string

Das Modell der Benachrichtigung.

downloaded
boolean

Die Meldung wurde heruntergeladen (automatisch, wenn sie per Webhook empfangen wurde, oder manuell bei Polling-Integrationen).

downloaded_at
string <date-time>

Datum des Herunterladens der Benachrichtigung.

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

Erstellen einer Business Registry-Konfiguration

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

Die Steuernummer oder die Umsatzsteuernummer OHNE Ländervorwahl

name
string

Der Name des Eigentümers für die Steuer-ID.

email
string

Die E-Mail, an die der Inhaber der FiskalId Mitteilungen von der Plattform erhält.

apply_signature
boolean

Wenden Sie eine digitale Signatur an, bevor Sie Rechnungen an SDI senden.

apply_legal_storage
boolean

Wenden Sie die gesetzliche Aufbewahrung für Rechnungen an, die von der Steuer-ID gesendet/empfangen wurden.

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

Abrufen einer Liste von Business Registry Configuration

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

Abrufen einer Unternehmensregistrierungskonfiguration

Authorizations:
bearerAuth
path Parameters
fiscal_id
required
string

Die Steuerkennung

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

Löschen einer Business Registry-Konfiguration

Authorizations:
bearerAuth
path Parameters
fiscal_id
required
string

Die Steuerkennung

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

Reaktivierung einer Business Registry-Konfiguration

Mit dieser Methode können Sie eine Business Registry Configuration wieder aktivieren, die zuvor entweder automatisch oder manuell durch den Benutzer deaktiviert wurde.

Authorizations:
bearerAuth
path Parameters
fiscal_id
required
string

Die Steuerkennung

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

Kundenrechnung importieren (fattura attiva)

Importieren Sie eine Kundenrechnung, die bereits an SDI gesendet wurde. Die Rechnung wird nicht an SDI gesendet. Sie können Webhook-Ereignisse deaktivieren, indem Sie den Header X-DisableEndpoints: true senden.

Authorizations:
bearerAuth
Request Body schema: application/json

Die neue Ressource CustomerInvoiceImport

invoice
required
string

Das base64-kodierte Rechnungs-XML.

notifications
Array of strings

Meldungsart als Schlüssel (RC, MC, NS, DT, NE, AT, EC), Meldung base64 als Wert. Wenn nicht mindestens eine Meldung vorhanden ist, müssen Sie invoice_file_name und sdi_id angeben.

invoice_file_name
string

Der Dateiname der Rechnung, der nur anzugeben ist, wenn es keine Meldung gibt.

sdi_id
string

Die SDI-ID der Rechnung, die nur anzugeben ist, wenn es keine Meldung gibt.

Responses

Response Schema: application/json
uuid
string

Die UUID, die zur eindeutigen Identifizierung der Rechnung verwendet wird.

Request samples

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

Response samples

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

Einfuhr-Lieferantenrechnung (fattura passiva)

Importieren Sie eine Lieferantenrechnung, die bereits von SDI empfangen wurde.

Authorizations:
bearerAuth
Request Body schema:

Die neue Ressource SupplierInvoiceImport

invoice
required
string

Das base64-kodierte Rechnungs-XML.

metadata
string

Das base64-kodierte XML der Rechnungsmetadaten. Wenn sie nicht bereitgestellt wird, müssen Sie invoice_file_name und sdi_id angeben.

invoice_file_name
string

Der Dateiname der Rechnung, der nur angegeben werden muss, wenn keine Metadaten vorhanden sind.

sdi_id
string

die SDI-ID der Rechnung, die nur angegeben werden muss, wenn keine Metadaten vorhanden sind.

Responses

Response Schema:
uuid
string

Die UUID, die zur eindeutigen Identifizierung der Rechnung verwendet wird. Falls die Rechnungs-XML mehrere Körper enthält, erhalten Sie ein Array von UUIDs.

Request samples

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

Response samples

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

Lieferantenrechnung in der Sandbox simulieren (fattura passiva)

hier müssen Sie eine Rechnung als Payload senden, sie wird an die von Ihnen konfigurierten Endpunkte für das Ereignis supplier-invoice geliefert. Das codice_destintario spielt keine Rolle, Sie werden die Rechnung auf Ihr Konto erhalten. Der Body muss einen gültigen Invoice-Payload enthalten. Dieser Service ist nur in der Sandbox gültig

Authorizations:
bearerAuth
Request Body schema: application/json

id_codice in cessionario_committente.dati_anagrafici.id_fiscale_iva ist erforderlich und ist die 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"
}