Confira o preço antes de iniciar a pesquisa. Envie POST /v1/orcamento/cndt com os dados que deseja pesquisar. O orçamento informa o valor e a disponibilidade, sem cobrar.

Documentação

Tribunal Superior do Trabalho (TST)

Certidão Negativa de Débitos Trabalhistas (CNDT) — TST

Emite a CNDT de um CPF ou CNPJ direto do portal do TST, com o PDF oficial e a classificação nos três desfechos legais: negativa, positiva com efeitos de negativa e positiva.

Site oficial da fonte ↗
Em construção
POST /v1/consultas/cndt v1

Tempo típico

13s

Preço a definir

—

Visão geral

Emite a CNDT em nome de um CPF ou CNPJ direto do portal oficial do TST (cndt-certidao.tst.jus.br) e classifica o PDF nos três desfechos legais: negativa, positiva com efeitos de negativa (regular) e positiva.

A emissão é GRATUITA e sem login no TST (Lei 12.440/2011, validade de 180 dias). O que se paga aqui é a automação do captcha, a leitura e a classificação do PDF e o arquivamento do documento — a origem apaga o arquivo depois de um tempo.

Atenção: "Positiva com Efeitos de Negativa" é situação REGULAR: existe débito trabalhista, mas garantido por depósito/penhora ou com exigibilidade suspensa. Só a "Positiva" pura acusa débito exigível. Use o campo regular, não classe != NEGATIVA.

Antes de começar

Cobrança, idempotência e leitura do resultado. Leia antes da primeira chamada.

Custa dinheiro se você ignorar 1

"Positiva com Efeitos de Negativa" é REGULAR

São três desfechos, não dois. POSITIVA_COM_EFEITO_NEGATIVA significa que existe débito trabalhista, mas garantido por depósito/penhora ou com exigibilidade suspensa — a Justiça do Trabalho equipara essa situação à negativa.

Ler classe != NEGATIVA como "tem dívida trabalhista" reprova um alvo regular num parecer. O campo regular já resolve isso: só a POSITIVA pura é false.

Vale saber antes de integrar 2

A resposta é 202: a emissão roda na fila

O POST responde 202 com data[0].protocolo na hora, e a certidão chega depois. Consulte GET /v1/consultas/{protocolo} a cada poucos segundos: ele NÃO cobra e não fala com o TST. Enquanto roda responde 202; quando termina, 200 com a certidão (ou um 6xx dizendo o que houve).

Medido no robô (não é SLA): cerca de 13 s do pedido aceito ao PDF arquivado — desafio anti-robô, leitura e emissão. A fila pode somar alguns segundos.

O header.billable já vem true no 202: o valor foi debitado na aceitação. Não some o preço de novo quando o 200 chegar.

Nova consulta e acompanhamento do pedido

Basta enviar o token e os dados. Cada POST inicia uma nova consulta, mesmo com CPF/CNPJ igual, com protocolo e cobrança próprios.

Depois de receber o protocolo, acompanhe por GET, sem outra cobrança. Se a resposta do POST se perder, confira o histórico antes de reenviar: outro POST é outro pedido.

Quando o TST falha ou o desafio anti-robô não é resolvido no teto de tentativas, a resposta é um 6xx de falha transitória, o valor volta ao saldo e nada é dito sobre o alvo.

Requisição

Autentique com token no cabeçalho. Parâmetro obrigatório ausente é recusado com 422, antes de qualquer cobrança.

cpf_cnpj string obrigatório

CPF (11 dígitos) ou CNPJ (14 dígitos) do interessado. Com ou sem máscara; o tipo de pessoa é deduzido pelo tamanho.

finalidade string opcional

Motivo da consulta, com no mínimo 10 caracteres. Obrigatório na PRIMEIRA consulta de um CPF que ainda não está no seu cadastro (LGPD); depois disso, opcional.

curl -X POST https://api.oficialdata.com.br/v1/consultas/cndt \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "cpf_cnpj": "19131243000197"
}'

O HTTP é sempre 200 quando a requisição chegou. O resultado real está em code, no corpo — trate code, nunca o status.

Resposta

Dentro de data[]: 10 campos em 1 blocos.

10

Campo que a origem não informou volta null — nunca 0 nem string vazia. Trate null como dado ausente, não como zero.

data[] object
10 campos
versao string

Versão deste contrato de resposta (v1).

classe string

NEGATIVA, POSITIVA_COM_EFEITO_NEGATIVA ou POSITIVA. Lido do título do PDF.

regular boolean

false somente na POSITIVA pura — a positiva com efeitos de negativa é regular.

conseguiu_emitir_negativa boolean

true só quando a certidão saiu NEGATIVA.

certidao_codigo string null

Número da certidão no TST (ex.: 73893848/2026), para conferência no portal.

emissao_data date null

Data de emissão, em ISO-8601.

data_validade date null

Validade (180 dias da emissão), em ISO-8601.

mensagem string

Frase pronta para tela e laudo.

validador_url string (URL) null

Página do TST onde qualquer pessoa confere a certidão pelo certidao_codigo.

documento_url string (URL) null

Atenção: A ENTREGA: o PDF oficial que arquivamos. Autentica com o mesmo Bearer e NÃO expira — o TST apaga o arquivo dele depois de um tempo.

Códigos de erro

O mesmo mapa que o motor usa em produção. Leia as colunas Estorna e Retenta antes de integrar: nem toda falha devolve o dinheiro.

Classe Códigos Significa Estorna Retenta
sucesso 200 A origem respondeu e entregou. — —
nao_encontrado 612 A origem respondeu: nada consta para este alvo. Não Não
indeterminado 611 A origem não conseguiu emitir pela internet. Não é irregularidade. Não Não
erro_participante 608 619 620 A origem recusou os DADOS do pedido. Não Sim
retry 600 605 609 610 613 614 615 618 Instabilidade momentânea da origem ou do transporte. Sim Sim
fatal 601 602 603 604 606 607 617 621 622 Defeito de integração — nosso, não seu. Sim Não

Estorno: erro_participante é a única classe que não devolve o dinheiro — nela a origem respondeu recusando os dados do pedido. Corrija o alvo antes de repetir. fatal é falha nossa e sempre estorna.

Permanentes: não retente 602 e 603. A fonte sai do ar na hora e a nossa equipe é avisada.

Limites e desempenho

Números medidos em produção. "Não medido" é falta de amostra — nenhum valor aqui é estimativa.

Tempo típico

13s

p95

não medido

Teto por hora

300

Timeout máximo

90s

De onde vem o tempo: cerca de 85% dos ~13s típicos é a origem varrendo os cartórios. Dimensione o seu timeout por esse número e não conte com redução.

Sobre o teto: a origem exige sessão única por conta, então os pedidos são serializados. É limite técnico, não cota comercial: acima dele a fila cresce e paralelizar do seu lado não acelera. Para volume maior, combine antes.

Versionamento

O contrato de resposta é v1, e a versão viaja em header.api_version em toda resposta.

  • Campo novo opcional pode entrar a qualquer momento e não muda a versão. Seu parser precisa ignorar campo que não conhece.
  • Remover campo, renomear campo ou mudar tipo é versão nova, publicada em paralelo, com prazo de desligamento anunciado da anterior.
  • Nunca alteramos o significado de um campo existente mantendo o nome. Se o significado muda, o nome muda junto.

Vai integrar?

Diga o volume que você espera e em quais UFs. A ordem de liberação segue a demanda.

Falar com a gente →