Sie entwickeln eine Spesenmanagement-App? Automatisieren die Buchführung? Oder fügen die Belegerkennung zu Ihrer mobilen App hinzu? Eine Beleg-Scanner-API ermöglicht Ihnen, strukturierte Daten aus jedem Belegfoto oder PDF in Sekunden zu extrahieren. In dieser Entwickler-Anleitung erfahren Sie, wie Sie Eagle Docs Beleg-OCR-API in Ihre Anwendung integrieren — von der Authentifizierung bis zur Verarbeitung der JSON-Antwort.

Was ist eine Beleg-Scanner-API?

Eine Beleg-Scanner-API ist ein cloudbasierter Dienst, der Belegbilder (JPEG, PNG) oder PDFs akzeptiert und strukturierte Daten im JSON-Format zurückgibt. Im Gegensatz zu generischer OCR, die nur Rohtext liefert, versteht eine belegspezifische API das Layout von Kassenbons und extrahiert benannte Felder wie Händlername, Datum, Gesamtbetrag, Steuer, Währung, Zahlungsart und einzelne Positionen mit Preisen und Mengen.

Hauptfunktionen der Eagle Doc Beleg-Scanner-API

Eagle Docs Beleg-Extraktions-API ist speziell für den Produktionseinsatz entwickelt:

  • 40+ extrahierte Felder: Händlername, Adresse, Datum, Uhrzeit, Gesamtbetrag, Zwischensumme, Steuer (mehrere Sätze), Währung, Zahlungsart und vollständige Positionsaufschlüsselung.
  • Keine Vorlagen oder Training: KI-gestützte Extraktion funktioniert ab dem ersten Tag mit jedem Beleglayout.
  • Schnelle Verarbeitung: Erhalten Sie strukturierte JSON-Ergebnisse in der Regel in unter 5 Sekunden pro Seite, selbst bei komplexen mehrseitigen Belegen.
  • Mehrsprachige Unterstützung: Verarbeiten Sie Belege in über 40 Sprachen, einschließlich aller europäischen, asiatischen und nahöstlichen Schriften.
  • DSGVO-konform: Die gesamte Verarbeitung erfolgt auf EU-gehosteten Servern. Nach der Verarbeitung werden keine Daten gespeichert.

Schnellstart: Integration in Minuten

Der Einstieg mit Eagle Docs Beleg-OCR-API benötigt nur wenige Codezeilen. Wählen Sie Ihre bevorzugte Programmiersprache:

curl -X POST "https://de.eagle-doc.com/api/receipt/v3/processing" \
  -H "api-key: YOUR_API_KEY" \
  -F "file=@receipt.jpg"

import requests

url = "https://de.eagle-doc.com/api/receipt/v3/processing"

payload = {}
files=[
('file',('receipt.jpeg',open('receipt.jpeg','rb'),'image/jpeg'))
]
headers = {
    'api-key': 'YOUR_SECRET_API_KEY'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

import java.net.http.*;
import java.net.*;
import java.nio.file.*;
import java.io.*;
import java.nio.charset.StandardCharsets;

public class ExampleReceipt {
    public static void main(String[] args) throws IOException, InterruptedException {
        var apiKey = "API-KEY-xxxxxx";

        var boundary = "----EagleDocBoundary" + System.currentTimeMillis();

        // Read the jpg file as bytes (binary)
        byte[] fileBytes = Files.readAllBytes(Path.of("receipt.jpeg"));

        // Build multipart body with binary support
        var outputStream = new ByteArrayOutputStream();
        var writer = new PrintWriter(new OutputStreamWriter(outputStream, StandardCharsets.UTF_8), true);

        // File part
        writer.append("--").append(boundary).append("\r\n");
        writer.append("Content-Disposition: form-data; name=\"file\"; filename=\"receipt.jpeg\"\r\n");
        writer.append("Content-Type: image/jpeg\r\n\r\n");
        writer.flush();
        outputStream.write(fileBytes);
        outputStream.flush();
        writer.append("\r\n");

        // End boundary
        writer.append("--").append(boundary).append("--\r\n");
        writer.flush();

        byte[] body = outputStream.toByteArray();

        var client = HttpClient.newHttpClient();
        var request = HttpRequest.newBuilder(URI.create("https://de.eagle-doc.com/api/receipt/v3/processing"))
            .header("api-key", apiKey)
            .header("Content-Type", "multipart/form-data; boundary=" + boundary)
            .POST(HttpRequest.BodyPublishers.ofByteArray(body))
            .build();

        var response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}

Die API-Antwort verstehen

Die API gibt ein strukturiertes JSON-Objekt zurück. Hier ein verkürztes Beispiel der Antwort:


            {
    "general": {
        "ShopName": {
            "value": "dm-drogerie markt",
            "page": 1,
            "confidence": 1.0
        },
        "ShopStreet": {
            "value": "Hertzstraße 9",
            "page": 1,
            "confidence": 1.0
        },
        "ShopCity": {
            "value": "Vaihingen an der Enz",
            "page": 1,
            "confidence": 1.0
        },
        "ShopZip": {
            "value": "71665",
            "page": 1,
            "confidence": 1.0
        },
        "ShopCountry": {
            "value": "DE",
            "confidence": 1.0
        },
        "TotalPrice": {
            "value": "34.7",
            "page": 1,
            "confidence": 1.0
        },
        "TaxAmount": {
            "value": "4.44",
            "confidence": 1.0
        },
        "TaxGrossAmount": {
            "value": "34.7",
            "page": 1,
            "confidence": 1.0
        },
        "TaxNetAmount": {
            "value": "30.26",
            "confidence": 1.0
        },
        "InvoiceDate": {
            "value": "2021-02-23",
            "page": 1,
            "confidence": 1.0
        },
        "InvoiceNumber": {
            "value": "0319/1 218506/12 3815",
            "page": 1,
            "confidence": 1.0
        },
        "TaxNumber": {
            "value": "34092/30007",
            "page": 1,
            "confidence": 1.0
        },
        "VATNumber": {
            "value": "34092/30007",
            "page": 1,
            "confidence": 1.0
        },
        "Category": {
            "value": "Other",
            "confidence": 1.0
        },
        "PaymentMethod": {
            "value": "DEBIT_CARD",
            "confidence": 1.0
        },
        "Currency": {
            "value": "EUR",
            "confidence": 1.0
        },
        "Website": {
            "value": "dm.de",
            "page": 1,
            "confidence": 0.99
        },
        "Time": {
            "value": "16:29",
            "page": 1,
            "confidence": 0.99
        },
        "Terminal": {
            "value": "65237920",
            "page": 1,
            "confidence": 0.73
        }
    },
    "productItems": [
        {
            "ProductName": {
                "value": "Dr.Best Zahnbü.HT mittel 2+1",
                "page": 1,
                "confidence": 1.0
            },
            "ProductPrice": {
                "value": "2.45",
                "page": 1,
                "confidence": 1.0
            },
            "ProductQuantity": {
                "value": "1.0",
                "page": 1,
                "confidence": 1.0
            },
            "ProductUnitPrice": {
                "value": "2.45",
                "page": 1,
                "confidence": 1.0
            },
            "TaxAmount": {
                "value": "0.39",
                "confidence": 1.0
            },
            "TaxNetAmount": {
                "value": "2.06",
                "confidence": 1.0
            },
            "TaxGrossAmount": {
                "value": "2.45",
                "page": 1,
                "confidence": 1.0
            },
            "TaxPercentage": {
                "value": "19.0",
                "page": 1,
                "confidence": 0.69
            },
            "TaxLabel": {
                "value": "1",
                "page": 1,
                "confidence": 0.98
            },
            "Currency": {
                "value": "EUR",
                "confidence": 1.0
            }
        },
        {
            "ProductName": {
                "value": "Zahnbürste Bambus 1St",
                "page": 1,
                "confidence": 1.0
            },
            "ProductPrice": {
                "value": "7.4",
                "page": 1,
                "confidence": 1.0
            },
            "ProductQuantity": {
                "value": "4.0",
                "page": 1,
                "confidence": 1.0
            },
            "ProductUnitPrice": {
                "value": "1.85",
                "page": 1,
                "confidence": 1.0
            },
            "TaxAmount": {
                "value": "1.18",
                "confidence": 1.0
            },
            "TaxNetAmount": {
                "value": "6.22",
                "confidence": 1.0
            },
            "TaxGrossAmount": {
                "value": "7.4",
                "page": 1,
                "confidence": 1.0
            },
            "TaxPercentage": {
                "value": "19.0",
                "page": 1,
                "confidence": 0.69
            },
            "TaxLabel": {
                "value": "1",
                "page": 1,
                "confidence": 1.0
            },
            "Currency": {
                "value": "EUR",
                "confidence": 1.0
            }
        },
        
        ...
    ],
    "taxes": [
        {
            "TaxAmount": {
                "value": "0.76",
                "page": 1,
                "confidence": 1.0
            },
            "TaxGrossAmount": {
                "value": "11.65",
                "page": 1,
                "confidence": 1.0
            },
            "TaxPercentage": {
                "value": "7.0",
                "confidence": 1.0
            },
            "TaxLabel": {
                "value": "2",
                "page": 1,
                "confidence": 0.48
            },
            "TaxNetAmount": {
                "value": "10.89",
                "page": 1,
                "confidence": 1.0
            }
        },
        {
            "TaxAmount": {
                "value": "3.68",
                "page": 1,
                "confidence": 1.0
            },
            "TaxGrossAmount": {
                "value": "23.05",
                "page": 1,
                "confidence": 1.0
            },
            "TaxPercentage": {
                "value": "19.0",
                "page": 1,
                "confidence": 1.0
            },
            "TaxLabel": {
                "value": "1",
                "page": 1,
                "confidence": 0.47
            },
            "TaxNetAmount": {
                "value": "19.37",
                "page": 1,
                "confidence": 1.0
            }
        }
    ],
    "payments": [
        {
            "PaymentMethod": {
                "value": "DEBIT_CARD",
                "page": 1,
                "confidence": 0.99
            }
        }
    ],
    "performanceOption": "ACCURACY",
    "fileHash": "96db620e2757d8832a7a7fd0035cd297",
    "version": "2.08.26",
    "numberOfPages": 1,
    "pages": [
        {
            "width": 394.12992799666125,
            "height": 1196.2985382403037
        }
    ],
    "fullText": null,
    "languages": [
        "de",
        "en"
    ],
    "mainLanguage": "de",
    "verification": {
        "NonDuplication": {
            "flagValid": false,
            "message": "Found 5 previous requests with the same file hash. The last 10 times requested: 2026-03-10T20:10:38.443Z; 2026-03-06T20:32:16.693Z; 2026-03-06T20:27:04.367Z; 2026-02-28T13:04:00.212Z; 2026-01-29T20:01:15.689Z; "
        },
        "TaxPercentage": {
            "flagValid": true,
            "message": "Tax percentage verification passed. No tax percentage found in general fields.  [Country: DE, Tax Percentages: [19.0, 7.0, 0.0]] "
        },
        "ProductsSumVsTotalPrice": {
            "flagValid": true,
            "message": "Valid total price: TaxGrossAmount matches sum of product prices."
        }
    }
}
            

Häufige Anwendungsfälle

Entwickler integrieren Beleg-Scanner-APIs in eine Vielzahl von Anwendungen:

  • Spesenmanagement-Apps: Nutzer fotografieren einen Beleg und Spesenabrechnungen werden automatisch mit Händler-, Betrags- und Kategoriedaten ausgefüllt.
  • Buchhaltungsautomation: Belegdaten direkt in Xero, QuickBooks oder DATEV einspeisen — ohne manuelle Eingabe.
  • Garantieverfolgung: Kaufdatum und Produktdetails für die automatisierte Garantieregistrierung extrahieren.
  • Steuervorbereitung: Geschäftsausgaben automatisch kategorisieren und summieren — perfekt für die Steuererklärung.

Warum Eagle Docs Beleg-API?

Nicht alle Beleg-APIs sind gleich. Das unterscheidet Eagle Doc:

  • Positionsextraktion inklusive: Viele Wettbewerber extrahieren nur Summen. Eagle Doc extrahiert jeden Artikel mit Name, Preis und Menge.
  • Keine Einzelfeld-Bepreisung: Alle 40+ Felder zum gleichen Preis extrahieren — keine Aufschläge für Positionen oder Steueraufschlüsselungen.
  • EU-Datenresidenz: Verarbeitung und Hosting in der EU. DSGVO-konform by Design. Keine Datenspeicherung nach der Extraktion.
  • Entwicklerfreundlich: Einfache REST-API, umfassende Dokumentation, strukturierte JSON-Ausgabe, 20 kostenlose Seiten zum Testen.

Starten Sie mit der Beleg-Scanner-API

Eagle Docs Beleg-Scanner-API bietet Ihnen produktionsreife Belegextraktion mit einem einzigen API-Aufruf. Keine Trainingsdaten, keine Vorlagen, kein komplexes Setup. Registrieren Sie sich für einen kostenlosen API-Schlüssel, erhalten Sie 20 kostenlose Seiten und beginnen Sie in Minuten mit der Belegdatenextraktion.