Ergebnisse und Abrechnung
- Ergebnisfelder
- Mehrere Dokumente in einer Datei
- Prüfziffern
- Fehlergründe
- Teilergebnisse
- Was berechnet wird
- Wann Sie wiederholen sollten
Ergebnisfelder
Eine Datei kann mehrere Dokumente enthalten, zum Beispiel zwei Reisepässe, die auf einer Seite eingescannt wurden. Deshalb beschreibt jede 200-Antwort von POST /v1/extract die Datei und listet die Dokumente auf, die darin gefunden wurden.
Die Datei:
| Feld | Typ | Beschreibung |
|---|---|---|
success |
boolean | true, wenn mindestens ein Dokument gelesen wurde und alle drei Prüfziffern dieses Dokuments gestimmt haben |
documents |
Array von Objekten | Jedes gefundene Dokument, in der Reihenfolge der Seiten und von oben nach unten. Das Array kann leer sein ([]) |
document_count |
integer | Die Zahl der Einträge in documents |
verified_document_count |
integer | Wie viele davon "success": true haben |
processing_complete |
boolean | false, wenn eine Grenze die Arbeit beendet hat, bevor jeder Teil der Datei gelesen wurde, siehe Mehrere Dokumente in einer Datei |
truncation_reason |
string oder null | null, wenn processing_complete den Wert true hat. Sonst document_limit, page_limit oder time_budget |
failure_reason |
string oder null | null, wenn success den Wert true hat. Sonst einer der zehn festen Texte unter Fehlergründe |
notes |
Array von Strings | Kurze technische Anmerkungen zur Datei, zum Beispiel welche Leseverfahren versucht wurden. Anmerkungen enthalten nie Dokumentdaten |
duration_ms |
integer | Die Verarbeitungszeit in Millisekunden |
service_version |
string | Die Version des Verarbeitungsdienstes |
Jeder Eintrag von documents:
| Feld | Typ | Beschreibung |
|---|---|---|
success |
boolean | true nur dann, wenn die MRZ (maschinenlesbare Zone, die Zeilen aus Buchstaben, Ziffern und <-Zeichen am unteren Rand des Dokuments) dieses Dokuments gelesen wurde und alle drei Prüfziffern gestimmt haben |
document_type |
string oder null | Das gefundene MRZ-Format: TD3 (Reisepass), TD1 oder TD2 (Ausweiskarte), MRV-A oder MRV-B (Visum). null, wenn kein Format erkannt wurde |
fields |
object | Die extrahierten Daten, siehe die nächste Tabelle. Das Objekt kann leer sein ({}) |
check_digits_valid |
object | Das Ergebnis jeder Prüfziffer, siehe Prüfziffern. Das Objekt kann leer sein ({}) |
checksum_protected |
object | Für jedes der acht Felder, ob überhaupt eine Prüfziffer es abdeckt. Es ist für jedes Dokument gleich |
failure_reason |
string oder null | null bei einem Erfolg. Sonst einer der festen Texte unter Fehlergründe |
notes |
Array von Strings | Kurze technische Anmerkungen zu diesem Lesevorgang, zum Beispiel birth date century inferred. Anmerkungen enthalten nie Dokumentdaten |
page |
integer | Die Seite der Datei, ab 1 gezählt. Eine Bilddatei hat eine Seite |
region |
object oder null | Wo die MRZ gefunden wurde, als Anteile der Seite: x, y, width und height, jeweils von 0 bis 1. null, wenn die Position nicht bekannt ist |
Das Objekt fields:
| Feld | Format | Durch eine Prüfziffer geschützt |
|---|---|---|
surname |
Text in Großbuchstaben | Nein |
given_names |
Text in Großbuchstaben, Namen durch ein Leerzeichen getrennt | Nein |
birth_date |
YYYY-MM-DD |
Ja |
sex |
M, F, X oder null. Das MRZ-Füllzeichen < wird als X (nicht angegeben) zurückgegeben |
Nein |
nationality |
Ländercode aus der MRZ. Das Füllzeichen < wird entfernt, der Code kann also kürzer als drei Buchstaben sein, zum Beispiel D |
Nein |
document_number |
Text | Ja |
expiry_date |
YYYY-MM-DD |
Ja |
issuing_country |
Ländercode aus der MRZ. Das Füllzeichen < wird entfernt, der Code kann also kürzer als drei Buchstaben sein, zum Beispiel D |
Nein |
In einem Dokument mit "success": true sind alle acht Schlüssel vorhanden. Die drei geschützten Felder enthalten immer einen Wert. Die fünf Felder ohne Prüfziffer (surname, given_names, sex, nationality, issuing_country) können null sein, wenn sie nicht gelesen werden konnten.
Die MRZ speichert ein Jahr nur mit zwei Ziffern. Die Engine wählt das Jahrhundert und teilt Ihnen das in den notes des Dokuments mit, zum Beispiel mit birth date century inferred.
Mehrere Dokumente in einer Datei
Eine Datei kann mehrere Dokumente enthalten: zum Beispiel die Reisepässe von zwei Personen auf einer eingescannten Seite, oder einen Reisepass auf jeder Seite eines PDF. IDParse gibt jedes gefundene Dokument zurück, bis zu fünf pro Datei.
- Prüfen Sie
successvon jedem Dokument. Dassuccessder Datei sagt Ihnen nur, dass mindestens ein Dokument geprüft wurde. - Eine Datei kann ein geprüftes Dokument und ein Dokument enthalten, das nicht geprüft werden konnte. Beide werden aufgelistet, und die Datei zählt als Erfolg.
- Dieselbe Dokumentnummer auf zwei verschiedenen Seiten wird zweimal aufgelistet. IDParse kann nicht wissen, ob es dasselbe physische Dokument ist.
- Eine PDF-Seite, die sich nicht öffnen lässt, wird übersprungen, und die
notesder Datei sagen das, zum Beispielpage 2 could not be rendered. Die anderen Seiten werden trotzdem gelesen. Bei einem seltenen PDF, dessen Seitenzahl sich nicht lesen lässt, beendet eine solche Seite stattdessen das Lesen, und die weiteren Seiten werden nicht durchsucht. - Nachdem ein Dokument geprüft wurde, werden die weiteren Seiten eines PDF schneller gelesen. Ein zweites, sehr schwer lesbares Dokument kann dort dann übersehen werden, auch wenn
processing_completeden Werttruehat. Senden Sie solche Dokumente besser einzeln.
Wenn processing_complete den Wert false hat, hat eine Grenze die Arbeit früher beendet. Die bis dahin gefundenen Dokumente werden trotzdem zurückgegeben und sind richtig. truncation_reason nennt die Grenze:
truncation_reason |
Bedeutung |
|---|---|
document_limit |
Die Datei enthält mehr Dokumente als die Grenze von fünf pro Datei |
page_limit |
Das PDF hat mehr Seiten als die Seitengrenze |
time_budget |
Die Verarbeitungszeit war zu Ende, bevor jeder Teil der Datei gelesen wurde |
Die besten Ergebnisse erhalten Sie mit einem Dokument pro Datei. Mehrere Dokumente in einer Datei funktionieren, aber jedes bekommt weniger von der Verarbeitungszeit.
Prüfziffern
Eine Prüfziffer ist eine Kontrollzahl, die in der MRZ aufgedruckt ist. Sie wird aus den Zeichen eines Feldes berechnet. Nach dem Lesen berechnet die Engine die Zahl erneut und vergleicht sie mit der gedruckten Zahl. Prüfziffern erkennen viele Lesefehler, garantieren aber nicht, dass die extrahierten Werte richtig sind.
Prüfziffern schützen nur drei Felder: document_number, birth_date und expiry_date. Das Objekt check_digits_valid enthält für jedes dieser Felder ein Kennzeichen (true oder false). Ein Kennzeichen ist nur dann true, wenn das Feld einen brauchbaren Wert enthält, seine eigene Prüfziffer stimmt und keine kombinierte Prüfziffer, die dieselbe Zeile abdeckt, fehlschlägt. In einem Teilergebnis ist ein Kennzeichen außerdem false, wenn zwei Lesungen derselben Seite unterschiedliche geprüfte Werte für das Feld ergeben haben.
Was Prüfziffern leisten:
- Sie erkennen viele Lesefehler in den drei geschützten Feldern, zum Beispiel eine
0, die alsOgelesen wurde.
Was Prüfziffern nicht leisten:
- Sie beweisen nicht, dass ein Dokument echt ist. Ein gefälschtes Dokument kann richtige Prüfziffern tragen.
- Sie beweisen nicht, dass das Dokument der Person gehört, die es vorlegt.
- Sie schützen nicht die Namen, das Geschlecht, die Staatsangehörigkeit oder den Ausstellerstaat. Diese Felder können einen Lesefehler enthalten, auch wenn
successden Werttruehat.
Ein zweiter, unabhängiger Leser kann den Namen prüfen. Die notes des Dokuments sagen dann readers agree on the name (beide Leser haben denselben Namen gelesen) oder name not checked by a second reader (keine zweite Lesung war möglich). Beides sind Hinweise, keine Prüfziffern. Wenn die beiden Leser verschiedene Namen lesen, ist das Dokument nicht geprüft: sein failure_reason ist mrz check digits passed but two readers read different names, die Namen werden zurückgehalten, und die geschützten Felder bleiben als Teilergebnis erhalten.
IDParse ist ein Dienst zur Datenextraktion. Er liest, was in der MRZ gedruckt ist. Entscheidungen über eine Person oder über die Gültigkeit eines Dokuments bleiben bei Ihnen.
Fehlergründe
Wenn das success der Datei den Wert false hat, enthält ihr failure_reason genau einen dieser zehn Texte. Ein Dokument, das nicht geprüft werden konnte, trägt einen davon auch in seinem eigenen failure_reason. Die Texte sind fest, Sie können sie also in Ihrem Code vergleichen. Eine Datei ohne geprüftes Dokument ist kostenlos.
failure_reason |
Bedeutung | Was Sie tun können |
|---|---|---|
no machine readable zone found |
In der Datei wurde keine MRZ gefunden | Achten Sie darauf, dass die ganze MRZ sichtbar, scharf und gut beleuchtet ist. Prüfen Sie, ob das Dokument überhaupt eine MRZ hat |
mrz found but check digits failed |
Eine MRZ wurde gefunden, aber mindestens eine Prüfziffer hat nicht gestimmt. Das Leseergebnis ist nicht verlässlich | Senden Sie ein besseres Bild: höhere Auflösung, keine Spiegelung, keine Unschärfe, keine Finger über der MRZ. Ein Teilergebnis ist möglich |
mrz check digits passed but the name zone could not be read |
Die geschützten Felder wurden gelesen, aber der Namensteil der MRZ war nicht lesbar | Senden Sie ein schärferes Bild der ganzen MRZ. Ein Teilergebnis ist möglich |
mrz check digits passed but two readers read different names |
Die geschützten Felder haben ihre Prüfziffern bestanden, aber zwei unabhängige Leser haben den Namen unterschiedlich gelesen, deshalb werden die Namen zurückgehalten | Senden Sie ein schärferes Bild der ganzen MRZ, oder lassen Sie eine Person den Namen lesen. Ein Teilergebnis ist möglich |
ambiguous mrz candidates |
Es wurden zwei verschiedene Lesungen derselben MRZ gefunden, und die Engine konnte sich nicht entscheiden | Senden Sie ein schärferes Bild dieses Dokuments |
unrecognised file type |
Die Datei hat keinen der unterstützten Dateitypen | Senden Sie eine Datei im Format JPEG, PNG, PDF, TIFF, BMP, WebP oder HEIF/HEIC |
image could not be decoded |
Die Bilddatei ist beschädigt oder unvollständig | Exportieren oder speichern Sie das Bild erneut und senden Sie die neue Datei |
image exceeds the pixel limit |
Das Bild hat zu viele Pixel | Verkleinern Sie das Bild und senden Sie es erneut |
pdf could not be rendered |
Die PDF-Datei konnte nicht geöffnet werden, zum Beispiel weil sie beschädigt oder durch ein Passwort geschützt ist | Exportieren Sie die PDF-Datei erneut ohne Schutz, oder senden Sie die Seite als Bild |
no ocr engine available |
Die Texterkennung (OCR, optische Zeichenerkennung) ist auf unserer Seite nicht bereit. Das ist eine vorübergehende Störung des Dienstes, kein Problem Ihrer Datei | Senden Sie dieselbe Datei später erneut. Wenn es wieder passiert, wenden Sie sich an den Support |
Teilergebnisse
Ein Teilergebnis ist ein Dokument mit "success": false, in dem einige fields gefüllt sind. Es kann bei Fehlergründen wie mrz found but check digits failed, mrz check digits passed but the name zone could not be read oder mrz check digits passed but two readers read different names vorkommen. Ein Teilergebnis kann allein in der Datei stehen oder neben geprüften Dokumenten.
Sie erkennen ein Teilergebnis an seinem Array notes. Es enthält genau den Text partial read: trust only fields whose check digit passed. Ein geschütztes Feld, dem nicht vertraut wird, wird als null zurückgegeben. Eine Lesung, in der kein Feld geprüft werden konnte, wird gar nicht zurückgegeben.
Regeln für ein Teilergebnis:
- Vertrauen Sie einem geschützten Feld (
document_number,birth_date,expiry_date) nur dann, wenn sein Eintrag incheck_digits_validden Werttruehat. - Behandeln Sie jedes andere gefüllte Feld nur als Hinweis. Zeigen Sie es einer Person zur Prüfung, oder bitten Sie um ein besseres Bild.
- Ein fehlender Schlüssel in
check_digits_validbedeutet "nicht geprüft". Behandeln Sie ihn wiefalse.
Eine Datei, die nur Teilergebnisse enthält, ist kostenlos. Ein Beispiel finden Sie unter Endpunkte.
Was berechnet wird
Nur ein validierter Erfolg wird berechnet: HTTP 200 mit "success": true. Eine Datei verbraucht einen Ihrer enthaltenen Scans, egal wie viele Dokumente sie enthält.
| Antwort | Berechnet |
|---|---|
200 mit "success": true, ein oder mehrere Dokumente |
Ja, ein Scan |
200 mit "success": true und "processing_complete": false |
Ja, ein Scan |
200 mit "success": false (nicht lesbar oder Teilergebnis) |
Nein |
Jeder 4xx-Fehler (zum Beispiel 401, 413, 422, 429) |
Nein |
Jeder 5xx-Fehler (zum Beispiel 502, 503, 504) |
Nein |
GET /v1/quota |
Nein, nie |
Es gibt keinen Schutz vor Duplikaten. Wenn Sie dieselbe Datei zweimal senden und beide Antworten ein Erfolg sind, werden zwei Scans berechnet. Speichern Sie das Ergebnis eines Erfolgs auf Ihrer Seite, statt die Datei erneut zu senden.
Wann Sie wiederholen sollten
- Wiederholen Sie nach
503(engine_busy,engine_unavailable,service_unavailable),504(engine_timeout) und502(bad_engine_result). Diese Anfragen wurden nicht berechnet. Wenn die Antwort einenRetry-After-Header hat, warten Sie mindestens diese Zahl an Sekunden. - Wiederholen Sie nach
429 rate_limited. Warten Sie zuerst die Zahl an Sekunden ausRetry-After. - Wiederholen Sie nicht schnell nach
429 quota_exhausted. Hier istRetry-Afterdie Zeit bis zum nächsten Kalendermonat. - Senden Sie dieselbe Datei später erneut nach
200mit"success": falseund dem Fehlergrundno ocr engine available. Das ist eine vorübergehende Störung des Dienstes, kein Problem Ihrer Datei. - Senden Sie dieselbe Datei nicht erneut nach jedem anderen
200mit"success": false. Diese Antworten brauchen ein besseres Bild, keinen neuen Versuch. - Senden Sie nicht die ganze Datei erneut nach
200mit"processing_complete": false. Behalten Sie die erhaltenen Dokumente, und senden Sie die Seiten oder Dokumente, die nicht gelesen wurden, als eigene Dateien. - Wiederholen Sie nicht nach
401,403,413und422. Korrigieren Sie zuerst den Schlüssel, das Konto oder die Datei. - Begrenzen Sie die Zahl der Versuche, und verlängern Sie die Wartezeit nach jedem fehlgeschlagenen Versuch.
Wenn Ihre Verbindung abbricht, bevor Sie eine Antwort erhalten, können Sie nicht wissen, ob der Scan berechnet wurde. Der Wert used von GET /v1/quota kann Ihnen einen Hinweis geben, aber keinen Beweis. Der Nutzungszähler kann Scans enthalten, die noch verarbeitet werden. Er kann nicht bestätigen, ob eine einzelne unterbrochene Anfrage berechnet wurde.