In der LINA Third Party API (TPAPI)  können Arbeitszeiten und Personalkosten pro Zeit gelesen werden.

Nach der Freigabe für den Zugriff und erfolgreiche Anmeldung werden diese konfigurierten Daten zurück übermittelt oder beim Schreiben der Erfolg der Änderung gemeldet.


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
Lizenzierung LINAEndpunkt "Personal"monatliche Buchung
Client Schnittstellemit URIClient-ID und Access-Token
Client-BerechtigungDaten lesen/schreibenLese- /Schreibberechtigung Client
Scopepersonal_read
Nutzer-BerechtigungAnmeldung mit BenutzerAbfrage der Daten mit den Berechtigungen des Benutzers


Personaldaten allgemein

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

GET ... /extern/personal

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

Die Berechnung der Effizienzen ist erst exakt, wenn die Schichtzeiten bestätigt sind.


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

Personalkosten pro Stunde

Mit businessdate wird der Geschäftstag übergeben, vom Beginn bis zum Tagesabschluss (nicht Kalendertag)


Aufruf mit Datum:

GET ... /extern/personal/personalkostenprostunde?businessdate=25.11.2020

Beispiel-Antwort Tagesübersicht:

{
    "eff": {
        "12": 1,
        "13": 1,
        "14": 1,
        "15": 1,
        "19": 1,
        "20": 1,
        "21": 1,
        "22": 1,
        "23": 1,
        "0": 1,
        "1": 1
    },
    "kost": {
        "12": 11.09,
        "13": 11.09,
        "14": 11.09,
        "15": 11.09,
        "19": 11.09,
        "20": 0,
        "21": 0,
        "22": 0,
        "23": 0,
        "0": 0,
        "1": 0
    },
    "kostUser": {
        "12": [
            11.09
        ],
        "13": [
            11.09
        ],
        "14": [
            11.09
        ],
        "15": [
            11.09
        ],
        "19": [
            11.09
        ],
        "20": [
            0
        ],
        "21": [
            0
        ],
        "22": [
            0
        ],
        "23": [
            0
        ],
        "0": [
            0
        ],
        "1": [
            0
        ]
    }
}

Personalkosten pro Tag und Mitarbeiter

Aufruf Tag:

GET ... /extern/personal/personalkostenprotag?businessdate=25.11.2020

Beispiel-Antwort Tag:

[
    {
        "h_brutto": 9,
        "h_zuschl_25": 4,
        "h_zuschl_40": 1,
        "h_zuschl_50": 0,
        "brutto": 82.71,
        "lohnkosten": 300.66
    }
]

Arbeitszeiten pro Tag und Mitarbeiter

Aufruf:

GET ... /extern/personal/acceptedworkingtimes?businessdate=25.11.2020

Beispiel-Antwort Mitarbeiter:

[
    {
        "von": 1606474800,
        "bis": 1606485600,
        "von2": 1606500000,
        "bis2": 1606521600,
        "pause": 0,
        "tage": 0,
        "bereich": 1
    }
]

Komplettdaten pro User und Tag

Aufruf:

GET ... /extern/personal/userdataperday?businessdate=25.11.2020

Beispiel-Antwort Zeiten und Kosten:

[
    {
        "von": 1606476600,
        "bis": 1606485600,
        "von2": 1606500000,
        "bis2": 1606523400,
        "pause": 0,
        "tage": 0,
        "bereich": 1,
        "h_brutto": 9,
        "h_zuschl_25": 4,
        "h_zuschl_40": 1.5,
        "h_zuschl_50": 0,
        "brutto": 82.71,
        "lohnkosten": 111.22,
        "stundenkosten": {
            "12": 5.54,
            "13": 11.09,
            "14": 11.09,
            "15": 11.09,
            "19": 11.09,
            "20": 13.39,
            "21": 13.39,
            "22": 13.39,
            "23": 13.39,
            "0": 12.01,
            "1": 6
        }
    }
]

Komplettdaten pro User und Tag Delta

Mit der Abfrage des Deltas können die Differenzen (maximal der letzten 3 Monate) abgefragt werden.

Aufruf Komplettdaten:

GET ... /extern/personal/userdataperdaydelta?updatedSince=25.11.2020

Beispiel-Antwort Komplettdaten:

[
    {
        "datum": "21.06.2021",
        "schichten": [
            {
                "von": 0,
                "bis": 0,
                "von2": 1624262400,
                "bis2": 1624293000,
                "pause": 30,
                "tage": 0,
                "bereich": 0,
                "h_brutto": 8,
                "h_zuschl_25": 0,
                "h_zuschl_40": 0,
                "h_zuschl_50": 0,
                "h_zuschl_51": 0,
                "brutto": 9.6,
                "lohnkosten": 13.47,
                "stundenkosten": {
                    "10": 1.58,
                    "11": 1.58,
                    "12": 1.58,
                    "13": 1.58,
                    "14": 1.58,
                    "15": 1.58,
                    "16": 1.58,
                    "17": 1.58,
                    "18": 0.79
                }
            }
        ]
    },
    {
        "datum": "13.04.2020",
        "schichten": []
    }
]

Datenfelder in den Endpunkten Personal

Für alle Antworten in den verschiedenen Endpunkten Personal gelten die folgenden Felder /Werte



FeldnameFeldtypBeschreibung
businessdatestring  (##.##.####)Geschäftstag (bis Tagesabschluss)
efffloatEffektivität (Umsatz pro Personalstunde) pro Uhrzeit
kostfloatPersonalkosten pro Stunde
kostUserfloatPersonalkosten pro Mitarbeiter und Stunde
vonintUnix-Timestamp Arbeitsbeginn erste Schicht
bisintUnix-Timestamp Arbeitsende erste Schicht
von2intUnix-Timestamp Arbeitsbeginn zweite Schicht
bis2intUnix-Timestamp Arbeitsende zweite Schicht
pauseintPause in Minuten
tagefloatTage bei Urlaub/Krank
bereichintBereiche, wie im Betrieb angelegt.
Feste Bereiche in LINA:
  • 7: Urlaub
  • 8: Krank
  • 9 Schule
  • 10: Unentschuldigt
  • 10000: Kurzarbeit

Standard-Bereiche (können verändert werden):
  • 1: Service
  • 2: Bar
  • 3: Küche
  • 4: Büro
  • 5: GF
  • 6: Veranstaltung
  • 11: Sonstiges
  • 12: Catering
h_bruttofloatStunden gearbeitet
h_zuschlag_25floatStunden im ersten SFN-Zuschlagsbereich
h_zuschlag_40floatStunden im zweiten SFN-Zuschlagsbereich
h_zuschlag_50floatStunden im dritten SFN-Zuschlagsbereich (Sonntag)
h_zuschlag_51floatStunden im vierten SFN-Zuschlagsbereich (Feiertage)
bruttofloatSV-Pflichtiger Bruttolohn
lohnkostenfloatLohnkosten AG
stundenkostenarrayLohnkosten pro Stunde, Format "Uhrzeit": "Kosten (float)


Persönliche Daten (nur nach Zustimmung)

Um persönliche Daten der Mitarbeiter abzurufen, muss der Mitarbeiter der Weitergabe der Daten zustimmen. Diese Zustimmung wird beim Registrieren eines Webhooks abgefragt: Webhooks registrieren, bearbeiten und löschen (TPAPI).

Eine Liste der Mitarbeiter, die aktuell zugestimmt haben, ist abrufbar: 

GET ... /extern/personal/getPersonalData

Die Antwort enthält ein Array mit den Daten aller Mitarbeiter, die der Weitergabe zugestimmt haben: 

[
    {
        "userUuid": "4647b780-a4ab-4ca7-a977-2e00d78a8a28",
        "userVorname": "vyhpboqL",
        "userName": "hSRHIvca",
        "userEmail": "te@gastro-mis.de",
        "bereich": "Service"
    },
    {
        "userUuid": "196b3002-a8ae-4e2c-9de5-a317ef5c893c",
        "userVorname": "Joe",
        "userName": "Test",
        "userEmail": "j@gastro-mis.de",
        "bereich": "Küche"
    }
]

Die Mitarbeiter können die Zustimmung verändern: Webhooks Personal (TPAPI) - Zustimmung


Die Zuordnung zu einem Bereich ergibt sich aus dem Nutzerrecht "Teilnehmen" in dem Abschnitt "Dienstpläne und Bereiche" in den Stammdaten des Mitarbeiters.


TPAPI Zuordnung Mitarbeiter und Bereich


Beispiel aus dem Bild: Mitarbeiter Joe Test hat das "Teilnehmen"- Recht für "Küche", Leserechte für Service und Leitung Büro.
Beim Aufruf ../getPersonalData wird nur der Bereich "bereich": "Küche" ausgeben.


Mitarbeiter in mehreren Läden

Die Zustimmung zur Datenweitergabe kann immer nur im Hauptladen erfolgen. Für die geforderte Zustimmung zur Datenweitergabe muss der Mitarbeiter kurzzeitig den Hauptladen wechseln, zustimmen und kann sofort wieder zurückwechseln.




Lohnschicht eintragen (nur nach Zustimmung)


Mit der userUuid eines Mitarbeiters kann man eine Schicht für den Mitarbeiter speichern. Diese zählen als bestätigte Arbeitszeiten zur Abrechnung.


Eine einmal gespeicherte Schicht kann über die TPAPI nicht mehr bearbeitet oder gelöscht werden, sondern nur über die Oberfläche in LINA. 
Wird die gleiche Schicht mehrfach geschickt, so wird diese auch mehrfach für den Mitarbeiter gespeichert.


POST ... /extern/personal/saveShift

Als POST Body muss ein JSON-Objekt mit den Daten der Schicht übergeben werden: 

{
    "userUuid": "c6425258-a870-498d-8173-6c2341c934e",
    "datum": 1694210400,
    "von": 1694260800,
    "bis": 1694300400
    "von2": 1694260800,
    "bis2": 1694300400
    "pause": 0
}

Optionale Werte: um Teildienste abbilden zu können gibt es optionale Werte von2 und bis2. Die Pause wird ebenfalls optional als pause in Minuten angegeben. 


Dateiupload für User - Personalakte

mit der userUuid eines Mitarbeiters können für den Mitarbeiter Dateien hochgeladen werden. Die Dateigröße ist auf 1 MB beschränkt. 

POST ... /extern/personal/addUserCert

Die Datei und die userUuid müssen als POST - Parameter angegeben werden. 

Die Mitarbeiter können die Zustimmung zurückziehen: Webhooks Personal (TPAPI) - Zustimmung . Dann ist das Schreiben von Schichten nicht mehr möglich.