In der LINA Third Party API (TP API) werden an den verschiedenen Endpunkten Daten gelesen/geschrieben.
Bei den Bewegungsdaten Umsatz werden die Journaldaten der Kasse, eines Tisches oder auch z.B. der Forecast abgefragt.

Nach der Freigabe für den Zugriff (Lizensierung, Anlegen des Client, Berechtigung) und erfolgreiche Anmeldung werden die Journale der Kasse zurück übermittelt. 


Der Aufruf für die LINA data API ist geändert, die alte URL amadeus360 ist noch erreichbar. Bitte auf die neue URL umstellen.
https://api.lina.de/ ...



VoraussetzungKonfigurationErgebnis
Lizensierung LINAEndpunkt "Bewegungsdaten Umsatz"monatliche Buchung
Client Schnittstellemit URIClient-ID und Access-Token
Client-BerechtigungDaten lesenLeseberechtigung Client
Scoperevenuejournal_read
Nutzer-BerechtigungAnmeldung mit BenutzerAbfrage der Daten mit den Berechtigungen des Benutzer



INHALTSVERZEICHNIS



Umsatzdaten Abruf allgemein

Um die Endpunkte der Umsatzdaten abzufragen lautet die Basis-URL wie folgt:

GET .../extern/revenue

Alle Daten können erst nach erfolgreicher Authentifizierung abgefragt werden. Antwort ist immer ein JSON-Objekt.

API-Doku: https://documenter.getpostman.com/'id' 


Endpunkte auflisten

Um die einzelnen möglichen Endpunkte für die Bewegungsdaten aufzulisten, gibt es einen Index. Es sind keine weiteren Header oder Parameter notwendig.

Aufruf

GET ... /extern/revenue/index

Antwort-Beispiel:

[
    {
        https://api.lina.de/extern/revenue/journal
    }
]

Verfügbare Tage

Der Endpunkt "listdays" in LINA liefert die verfügbaren Tage mit Bewegungsdaten der Kasse.

Aufruf: 

GET ... /extern/revenue/listdays

Antwort-Beispiel:

[
    {
        "businessdate": 1379628000,
        "zcount": 1
    }
]

Kassenjournal

Um die Journale abzufragen muss das Geschäftsdatum übergeben werden.

Aufruf:

GET ... /extern/revenue/journal?businessdate=14.08.2019

Antwort-Beispiel:

[
    {
        "ID": 12345,
        "datum": "1565801225",
        "refdate": "1565733600",
        "art": "0,5 COLA LIGHT",
        "artnr": "201",
        "preis": "4.5",
        "zahl": "1",
        "tisch": "3",
        "ust": "19",
        "kellnernr": "6",
        "finanzweg": "1",
        "buchungsnr": "0",
        "tableheader_id": "544306",
        "am_id": "143904",
        "balance": "4.5",
        "terminal": "12",
        "masterkellnernr": "0",
        "teamnr": "0",
        "zcount": "1262",
        "parentid": "0",
        "site": "0",
        "situation": "0",
        "sortorder": null,
        "addinfo": "",
        "rabatt_id": "0",
        "pricelevel_id": "1",
        "operationprofile_id": "2",
        "cancellationreason": "0"
    },
    {
        "ID": 12346,
        "datum": "1565801225",
        "refdate": "1565733600",
        "art": "0,5 COCA COLA",
        "artnr": "200",
        "preis": "3.5",
        "zahl": "1",
        "tisch": "3",
        "ust": "19",
        "kellnernr": "6",
        "finanzweg": "1",
        "buchungsnr": "0",
        "tableheader_id": "544306",
        "am_id": "143905",
        "balance": "3.5",
        "terminal": "12",
        "masterkellnernr": "0",
        "teamnr": "0",
        "zcount": "1262",
        "parentid": "0",
        "site": "0",
        "situation": "0",
        "sortorder": null,
        "addinfo": "",
        "rabatt_id": "0",
        "pricelevel_id": "1",
        "operationprofile_id": "2",
        "cancellationreason": "0"
    },
]


Beschreibung der Felder in der Antwort Kasse


FeldnameFeldtypBeschreibung
IDint, IDEindeutige ID der Zeile
datumint, UTCBuchungszeitpunkt des Datensatzes (UTC)
refdateint, UTCZeitstempel des Geschäftstages 00:00 Uhr (businessdate)
artstringName des gebuchten Artikels
artnrintArtikelnummer des gebuchten Artikels oder 0 bei Finanzwegen. referenziert "number" beim Verkaufsartikel
preisstring (\d+[.\d{1-2}])Bruttosumme des Datensatzes 
zahlintAnzahl des Datensatzes
tischstringBezeichnung des Tisches
ustintSteuersatz der Buchung
kellnernrintID des Kellners
finanzintFinanzweg des Datensatzes;1 Boniert, 10 Sofortstorno; 11 Nachträglicher Storno; 20 Bar gegeben; >20 Individuelle Finanzwege
buchungsnrintID des Bestellvorgangs
tableheader_idintReferenz auf die Rechnungskopfdaten
am_idinteindeutige ID des Buchungssatzes
balancestring (\d+[.\d{1-2}])Redundant zu preis
terminalintID des Kassenplatzes
masterkellnerintID des Kellners, der sich aufgrund von Masterkellnerrechten als der unter Kellnernummer angegebene Kellner ausgegeben hat. Sonst 0
teamnrintID des Teams, in das der Kellner zum Buchungszeitpunkt eingetragen war
zcountintZ-Zähler des aktuellen Tages
parentidintReferenz auf am_id bei Tendern, Stornos und Rabatten
siteintPermanente Verkaufsstelle der Buchung
situationintTemporäre Verkaufsstelle der Buchung
sortorderstringGangwahl des Datensatzes
addinfostringZusatztext oder Fax zu dieser Buchung
rabatt_idintID des Rabatt-Finanzweges, 0 wenn kein Rabatt
pricelevel_idintID des Pricelevels dieser Buchung
operationprofile_idintID der Betriebsstelle zum Buchungszeitpunkt
cancellationreasonintBei Stornos eingegebener Stornogrund



Tischjournal

Um die Tischjournale abzufragen muss das Geschäftsdatum übergeben werden.

Aufruf:

GET ... /extern/revenue/journaltables?businessdate=14.08.2019

Antwort-Beispiel:

{
        "tableheader_id": "1914157",
        "table_type": "STANDARD",
        "table_number": "99663",
        "refdate": "1565733600",
        "documentdate": "0",
        "accounting_type": "BILL",
        "debitor_id": "0",
        "parent_id": "0",
        "debitor_text": "",
        "reservation_id": "0",
        "zcount": "1902",
        "number_adults": "0",
        "number_kids": "0",
        "number_infants": "0",
        "renum": "1294542",
        "vat1sum": "0",
        "vat2sum": "0",
        "vat3sum": "0",
        "finanzweg": "0",
        "zahl": "0",
        "kellnernr": "25",
        "is_archive": "1"
    },
    {
        "tableheader_id": "1914158",
        "table_type": "STANDARD",
        "table_number": "2607",
        "refdate": "1565733600",
        "documentdate": "0",
        "accounting_type": "BILL",
        "debitor_id": "0",
        "parent_id": "0",
        "debitor_text": "",
        "reservation_id": "0",
        "zcount": "1902",
        "number_adults": "0",
        "number_kids": "0",
        "number_infants": "0",
        "renum": "1294654",
        "vat1sum": "0.287395",
        "vat2sum": "0",
        "vat3sum": "0",
        "finanzweg": "0",
        "zahl": "0",
        "kellnernr": "25",
        "is_archive": "1"
    },
    {
        "tableheader_id": "1914159",
        "table_type": "STANDARD",
        "table_number": "1996",
        "refdate": "1565733600",
        "documentdate": "0",
        "accounting_type": "BILL",
        "debitor_id": "0",
        "parent_id": "0",
        "debitor_text": "",
        "reservation_id": "0",
        "zcount": "1902",
        "number_adults": "0",
        "number_kids": "0",
        "number_infants": "0",
        "renum": "1294785",
        "vat1sum": "0.047899",
        "vat2sum": "0",
        "vat3sum": "0",
        "finanzweg": "0",
        "zahl": "0",
        "kellnernr": "49",
        "is_archive": "1"
    }


Beschreibung der Felder in der Antwort Tisch


FeldnameFeldtypBeschreibung
tableheader_idintEindeutige ID des Tisches, Journaldaten referenzieren diese ID
table_typestring {STANDARD, ONLINE}STANDARD (Tisch in der Kasse geöffnet) oder ONLINE (Tisch aus Onlinebestellung (AmaGo, Lieferando, ...)
table_numberstring Tischnummer, alphanumerisch
refdateint, UTCZeitstempel des Geschäftstages 00:00 Uhr (businessdate)
documentdateint , UTCRechnungsdatum, wenn abweichend vom refdate
accounting_typestring {BILL, CREDITNOTE, CANCELEDBILL, EMPTY}Art des Tisches: BILL (Rechnung), CREDITNOTE (Gutschrift), CANCELEDBILL (Stornierte Rechnung), EMPTY (Leerer Tisch)
debitor_idintID des Debitors, der diesem Tisch zugewiesen ist
parent_idinttableheader_id der Rechnung, die Storniert wurde. Nur bei Gutschrift gesetzt
debitor_textstringFreier Text für Rechnungskopf
reservation_idintReservierungs-ID
zcountintZ-Zähler
number_adultsintAnzahl Erwachsene
number_kidsintAnzahl Kinder
number_infantsintAnzahl Kleinkinder
renumintRechnungsnummer
vat1sumstring (\d+[.\d{1-6}])Saldo auf Steuersatz 1
vat2sumstring (\d+[.\d{1-6}])Saldo auf Steuersatz 2
vat3sumstring (\d+[.\d{1-6}])Saldo auf Steuersatz 3
finanzwegintFinanzweg auf diesem Tisch, falls eindeutig
zahl--Ungenutzt
kellnernrintID des Kellners, wenn eindeutig
is_archiveint {0,1}Tagesabschluss, der diesen Tisch enthält ist ausgeführt.


Umsatz-Forecast

LINA berechnet den täglichen Umsatz-Forecast in einem Zeitraum.

Aufruf:

GET ... /extern/revenue/getforecastperday?from=01.08.2021&to=31.08.2021

Antwort-Beispiel:

[
    {
        "datum": 1627768800,
        "forecast": 3709.71
    },
    {
        "datum": 1627855200,
        "forecast": 3094.5
    },
    {
        "datum": 1627941600,
        "forecast": 3470.81
    }
]

Beschreibung der Felder in der Antwort Forecast


FeldnameFeldtypBeschreibung
datumint, UTCZeitstempel des Geschäftstages 00:00 Uhr (businessdate)
forecaststring (\d+[.\d{1-2}])Bruttosumme Forecast