Skip to main content
Skip table of contents

Belegsignatur über asello Cloud

Bei dieser Variante werden die Rechnungsdaten zuerst an die asello Cloud übertragen. Diese erstellt und signiert den Beleg anschließend automatisch und sendet die gültigen QR-Code-Daten an die externe Software zurück. Die Belegnummer, Kassennummer und der Qr-Code müssen danach auf den Beleg gedruckt werden. 

Vorteile

  • Einfache Integration über eine Rest-Schnittstelle

  • Wartung der Kasse (Nullbelege, Export, etc.) direkt aus der asello App (Webinterface) möglich

Nachteile

  • Beleg-Druck muss selbst implementiert werden

  • Hardware (Bon-Drucker, Scanner, etc.) muss implementiert werden

  • TSE-Signatur (Deutschland): Eigene Implementierung notwendig

Ablauf

  1. Die externe Software sendet die Belegdaten an die asello Cloud. Dies geschieht über die asello Rest-Schnittstelle.

  2. Mittels HSM signiert asello die Rechnung, wodurch diese Ihre rechtliche Gültigkeit erhält (RKSV/Österreich)

  3. Aus den übertragenen Daten wird auf der asello Cloud automatisch ein Beleg erstellt und in der Datenbank gespeichert. Dieser Schritt kann nicht rückgängig gemacht werden. (Fiskal-Journal)

  4. Nachdem die Rechnung signiert und erstellt wurde, werden die Qr-Code-Daten generiert, welcher die rechtliche Gültigkeit des Beleges bestätigt. Dieser QR-Code und weitere Daten über den Beleg werden anschließend an die externe Software zurück übertragen.

Der QR-Code und die Beleg-Daten müssen anschließend auf den dazu gehörigen Beleg gedruckt und dem Kunden übergeben werden (Belegerteilungspflicht).

Technische Implementierung

Die Umsetzung erfolgt über einen Aufruf der asello Rest-API. Um einen Beleg erstellen zu können, müssen Daten über die Rechnung und deren Produkte mitgegeben werden. Wie ein Aufruf mit einem Produkt aussieht sehen Sie im folgenden Beispiel.

URL
CODE
https://kassa.asello.at/api/v2/receipts/create

Beispiel-Body
JS
{
  "paymentType": "Cash",
  "cashRegisterId": 34950,
  "items": [
    {
      "name": "Blumentopf",
      "description": "Großer Blumentopf für den Gartenbereich",
      "netPrice": 33.61,
      "grossPrice": 39.99,
      "productId": 597349,
      "quantity": 1
    }
  ]
}

Nachdem Sie den Befehl geschickt haben, antwortet der Server mit den Rechnungsdaten.

Beispiel-Response
JS
{
    "paymentType": "Cash",
    "cashRegisterId": 1,
    "cashRegisterNumber": "1",
    "qrData": "_R1-AT1_1_R20211000239_2021-10-22T14:36:51_40,33_0,00_0,00_0,00_0,00_HoKaNku8JrE=_5936548E_YShPgCQ86mc=_9dg0KqW4ZIywwQgUPD092wom6HD3kAcW/Fyo2Du4dwgALcipsZSE/17WFwzNr7WF3YytpqDgly9DPw3CGWUTLQ==",
    "signature": {
        "header": "{\"alg\":\"ES256\"}",
        "payload": "_R1-AT1_1_R20211000239_2021-10-22T14:36:51_40,33_0,00_0,00_0,00_0,00_HoKaNku8JrE=_5936548E_YShPgCQ86mc=",
        "signature": "9dg0KqW4ZIywwQgUPD092wom6HD3kAcW/Fyo2Du4dwgALcipsZSE/17WFwzNr7WF3YytpqDgly9DPw3CGWUTLQ==",
        "signatureFailed": false
    },
    "paymentItems": [
        {
            "id": 37111308,
            "type": "Cash",
            "amount": 40.33
        },
        {
            "id": 37111309,
            "type": "CashGiven",
            "amount": 40.33
        }
    ],
    "items": [
        {
            "id": 47887099,
            "name": "Blumentopf",
            "description": "Grosser Blumentopf für den Gartenbereich",
            "netPrice": 33.610000,
            "grossPrice": 40.330000,
            "vatRate": 20.00000,
            "quantity": 1.000000,
            "type": "Simple",
            "notCapableContributionMargin": false,
            "state": "New",
            "childItems": []
        }
    ],
    "discount": 0.00000,
    "number": "R20211000239",
    "id": 20552943,
    "state": "Open",
    "timeStamp": "2021-10-22T14:36:51.5403308+02:00",
    "type": "Receipt",
    "sumGross": 40.33,
    "sumNet": 33.61,
    "userId": 0
}

Auf den Beleg muss die Belegnummer (number) sowie der Qr-Code mit dem Inhalt (qrData) gedruckt werden. 

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.