Zum Inhalt springen

Dokument einreichen

POST
/v1/scans
curl --request POST \
--url 'https://api.legentio.com/v1/scans?environment=prod' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form file=@file \
--form documentType=rechnung

Nimmt ein einzelnes PDF entgegen, legt einen Verarbeitungslauf an und plant die Verarbeitung ein. Kehrt sofort mit 202 Accepted zurück – ohne auf das Ergebnis zu warten. Die Antwort enthält einen Location-Header und eine statusUrl, unter der sich der Lauf abfragen lässt.

Idempotenz: Über den optionalen Header Idempotency-Key lässt sich ein erneuter Versand desselben Dokuments absichern. Wird derselbe Schlüssel mit einer identischen Anfrage erneut gesendet, antwortet die API mit 200 und dem bereits existierenden Lauf (statt einen neuen anzulegen) – das ist der Wiederherstellungspfad für Clients, die die erste Antwort verloren haben. Wird derselbe Schlüssel mit einer abweichenden Anfrage verwendet, ist die Antwort 409.

environment
required
string
Allowed values: prod test

Zielumgebung des Laufs. Pflichtparameter – nicht vorbelegt, damit nie unklar ist, ob ein Dokument nach Produktiv oder Test ging. prod-Läufe speisen den produktiven Auslieferungs-Feed; test-Läufe werden identisch verarbeitet, bleiben aber aus dem Standard-Feed und den Dashboard-Kennzahlen heraus.

Idempotency-Key
string

Frei wählbarer Schlüssel zur Absicherung von Wiederholungen. Je nach Server-Konfiguration kann er verpflichtend sein.

Media typemultipart/form-data
object
file
required

Das einzureichende PDF (nur application/pdf).

string format: binary
documentType
required

Der Slug des Dokumenttyps, gegen den erkannt wird.

string
Example
rechnung

Idempotente Wiederholung – die Anfrage war mit demselben Idempotency-Key bereits erfolgreich. Es wird der bestehende Lauf mit seinem aktuellen Status zurückgegeben, ohne einen neuen anzulegen.

Media typeapplication/json
object
scanId
required

Kennung des Laufs; wird für alle weiteren Abfragen verwendet.

string
status
required

Bei einem neuen Lauf stets processing. Bei einer idempotenten Wiederholung der aktuelle Status des bestehenden Laufs.

string
Allowed values: processing completed failed
statusUrl
required

Absolute URL zum Abfragen des Laufs (GET /v1/scans/{scanId}).

string format: uri
Example
{
"scanId": "k17c9c8f2a1b3d4e5f6a7b8c9d0e1f2",
"status": "processing",
"statusUrl": "https://api.legentio.com/v1/scans/k17c9c8f2a1b3d4e5f6a7b8c9d0e1f2"
}

Angenommen – Verarbeitung eingeplant. Ein neuer Lauf wurde angelegt.

Media typeapplication/json
object
scanId
required

Kennung des Laufs; wird für alle weiteren Abfragen verwendet.

string
status
required

Bei einem neuen Lauf stets processing. Bei einer idempotenten Wiederholung der aktuelle Status des bestehenden Laufs.

string
Allowed values: processing completed failed
statusUrl
required

Absolute URL zum Abfragen des Laufs (GET /v1/scans/{scanId}).

string format: uri
Example
{
"scanId": "k17c9c8f2a1b3d4e5f6a7b8c9d0e1f2",
"status": "processing",
"statusUrl": "https://api.legentio.com/v1/scans/k17c9c8f2a1b3d4e5f6a7b8c9d0e1f2"
}
Location
string format: uri

URL zum Abfragen des Laufstatus (identisch mit statusUrl).

Ungültige Anfrage – z. B. fehlender/ungültiger environment-Parameter, keine multipart/form-data, kein PDF, fehlender Dokumenttyp-Slug, zu große Datei oder fehlender Pflicht-Idempotency-Key.

Media typeapplication/json
object
error
required

Menschenlesbare Fehlermeldung (deutsch).

string
Example
{
"error": "Dokumenttyp nicht gefunden."
}

API-Schlüssel fehlt oder ist ungültig.

Media typeapplication/json
object
error
required

Menschenlesbare Fehlermeldung (deutsch).

string
Example
{
"error": "Dokumenttyp nicht gefunden."
}

Der API-Schlüssel gehört zu keiner Organisation.

Media typeapplication/json
object
error
required

Menschenlesbare Fehlermeldung (deutsch).

string
Example
{
"error": "Dokumenttyp nicht gefunden."
}

Der angegebene Dokumenttyp wurde nicht gefunden.

Media typeapplication/json
object
error
required

Menschenlesbare Fehlermeldung (deutsch).

string
Example
{
"error": "Dokumenttyp nicht gefunden."
}

Der Idempotency-Key wurde bereits mit einer abweichenden Anfrage (andere Datei oder andere Umgebung) verwendet.

Media typeapplication/json
object
error
required

Menschenlesbare Fehlermeldung (deutsch).

string
Example
{
"error": "Dokumenttyp nicht gefunden."
}

Für den Dokumenttyp ist in der gewählten Umgebung noch kein einsatzbereites Schema eingerichtet.

Media typeapplication/json
object
error
required

Menschenlesbare Fehlermeldung (deutsch).

string
Example
{
"error": "Dokumenttyp nicht gefunden."
}

Interner Serverfehler.

Media typeapplication/json
object
error
required

Menschenlesbare Fehlermeldung (deutsch).

string
Example
{
"error": "Dokumenttyp nicht gefunden."
}