Verteco

Integrationen / Für Entwickler / Webhooky

Webhooky logo

Webhooks

Verfügbar

Das Portal sendet an Ihre URL ein signiertes Ereignis, wenn eine Rechnung empfangen, übergeben, zugestellt, abgelehnt oder der Finanzverwaltung gemeldet wird, sodass Sie den Status von E-Rechnungen nicht per Polling abfragen müssen. Die Zustellung ist dauerhaft: das Ereignis wird in einer Ausgangswarteschlange gespeichert und bei einem Ausfall Ihres Servers machen wir 12 Versuche im Abstand von 30 Sekunden bis 8 Stunden (insgesamt etwa 16 Stunden), danach landet es in einem Dead Letter mit der Möglichkeit erneuter Zustellung. Der Webhook wird je Unternehmen in dessen Detail auf dem Reiter Benachrichtigungen eingestellt.

So funktioniert es

  1. 1Öffnen Sie im Portal das Unternehmensdetail und den Reiter Benachrichtigungen. Tragen Sie im Feld Webhook für Benachrichtigungen die öffentliche https://-URL Ihres Systems ein und klicken Sie auf Benachrichtigungen speichern.
  2. 2Klicken Sie auf Webhook testen: das Portal sendet ein signiertes Testereignis webhook.test an die gespeicherte URL und zeigt, was es gesendet hat und was zurückkam (Status, Antworttext, Dauer).
  3. 3Holen Sie das Signatur-Secret über die API: POST /companies/{id}/webhook/secret liefert es einmal. Prüfen Sie in Ihrem System die Kopfzeile X-Verteco-Signature (sha256=HMAC-SHA256 über die exakten Bytes des Bodys) oder die Standard-Webhooks-Kopfzeilen (webhook-id, webhook-timestamp, webhook-signature).
  4. 4Verarbeiten Sie Ereignisse idempotent nach eventId, lehnen Sie eine Zustellung mit einem webhook-timestamp älter als 5 Minuten ab, antworten Sie innerhalb von 15 Sekunden mit 2xx und verschieben Sie schwerere Verarbeitung in Ihre eigene Warteschlange. Auf einen unbekannten Ereignistyp antworten Sie mit 2xx und protokollieren ihn.

Was die Integration löst

  • ✓Ereignisse invoice.received, invoice.sent, invoice.delivered, invoice.rejected, invoice.undeliverable und invoice.reported plus Unternehmensstatus (company.activated und weitere)
  • ✓Zwei Signaturen zugleich: X-Verteco-Signature (HMAC-SHA256) und die Kopfzeilen nach der Spezifikation Standard Webhooks (webhook-id, webhook-timestamp, webhook-signature)
  • ✓Dauerhafte Zustellung: Ausgangswarteschlange, 15 s Timeout, 12 Versuche im Abstand von 30 Sekunden bis 8 Stunden (insgesamt etwa 16 Stunden), dann Dead Letter mit erneuter Zustellung, E-Mail-Warnung und Eintrag im Realtime-Log
  • ✓eventId und occurredAt in jedem Ereignis: ein eindeutiger Schlüssel zur Deduplizierung und die Entstehungszeit zur Sortierung
  • ✓Die Zeiten sentAt, deliveredAt, receivedAt und fsReportedAt in den Ereignissen invoice.* als Nachweis von Versand, Zustellung und Meldung an die Finanzverwaltung
  • ✓Ein Webhook je Unternehmen mit eigener URL und eigenem Secret; mit einem API-Token richten Sie ihn für alle Unternehmen ein, die Sie besitzen

Häufige Fragen: E-Rechnungen für Webhooky

Welche Ereignisse sendet der Webhook?
invoice.received (empfangener Beleg), invoice.sent (an das Netzwerk übergebener Beleg), invoice.delivered (der Zugangspunkt des Empfängers hat die Zustellung mit einer MLS-Bestätigung bestätigt), invoice.rejected (vom Netzwerk oder bei der Validierung vor dem Versand abgelehnt), invoice.undeliverable (Empfänger ohne Eintrag im Peppol-Netzwerk), invoice.reported (Meldung an die Finanzverwaltung übergeben), invoice.report_pending, invoice.report_rejected, company.activated, company.deactivated, company.smp_registered_elsewhere und das Testereignis webhook.test. Einen neuen Typ kündigen wir immer vorab an; die formalen Schemata stehen im Abschnitt webhooks unserer OpenAPI-Spezifikation.
Wie prüfe ich, dass eine Benachrichtigung von Verteco kam?
Hat das Unternehmen ein Secret, trägt jede Zustellung die Kopfzeile X-Verteco-Signature in der Form sha256=HMAC-SHA256(secret, roher Body) und parallel die Standard-Webhooks-Kopfzeilen: webhook-id (= eventId), webhook-timestamp (Unix-Sekunden des Versuchs) und webhook-signature = v1,base64(HMAC-SHA256(secret, id + "." + timestamp + "." + body)). Berechnen Sie den HMAC immer über die exakten Bytes des Bodys und lehnen Sie eine Zustellung mit einem webhook-timestamp älter als 5 Minuten ab. Das Secret erhalten Sie über POST /companies/{id}/webhook/secret; es wird einmal zurückgegeben und eine Rotation erzeugt ein neues.
Was passiert, wenn mein Server vorübergehend nicht erreichbar ist?
Die Benachrichtigung geht nicht verloren. Sie wird in einer Ausgangswarteschlange gespeichert und bei Misserfolg machen wir 12 Versuche mit exponentiellem Abstand von 30 Sekunden bis 8 Stunden (insgesamt etwa 16 Stunden); danach endet sie als Dead Letter mit der Möglichkeit erneuter Zustellung und einer E-Mail-Warnung und ist im Realtime-Log des Portals sichtbar. Die Kopfzeile X-Verteco-Delivery-Id und das Feld eventId sind bei jeder Wiederholung gleich, deduplizieren Sie also danach.
Muss ich Webhooks nutzen, oder reicht Polling?
Webhooks sind eine Ergänzung, keine Voraussetzung. Dieselben Informationen erhalten Sie über GET /sapi/document/sent und GET /sapi/document/receive mit den Parametern ?since und ?until; das empfohlene Intervall sind 1 bis 5 Minuten. Die Webhook-URL muss öffentlich und in der Produktion https:// sein; Loopback- und lokale Adressen blockiert der SSRF-Schutz.
Ab wann kommen die Webhooks tatsächlich?
Erst wenn das Unternehmen im Peppol-Netzwerk aktiv ist, also nach der Auswahl von Verteco als Anbieter auf dem Portal der Finanzverwaltung, und tatsächlich Belege empfängt oder sendet. Das Ereignis company.activated kündigt Ihnen diesen Moment an. Die Testbenachrichtigung webhook.test schicken Sie sich jederzeit mit der Schaltfläche Webhook testen im Unternehmensdetail.
Was kostet das?
Die Anbindung ist kostenlos. Der Dienst kostet ab €2/Monat zzgl. MwSt. je Unternehmens-ID (IČO), die sendet oder das Datenarchiv eingeschaltet hat; Empfang mit ausgeschaltetem Archiv ist kostenlos (bis 1.000 Rechnungen pro Monat). Während der freiwilligen Phase vor der Pflicht ab 1. 1. 2027 ist alles kostenlos.

Starten Sie heute: die Auswahl auf dem Portal der Finanzverwaltung genügt

Empfang kostenlos · ohne Bindung und versteckte KostenErfüllen Sie Ihre gesetzliche Pflicht für 2027 in 2 MinutenFinančná správa (die slowakische Steuerverwaltung)Verteco auf dem Portal der Finančná správa auswählen →Klicken Sie auf dem Portal auf „Pokračovať" (Weiter), melden Sie sich an (slovensko.sk / eID oder Ihre FS-Portal-Zugangsdaten) und bestätigen Sie die Auswahl. Den Rest erledigen wir automatischZertifizierter Anbieter der Finančná správa (EFSK000031) · keine Vertragsbindung · Sie können den Anbieter jederzeit wechseln
Wie läuft die Auswahl ab? (3 Schritte, ~2 Minuten)
  1. 1Klicken Sie auf die Schaltfläche oben. Die offizielle Seite der Finančná správa „Výber certifikovaného poskytovateľa" (Auswahl des zertifizierten Anbieters) öffnet sich mit vorausgewähltem Verteco. Klicken Sie auf „Pokračovať" (Weiter).
  2. 2Melden Sie sich beim Portal der Finančná správa an, über slovensko.sk (eID / Personalausweis mit Chip) oder mit Ihren PFS-Zugangsdaten, und bestätigen Sie die Anbieterauswahl.
  3. 3Fertig. Sie erhalten eine E-Mail mit den Anmeldedaten. Konto, Unternehmen und Peppol-Netzwerkregistrierung erstellen wir automatisch. Hält bereits ein anderer Anbieter Ihren Empfangseintrag, übernehmen wir ihn nicht: Sie erhalten die Anleitung mit dem Migrationscode, oder Sie legen im Portal fest, dass der Empfang dort bleibt und Sie über uns nur versenden.
  4. Keine eID? Beim Portal der Finančná správa können Sie sich auch mit PFS-Kennung und Passwort anmelden. Oder registrieren Sie sich hier mit E-Mail und Passwort, fügen Sie Ihr Unternehmen manuell hinzu und schließen Sie die Auswahl später ab.
  5. Ihr Unternehmen erscheint nicht bei der Auswahl des Steuersubjekts? Angezeigt werden nur Subjekte, für die Sie im FS-Portal autorisiert sind. Fügen Sie die Autorisierung in der Persönlichen Internetzone hinzu (Autorizácie → Pridať autorizovaného používateľa) und schließen Sie die Auswahl ab.
  6. Ausführliche Anleitung zur Auswahl im FS-Portal (auf Slowakisch) →

Verwandt: Peppol-Prüfung eines Unternehmens · Leitfaden E-Rechnung 2027 · Preisliste · alle Integrationen