Zum Inhalt springen

E-INVOICE IT für SIGN IT-Kunden

Sie sehen die Dokumentation für API-Version 2026-06-01.

Dieser Leitfaden richtet sich an Kunden, die bereits über eine funktionierende SIGN IT-Integration verfügen und die italienische E-Rechnungsstellung (E-INVOICE IT) — B2B und B2C — ergänzen möchten. Beide Produkte basieren auf derselben Unified API und teilen sich dieselbe Taxpayer- und Location-Struktur — es sind nur wenige Ergänzungen erforderlich.

Kommen Sie von SIGN IT 2024-10-31 oder 2025-08-12? Aufklappen und zuerst lesen.

Nach Version 2025-08-12 wurden einige Ressourcen umbenannt und neue für die E-Rechnungsstellung hinzugefügt. Die aktualisierten Endpunkte können mit den bereits verwendeten {id} aufgerufen werden.

Bis Version 2025-08-12Nach Version 2025-08-12Hinweise
ASSET/assetsORGANIZATION/organizationsNur eine Umbenennung — gleiche ID wie vorher.
ENTITY (COMPANY/INDIVIDUAL) — /entitiesTAXPAYER (COMPANY/INDIVIDUAL) — /taxpayersNur eine Umbenennung — gleiche ID wie vorher.
ENTITY (LOCATION) — /entitiesLOCATION/locationsDiese Ressource ist jetzt in zwei Arten aufgeteilt:
  • HEAD_OFFICE location: wird automatisch bei der Erstellung des Taxpayers angelegt — gleiche ID wie Ihr vorheriges ENTITY (COMPANY/INDIVIDUAL)
  • BRANCH location: jede zusätzliche Location. Wird über den createLocation-Endpunkt erstellt — gleiche ID wie Ihr vorheriges ENTITY (LOCATION)
SYSTEM mit Verweis auf entity: {id}SYSTEM mit Verweis auf location: {id}Nur eine Umbenennung — gleiche ID wie vorher.

Bevor Sie fortfahren:

  • Aktualisieren Sie Ihren X-Api-Version-Header auf die im Banner oben angegebene Version.
  • Stellen Sie sicher, dass Sie die richtigen Basis-URLs verwenden: test.api.fiskaly.com (TEST) und live.api.fiskaly.com (LIVE).
  • Fügen Sie fiscalization.credentials.tax_id_number zu Ihren FISCONLINE-Zugangsdaten hinzu, falls noch nicht vorhanden. Dieses Feld war in 2024-10-31 nicht erforderlich, in 2025-08-12 optional, ist aber jetzt erforderlich.
  • Prüfen Sie die wichtigsten Änderungen an der Record-Payload-Struktur in der API-Dokumentation — dieser FAQ-Artikel kann dabei helfen. Bei Fragen wenden Sie sich gerne an dev-support@fiskaly.com.

Vor dem Start wird davon ausgegangen, dass Ihre Integration Folgendes umfasst:

  • Einen Taxpayer, der mit italienischen Fiskalisierungsdaten erstellt wurde (fiscalization.type=IT, tax_id_number, vat_id_number, credentials)
  • Den in Betrieb genommenen Taxpayer (state=COMMISSIONED, mode=OPERATIVE)
  • Ein FISCAL_DEVICE System, das auf der Location des Taxpayers in Betrieb genommen wurde
  • Einen INTENTION::TRANSACTIONTRANSACTION::RECEIPT / TRANSACTION::CORRECTION / TRANSACTION::CANCELLATION Ablauf für fiskalische Belege

Nichts davon muss geändert werden. Die folgenden Schritte ergänzen E-INVOICE IT zum bestehenden Setup.

Zwei Ergänzungen am Taxpayer sind erforderlich, die SIGN IT allein nicht benötigt:

  • address.region — der italienische Provincia-Code (z. B. MI, RM) ist für die SDI-Übermittlung obligatorisch. Falls er noch nicht am Taxpayer gesetzt ist, fügen Sie ihn über updateTaxpayer hinzu.

  • fiscalization.registration — ein neuer Block mit Daten aus dem Registro delle Imprese / REA.

    Erforderliche Felder: company_id, office, entry, legal_form, capital, shareholder_status, liquidation_status. Das Feld tax_regime verwendet standardmäßig ORDINARY, wenn Sie es nicht angeben.

    Das SDI verlangt diesen Block für registrierte Unternehmen — geben Sie ihn beim Onboarding des Taxpayers an.

Beispiel: PATCH /taxpayers/{taxpayer_id}
{
"content": {
"address": {
"region": "MI"
},
"fiscalization": {
"type": "IT",
"registration": {
"company_id": "MI12345678901234567",
"office": "MI",
"entry": "1234567",
"legal_form": "LIMITED_LIABILITY_COMPANY",
"capital": "10000.00",
"shareholder_status": "MULTIPLE_SHAREHOLDERS",
"liquidation_status": "NOT_IN_LIQUIDATION"
}
}
}
}

Schritt 2 — Ein zusätzliches System in Betrieb nehmen

Abschnitt betitelt „Schritt 2 — Ein zusätzliches System in Betrieb nehmen“

Das E_INVOICE_SERVICE System ist das einzige System, das E-Rechnungen erstellt und übermittelt (und eingehende empfängt). Es ersetzt nicht Ihre FISCAL_DEVICE Systeme: Sie erstellen den Rechnungs-Record (TRANSACTION::INVOICE) weiterhin auf einem FISCAL_DEVICE System (einem beliebigen auf demselben Taxpayer), und das E_INVOICE_SERVICE System wandelt diese Daten in die E-Rechnung um.

Verwenden Sie createSystem, um ein E_INVOICE_SERVICE System auf der HEAD_OFFICE Location des Taxpayers zu erstellen, und nehmen Sie es anschließend über updateSystem in Betrieb, indem Sie seinen state auf COMMISSIONED setzen.

Den vollständigen Empfangsablauf finden Sie unter Empfang von E-Rechnungen auf der Italien-Seite.

Schritt 3 — Den Rechnungs-Transaktionsablauf hinzufügen

Abschnitt betitelt „Schritt 3 — Den Rechnungs-Transaktionsablauf hinzufügen“

SIGN IT verwendet TRANSACTION::RECEIPT / TRANSACTION::CORRECTION / TRANSACTION::CANCELLATION.

E-INVOICE IT verwendet andere Transaktionstypen im selben INTENTION::TRANSACTION Container:

  • Rechnung (B2B oder B2C) → erstellen Sie eine TRANSACTION::INVOICE auf einem FISCAL_DEVICE System (wie in Schritt 2)
  • Gutschrift → erstellen Sie eine TRANSACTION::CORRECTION mit data.type=INVOICE, die über record.id auf die ursprüngliche Rechnung verweist

Sowohl BUSINESS- als auch CONSUMER-Empfänger werden unterstützt. Bei einem Geschäftsempfänger benötigt der Eintrag im recipients-Array der Rechnung einen invoicing-Block vom Typ SDI sowie die Provincia des Empfängers:

  • recipients[].type = BUSINESS
  • recipients[].invoicing.type = SDI
  • recipients[].invoicing.destination_code — der 7-stellige SDI-Postfachcode des Empfängers
  • recipients[].invoicing.pec(wo erforderlich) die PEC-Adresse des Empfängers
  • recipients[].address.region — die Provincia des Empfängers (z. B. MI, RM)
Szenariodestination_codepec
Empfänger hat ein registriertes SDI-Postfachsein 7-stelliger Code, nur Großbuchstaben und Ziffern (z. B. ABC1234)optional
Empfänger ist nicht beim SDI registriert"0000000"erforderlich
Empfänger befindet sich außerhalb Italiens"XXXXXXX"nicht verwendet

Bei einem Verbraucherempfänger (B2C) sind die Felder anders — kein frei wählbarer destination_code und keine USt-IdNr., aber der Codice fiscale ist zwingend:

  • recipients[].type = CONSUMER
  • recipients[].identification.type = TAX, mit number als Codice fiscale des Verbrauchers
  • recipients[].namegender, forename und surname
  • recipients[].address — die Wohnadresse des Verbrauchers, einschließlich region (Provincia)
  • recipients[].invoicing.destination_code = "0000000", pec optional

Die vollständigen Anforderungen an den Empfänger finden Sie unter E-Rechnungen senden auf der Italien-Seite.

Wenn der Kunde eine Rechnung statt eines Belegs benötigt

Abschnitt betitelt „Wenn der Kunde eine Rechnung statt eines Belegs benötigt“

Ihre beiden Abläufe melden an unterschiedliche Stellen — der Beleg an die AdE, die Rechnung an das SDI — und nichts verknüpft sie automatisch.

Erfassen Sie den Wunsch, bevor der Verkauf abgeschlossen ist. Teilt Ihnen der Kunde mit, dass er eine Fattura benötigt, stellen Sie eine TRANSACTION::INVOICE auf dem System E_INVOICE_SERVICE anstelle des Belegs aus. Das ist der Ablauf, den fiskaly heute durchgängig unterstützt — unabhängig davon, ob der Kunde vor oder während des Verkaufs danach fragt.

Anders als bei Beleg-Abläufen erfolgt das SDI-Ergebnis asynchron. Nach dem Erstellen der TRANSACTION::INVOICE fragen Sie den E_INVOICE::TRANSMISSION Record ab oder warten auf Aktualisierungen.

Alle drei Records erreichen ihren Endzustand gemeinsam:

RecordEndzustand
E_INVOICE::TRANSMISSIONCOMPLETED oder FAILED, mode=FINISHED
TRANSACTION::INVOICECOMPLETED oder FAILED, mode=FINISHED
INTENTION::TRANSACTIONCOMPLETED oder FAILED, mode=FINISHED

Im Fehlerfall ist der SDI-Ablehnungsgrund im Feld logs[].message aller drei Records verfügbar.

Weitere Details finden Sie unter How to check the status of an e-invoice auf unserer Support-Seite.

Gesendete und empfangene E-Rechnungen werden automatisch langfristig aufbewahrt (conservazione a norma, mindestens 10 Jahre), wobei ein Aufbewahrungsnachweis über das archive-artifact des Records verfügbar ist. Es ist keine Einrichtung erforderlich. Einzelheiten finden Sie unter Archivierung auf der Italien-Seite.

Fehler können in drei verschiedenen Phasen auftreten, jeweils mit unterschiedlichem Verhalten:

PhaseWannVerhalten
UAPI-Validierung (synchron)Ungültiges Payload4xx wird sofort zurückgegeben — es wird kein Record erstellt. Korrigieren Sie das Payload und versuchen Sie es erneut mit demselben INTENTION::TRANSACTION.
Vor-SDI-Validierung (asynchron)Die Rechnung wird abgelehnt, bevor sie das SDI erreichtDie gesamte Kette erreicht state=FAILED — für einen erneuten Versuch ist eine neue Kette erforderlich.
SDI-Ablehnung (asynchron)SDI gibt NS zurückDie gesamte Kette erreicht state=FAILED — für einen erneuten Versuch ist eine neue Kette erforderlich.

Wenn das SDI NS (Notifica di Scarto) zurückgibt, ist die Rechnung rechtlich nicht existent:

  1. Lesen Sie logs[].message an einem der drei Records, um den SDI-Ablehnungsgrund zu erhalten
  2. Erstellen Sie eine neue INTENTION::TRANSACTION und eine neue TRANSACTION::INVOICE mit den korrigierten Daten
  3. Dieselbe document.number darf innerhalb von 5 Tagen nach der NS-Ablehnung erneut verwendet werden
  4. Die fehlgeschlagene Kette bleibt dauerhaft FAILED — sie wird zu Prüfzwecken aufbewahrt

Folgendes bleibt vollständig unberührt:

  • Der Inbetriebnahme-Ablauf des Taxpayers und die Fisconline-Anmeldedaten
  • Alle FISCAL_DEVICE Systeme und BRANCH Locations
  • Ihr bestehender INTENTION::TRANSACTIONTRANSACTION::RECEIPT / TRANSACTION::CORRECTION / TRANSACTION::CANCELLATION Beleg-Ablauf