Vergleichen Sie die Signaturen

Vergleichen Sie nun den gerade berechneten Wert mit dem Wert aus dem Header X-Smart-Invoice-Signature. Hierzu sollten Sie eine Vergleichsfunktion nutzen, die in konstanter Zeit vergleicht, um einem Timing-Angriff vorzubeugen. Wenn die Werte voneinander abweichen, sollten Sie die Anfrage als nicht authentifiziert verwerfen. Ansonsten können Sie die Anfrage weiter verarbeiten.

Abholen von Transfers per API

Sie können die zum Transfer bereitstehenden Belege aus einer externen Anwendung per REST-API von d.velop smart invoice abholen. Hierzu stehen Ihnen Schnittstellen zum Abrufen von Belegen und zum Bestätigen eines erfolgreichen Transfers zur Verfügung.

Ablauf der Verarbeitung

Wenn Belegdaten von d.velop smart invoice zur Abholung bereitgestellt werden, stehen sie maximal zwei Tage zur Abholung bereit. Die externe Anwendung muss die Belegdaten innerhalb dieses Zeitfensters abholen und zurückmelden, ob die Verarbeitung erfolgreich war. Verstreicht die Zeit ohne Rückmeldung der externen Anwendung, wird der Transfer als fehlerhaft markiert. Der Beleg wird dann zur in d.velop smart invoice konfigurierten Fehlerstelle geleitet.

Meldet die externe Anwendung einen erfolgreichen Transfer zurück, so wird der Beleg entsprechend der Konfiguration von d.velop smart invoice weiter verarbeitet. Häufig bedeutet dies, dass der Workflow nach einem erfolgreichen Transfer beendet wird.

Sollte ein Problem aufgetreten sein und die externe Anwendung entsprechend einen Fehler zurückmelden, wird der Beleg zur konfigurierten Fehlerstelle geleitet. Die aus der externen Anwendung mitgegebene Fehlermeldung wird dem Anwender angezeigt.

Das Zeitfenster von maximal zwei Tagen kann administrativ verkürzt, jedoch nicht verlängert werden.

Integrationsschlüssel

Jede externe Anwendung benötigt einen sogenannten Integrationsschlüssel, um Belegdaten abzufragen. Dieser Integrationsschlüssel wird automatisch von d.velop smart invoice generiert und kann in der Administrationsoberfläche eingesehen werden. Der Integrationsschlüssel ist kein Authentifizierungsmerkmal, sondern dient lediglich dazu, Transfers für verschiedene Anwendungen zu unterscheiden.

Abholen von Transfers

Rufen Sie regelmäßig wie folgt eine Liste aller ausstehenden Transfers zu Ihrem Integrationsschlüssel ab:

Request

GET /smartinvoice/api/v1/transfers?integration_key=abc
Accept: application/json

Response

{
  "_links": {
    "next": {
      "href": "https://test.d-velop.cloud/smartinvoice/api/v1/transfers/..."
    },
    "previous": {
      "href": "https://test.d-velop.cloud/smartinvoice/api/v1/transfers/..."
    },
  },
  "transfers": [
    {
      "_links": { ... },
      "workflow": {
        ...
      }
    }
  ]
}

Eigenschaft

Beschreibung

_links

Transfers werden ggfs. in mehreren Seiten zurückgegeben. Nutzen Sie die hier angegebenen URLs, um weitere Seiten abzurufen.

  • next: Referenz auf die nächste Seite.

  • previous: Referenz auf die vorhergehende Seite.

transfers

Die zum Transfer bereitstehenden Workflows. Das Format jedes Transfers entspricht dem eingangs beschriebenen Format der Belegdaten.

Zurückmelden von Ergebnissen

Nachdem Sie die Daten eines Transfers verarbeitet haben, müssen Sie ein Ergebnis zurückmelden. Wenn Sie innerhalb der Frist kein Ergebnis zurückmelden, gilt der Transfer als fehlerhaft.

Um ein Ergebnis zurückzumelden, schicken Sie einen POST-Request an die im Transfer unter _links und report_results_async angegebene URL.

Request

POST /smartinvoice/api/v1/transfers/:id
Content-Type: application/json

{
  "successful": false,
  "error": {
    "de": "Transfer fehlgeschlagen.",
    "en": "Transfer failed."
  }
}

Eigenschaft

Beschreibung

successful

Boolean. Verpflichtend. Gibt an, ob die Übertragung erfolgreich war. Wenn Sie hier false angeben, müssen Sie das error-Objekt mitschicken. Geben Sie true an, dürfen Sie das error-Objekt nicht mitschicken.

error

Im Fehlerfall können Sie Fehlermeldungen in verschiedenen Sprachen speichern. Die Sprachen Deutsch und Englisch sind verpflichtend. Die hier angegebenen Meldungen werden den Endanwender:innen angezeigt.