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.

Nesta página
  1. Quando usar
  2. Requisição
  3. Enviar arquivo
  4. Enviar URL
  5. Resposta
  6. Limites e erros

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

POST/api/v1/pdf/parse

Autentique com X-API-Key e envie multipart/form-data com exatamente um dos campos abaixo.

CampoTipoUso
invoicearquivo PDFFatura local da CELESC ou COPEL.
urlstringURL HTTP ou HTTPS pública para a fatura.

Enviar os dois campos, ou não enviar nenhum, retorna invalid_pdf_source.

Envie um arquivo

cURLbash
curl -X POST "<URL_BASE>/pdf/parse" \
  -H "X-API-Key: <SUA_CHAVE>" \
  -F "invoice=@./fatura.pdf;type=application/pdf"
JavaScript no servidorjavascript
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

cURLbash
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.

Trecho da respostajson200 OK
{
  "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ódigoHTTPAção recomendada
invalid_pdf_source400Envie somente invoice ou somente url.
invalid_pdf_url400Use uma URL HTTP/HTTPS pública, sem credenciais nem fragmento.
pdf_too_large413Envie um arquivo dentro do limite informado pela API.
invalid_pdf422Envie um PDF não vazio e legível.
protected_pdf422Remova a senha do documento antes do envio.
unsupported_invoice_pdf422Envie uma fatura textual da CELESC ou COPEL.
pdf_parse_failed422Registre X-Request-Id e solicite a análise do documento.
pdf_download_failed502Confira 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.

Digite para buscar em guias, referências, schemas e erros.