Leer códigos de barras de un escaneo
Una etiqueta de envío, orden de compra o remito escaneado suele llevar dos o tres códigos de barras enterrados entre el texto impreso, y un OCR genérico lee las letras alrededor pero pasa por alto los códigos por completo. Este endpoint escanea la página específicamente en busca de códigos de barras y QR, y devuelve el tipo, el valor decodificado y la posición de cada uno como JSON.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Por qué los códigos de barras necesitan otro tipo de lectura
El OCR de texto y la decodificación de códigos de barras son problemas genuinamente distintos: uno reconoce formas de letras, el otro lee un patrón de barras, puntos o módulos que codifican datos sin ninguna relación con el idioma que los rodea. Un documento escaneado que mezcla ambos —un remito con un párrafo de instrucciones sobre el código de barras del envío, una factura con un código QR estampado en la esquina para el pago— necesita los dos tipos de lectura al mismo tiempo, sobre la misma página, sin que uno interfiera con el otro.
Dónde importan los códigos de barras en un documento
Almacenes que escanean papelería de entrada donde el código de barras del remito debe coincidir con el del paquete físico, equipos de logística que digitalizan etiquetas de envío en papel que nunca se generaron digitalmente, comercios que procesan facturas de proveedores con un código QR que enlaza al pago o al detalle del producto, y archivos que digitalizan formularios o boletos antiguos donde el código de barras era el único campo legible por máquina en una página por lo demás manuscrita.
Qué devuelve cada código detectado
Envía la página escaneada a POST /ocr/barcode-doc y recibe un task_id de inmediato, porque el proceso corre de forma asíncrona. El resultado lista cada código de barras encontrado en la página —su simbología (Code 128, EAN, QR, Data Matrix y otras comunes), el valor decodificado, y aproximadamente dónde se ubica en la página— entregado por webhook firmado o un enlace firmado válido por 24 horas.
De la tinta rayada a una capa de datos sobre papel
El código de barras es un invento de mediados del siglo veinte pensado para que una máquina leyera un número más rápido de lo que una persona podía teclearlo, y décadas después la misma idea se extendió a códigos bidimensionales capaces de guardar mucha más información en la misma pulgada cuadrada. Los documentos siguen imprimiendo estos códigos por la misma razón de siempre —una lectura de máquina rápida y sin ambigüedad—, pero una copia escaneada de ese papel elimina el contexto físico del escáner original, dejando solo una imagen donde el código hay que encontrarlo y decodificarlo de nuevo desde cero.
Cómo encaja en un flujo de recepción documental
A $0.002 por solicitud más $0.005 por página, y con cobro solo sobre páginas procesadas con éxito, este endpoint resulta lo bastante económico como para ponerlo delante de cada documento escaneado que recibe un almacén u oficina, marcando qué páginas llevan un código de barras que vale la pena cotejar contra un pedido o registro de envío. Una página fallida se reintenta automáticamente hasta tres veces sin costo, y el acceso requiere saldo prepago —sin capa gratuita, lo que mantiene el rendimiento estable en operaciones de escaneo de alto volumen.
Qué puede hacer con ella
Verificación de remitos en almacén
Un almacén escanea un remito entrante y coteja el valor del código de barras extraído contra el código del paquete físico antes de aceptar la entrega.
Digitalización de etiquetas de envío en papel
Un equipo de logística convierte un lote de etiquetas de envío escaneadas en datos estructurados de código de barras para un sistema que nunca tuvo una fuente digital.
Captura de QR en facturas de proveedor
Un comercio extrae el código QR de pago o de producto incrustado en una factura de proveedor escaneada, sin que alguien tenga que buscarlo en la página.
Digitalización de archivo de formularios con boleto
Un archivo extrae el código de barras de boletos o formularios antiguos como el único campo confiable legible por máquina en un registro por lo demás manuscrito.
Preguntas frecuentes
¿Qué devuelve la api leer codigo de barras en documento?
Una lista en JSON de cada código de barras encontrado en la página, con su simbología, el valor decodificado y la posición aproximada en la página.
¿Cómo se usa la api de lectura de códigos de barras?
Envíe la página escaneada a POST /ocr/barcode-doc, reciba un task_id de inmediato, y obtenga los códigos decodificados por webhook o enlace firmado cuando termine el proceso.
¿Qué tipos de código de barras puede leer?
Simbologías unidimensionales comunes como Code 128 y EAN, además de formatos bidimensionales como QR y Data Matrix, todos detectados en la misma página.
¿Existe una capa gratuita para leer códigos de barras en documentos?
La herramienta de arriba es gratis en su navegador. La API es de pago: cada llamada se descuenta de su saldo prepago de ForHosting KIT — se recarga desde $10.00 (no caduca), se paga el precio publicado de cada solicitud, y una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens, y una tarea fallida no se cobra.
¿Cuánto cuesta por página?
$0.002 por solicitud más $0.005 por página, precio publicado y se cobra solo cuando la página se procesa con éxito.
¿Puede encontrar varios códigos de barras en la misma página escaneada?
Sí, detecta y decodifica cada código presente en la página, no solo el primero que encuentra.
¿Funciona con una foto de baja calidad de un documento impreso?
Sí, aunque un escaneo o foto más nítida con el código completamente visible da la decodificación más confiable.
¿Se cobra si una página falla al procesarse?
No. Una página fallida se reintenta automáticamente hasta tres veces y nunca se cobra; recibe un error claro si aun así no se puede leer.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/ocr/barcode-doc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/ocr/barcode-doc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/ocr/barcode-doc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/ocr/barcode-doc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/ocr/barcode-doc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"input": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ocr.barcode_doc",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
max_pages | 10 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
413 | input_too_large | El archivo supera el límite de tamaño. |