Leitor de PDF
Envie uma fatura CELESC ou COPEL como arquivo ou URL pública e receba os dados estruturados do documento sem criar conexão ou trabalho.
Quando usar
Use o leitor quando você já possui a fatura em PDF e precisa convertê-la em pdf_data. A distribuidora é identificada pelo conteúdo do documento.
Para localizar ou baixar uma fatura usando uma conexão existente, use os trabalhos de fatura e PDF.
Monte a requisição
/api/v1/pdf/parseAutentique com X-API-Key e envie multipart/form-data com exatamente um dos campos abaixo.
| Campo | Tipo | Uso |
|---|---|---|
invoice | arquivo PDF | Fatura local da CELESC ou COPEL. |
url | string | URL HTTP ou HTTPS pública para a fatura. |
Enviar os dois campos, ou não enviar nenhum, retorna invalid_pdf_source.
Envie um arquivo
curl -X POST "<URL_BASE>/pdf/parse" \
-H "X-API-Key: <SUA_CHAVE>" \
-F "invoice=@./fatura.pdf;type=application/pdf"import { readFile } from "node:fs/promises";
const bytes = await readFile("./fatura.pdf");
const form = new FormData();
form.append(
"invoice",
new Blob([bytes], { type: "application/pdf" }),
"fatura.pdf"
);
const response = await fetch(`${BASE_URL}/pdf/parse`, {
method: "POST",
headers: { "X-API-Key": process.env.DISTRISYNC_API_KEY },
body: form
});
const body = await response.json();
if (!response.ok) {
throw new Error(`${body.error.code}: ${body.error.message}`);
}
console.log(body.document.provider, body.billing.reference_month);Envie uma URL pública
curl -X POST "<URL_BASE>/pdf/parse" \
-H "X-API-Key: <SUA_CHAVE>" \
-F "url=https://arquivos.exemplo.com/fatura.pdf"A URL e seus redirecionamentos devem usar HTTP ou HTTPS e apontar para endereços públicos. URLs com usuário, senha ou fragmento, além de hosts locais e endereços privados ou reservados, não são aceitos.
Leia a resposta
O corpo é o próprio objeto pdf_data 2.13, sem envelope de fatura e sem uma propriedade externa chamada pdf_data. O exemplo mostra um trecho representativo da resposta.
{
"schema_version": "2.13",
"billing": {
"reference_month": "2026-08",
"due_date": "2026-09-15",
"total_amount": 120.5,
"currency": "BRL"
},
"document": {
"provider": "CELESC",
"invoice_id": "000000000001",
"layout": "celesc_danf3e_a4_v1"
},
"quality": {
"score": 1,
"status": "parsed",
"api_cross_validated": false,
"issues": []
}
}quality.api_cross_validated é false porque a conferência considera somente o documento enviado. Antes de automatizar decisões, trate quality.status e cada item de quality.issues.
A resposta inclui Cache-Control: no-store. Nome, CPF/CNPJ, endereço completo, CEP, código de barras e chave de acesso não fazem parte do objeto público retornado.
Respeite os limites e trate os erros
Arquivos enviados e baixados por URL aceitam até 20 MiB por padrão. PDFs protegidos por senha, documentos digitalizados sem texto extraível e documentos que não sejam faturas CELESC ou COPEL não são suportados.
| Código | HTTP | Ação recomendada |
|---|---|---|
invalid_pdf_source | 400 | Envie somente invoice ou somente url. |
invalid_pdf_url | 400 | Use uma URL HTTP/HTTPS pública, sem credenciais nem fragmento. |
pdf_too_large | 413 | Envie um arquivo dentro do limite informado pela API. |
invalid_pdf | 422 | Envie um PDF não vazio e legível. |
protected_pdf | 422 | Remova a senha do documento antes do envio. |
unsupported_invoice_pdf | 422 | Envie uma fatura textual da CELESC ou COPEL. |
pdf_parse_failed | 422 | Registre X-Request-Id e solicite a análise do documento. |
pdf_download_failed | 502 | Confira a URL; se estiver disponível, aguarde e tente novamente. |
Somente pdf_download_failed é repetível sem alterar a requisição. Consulte a referência completa de erros e registre o cabeçalho X-Request-Id.