Ler QR Code pela imagem
O leitor de QR Code por imagem extrai o conteúdo de um código a partir de um print, foto ou arquivo — útil quando o QR está na tela do próprio celular e não dá para escaneá-lo com a câmera. Roda no navegador, grátis, e a imagem não sai do seu aparelho.
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
O QR está na sua própria tela — e agora?
O código chegou pelo WhatsApp, veio num PDF de ingresso ou apareceu num print: está na tela do mesmo celular que teria que escaneá-lo. Apontar a câmera para o próprio aparelho não existe; pedir para alguém escanear e ditar o conteúdo, menos ainda. O leitor por imagem resolve o impasse: envie o arquivo — print, foto, captura — e o conteúdo do código aparece em texto, para copiar, abrir ou conferir.
Leia antes de confiar: QR também é golpe
O golpe do QR falso — colado por cima do original no estacionamento, no boleto, na maquininha — funciona porque ninguém vê o que há dentro do código antes de abrir. Decodificar pela imagem inverte o jogo: você enxerga a URL ou o código Pix em texto puro antes de qualquer clique. Endereço estranho, favorecido desconhecido, domínio com letra trocada? Descartou sem risco. É o hábito de segurança mais barato que existe.
Grátis, no navegador, sem a imagem sair do aparelho
A leitura roda inteira no seu navegador: a foto ou o print não é enviado para servidor nenhum, o que importa quando a imagem carrega um comprovante, um ingresso ou dados pessoais. Sem cadastro, sem limite e sem custo — abra a página, solte a imagem, copie o resultado. Funciona no celular e no computador. Se a foto estiver tremida, recorte a área do código e tente de novo: quanto mais nítido o quadrado, melhor a leitura.
Decodificação em série via API
Sistemas que recebem imagens em volume — comprovantes, ingressos, etiquetas fotografadas — usam a mesma leitura via API: envia a imagem, recebe o conteúdo em JSON. O preço é publicado: US$ 0,002 por chamada mais US$ 0,005 por imagem processada, pagos por uso, sem plano. Mil imagens decodificadas custam US$ 7 — menos que meia hora de digitação manual, e sem o erro humano da transcrição.
Casos de uso
Conferir cobrança Pix antes de pagar
Carlos Eduardo Souza recebeu por WhatsApp um QR de cobrança de um fornecedor novo. Antes de abrir o banco, leu o código pela imagem e conferiu no texto decodificado quem era o favorecido. Dois minutos que evitam cair em cobrança falsa.
Ingresso em PDF, código na própria tela
Juliana Nascimento recebeu um certificado em PDF com um QR e precisava do link gravado nele. Tirou um print, soltou na página e copiou o endereço em texto — sem imprimir nada e sem segundo aparelho.
Validação de lote antes da gráfica
A TecnoSul Soluções Digitais ME confere via API os QR Codes das artes que produz: cada arquivo é decodificado e o conteúdo comparado com o esperado antes de o lote ir para impressão. Erro pego na tela custa zero; na gráfica, custa o lote.
Perguntas frequentes
Recebi um QR pelo WhatsApp no próprio celular. Como escaneio?
Não precisa de segundo aparelho: salve a imagem ou tire um print e envie aqui. O conteúdo aparece em texto na hora — link, código Pix, o que estiver gravado.
Dá para saber se um QR é golpe antes de abrir?
Dá para ver o que há dentro dele, e isso já muda tudo: a URL completa ou o código de pagamento aparecem em texto antes de qualquer clique. Desconfie de domínio estranho, encurtador desconhecido ou favorecido que não bate com quem está cobrando.
A foto que eu envio fica salva em algum servidor?
Na ferramenta do navegador, não: a leitura acontece no seu aparelho e a imagem não é enviada a lugar nenhum. É o cenário mais confortável possível em termos de LGPD.
E se a imagem estiver borrada ou escura?
Tente recortar só a área do código e aumentar o brilho antes de enviar. O QR tem correção de erros e tolera bastante coisa, mas milagre com foto tremida de tela rachada não existe — nesse caso, peça o código de novo a quem mandou.
Quanto custa usar via API no meu sistema?
US$ 0,002 por chamada mais US$ 0,005 por imagem, pagos por uso via PayPal, sem mensalidade. O resultado volta em JSON, pronto para o seu fluxo.
Também lê código de barras de produto?
Esta página é dedicada a QR Code. A leitura de código de barras por foto existe como capacidade própria do KIT, com a mesma lógica de envio de imagem.
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/qr-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/qr-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/qr-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/qr-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/qr-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.qr_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. |