Como ler código de barras de uma foto
O decodificador de código de barras recebe a foto ou o scan de uma etiqueta e devolve, via API, o número contido nas barras — pronto para entrar no seu sistema. Substitui o leitor físico quando o que chega é imagem: fotos de recebimento, notas escaneadas, prints de etiquetas.
Esta tarefa não está disponível no momento, portanto não pode ser contratada. Nada é cobrado por ela.
Ver a APIQuando a foto substitui a leitora
Leitora de código de barras resolve no balcão — mas não quando o que chega é imagem: foto do recebimento, nota escaneada, print mandado pelo motorista no WhatsApp. O decodificador cobre exatamente esse vão: o seu sistema envia a imagem via API e recebe de volta o número contido nas barras, em JSON, pronto para conferência, baixa de estoque ou cadastro. Nenhum equipamento novo, nenhuma digitação.
Integração direta no fluxo que você já tem
O desenho é o mais simples possível: uma chamada HTTP com a imagem, uma resposta com o conteúdo decodificado. Dá para plugar no formulário interno em que o conferente já anexa fotos, no fluxo que recebe imagens por e-mail ou no aplicativo de campo da equipe. Como a resposta é estruturada, a comparação com o pedido ou com a nota acontece em código — o humano só entra quando algo não bate.
A qualidade da foto manda no resultado
Barras são finas e a câmera precisa enxergá-las: foto razoavelmente focada, código inteiro no quadro e luz sem reflexo estourado já resolvem a maioria dos casos. Etiqueta amassada, plástico brilhando ou barra cortada na borda derrubam qualquer leitor — o daqui inclusive. Oriente quem fotografa com uma regra só: encher o quadro com a etiqueta. É treinamento de um minuto que muda a taxa de acerto.
Preço por imagem, sem hardware para comprar
US$ 0,002 por chamada mais US$ 0,005 por imagem processada — mil etiquetas fotografadas custam US$ 7, pagos por uso via PayPal, sem mensalidade e sem cadastro. A comparação honesta não é com a leitora do caixa, e sim com a alternativa real: alguém digitando números de treze dígitos olhando para fotos. Nessa disputa, a API ganha em custo, velocidade e taxa de erro.
Casos de uso
Recebimento fotografado no depósito
No recebimento da Distribuidora Horizonte Verde S.A., o conferente fotografa a etiqueta de cada volume. O sistema decodifica via API e cruza com o pedido de compra — divergência aparece na hora, não no fechamento do mês.
Número de série sem digitação em campo
Os técnicos da TecnoSul Soluções Digitais ME fotografam o código de barras do equipamento atendido. O aplicativo interno envia a foto para a API e grava o número de série na ordem de serviço — ninguém digita dezessete caracteres na chuva.
Print de etiqueta no WhatsApp
Uma transportadora de Curitiba recebe dos motoristas prints das etiquetas de coleta. Um fluxo interno passa cada imagem pela API e devolve o número já vinculado ao romaneio — o motorista não digita nada.
Perguntas frequentes
Tem versão grátis no navegador?
Esta capacidade é oferecida via API, paga por uso, com preço publicado — foi desenhada para volume e integração, não para leitura avulsa. Para conferir um código ou outro manualmente, um leitor comum de celular resolve.
Que formatos de código ele entende?
Os formatos correntes de varejo e logística — o EAN dos produtos e o Code 128 das etiquetas, entre outros. Se a sua operação usa um padrão específico, teste com uma amostra real antes de integrar: é uma chamada de centavos.
E se a foto vier torta, escura ou cortada?
Foto torta costuma passar; código cortado ou estourado de reflexo, não. Quando a leitura falha, trate no seu fluxo como pendência de nova foto — e oriente a equipe a preencher o quadro com a etiqueta.
Como o resultado chega para o meu sistema?
Você cria a tarefa com a imagem e consulta o resultado pela API: o número decodificado vem em JSON, estruturado para automação.
Quanto custa processar mil imagens?
US$ 7: US$ 0,002 de chamada mais US$ 0,005 por imagem, vezes mil. Sem assinatura — mês sem volume é mês sem custo.
As fotos que eu envio são guardadas?
As imagens são processadas para extrair o número; esse é o propósito do serviço e o uso que fazemos delas. Evite enviar fotos com mais informação pessoal do que a etiqueta pede — boa higiene de LGPD do seu lado também.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev/barcode-decode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/imagen.jpg"}'const res = await fetch("https://api.kit.forhosting.com/dev/barcode-decode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/barcode-decode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/barcode-decode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/barcode-decode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"image": "https://ejemplo.com/imagen.jpg"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.barcode_decode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |