Accurate Real-time Receipt OCR

Instantly detects, recognizes and extracts structured data on receipts

Featured Clients

Sectors: FinanceInformation TechnoloyGovernmentHealthcareIndustriesEducation(show all)

Blog » German receipt OCR (Kassenbon Texterkennung) API for expense claim automation

Expense claim automation streamlines and simplifies the management of employee expense claims & reimbursement and employee benefit programs (e.g., FSA, flexible spending account ). It involves automating various tasks associated with submitting, processing, and approving expense claims to increase efficiency, reduce errors, and save time. Asprise receipt OCR API is the key technology used by many leading organizations in the world to automate their expense claim process.

Powered by our OCR technology and machine learning algorithms, Asprise OCR API eliminates manual data entry and automates bookkeeping. Medical bills, utility bills, insurance bills, invoices and receipts can be easily processed within seconds. Below provides an example.

We have helped many clients, and we can help you too. Let us know your requirements and monthly volume, we'll then set up a trial account for you to test it out. Email us today:

German receipt OCR (Kassenbon Texterkennung) in Practice

In Germany (Deutschland), receipts are usually in German (Deutsche) or English language. The receipt OCR should be able to handle receipts in any language. For example, the image on right displays a receipt received in Germany (Deutschland):

There are many ways to perform German receipt OCR (Kassenbon Texterkennung). For example, you may use the free German receipt OCR (Kassenbon Texterkennung) web page to detect information like retailer name, line items, subtotal and total amounts.

Additionally, you may perform receipt OCR from Windows, macOS and Linux command consoles or you can do it in any of your favorite programming languages. Asprise offers receipt OCR API free trial for you to get started - no registration required. Click the tab below to find out how to OCR Deutschland belege from the command line or in C# VB.NET, Java, JavaScript/Node.js, PHP or Python.

curl -X POST -F "file=@DE-1.jpg" https://ocr.asprise.com/api/v1/receipt
// View complete code at: https://github.com/Asprise/receipt-ocr/tree/main/csharp-vb-net-receipt-ocr
string response = httpPost("https://ocr.asprise.com/api/v1/receipt", // Receipt OCR API endpoint
new NameValueCollection()
    {
        {"api_key", "TEST"}, // Use 'TEST' for testing purpose
        {"recognizer", "auto"}, // can be 'US', 'CA', 'JP', 'SG' or 'auto'
        {"ref_no", "ocr_dot_net_123"} // optional caller provided ref code
    },
    new NameValueCollection() {{"file", "../../DE-1.jpg"}} // Modify it to use your own file
);
Console.WriteLine(response); // Result in JSON
// View complete code at: https://github.com/Asprise/receipt-ocr/tree/main/java-receipt-ocr
/**
 * Uploads an image for receipt OCR and gets the result in JSON.
 * Required dependencies: org.apache.httpcomponents:httpclient:4.5.13 and org.apache.httpcomponents:httpmime:4.5.13
 */
public class JavaReceiptOcr {

   public static void main(String[] args) throws Exception {
      String receiptOcrEndpoint = "https://ocr.asprise.com/api/v1/receipt"; // Receipt OCR API endpoint
      File imageFile = new File("DE-1.jpg");

      System.out.println("=== Java German receipt OCR (Kassenbon Texterkennung) ===");

      try (CloseableHttpClient client = HttpClients.createDefault()) {
         HttpPost post = new HttpPost(receiptOcrEndpoint);
         post.setEntity(MultipartEntityBuilder.create()
            .addTextBody("api_key", "TEST")       // Use 'TEST' for testing purpose
            .addTextBody("recognizer", "auto")       // can be 'US', 'CA', 'JP', 'SG' or 'auto'
            .addTextBody("ref_no", "ocr_java_123'") // optional caller provided ref code
            .addPart("file", new FileBody(imageFile))    // the image file
            .build());

         try (CloseableHttpResponse response = client.execute(post)) {
            System.out.println(EntityUtils.toString(response.getEntity())); // Receipt OCR result in JSON
         }
      }
   }
}
// View complete code at: https://github.com/Asprise/receipt-ocr/tree/main/javascript-nodejs-receipt-ocr
console.log("=== JavaScript/Node.js German receipt OCR (Kassenbon Texterkennung) ===");

var receiptOcrEndpoint = 'https://ocr.asprise.com/api/v1/receipt';
var imageFile = 'DE-1.jpg'; // Modify it to use your own file

var fs = require('fs');
var request = require('request');
request.post({
  url: receiptOcrEndpoint,
  formData: {
    api_key: 'TEST',        // Use 'TEST' for testing purpose
    recognizer: 'auto',        // can be 'US', 'CA', 'JP', 'SG' or 'auto'
    ref_no: 'ocr_nodejs_123', // optional caller provided ref code
    file: fs.createReadStream(imageFile) // the image file
  },
}, function(error, response, body) {
  if(error) {
    console.error(error);
  }
  console.log(body); // Receipt OCR result in JSON
});
<?php  // View complete code at: https://github.com/Asprise/receipt-ocr/tree/main/php-receipt-ocr

function receiptOcr($imageFile) {
  $receiptOcrEndpoint = 'https://ocr.asprise.com/api/v1/receipt'; //

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $receiptOcrEndpoint);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  curl_setopt($ch, CURLOPT_POSTFIELDS, array(
   'api_key' => 'TEST',      // Use 'TEST' for testing purpose
    'recognizer' => 'auto',     // can be 'US', 'CA', 'JP', 'SG' or 'auto'
    'ref_no' => 'ocr_php_123',  // optional caller provided ref code
    'file' => curl_file_create($imageFile) // the image file
  ));

  $result = curl_exec($ch);
  if(curl_errno($ch)){
      throw new Exception(curl_error($ch));
  }

  echo $result; // result in JSON
}

print("=== Java German receipt OCR (Kassenbon Texterkennung) ===\n");
receiptOcr('DE-1.jpg'); // Modify it to use your own file
# View complete code at: https://github.com/Asprise/receipt-ocr/tree/main/python-receipt-ocr
import requests

print("=== Python German receipt OCR (Kassenbon Texterkennung) ===")

receiptOcrEndpoint = 'https://ocr.asprise.com/api/v1/receipt' # Receipt OCR API endpoint
imageFile = "DE-1.jpg" # // Modify it to use your own file
r = requests.post(receiptOcrEndpoint, data = { \
  'api_key': 'TEST',        # Use 'TEST' for testing purpose \
  'recognizer': 'auto',       # can be 'US', 'CA', 'JP', 'SG' or 'auto' \
  'ref_no': 'ocr_python_123', # optional caller provided ref code \
  }, \
  files = {"file": open(imageFile, "rb")})

print(r.text) # result in JSON

The open source code of the German receipt OCR (Kassenbon Texterkennung) in C#, Java, JavaScript, PHP and Python can be found at github.com/Asprise/receipt-ocr

German receipt OCR (Kassenbon Texterkennung) Result

Note the result JSON contains both structured data like merchant name, address, phone, VAT/GST tax registration number, receipt number, country, currency, subtotal, total amounts and line items as well full text OCR. Once you have the result, you can then process it in your receipt scanner apps or receipt scanner software like budgeting and banking applications.

🧾 Try it out yourself: OCR your receipts for free

Beyond German receipt OCR (Kassenbon Texterkennung)

Besides Deutschland belege, many other countries' receipts are supported: EU European Union Receipt OCR, UK Receipt OCR, French Receipt OCR (OCR Pour Reçus/tickets De Caisse), Italian Receipt OCR, Swiss Receipt OCR, Español Recibo OCR, Nederland Kassabon OCR, Kípros απόδειξη OCR, United States Receipt OCR, Mexicano Recibo OCR, Colombia Recibo OCR, Thai Receipt OCR ใบเสร็จ, Singapore Receipt OCR, Malaysia Resit OCR, India Receipt OCR, Australian Receipt OCR.

There are many articles online comparing Google Vision, Azure Vision and AWS Rekoginition on general OCR capabilities. Which is the best receipt OCR API? Do check out the detailed receipt OCR API comparisons.