Menü der Dokumentation

Empfangen von Belegdaten (d.velop smart invoice)

Sie haben zwei Möglichkeiten, Belegdaten zur weiteren Verarbeitung aus d.velop invoices zu empfangen: per Webhook oder über die API zum Abholen von ausstehenden Transfers. Wenn Sie die Verarbeitung über einen Webhook wählen, ruft d.velop invoices einen von Ihnen implementierten Webservice mit den Daten des zu übertragenden Belegs auf. Bei der Verarbeitung per Abholung ist Ihre Anwendung dafür zuständig, regelmäßig innerhalb eines einstellbaren Zeitfensters die ausstehenden Belege abzuholen, zu verarbeiten, und Erfolg oder Misserfolg an d.velop invoices zu melden.

Wann bietet sich ein Webhook und wann das Abholen per API an? 

Das Abholen von Daten per API und der Empfang der Daten über einen Webhook bieten grundsätzlich den gleichen Funktionsumfang. Sie erhalten bei beiden Varianten die gleichen Belegdaten und müssen bei beiden Varianten zurückmelden, ob die Verarbeitung erfolgt oder nicht erfolgt ist. Wann sollten Sie also das Abholen per API und wann den Empfang über einen Webhook wählen?

Ein Webhook bietet Ihnen die Möglichkeit schneller auf Belegdaten zu reagieren, da d.velop invoices Ihre Anwendung aktiv kontaktiert, sobald es Daten zu verarbeiten gibt. Sie haben unmittelbar die Möglichkeit, die Daten beispielsweise auf Gültigkeit zu prüfen und eine Rückmeldung zu geben. Wenn Sie die Daten per API abholen, dann prüft Ihre Anwendung in regelmäßigen Intervallen, ob neue Daten zur Verfügung stellen. Erfolgt diese Prüfung beispielsweise einmal in der Stunde werden auch nur einmal in der Stunde Daten durch Ihre Anwendung an das externe System übertragen. Kommt es dabei zu Fehlern und Sie melden einen Misserfolg, erfahren die Anwender davon auch erst mit dieser Verzögerung.

Wenn Sie die Belegdaten über die API abrufen, muss Ihre Anwendung die API von d.velop invoices erreichen können. Nutzen Sie die Cloudversion von d.velop invoices, muss ihre Anwendung dementsprechend Internetzugriff haben. Damit Sie die Daten über einen Webhook empfangen können, muss d.velop invoices Ihre Anwendung erreichen können. Nutzen Sie die Cloudversion von d.velop invoices, dann muss Ihre Anwendung aus dem Internet erreichbar sein.

Format der Belegdaten 

Die Belegdaten werden Ihnen über beide Wege in einem einheitlichen Format bereitgestellt.

{
  "event_type": "integration.export",
  "_links": {
    "dmsobject": {
      "href": "https://example.d-velop.cloud/dms/r/21b9b52f-19e3-4b3d-8ac6-b32d991f83e0/o2/P000000001"
    }
  },
  "workflow": {
    "voucher": {
      "doc_id": "P000000001",
      "company": {
        "nr": "01",
        "name": "docures AG"
      },
      "vendor": {
        "nr": "50001",
        "name": "Schrauben Meier GmbH"
      },
      "vendor_bank_account":  {
        "id":  "",
       "iban":  ""
      },
      "currency": {
        "id": "EUR",
        "name": "Euro",
        "code": "EUR"
      },
      "net_amount": 100.0,
      "gross_amount": 119.0,
      "pay_amount":  null,
      "vat_amount": 19.0,
      "document_date": "2020-05-05T00:00:00+00:00",
      "internal_number": "INT010291",
      "external_number": "INV12310",
      "payment_date": "2020-05-10T00:00:00+00:00",
      "date_of_supply": "2020-05-05T00:00:00+00:00"
      "financially_correct":  false,
      "document_type": {
        "id": "inv",
        "name": "Invoice",
        "credit_note": false
      },
      "payment_terms": {
        "id": "NET30",
        "net_days": 30,
        "cashback_days1": 10,
        "cashback_percentage1": 2.5
      },
      "posting_period": "2020-05-09",
      "posting_date":  "2020-05-09T00:00:00+00:00",
      "posting_text": "M3x3mm screws",
      "barcode": "BC1234",
      "custom1": "Sales"
      "line_items": {
        "5afe1329-83cd-4ccc-b806-f9ee458522b7": {
          "internal_id": "5afe1329-83cd-4ccc-b806-f9ee458522b7",
          "line_no": 1,
          "verified": true,
          "verifier": {
            "type": "user",
            "name": "mmus",
            "display_name": "Max Mustermann"
          },
          "verified_by": {
            "type": "user",
            "id": "257659",
            "name": "mmus",
            "display_name": "Max Mustermann"
          },
          "verified_at": "2020-05-05T10:25:00+01:00",
          "gl_account": {
            "nr": "6300"
          },
          "cost_center": {
            "nr": "1000"
          },
          "cost_unit": {
            "nr": "PJ0001"
          },
          "net_amount": 100.0,
          "gross_amount": 119.0,
          "pay_amount": null,
          "vat_amount": 19.0,
          "tax_code": {
            "id": "DE_S",
            "name": "Vorsteuer 19%",
            "percentage": 19.0
          },
          "order_number": "PO001",
          "order_line": 1,
          "order_id": "PO_001",
          "order_line_id": "PO_001_1",
          "quantity": {
            "invoiced": 2
          },
          "unit": "Pcs.",
          "unit_price": 50.0,
          "description": "Schraubendreher",
          "item_number": "4711",
          "discount_absolute": 0,
          "discount_per_unit": 0,
          "discount_percent": 0,
          "discount2_percent": 0,
          "discount3_percent": 0,
          "discount4_percent": 0,
          "discount5_percent": 0,
          "custom1": "Neubau"
        }
      }
    },
    "step": {
      "id": "64576949-ff8e-4e45-b0ec-7b4e25436331",
      "title": "Verification"
    }
  },
  "connection": {
    "from_step": {
      "id": "9080a8d4-6698-4613-b5c1-6c1ca103daab",
      "title": "Verification"
    },
    "to_step": {
      "id": "fd51ab72-aceb-4c1d-b775-ea3d411c9284",
      "title": "Approval"
    },
    "end_mode": null
  }
}

Auf oberster Ebene erhalten Sie folgende Daten:

Eigenschaft

Beschreibung

event_type  

Der Typ des übertragenen Ereignisses. Momentan wird nur das Ereignis integration.export übertragen.

_links  

Links zu verknüpften Ressourcen. Momentan werden folgende Typen unterstützt:

  • dmsobject: Link auf die Rechnung im zugrundeliegenden Dokumentenmanagementsystem (d.velop documents oder SharePoint).

  • report_results_async: Die URL zum zurückmelden des Verarbeitungsergebnisses bei asynchroner Verarbeitung. Die asynchrone Verarbeitung wird in den Abschnitten über Webhooks und die Abhol-API näher erläutert.

workflow  

Das Workflow-Objekt. Dieses Objekt enthält Belegdaten und Statusinformationen zum Workflow. Es wird unten näher beschrieben.

connection  

Informationen zur aktuellen Schrittverbindung im Workflow. Ist für Ereignisse des Typs integration.export immer gefüllt.

Informationen zur Schrittverbindung 

Ein Export (Ereignistyp integration.export) wird immer im Kontext einer Verbindung zwischen zwei Workflowschritten ausgelöst. Diese Informationen helfen Ihnen beispielsweise zu ermitteln, ob der Workflow mit dem Transfer endet.

Eigenschaft

Beschreibung

from_step  

Der Startschritt der Verbindung. Wenn der Workflow gerade beginnt, ist dieses Attribut null.

to_step  

Der Zielschritt der Verbindung. Wenn der Workflow gerade endet, ist dieses Attribut null.

end_mode  

Falls der Workflow mit dieser Verbindung beendet wird, dann enthält end_mode Informationen darüber, in welchem Modus der Workflow beendet wird. Mögliche Optionen:

  • finished: Der Workflow wird regulär beendet.

  • aborted: Der Workflow wird storniert oder administrativ beendet.

Informationen zum aktuellen Workflowstatus (Workflow-Objekt) 

Eigenschaft

Beschreibung

voucher  

Die Belegdaten zum Workflow.

step  

Der Schritt, in dem sich der Workflow aktuell befindet. Achtung: Da Exporte in der Regel im Rahmen von Schrittverbindungen ausgelöst werden, ändert sich der Schritt mit Abschluss des Workflows. Den nächsten Schritt finden Sie über das Attribut connection auf oberster Ebene der JSON-Struktur.

Kopfdaten des Belegs (Voucher-Objekt) 

Sämtliche Kopfdaten des Belegs sind in diesem Objekt zusammengefasst.

Eigenschaft

Beschreibung

doc_id  

Die ID des Dokumentes im zugrundeliegenden Dokumentenmanagementsystem (d.velop documents oder SharePoint).

company  

Der Mandant (Rechnungsempfänger) zu diesem Beleg.

  • nr: Die ID oder Nummer des Mandanten.

  • name: Der Name des Mandanten.

vendor  

Der Kreditor (Lieferant/Rechnungsaussteller) zu diesem Beleg.

  • nr: Die ID/Nummer des Kreditoren.

  • name: Der Name des Kreditoren.

vendor_bank_account  

Die Kreditorbankverbindung zu diesem Beleg.

  • id: Die ID der Kreditorbankverbindung aus den Stammdaten (in der Regel die ID aus dem ERP-System).

  • iban: Die IBAN der Bankverbindung.

  • bic: Die BIC der Bankverbindung.

currency  

Die Währung, in der die Rechnung ausgestellt wurde.

  • id: Die ID der Währung aus den Stammdaten (in der Regel die ID aus dem ERP-System).

  • name: Die Bezeichnung der Währung.

  • code: Der Code der Währung nach ISO 4217.

net_amount  

Der Gesamtnettobetrag des Belegs.

vat_amount  

Der Gesamtsteuerbetrag des Belegs.

gross_amount  

Der Gesamtbruttobetrag des Belegs.

document_date  

Das Belegdatum/Rechnungsdatum im Format yyyy-MM-ddTHH:mm:ssZ.

internal_number  

Die interne Belegnummer.

external_number  

Die externe Belegnummer. Die Rechnungsnummer des Kreditoren.

date_of_supply  

Das Leistungsdatum im Format yyyy-MM-ddTHH:mm:ssZ.

document_type  

Die Belegart.

  • id: Die ID der Belegart aus den Stammdaten (in der Regel die ID aus dem ERP-System).

  • name: Der Name der Belegart.

  • credit_note: Handelt es sich um eine Gutschrift?

payment_terms  

Die Zahlungsbedingungen der Rechnung.

  • id: Die ID der Zahlungsbedingungen aus den Stammdaten (in der Regel die ID aus dem ERP-System).

  • net_days: Die Nettofrist in Tagen.

  • cashback_days1: Die Skontofrist in Tagen.

  • cashback_percentage1: Der Skontoprozentsatz.

payment_date

Das Zahlungsdatum im Format yyyy-MM-ddTHH:mm:ssZ.

posting_period  

Die Buchungsperiode für die Rechnung. Das Format ist nicht festgelegt. Wenn das externe System mit einem Buchungsdatum arbeitet, empfehlen wir alternativ das Feld posting_date.

posting_date  

Das Buchungsdatum für die Rechnung im Format yyyy-MM-ddTHH:mm:ssZ. Wenn das externe System mit einer Buchungsperiode anstelle einem Datum arbeitet, empfehlen wir alternativ das Feld posting_period.

posting_text  

Der Buchungstext für die Rechnung.

barcode  

Der Barcode für die Rechnung.

regional_ch  

Regionale Felder für Kunden aus der Schweiz.

  • qr_code: Der SwissQR-Code im Rohformat.

  • qr_type: Der Referenztyp aus dem SwissQR-Code.

  • qr_reference: Die Referenz aus dem SwissQR-Code.

  • qr_amount: Der Betrag aus dem SwissQR-Code.

  • qr_currency: Die Währungsinformation aus dem SwissQR-Code.

  • qr_iban: Die IBAN aus dem SwissQR-Code.

  • qr_info: Das Infofeld aus dem SwissQR-Code.

  • qr_message: Das Mitteilungsfeld aus dem SwissQR-Code.

  • esr_line: Die ESR-Zeile im Rohformat.

custom1 bis custom20  

Kundenindividuelle Felder auf Kopfebene.

Informationen zu Belegpositionen (Line Item-Objekt) 

Jede einzelne Belegposition unterstützt die folgenden Eigenschaften:

Eigenschaft

Beschreibung

internal_id  

Die eindeutige ID der Belegposition.

line_no  

Die Zeilennummer der Belegposition.

verified  

Gibt an, ob die Position sachlich richtig gezeichnet wurde.

Achtung: Dieses Attribut ist nicht verfügbar, wenn das Vorschaufeature "Erweiterte Prüfung" zum Einsatz kommt.

verifier  

Gibt an, wer berechtigt ist diese Position sachlich richtig zu zeichnen.

Achtung: Dies ist nicht notwendigerweise die Person, die die Position tatsächlich sachlich richtig gezeichnet hat. Diese Person findet sich im Attribut verified_by.

Achtung: Dieses Attribut ist nicht verfügbar, wenn das Vorschaufeature "Erweiterte Prüfung" zum Einsatz kommt.

verified_by  

Gibt an, wer diese Position sachlich richtig gezeichnet hat.

Achtung: Dieses Attribut ist nicht verfügbar, wenn das Vorschaufeature "Erweiterte Prüfung" zum Einatz kommt.

verified_at  

Der Zeitpunkt, an dem diese Position sachlich richtig gezeichnet wurde. Im Format yyyy-MM-dd HH:mm:ss, Zeitzone UTC.

Achtung: Dieses Attribut ist nicht verfügbar, wenn das Vorschaufeature Erweiterte Prüfung zum Einsatz kommt.

gl_account  

Das Sachkonto der Belegposition.

  • nr: Die Nummer des Sachkontos.

cost_center  

Die Kostenstelle der Belegposition.

  • nr: Die Nummer der Kostenstelle.

cost_unit  

Der Kostenträger der Belegposition.

  • nr: Die Nummer des Kostenträgers.

procurement_category  

Die Beschaffungskategorie der Belegposition.

  • nr: Die Nummer der Beschaffungskategorie.

net_amount  

Der Nettobetrag der Belegposition.

tax_code  

Der Steuerschlüssel der Belegposition.

  • id: Die ID des Steuerschlüssels aus den Stammdaten (in der Regel die ID aus dem ERP-System)

  • name: Der Name des Steuerschlüssels.

  • percentage: Der Steuersatz.

vat_amount  

Der Steuerbetrag der Belegposition.

Achtung: Wenn das Feld in d.velop invoices schreibbar ist, kann der Steuerbetrag vom Steuersatz des gewählten Steuerschlüssels abweichen.

gross_amount  

Der Bruttobetrag der Belegposition.

unit  

Die Mengeneinheit der Belegposition.

quantity  

Die Menge der Belegposition.

  • invoiced: Die mit dieser Position berechnete Menge.

unit_price  

Der Einzelpreis der Belegposition.

price_unit  

Die Preiseinheit der Belegposition. Die Preiseinheit ist dann relevant, wenn der Lieferant und Mandant nicht in der gleichen Mengeneinheit arbeiten. Der Einzelpreis wird durch die Preiseinheit geteilt, bevor er mit der Menge multipliziert wird.

item_number  

Die Artikelnummer der Belegposition.

description  

Die Bezeichnung der Belegposition.

order_number  

Die Nummer der zu dieser Belegposition gehörenden Bestellung.

order_line  

Die Nummer der zu dieser Belegposition gehörenden Bestellposition.

order_id  

Die ID der zu dieser Belegposition gehörenden Bestellung (entspricht der in den Stammdaten übertragenen ID).

order_line_id  

Die ID der zu dieser Belegposition gehörenden Bestellposition (entspricht der in den Stammdaten übertragenen ID).

goods_receipt_nr  

Die Nummer des zu dieser Belegposition gehörenden Wareneingangs.

goods_receipt_line_no  

Die Nummer der zu dieser Belegposition gehörenden Wareneingangsposition.

goods_receipt_id  

Die ID des zu dieser Belegposition gehörenden Wareneingangs (entspricht der in den Stammdaten übertragenen ID).

goods_receipt_line_item_id  

Die ID der zu dieser Belegposition gehörenden Wareneingangsposition (entspricht der in den Stammdaten übertragenen ID).

discount_absolute  

Absoluter Rabatt auf den Nettobetrag der Position.

discount_per_unit  

Absoluter Rabatt auf den Einzelpreis der Position.

discount_percent  

Erster prozentualer Rabatt auf den Nettobetrag der Position.

discount2_percent  

Zweiter prozentualer Rabatt auf den Nettobetrag der Position.

discount3_percent  

Dritter prozentualer Rabatt auf den Nettobetrag der Position.

discount4_percent  

Vierter prozentualer Rabatt auf den Nettobetrag der Position.

discount5_percent  

Fünfter prozentualer Rabatt auf den Nettobetrag der Position.

custom1 bis custom20  

Kundenindividuelle Felder auf Positionsebene.

Empfangen der Daten über einen Webhook 

Mit Hilfe von Webhooks können Sie Belegdaten aus d.velop smart invoice per HTTP in einem externen System empfangen. Hierzu können Sie eine Integration nutzen, in der Sie einen HTTP-Endpunkt speichern.

Was sind Webhooks? 

Über Webhooks kann d.velop smart invoice eine externe Anwendung, zum Beispiel ein ERP-System, beim Eintreten bestimmter Ereignisse informieren. Die externe Anwendung kann dann auf dieses Ereignis reagieren, zum Beispiel indem Sie einen Buchungsvorschlag erzeugt.

Technisch kann ein Webhook in jeder beliebigen Technologie erstellt werden, solange die Anwendung einen HTTP-Endpunkt bereitstellt, der POST-Anfragen in einem von d.velop smart invoice spezifizierten Format entgegennehmen kann.

Implementieren eines Webhook-Endpunkts 

Um einen Webhook-Endpunkt zu implementieren, müssen Sie zunächst einen neuen Endpunkt in Ihrer Anwendung bereitstellen. Die Art auf die dies geschieht, hängt von der Technologie ab, die Sie verwenden: in einer PHP-Anwendung, kann es zum Beispiel eine neue .php-Datei sein, in Microsoft .NET ASP MVC eine neue Route.

Die Aufgabe des Endpunkts ist es dann, das JSON aus der POST-Anfrage zu extrahieren und zu verarbeiten. Am Ende der Verarbeitung müssen Sie einen HTTP-Statuscode zurückgeben, mit dem Sie d.velop smart invoice signalisieren, ob die Verarbeitung erfolgreich war.

Die Daten, die d.velop smart invoice an den Endpunkt schickt, entsprechen dem Event-Objekt aus der API.

Zusätzlich sollten Sie die eingehenden Anfragen authentifizieren, um sicher zu stellen, dass sie tatsächlich von d.velop smart invoice stammen.

Statuscodes und Rückgabewerte 

Wenn Sie die Webhook-Anfrage korrekt verarbeiten konnten, sollten Sie mit dem HTTP-Statuscode 200 antworten. Falls Fehler aufgetreten sind, sollten Sie mit dem Statuscode 500 antworten, falls es ein Programmfehler auf Ihrer Seite ist.

Sind ungültige Angaben, zum Beispiel ein nicht existierendes Sachkonto, die Ursache, sollten Sie mit dem Fehler 400 antworten. In diesem Fall haben Sie zusätzlich die Möglichkeit, eine Fehlermeldung in der Antwort anzugeben. Diese Fehlermeldung wird dem Anwender in d.velop smart invoice angezeigt. Sie müssen die Fehlermeldung in den Sprachen Deutsch und Englisch angeben.

Zum Beispiel:

{
  "error": {
    "de": "Die Buchungsperiode wurde bereits geschlossen.",
    "en": "The posting period has already been closed."
  }
}

Authentifizieren von Anfragen 

Wenn Sie einen Webhook-Endpunkt implementieren, müssen Sie sicherstellen, dass eingehende Anfragen auch tatsächlich von d.velop smart invoice stammen. Hierzu enthält jede Anfrage eine Signatur im Header X-Smart-Invoice-Signature. Um die Signatur zu verifizieren, benötigen Sie das Secret aus den Einstellungen der Webhook-Integration. Das Secret ist je Integration verschieden.

Der Header X-Smart-Invoice-Signature enthält die Signatur sowie einen Zeitstempel. Dieser Zeitstempel ist im Schlüssel t als Unix-Timestamp angegeben. Die Signatur finden Sie im Schlüssel v1.

X-Smart-Invoice-Signature: t=12839891289,v1=38941389418903890128930jaskldjl221

Die Signatur wird von d.velop smart invoice nach dem HMAC-SHA256-Verfahren erzeugt. Sie können wie folgt vorgehen, um die Signatur zu prüfen:

Vergleichen Sie den Timestamp

Vergleichen Sie den Timestamp aus dem Header X-Smart-Invoice-Signature mit der aktuellen Uhrzeit. Wenn die Werte mehr als fünf Minuten auseinander liegen, dann sollten Sie die Anfrage als nicht authentifiziert verwerfen und mit einem entsprechenden HTTP-Statuscode antworten.

Verketten Sie Timestamp und Body

Verketten Sie den Timestamp aus dem Header X-Smart-Invoice-Signature und den Body der Anfrage mit einem:

timestamp.body 

Berechnen Sie den HMAC-SHA256-Wert

Nutzen Sie das Secret aus der Webhook-Integration, um aus der gerade erstellten Zeichenkette einen HMAC-SHA256-Wert in Hexadezimal-Repräsentation zu berechnen.

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 ggf. 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 Endanwendenden angezeigt.

/smartinvoice