Cópia integral numa chamada
Envie o número CNJ (ou descubra por CPF/CNPJ). Nosso robô obtém os autos no tribunal e devolvemos o inteiro teor em PDF.
curl -X POST https://api.processonline.com.br/functions/v1/api-create-request \ -H "Authorization: Bearer po_live_SUACHAVE" \ -H "Idempotency-Key: pedido-12345" \ -H "Content-Type: application/json" \ -d '{"cnj":"5062404-56.2024.8.13.0702","interesse":"advogado","interesse_detalhe":"MG 123456"}'
Acesso B2B, mediante aprovação
A API é para empresas e escritórios. O acesso e as chaves são liberados após o cadastro de parceiro ser aprovado no painel.
Créditos pré-pagos
Cada cópia entregue consome 1 crédito (ou a cota do plano de fatura). Verificar um processo é grátis; sem saldo, a solicitação responde 402.
Fontes públicas e LGPD
Obtemos autos acessíveis publicamente, na condição de não-parte. O parceiro é responsável pelo uso dos dados (LGPD).
POST /api-search-documentoDevolve a lista de processos (números CNJ) — use-os no passo 3.POST /api-verifyO processo existe? Tribunal, classe e partes.POST /api-create-requestCria o pedido do inteiro teor.request.completedSeu sistema é notificado (HMAC-SHA256).GET /api-downloadURL assinada · arquivo por 7 dias.Falha ou segredo de justiça (passos 4–5): o processo não é entregue e o crédito volta automaticamente como saldo — você recebe o evento request.failed ou request.secret.
Endpoints, conceitos, webhooks e códigos de erro. A execução de chamadas e a criação de chaves ficam na área autenticada do Painel do Parceiro.
A API ProcessOnline entrega a CÓPIA INTEGRAL de processos judiciais (o inteiro teor em PDF) sob demanda. Você envia o número CNJ, nosso robô obtém os autos no tribunal e devolvemos o documento — o que as APIs de dados jurídicos não fazem (elas só retornam metadados).
COMO FUNCIONA
Base URL: https://api.processonline.com.br/functions/v1
Auth: HTTP Bearer — header Authorization: Bearer <sua-chave>. Chaves po_test_ (sandbox, sem custo) e po_live_ (produção).Autenticação
Toda requisição usa `Authorization: Bearer <chave>`. A chave é criada no Painel do Parceiro e exibida uma única vez — guarde-a em cofre. Chaves podem ser revogadas e rotacionadas sem downtime (várias chaves ativas convivem).
Ambientes (test e live)
`po_test_` opera em sandbox: não debita créditos e só aceita os CNJs de exemplo (canários), devolvendo um PDF de amostra no download — ideal para integrar sem custo. A lista dos canários aceitos está no topo da aba Documentação do painel; qualquer outro CNJ responde 403 `test_mode_cnj` com três canários em `examples`. `po_live_` opera de verdade.
Idempotência
Envie o header `Idempotency-Key` (até 64 caracteres) ao solicitar uma cópia. Repetir a mesma key devolve exatamente o mesmo pedido, sem cobrar de novo — retries de rede são seguros.
Limites de requisição
Há um teto de requisições por minuto por parceiro (negociável). Ao excedê-lo, a API responde 429 — respeite o recuo e tente novamente.
Retenção e segredo de justiça
O PDF fica disponível por 7 dias após pronto — persista sua cópia. Processos em segredo de justiça não são fornecidos e o crédito é devolvido automaticamente.
/api-search-documento— Buscar processos por CPF ou CNPJRecebe um documento (CPF de 11 dígitos ou CNPJ de 14) e devolve a lista de processos daquela pessoa/empresa nas bases nacionais, com TODOS os dados que a base entrega por processo (número CNJ, partes, capa, área, classe, assunto, situação, valor da causa, órgão julgador, movimentações, fontes por tribunal), mais o bloco `envolvido` (nome, OABs, quadro societário, total de processos) e o `paginator`. Debita 1 crédito SÓ quando a consulta é bem-sucedida — nada encontrado (lista vazia) e indisponibilidade da base não cobram. O mesmo documento consultado de novo em até 24h vem do cache, sem novo débito. Use o `numero_cnj` de cada processo para pedir a cópia integral em seguida. Com chave de teste, use os documentos de exemplo (111.444.777-35 ou 47.968.189/0001-74).
curl -X POST https://api.processonline.com.br/functions/v1/api-search-documento \
-H "Authorization: Bearer po_live_SUACHAVE" \
-H "Idempotency-Key: busca-12345" \
-H "Content-Type: application/json" \
-d '{"documento":"47.968.189/0001-74"}'Resposta
{
"documento_tipo": "cnpj",
"version": "1",
"total": 2,
"envolvido": {
"nome": "EMPRESA X LTDA",
"tipo_pessoa": "JURIDICA",
"quantidade_processos": 2,
"quantidade_processos_retornados": 2,
"oabs": [],
"quadro_societario": []
},
"paginator": { "per_page": 20 },
"results": [
{
"id": 868872297,
"numero_cnj": "0801234-56.2023.8.19.0001",
"ano_inicio": 2023,
"data_inicio": "2023-04-10",
"titulo_polo_ativo": "Fulano de Tal",
"titulo_polo_passivo": "Empresa X S.A.",
"estado_origem": { "nome": "Rio de Janeiro", "sigla": "RJ" },
"unidade_origem": { "nome": "1a Vara Civel", "tribunal_sigla": "TJRJ" },
"quantidade_movimentacoes": 42,
"data_ultima_movimentacao": "2026-08-19",
"fontes_tribunais_estao_arquivadas": false,
"fontes": [
{
"id": 1, "sigla": "TJRJ", "grau": 1, "tipo": "TRIBUNAL", "sistema": "PJe",
"capa": {
"area": "Civel", "classe": "PROCEDIMENTO COMUM CIVEL", "assunto": "Contratos",
"situacao": "ATIVO", "valor_causa": { "valor": "10000.00", "moeda": "R$" },
"orgao_julgador": "1a Vara Civel", "data_distribuicao": "2023-04-10"
}
}
]
}
],
"credits_charged": 1
}/api-verify— Verificar existênciaConfirma se o processo existe e devolve tribunal, classe e partes. Grátis (com limite por minuto) — use antes de gastar um crédito.
curl -X POST https://api.processonline.com.br/functions/v1/api-verify \
-H "Authorization: Bearer po_live_SUACHAVE" \
-H "Content-Type: application/json" \
-d '{"cnj":"5062404-56.2024.8.13.0702"}'Resposta
{
"exists": true,
"cnj": "50624045620248130702",
"tribunal": "TJMG",
"classe": "PROCEDIMENTO COMUM CÍVEL",
"parties": { "active": "Fulano", "passive": "Banco X" }
}/api-create-request— Solicitar a cópia integralCria a solicitação e debita 1 crédito (ou consome a cota mensal, no regime de fatura). Envie o header Idempotency-Key (até 64 caracteres) para retries seguros: a mesma key devolve o mesmo pedido sem débito novo. Declare o motivo do pedido em `interesse` — os autos trazem dados de pessoas que não são você, e registramos a finalidade junto do pedido (Lei 11.419/2006, art. 11, § 7º). Valores: parte, advogado, arrematante, sucessor, credor, outro. Com `advogado`, mande também `interesse_detalhe` com a inscrição na OAB (ex.: "MG 123456"). O campo é opcional hoje e será obrigatório — quem já envia não precisa mudar nada depois. Sem webhook configurado, a resposta traz `hint` com o código `no_webhook`: alguns tribunais levam horas, e sem o webhook você só fica sabendo que o pedido ficou pronto consultando `/api-get-request`.
curl -X POST https://api.processonline.com.br/functions/v1/api-create-request \
-H "Authorization: Bearer po_live_SUACHAVE" \
-H "Idempotency-Key: pedido-12345" \
-H "Content-Type: application/json" \
-d '{"cnj":"5062404-56.2024.8.13.0702","interesse":"advogado","interesse_detalhe":"MG 123456"}'Resposta
{
"request_id": "f0995809-0bee-4e8c-bc52-fb14ec3d80f5",
"status": "processing",
"credits_charged": 1,
"hint": { "code": "no_webhook", "message": "Sem webhook configurado: …" }
}/api-get-request— Acompanhar a solicitaçãoStatus público: processing | completed | failed | secret | expired. Em failed/secret o crédito é devolvido (campo refunded). Prefira o webhook a consultar em loop: o tempo até ficar pronto vai de minutos a horas, conforme o tribunal.
curl "https://api.processonline.com.br/functions/v1/api-get-request?id=REQUEST_ID" \
-H "Authorization: Bearer po_live_SUACHAVE"Resposta
{
"request_id": "f0995809-…",
"cnj": "50624045620248130702",
"status": "completed",
"expires_at": "2026-08-27T02:27:48Z",
"credits_charged": 1,
"refunded": false
}/api-download— Baixar o PDFDevolve uma URL assinada válida por 1 hora — gere uma nova a cada download. O arquivo fica disponível por 7 dias após ficar pronto (persista sua cópia). Com chave de teste, devolve um PDF de exemplo. Processos muito grandes são entregues em PARTES de até 200 MB: confira sempre parts_count e baixe todas as parts[] — download_url aponta apenas para a parte 1.
curl "https://api.processonline.com.br/functions/v1/api-download?id=REQUEST_ID" \
-H "Authorization: Bearer po_live_SUACHAVE"Resposta
{
"request_id": "f0995809-…",
"download_url": "https://api.processonline.com.br/storage/v1/object/sign/…",
"parts_count": 3,
"parts": [
{ "idx": 1, "url": "https://…/parte-01-de-03.pdf?token=…", "bytes": 209715200 },
{ "idx": 2, "url": "https://…/parte-02-de-03.pdf?token=…", "bytes": 209715200 },
{ "idx": 3, "url": "https://…/parte-03-de-03.pdf?token=…", "bytes": 94371840 }
],
"expires_in": 3600,
"file_expires_at": "2026-08-27T02:27:48Z"
}Configure uma URL HTTPS no painel e receba os eventos abaixo, assinados com HMAC-SHA256 no header X-PO-Signature. O webhook avisa; o download se busca. Retentativas com backoff por até 8 tentativas; trate de forma idempotente por request_id + event.
request.completedO PDF está pronto — baixe pelo endpoint de download (o payload traz uma download_url de cortesia válida por 1h, e parts_count: se for maior que 1, o processo saiu em partes e download_url é só a primeira).request.failedNão foi possível obter o processo; crédito estornado quando aplicável.request.secretProcesso em segredo de justiça — sem arquivo; o crédito volta como saldo.Validação da assinatura (Node.js)
const crypto = require("crypto");
function verify(rawBody, signatureHeader, secret) {
const t = signatureHeader.match(/t=(\d+)/)?.[1];
const v1 = signatureHeader.match(/v1=([0-9a-f]+)/)?.[1];
if (!t || !v1) return false;
if (Math.abs(Date.now() / 1000 - Number(t)) > 300) return false; // anti-replay 5 min
const expected = crypto.createHmac("sha256", secret).update(`${t}.${rawBody}`).digest("hex");
return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(v1));
}Erros retornam { "error": { "code", "message" } } com o HTTP status correspondente.
| HTTP | code | Quando |
|---|---|---|
| 401 | unauthorized | Chave ausente, inválida ou revogada (resposta única, sem distinção). |
| 429 | rate_limited | Limite de requisições por minuto excedido. |
| 422 | invalid_cnj | CNJ com formato, dígito verificador ou ano inválidos. |
| 402 | insufficient_credits | Sem saldo de créditos — compre no painel do parceiro. |
| 404 | not_found | Solicitação inexistente (ou de outra conta). |
| 409 | not_ready | Documento ainda em obtenção no tribunal. |
| 410 | expired | Arquivo expirou (retenção de 7 dias) — solicite novamente. |
| 403 | test_mode_cnj | Chave de teste só aceita CNJs de exemplo (canários). A resposta traz `examples` com três CNJs aceitos; a lista completa está no painel. |
| 422 | invalid_interesse | O `interesse` não está na lista (parte, advogado, arrematante, sucessor, credor, outro) ou é `advogado` sem `interesse_detalhe` com a inscrição na OAB. |
| 422 | sem_autenticacao | Parceiro com credencial própria (robô dedicado) sem acesso cadastrado para o tribunal do processo. O corpo traz `login_que_falta`: os acessos a cadastrar em "Suas credenciais". Nada é cobrado. |
| 422 | invalid_document | Busca por documento: o campo `documento` não é um CPF (11) nem CNPJ (14) válido. |
| 403 | test_mode_document | Busca por documento com chave de teste: use um dos documentos de exemplo em `examples`. |
| 502 | provider_unavailable | A base de processos está indisponível; nenhum crédito é cobrado — tente novamente em instantes. |
Chave de teste sem custo para validar a integração.