Saudi-Arabien · Branchenübergreifend (Produkt)

ZATCA-Phase-2-Bridge für SAP Business One

ZusammenfassungEine sofort installierbare Bridge, die Rechnungen aus SAP Business One bei der ZATCA freigeben lässt und meldet – mit einer übersichtlichen Weboberfläche über einem Synchronisierungsdienst im Hintergrund.

Die Herausforderung

SAP-B1-Anwender in Saudi-Arabien hatten einen funktionierenden, aber schwer bedienbaren ZATCA-Windows-Dienst: kein klarer Status, keine einfache Einrichtung und Fehler, die in Protokolldateien versteckt waren.

Ausgangslage

ZATCA Phase 2 (die Integrationsphase der saudischen E-Rechnung) verlangt, dass jede Steuerrechnung als UBL-2.1-XML erzeugt, mit einem kryptografischen Stempel signiert, über ihren Hash mit der vorherigen Rechnung verkettet und mit einem QR-Code versehen wird. Standardrechnungen (B2B) müssen von der ZATCA freigegeben werden, bevor sie an den Käufer gehen, vereinfachte Rechnungen (B2C) sind innerhalb von 24 Stunden zu melden. Bevor ein System übermitteln darf, muss es mit einer Compliance-CSID registriert werden, die Compliance-Prüfungen bestehen und anschließend eine Produktions-CSID erhalten.

SAP-Business-One-Anwender in Saudi-Arabien hatten bereits einen Windows-Dienst, der diese Arbeit erledigte, doch er war schwer zu bedienen. Es gab keine klare Statusanzeige, die Einrichtung bedeutete, Konfigurationsdateien von Hand zu bearbeiten, und lehnte die ZATCA eine Rechnung ab, war der Grund in Protokolldateien vergraben. Für eine Finanzabteilung, die jeden Tag konforme Rechnungen ausstellen muss, wird eine unbemerkte Ablehnung schnell zu einem Compliance- und Liquiditätsproblem.

Was wir entwickelt haben

  • Weboberfläche auf Basis von ASP.NET Core mit einem geführten Einrichtungsassistenten in 6 Schritten
  • Hintergrunddienst, der SAP-B1-Belege an die ZATCA übermittelt und die Ergebnisse zurückschreibt
  • Übersicht der Übermittlungen, Laufhistorie und verständliche Fehlermeldungen
  • Verschlüsselt gespeicherte Zugangsdaten; hardwaregebundene Lizenz mit Testmodus
  • Betrieb als Windows-Dienst oder unter IIS

So greift alles ineinander

  • Der Hintergrunddienst liest neue Ausgangsrechnungen und Gutschriften über die DI API aus dem SAP-B1-Mandanten.
  • Jeder Beleg wird in ZATCA-konformes XML umgewandelt, signiert und zur Freigabe (B2B) oder Meldung (B2C) an die ZATCA-Fatoora-API gesendet.
  • Die Antwort der ZATCA (Status, Warnungen, Fehler und das freigegebene Ergebnis) wird in den SAP-B1-Beleg zurückgeschrieben, sodass die Anwender das Ergebnis direkt in SAP sehen.
  • Eine lokale SQLite-Datenbank, angesprochen über EF Core, speichert Einstellungen, Übermittlungen und Laufhistorie; Zertifikate und andere vertrauliche Daten werden verschlüsselt gespeichert.
  • Darüber liegt eine Weboberfläche auf Basis von ASP.NET Core MVC: der Einrichtungsassistent in 6 Schritten, die Übersicht der Übermittlungen und verständliche Fehlermeldungen.
  • Dieselbe Anwendung läuft wahlweise als Windows-Dienst oder unter IIS, und eine hardwaregebundene Lizenz mit Testmodus steuert die Aktivierung.

So haben wir es umgesetzt

  1. Analyse und Leistungsumfang. Prüfung des bestehenden Windows-Dienstes, der genutzten SAP-B1-Belegarten (Rechnungen, Gutschriften, vereinfachte Rechnungen) und der Registrierung des Kunden bei der ZATCA. Abstimmung des Leistungsumfangs der Phase.
  2. Entwicklung auf einem Testmandanten und in der ZATCA-Sandbox. Einrichtungsassistent, Synchronisierungsdienst und Rückschreiben werden gegen einen SAP-B1-Testmandanten entwickelt; übermittelt wird ausschließlich an die Entwickler- und Simulationsumgebung der ZATCA, bis die Compliance-Prüfungen bestanden sind.
  3. Tests. Normale Rechnungen, Gutschriften und absichtlich fehlerhafte Belege laufen durch die Bridge. Geprüft wird, dass jede Ablehnung in der Übersicht der Übermittlungen eine klare Meldung zeigt und korrigiert und erneut gesendet werden kann.
  4. Produktivstart. Produktions-CSID beantragen, die Bridge auf den Produktiv-Endpunkt umstellen, als Windows-Dienst oder unter IIS installieren und die Lizenz aktivieren. Die ersten Live-Übermittlungen werden gemeinsam mit der Finanzabteilung beobachtet.
  5. Support. Nach dem Produktivstart umfasst der Support neue Ablehnungsfälle, Regeländerungen der ZATCA und Fragen der Anwender.

Ergebnis

  • Ein geführter Assistent ersetzt die manuelle Konfiguration
  • Abgelehnte Rechnungen sind auf einer einzigen Maske sichtbar und korrigierbar

Die Einrichtung, die früher manuelle Konfiguration erforderte, ist jetzt ein geführter Assistent, und die Finanzabteilung sieht und korrigiert abgelehnte Rechnungen auf einer einzigen Maske, statt Protokolldateien zu durchsuchen.

Erkenntnisse für ein ähnliches Projekt

  • Planen Sie die ZATCA-Registrierung früh: Compliance-CSID, Compliance-Prüfungen und Produktions-CSID sind getrennte Schritte, und jeder erfordert Zugriff auf das Fatoora-Portal.
  • Führen Sie die Hash-Kette und den Rechnungszähler an genau einer Stelle; wer Belege unbedacht erneut sendet oder überspringt, bricht die Kette.
  • Machen Sie Ablehnungen für die Finanzabteilung sichtbar, nicht nur für die IT. Eine verständliche Fehlermeldung direkt am Beleg spart mehr Zeit als jede Protokolldatei.

Technologie

.NET 10ASP.NET Core MVCSAP B1 DI APIEF CoreSQLiteWindows Service

Eingesetzte Leistungen

Umgesetzt von Zain Abbas, Kodenova.

Sie planen etwas Ähnliches?

Sagen Sie uns, was Sie brauchen. Sie erhalten eine klare technische Antwort, einen festen Leistungsumfang und einen Preis, in der Regel innerhalb von 24 Stunden.