Einführung
Die verlingo Vertragscheck-API ist nach den Prinzipien von REST aufgebaut. Es stehen mehrere Endpunkte zur Verfügung:
Alle Zugriffe erfolgen über HTTPS.
Informationen zur Integration des Vertragschecks zur automatischen Analyse von Arbeitsverträgen.
Stand: 03/22Die verlingo Vertragscheck-API ist nach den Prinzipien von REST aufgebaut. Es stehen mehrere Endpunkte zur Verfügung:
Alle Zugriffe erfolgen über HTTPS.
Jeder Nutzer unserer API erhält individuelle Zugangsdaten. Sollten Sie Interesse an einer Integration unseres Services haben, dann schicken Sie uns eine kurze Email an info@verlingo.de
Diese Zugangsdaten geben Sie einfach per HTTP-Authorization Header als API-Schlüssel an.
Im Folgenden finden Sie eine Liste der wichtigsten HTTP-Status-Codes, die die verlingo API ausgibt, und wie Sie diese interpretieren können. Im Allgemeinen stehen 200er-Codes für einen erfolgreichen Request, 400er für einen Fehler in den Request-Daten (zum Beispiel fehlt ein zwingend anzugebender Parameter) und 500er für einen Fehler auf unseren Servern.
Code | Bedeutung |
---|---|
200 OK | Eine erfolgreiche Anfrage |
400 Bad Request | Liegt meist an einem Syntax-Fehler im Request-Body |
401 Unauthorized | Falsche oder fehlende Authentifizierung |
404 Not Found | Die Ressource konnte nicht gefunden werden |
406 Not Acceptable | Das Format der Anfrage wird nicht unterstützt |
417 Expectation Failed | Die übermittelte Datei konnte nicht analysiert werden |
500, 502, 503 Server Error | Serverfehler. Wiederholen Sie die Anfrage nach kurzer Zeit und melden Sie sich bei uns, falls der Fehler dauerhaft auftritt |
Es steht eine Beispielanalyse unter dem nachfolgenden Test-Endpunkt zur Verfügung
Der Test-Endpunkt kann direkt ohne Authorization-Header und ohne speziellen Request-Body angesprochen werden und liefert eine Beispielantwort zurück ohne den Analyseprozess wirklich zu durchlaufen.
http-Header:
{
"Content-Type": "application/json"
"Accept": "application/json"
"Authorization": IHR_API-Schlüssel
}
http-Body:
{
"Documents": [
{
"format": "pdf" | "jpg" | "jpeg" | "png",
"doc": "Base64"
},
...
]
}
Dokument:
Die Größe der Dateien pro Anfrage darf 10 MB nicht überschreiten. Zudem müssen die Dateien in einem Base64 enkodierten String vorliegen und UTF-8 kodiert sein.
Format:
Wir akzeptieren die Formate PDF, JPG, JPEG, PNG
Sie erhalten von unserer API immer eine Antwort im JSON-Format und den HTTP-Statuscode 200 bei einer erfolgreichen Antwort.
{
"Result": {
"ContractualPartner": {
"Employer": {
"CompanyName": {
"Value": "Muster-GmbH",
"DocId": 1,
"Pageno": 1,
"CropNo": 3
}
},
"Employee": {
"FirstName": {
"Value": "Max",
"DocId": 1,
"Pageno": 1,
"CropNo": 3
},
"LastName": {
"Value": "Muster",
"DocId": 1,
"Pageno": 1,
"CropNo": 3
}
},
"PlaceOfJurisdiction": null
},
"Employment": {
"Occupation": {
"Value": "technischer Angestellter",
"DocId": 1,
"Pageno": 1,
"CropNo": 7
},
"Activities": null,
"Workplace": {
"Value": "Musterstadt",
"DocId": 1,
"Pageno": 1,
"CropNo": 8
},
"Begin": {
"Value": "01.03.2019",
"DocId": 1,
"Pageno": 1,
"CropNo": 9
},
"End": null,
"TypeOfEmployment": "Unlimited" | "Temporary" | null
},
"WorkingHours": {
"WeeklyHours": {
"Value": "40",
"DocId": 1,
"Pageno": 1,
"CropNo": 14
},
"OvertimeIncluded": {
"Value": "8",
"DocId": 1,
"Pageno": 1,
"CropNo": 14
},
"OvertimeRegulation": {
"References": [
{
"DocId": 1,
"Pageno": 1,
"CropNo": 14
}
]
},
"Workweek": null
},
"Compensation": {
"AnnualSalary": null,
"MonthlySalary": {
"Value": "6500",
"DocId": 1,
"Pageno": 2,
"CropNo": 4
},
"HourlySalary": null,
"SpecialPayments": {
"References": [
{
"DocId": 1,
"Pageno": 2,
"CropNo": 6
}
]
},
"VoluntarinessAndRevocation": null
},
"Vacation": {
"VacationDays": {
"Value": "zwei",
"DocId": 1,
"Pageno": 2,
"CropNo": 12
},
"VacationDaysLegally": null
},
"NoticePeriods": {
"ProbationaryPeriod": {
"Value": "sechs Monate",
"DocId": 1,
"Pageno": 1,
"CropNo": 12
},
"DeadlineProbationaryPeriod": {
"Value": "vier Wochen",
"DocId": 1,
"Pageno": 1,
"CropNo": 12
},
"CancellationPeriod": {
"Value": "einem Monat zum Ende des Kalendervierteljahres",
"DocId": 1,
"Pageno": 2,
"CropNo": 10
},
"CutoffPeriod": {
"References": [
{
"DocId": 1,
"Pageno": 3,
"CropNo": 7
},
{
"DocId": 1,
"Pageno": 3,
"CropNo": 8
},
{
"DocId": 1,
"Pageno": 3,
"CropNo": 9
}
]
},
"CutoffPeriodValue": {
"Value": "drei Monaten",
"DocId": 1,
"Pageno": 3,
"CropNo": 8
}
},
"CollectiveAgreement": null,
"AdditionalAgreements": {
"NonCompetitionClause": null
},
"Document": {
"Pages": [
{
"Pageno": 1,
"Paragraphs": [
{
"CropNo": 3,
"x": 561.5490307867731,
"xEndpoint": 1916.622006841505,
"y": 473.6719064893188,
"yEndpoint": 678.6940749697702,
"width": 1355.072976054732,
"height": 205.02216848045143,
"scaleY": 0.7072405929304447,
"scaleX": 0.7069729947601774,
"CropContent": "Null",
"Text": "der Muster-GmbH, vertreten durch ihren Geschäftsführer Max Muster, Musterstraße 1, 11111 Musterstadt - im folgenden: „Arbeitgeber“ -",
"TextConfidence": 93,
"words": [
{
"x": 19.802736602052452,
"y": 24.03708182184603,
"w": 59.40820980615735,
"h": 31.106811769447802,
"text": "der",
"confidence": 93
},
...
],
"textlines": [
{
"text": "der Muster-GmbH, vertreten durch ihren Geschäftsführer Max Muster,\n",
"confidence": 93,
"fontsize": 15,
"x": 5.657924743443557,
"y": 9.897621926642483,
"w": 1345.1716077537058,
"h": 66.45546150745668
},
...
],
"NamedEntities": [
{
"label": "Firmenname",
"value": "Muster-GmbH",
"start": 4,
"end": 15
},
...
],
"Labels": [
{
"label": "paragraphType",
"value": "Vertragspartner",
"probability": 0.99
},
...
],
"DocId": 1,
"Pageno": 1
},
...
],
"ImageWidth": 2481,
"ImageHeight": 3508,
"ImageB64": "Base64",
"PageText": "pageText",
"CategoryNumeric": 5,
"Category": "Sonstiges",
"CategoryProbability": 1,
"Language": "de",
"LanguageProbability": 1,
"DocId": 1,
"ImageFormat": "jpeg"
},
...
]
},
"Remarks": [
{
"Title": "Mindestlohn eingehalten",
"Content": "Ihr Arbeitslohn ist höher als der Mindestlohn und ist damit gesetzeskonform.",
"Level": "hint",
"Category": "Vergütung",
"Trigger": [
"mindestlohnUeberschritten"
],
"LegalReference": {
"lawBook": "MiLoG",
"Section": "1",
"SubSection": "1"
}
},
...
]
}
}
Unter dem nachfolgenden Endpunkt können die aktuellen Credits abgerufen werden:
Der Endpunkt muss mit der oben beschriebenen Authentifizierung, aber ohne Request-Body angesprochen werden und liefert als Antwort:
{
"CurrentCredits": 1500
}