Accurate Real-time Receipt OCR

Instantly detects, extracts, recognizes and enriches all text and data on receipts

Featured Clients

Sectors: FinanceInformation TechnoloyGovernmentHealthcareIndustriesEducation(show all)

Blog » Italian receipt OCR guide

In this article, we'll walk through how you can perform OCR on Italian receipts (ricevuta italiana) in Italian or English language easily.

Introduction to Italian receipt OCR

Receipts contain useful transaction information and they are required for various activities like accounting, expense claiming and loyalty point rewarding. As most receipts are on paper or in raw digital formats like scanned PDF or image files, organizations need to extract information from scanned receipts before further processing. The traditional manual extraction process was time consuming and expensive.

With the development of machine learning, we can now use scanned receipts OCR to automatically extract data (like merchant, line items and amounts) from receipts instantly. This process has also been called receipt digitization or automated receipt processing.

Italian receipt OCR in Practice

In Italy (Italia), receipts are usually in Italian 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 Italy (Italia):

There are many ways to perform Italian receipt OCR. For example, you may use the free Italian receipt OCR 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. Click the tab below to find out how to OCR Italian receipts (ricevuta italiana) from the command line or in C# VB.NET, Java, JavaScript/Node.js, PHP or Python.

curl -X POST -F "file=@IT-1.jpg"
// View complete code at:
string response = httpPost("", // Receipt OCR API endpoint
new NameValueCollection()
        {"client_id", "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", "../../IT-1.jpg"}} // Modify it to use your own file
Console.WriteLine(response); // Result in JSON
// View complete code at:
 * 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 = ""; // Receipt OCR API endpoint
      File imageFile = new File("IT-1.jpg");

      System.out.println("=== Java Italian receipt OCR ===");

      try (CloseableHttpClient client = HttpClients.createDefault()) {
         HttpPost post = new HttpPost(receiptOcrEndpoint);
            .addTextBody("client_id", "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

         try (CloseableHttpResponse response = client.execute(post)) {
            System.out.println(EntityUtils.toString(response.getEntity())); // Receipt OCR result in JSON
// View complete code at:
console.log("=== JavaScript/Node.js Italian receipt OCR ===");

var receiptOcrEndpoint = '';
var imageFile = 'IT-1.jpg'; // Modify it to use your own file

var fs = require('fs');
var request = require('request');{
  url: receiptOcrEndpoint,
  formData: {
    client_id: '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.log(body); // Receipt OCR result in JSON
<?php  // View complete code at:

function receiptOcr($imageFile) {
  $receiptOcrEndpoint = ''; //

  $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(
   'client_id' => '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);
      throw new Exception(curl_error($ch));

  echo $result; // result in JSON

print("=== Java Italian receipt OCR ===\n");
receiptOcr('IT-1.jpg'); // Modify it to use your own file
# View complete code at:
import requests

print("=== Python Italian receipt OCR ===")

receiptOcrEndpoint = '' # Receipt OCR API endpoint
imageFile = "IT-1.jpg" # // Modify it to use your own file
r =, data = { \
  'client_id': '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 complete source code of the Italian receipt OCR in C#, Java, JavaScript, PHP and Python can be found at

Italian receipt OCR 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.

🧾 Try it out yourself: click here to OCR your own receipts

Beyond Italian receipt OCR

Besides Italian receipts (ricevuta italiana), many other countries' receipts are supported: EU European Union receipt OCR, German receipt OCR (Kassenbon Texterkennung), UK receipt OCR, French receipt OCR (OCR pour reçus/tickets de caisse), 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, Australian receipt OCR.