Colombia Receipt OCR: Formats, Items and Totals

Convert colombia receipt ocr: formats, items and totals into structured merchant, date, item, tax and total fields, with checks for ambiguous amounts.

Understand the printed transaction first

Read dotted grouping and decimal commas in context; distinguish IVA or consumption tax from propina, bases and QR-footer content. Start by checking whether the document is a completed payment, an estimate, an order confirmation or an account summary. A successful read of the header is not enough: the amount beside the final payable label and the boundaries of individual item rows are the evidence that makes a useful expense record.

Extract receipt fields without inventing a breakdown

Use the receipt OCR API for merchant_name, date, time, currency, total_amount, tax_amount and items. Each item exposes name, quantity and price; price is the whole-row amount, not necessarily a unit price. The public schema has no dedicated tender, tip, loyalty, QR payload or receipt-number object. Keep the source document when those details matter. Related format guides: Éxito receipt OCR, Carulla receipt OCR, Juan Valdez receipt OCR, El Corral Gourmet receipt OCR.

From receipt image to an expense record

  • Check the document-specific layout: Read dotted grouping and decimal commas in context; distinguish IVA or consumption tax from propina, bases and QR-footer content.
  • Save the purchase once: Associate the image with an application-generated receipt ID. A payment slip and an itemized receipt can describe the same purchase; merchant, date and amount can support a duplicate review but are not a universally unique key.
  • Export item rows to CSV or Excel: Create one row per returned item and repeat the parent receipt ID, merchant and date. Sum price only where it represents a resolved row amount; do not multiply it by quantity again.
  • Route uncertain records for review: Inspect success, is_valid, status, issues and confidence before accepting the extracted data. Keep unresolved quantities or totals unresolved. An HTTP success code does not establish that every amount is readable.
Need more testing? Create a free account to get 200 free credits (equals 200 Receipt scans).

Read a receipt from a Python backend

Submit one receipt image using the standard endpoint. Keep the API key server-side and examine quality indicators before mapping the result to an expense. The sample does not claim a live test on this merchant.

Prerequisite: Python 3, pip install requests; STRUCTOCR_API_KEY environment variable

PYTHON EXAMPLE
import base64
import os
import requests

with open("receipt.jpg", "rb") as source:
    encoded = base64.b64encode(source.read()).decode("ascii")

response = requests.post(
    "https://api.structocr.com/v1/receipt",
    headers={"x-api-key": os.environ["STRUCTOCR_API_KEY"]},
    json={"img": encoded},
    timeout=60,
)
response.raise_for_status()
result = response.json()
if not result.get("success"):
    raise RuntimeError("Extraction was not successful; inspect the response securely")
data = result.get("data") or {}
needs_review = (
    not data.get("is_valid")
    or data.get("status") != "complete"
    or bool(data.get("issues"))
    or data.get("confidence") == "low"
)
# Persist through your own storage layer; avoid logging receipt contents.
print({"needs_review": needs_review, "item_count": len(data.get("items") or [])})

Technical Specs

  • •Endpoint: POST /v1/receipt
  • •Authentication: Server-side x-api-key header
  • •Input: Base64 image in JSON img; use a readable JPG, PNG or WebP for this example
  • •File size: Up to 4.5MB decoded
  • •Standard processing: 1 credit per scan
  • •Output: JSON; retain incomplete results for review

Key Features

  • •Specific concern: Read dotted grouping and decimal commas in context; distinguish IVA or consumption tax from propina, bases and QR-footer content.
  • •Money: Resolve separators from the full receipt; a dollar sign or a familiar brand is insufficient currency evidence.
  • •Tax: Read explicit monetary tax values, excluding bases, rates and tips. Included tax is not added to the total again.
  • •Items: Keep wrapped descriptions and count-at-price lines associated with their own row.
  • •Payment: Cash tendered, change, account balance and an authorization reference are not substitutes for a final sale total.

Synthetic receipt JSON example

Illustrative values only, not output from a local sample or a merchant benchmark. Item price is a line amount. Currency must be resolved from the submitted receipt rather than hard-coded from this example.

{
  "success": true,
  "data": {
    "response_version": 2,
    "is_valid": true,
    "merchant_name": "Example Merchant",
    "date": "2026-09-01",
    "time": "12:30",
    "currency": "COP",
    "total_amount": 12,
    "tax_amount": 1,
    "items": [
      {
        "name": "EXAMPLE PURCHASE",
        "quantity": 2,
        "price": "8.00"
      },
      {
        "name": "EXAMPLE CHARGE",
        "quantity": 1,
        "price": "3.00"
      }
    ],
    "confidence": "high",
    "validation_error": null,
    "status": "complete",
    "issues": []
  }
}

Frequently Asked Questions

What makes this receipt workflow different?

Read dotted grouping and decimal commas in context; distinguish IVA or consumption tax from propina, bases and QR-footer content.

Can I extract a detailed payment or tax breakdown?

The receipt API exposes total_amount and tax_amount, but not a structured tender array or tax-rate breakdown. Keep the source and use a separate reviewed mapping when those details are required.

How do I prevent duplicate expenses?

Keep an application receipt ID and compare candidate duplicates using merchant, date and amount, with source review for ambiguous matches. Deduplication is application logic, not a claim made by this extraction endpoint.

Can I use the output in a spreadsheet?

Yes. Map returned fields to your own CSV or Excel columns. Treat price as the item row amount and preserve missing or unresolved values; do not turn an empty amount into zero.

Is this a tested accuracy claim or a merchant affiliation?

No. This is an integration guide. Layouts and image quality vary; evaluate representative receipts from your workflow. Merchant names describe the documents discussed and do not imply affiliation.

You May Also Like

Related tutorials, platform guides, and comparisons

Country Tutorial

Germany Receipt OCR: Formats, Items and Totals

Convert germany receipt ocr: formats, items and totals into structured merchant, date, item, tax and total fields, with checks for ambiguous amounts.

Python · Receipt
Country Tutorial

United Kingdom Receipt OCR: Formats, Items and Totals

Convert united kingdom receipt ocr: formats, items and totals into structured merchant, date, item, tax and total fields, with checks for ambiguous amounts.

Python · Receipt
Tutorial

Python Receipt OCR API SDK

Tutorial: Extract merchants, line items, and totals from receipts using the StructOCR Python SDK. Upload an image for a free test! Ideal for fintech ETL pipelines, AI accounting, and Pandas dataframes.

Python · Receipt
Country Tutorial

Singapore Receipt OCR: Formats, Items and Totals

Convert singapore receipt ocr: formats, items and totals into structured merchant, date, item, tax and total fields, with checks for ambiguous amounts.

Python · Receipt
Country Tutorial

Canada Receipt OCR: Formats, Items and Totals

Convert canada receipt ocr: formats, items and totals into structured merchant, date, item, tax and total fields, with checks for ambiguous amounts.

Python · Receipt
Country Tutorial

France Receipt OCR: Formats, Items and Totals

Convert france receipt ocr: formats, items and totals into structured merchant, date, item, tax and total fields, with checks for ambiguous amounts.

Python · Receipt
Tutorial

PHP Receipt OCR API

Tutorial: Integrate the StructOCR Receipt API into your PHP web applications. Upload an image for a free test! Extract merchants, totals, and line items from POS receipts using raw cURL or Guzzle.

PHP · Receipt
Tutorial

Go Receipt OCR API

Upload an image for a free test! Tutorial: Build scalable expense reporting apps in Go. Learn how to extract merchants, line items, and totals from POS receipts using our Golang OCR integration.

Go · Receipt
Tutorial

C# Receipt OCR API

Upload an image for a free test! Integrate a robust Receipt OCR API into your C# .NET app. Accurately extract merchants, line items, taxes, and totals from crumpled thermal receipts.

C# · Receipt
Country Tutorial

Costa Rica identity card OCR: Extract Fields with Python

Extract visible fields from Costa Rica identity card images into JSON. Map identifiers, names and dates, with a review workflow for incomplete results.

Python · National ID

Technical Comparisons & Integrations

Explore platform integrations and competitive analysis

From tutorial to production in 5 minutes.

You've seen the code. Now get your API key, grab your 200 free credits, and see it work with your own images. No credit card required.

Instant Access Cancel Anytime No Credit Card