API v1

Documentação da API

Consulte, segmente e exporte dados de CNPJ da base pública da Receita Federal, e enriqueça cadastros com dados de bureau — direto do seu sistema.

https://corpdata.com.br/api/v1
Como começar

API para consultar, segmentar e exportar dados de CNPJ da base pública da Receita Federal,

além de enriquecer cadastros com dados de bureau parceiro.

Autenticação

Envie sua chave no header Authorization: Bearer cd_live_... (ou X-API-Key).

Gere e revogue chaves em Integrações, no painel. A chave é exibida uma única vez.

Créditos

Cada chamada que entrega dado consome créditos do seu plano:

• Registro de empresa (busca ou consulta): 1 crédito por registro entregue

• Lead exportado no mailing: 1 crédito por lead

• Enriquecimento por bureau: 5 créditos por CNPJ

• Consulta de pessoa física (CPF ou telefone): 15 créditos por consulta

Contagem (/empresas?apenas_total=true) não consome crédito — use para dimensionar antes de gastar.

Você só paga pelo que é efetivamente entregue: job que falha não cobra, e consultar o status

várias vezes cobra uma vez só.

Limites

• 120 requisições por minuto, por chave

• Limite diário conforme o seu plano (veja os cabeçalhos X-RateLimit-* na resposta)

Escopos

• empresas:read — Consultar e buscar empresas

• mailing:read — Estimar volume e acompanhar exportações

• mailing:export — Gerar exportações de mailing (consome créditos)

• enriquecimento:read — Enriquecer CNPJ pelo bureau (consome créditos)

• pessoas:read — Consultar pessoa física por CPF (consome créditos)

• credito:read — Relatório de crédito por CPF/CNPJ (consome créditos)

• sms:otp — Enviar e conferir códigos de verificação por SMS (consome créditos de SMS)

Uma chave só acessa o que o escopo dela permite; caso contrário a resposta é 403 SEM_ESCOPO.

Primeira chamada
export CORPDATA_KEY="cd_live_..."

curl "https://corpdata.com.br/api/v1/empresas/00000000000191" \
  -H "Authorization: Bearer $CORPDATA_KEY"
GET/empresas
Buscar empresas por filtros

Segmenta a base da Receita Federal. Exige ao menos um filtro.

Custo: 1 crédito por registro entregue. Com apenas_total=true, devolve só a contagem e não cobra.

Filtros de múltipla escolha são repetidos na query string: ?ufs=ES&ufs=SP.

Escopo: empresas:read

Parâmetros

NomeTipoDescrição
ufsstringUF. Repita para várias.(ex.: ES)
municipiosstringMunicípio. Repita para vários.
bairrosstring—
dddsstring—(ex.: 27)
cnaesstringCNAE principal.(ex.: 6201501)
cnaes_secundariosstring—
naturezasstring—
situacao_cadastralstringCom zero à esquerda. `02` = ativa.(ex.: 02)
portesstring—
meiboolean—
simplesboolean—
abertura_destring—
abertura_atestring—
com_telefoneboolean—
com_telefone_movelboolean—
com_emailboolean—
dividabooleantrue = apenas com dívida ativa; false = apenas sem.
capital_minnumber—
capital_maxnumber—
apenas_totalbooleanSó a contagem, sem consumir crédito.
limiteinteger—
paginainteger—
Exemplo
curl "https://corpdata.com.br/api/v1/empresas?ufs=ES&situacao_cadastral=02&limite=50" \
  -H "Authorization: Bearer $CORPDATA_KEY"

Respostas

200 · Registros encontrados (ou apenas o total).401 · Envie sua chave em Authorization: Bearer <chave>. · Chave de API inválida.402 · Créditos insuficientes para esta operação.403 · Sua chave não tem permissão para este recurso.422 · Parâmetros inválidos.429 · Muitas requisições. Tente novamente em alguns segundos. · Limite diário do seu plano atingido.500 · Erro interno. Tente novamente.
GET/empresas/{cnpj}
Consultar uma empresa pelo CNPJ

Ficha cadastral completa. O CNPJ é validado pelos dígitos verificadores antes de consultar a base.

Custo: 1 crédito. Reconsultar o mesmo CNPJ no mesmo dia não cobra novamente.

Escopo: empresas:read

Parâmetros

NomeTipoDescrição
cnpj*string · caminhoCom ou sem pontuação.(ex.: 00000000000191)
Exemplo
curl "https://corpdata.com.br/api/v1/empresas/00000000000191" \
  -H "Authorization: Bearer $CORPDATA_KEY"

Respostas

200 · Ficha da empresa.401 · Envie sua chave em Authorization: Bearer <chave>. · Chave de API inválida.402 · Créditos insuficientes para esta operação.403 · Sua chave não tem permissão para este recurso.404 · Recurso não encontrado.422 · Parâmetros inválidos.429 · Muitas requisições. Tente novamente em alguns segundos. · Limite diário do seu plano atingido.500 · Erro interno. Tente novamente.
POST/mailing
Criar exportação de mailing

Cria um job assíncrono de exportação e devolve job_id.

Acompanhe em GET /mailing/{job_id}; ao concluir, o retorno traz arquivo_url.

Custo: o saldo é conferido aqui, mas a cobrança ocorre na conclusão, pela quantidade

efetivamente entregue — job que falha não cobra.

Escopo: mailing:export

Exemplo
curl -X POST "https://corpdata.com.br/api/v1/mailing" \
  -H "Authorization: Bearer $CORPDATA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filtros":{"ufs":["ES"],"situacao_cadastral":["02"]},"quantidade":1000,"formato":"csv"}'

Respostas

200 · Job criado.401 · Envie sua chave em Authorization: Bearer <chave>. · Chave de API inválida.402 · Créditos insuficientes para esta operação.403 · Sua chave não tem permissão para este recurso.422 · Parâmetros inválidos.429 · Muitas requisições. Tente novamente em alguns segundos. · Limite diário do seu plano atingido.500 · Erro interno. Tente novamente.
GET/mailing/{job_id}
Status da exportação

Consulte periodicamente até status = concluido; então baixe arquivo_url.

Custo: 1 crédito por lead entregue, cobrado uma única vez — o polling não duplica.

Escopo: mailing:read

Parâmetros

NomeTipoDescrição
job_id*string · caminho—
Exemplo
curl "https://corpdata.com.br/api/v1/mailing/SEU_JOB_ID" \
  -H "Authorization: Bearer $CORPDATA_KEY"

Respostas

200 · Situação do job.401 · Envie sua chave em Authorization: Bearer <chave>. · Chave de API inválida.403 · Sua chave não tem permissão para este recurso.404 · Recurso não encontrado.422 · Parâmetros inválidos.429 · Muitas requisições. Tente novamente em alguns segundos. · Limite diário do seu plano atingido.500 · Erro interno. Tente novamente.
GET/mailing/{job_id}/arquivo
Baixar o arquivo da exportação

Devolve o arquivo da exportação concluída (ZIP contendo o CSV ou XLSX).

Disponível quando GET /mailing/{job_id} retornar status: concluido.

O campo arquivo_url daquela resposta já aponta para cá.

Custo: nenhum — a exportação foi cobrada na conclusão do job.

A resposta é binária: use -o arquivo.zip no curl ou trate como stream.

Escopo: mailing:read

Parâmetros

NomeTipoDescrição
job_id*string · caminho—
Exemplo
curl "https://corpdata.com.br/api/v1/mailing/SEU_JOB_ID/arquivo" \
  -H "Authorization: Bearer $CORPDATA_KEY"

Respostas

200 · Arquivo da exportação.401 · Envie sua chave em Authorization: Bearer <chave>. · Chave de API inválida.403 · Sua chave não tem permissão para este recurso.404 · Recurso não encontrado.422 · Parâmetros inválidos.429 · Muitas requisições. Tente novamente em alguns segundos. · Limite diário do seu plano atingido.500 · Erro interno. Tente novamente.
GET/enriquecimento/{cnpj}
Enriquecer CNPJ com dados de bureau

Complementa a ficha da Receita com dados do bureau parceiro: porte e operação,

atividades secundárias, complementos cadastrais, quadro societário ampliado e sinais de risco.

Custo: 5 créditos.

Aceita apenas CNPJ. Dados pessoais de terceiros são descartados no servidor por allowlist;

o CPF de sócio vem completo (socios[].cpf). Requer credenciamento LGPD aprovado na sua conta.

Escopo: enriquecimento:read

Parâmetros

NomeTipoDescrição
cnpj*string · caminho—(ex.: 00000000000191)
Exemplo
curl "https://corpdata.com.br/api/v1/enriquecimento/00000000000191" \
  -H "Authorization: Bearer $CORPDATA_KEY"

Respostas

200 · Dados complementares.401 · Envie sua chave em Authorization: Bearer <chave>. · Chave de API inválida.402 · Créditos insuficientes para esta operação.403 · Sua chave não tem permissão para este recurso. · Credenciamento LGPD pendente de aprovação.404 · Recurso não encontrado.422 · Parâmetros inválidos.429 · Muitas requisições. Tente novamente em alguns segundos. · Limite diário do seu plano atingido.500 · Erro interno. Tente novamente.503 · API temporariamente indisponível.
POST/sms/otp
Enviar código de verificação por SMS

Gera um código numérico, envia por SMS ao celular e devolve o id do envio. O código nunca volta na resposta.

Proteções: até 1 código a cada 30 s e 5 por hora para o mesmo celular. Só celulares (DDD + 9 dígitos).

Custo: 1 crédito de SMS por código. Falha de entrega devolve o crédito.

Escopo: sms:otp

Exemplo
curl -X POST "https://corpdata.com.br/api/v1/sms/otp" \
  -H "Authorization: Bearer $CORPDATA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filtros":{"ufs":["ES"],"situacao_cadastral":["02"]},"quantidade":1000,"formato":"csv"}'

Respostas

200 · Código enviado.401 · Envie sua chave em Authorization: Bearer <chave>. · Chave de API inválida.402 · Créditos insuficientes para esta operação.403 · Sua chave não tem permissão para este recurso.422 · Parâmetros inválidos.429 · Muitas requisições. Tente novamente em alguns segundos. · Limite diário do seu plano atingido. · Muitos códigos para o mesmo celular: aguarde 30 segundos (máximo de 5 por hora).500 · Erro interno. Tente novamente.502 · Serviço de SMS indisponível no momento. Nada foi cobrado.
POST/sms/otp/verificar
Conferir o código digitado

Confere o código de um envio. Cada código aceita 5 tentativas, expira no prazo pedido e vale uma vez só.

Custo: sem custo. Escopo: sms:otp

Exemplo
curl -X POST "https://corpdata.com.br/api/v1/sms/otp/verificar" \
  -H "Authorization: Bearer $CORPDATA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filtros":{"ufs":["ES"],"situacao_cadastral":["02"]},"quantidade":1000,"formato":"csv"}'

Respostas

200 · Resultado da conferência.401 · Envie sua chave em Authorization: Bearer <chave>. · Chave de API inválida.403 · Sua chave não tem permissão para este recurso.404 · Recurso não encontrado.422 · Parâmetros inválidos.429 · Muitas requisições. Tente novamente em alguns segundos. · Limite diário do seu plano atingido.500 · Erro interno. Tente novamente.
POST/credito/consultar
Relatório de crédito (CPF ou CNPJ)

Relatório de crédito do bureau: negativações (Pefin/Refin), protestos, cheques sem fundo,

dívidas vencidas, consultas de mercado recentes e quadro societário. Complementa /pessoas e

/enriquecimento (cadastro e contato) com a visão de risco — o dossiê unificado.

Por que POST: CPF/CNPJ não trafega em URL — caminho de requisição fica em log de servidor, proxy e CDN. O documento vai no corpo.

Custo: 10 créditos por documento por mês: repetir o mesmo documento no mês não cobra de novo, e dentro de 7 dias a resposta vem do cache.

Blocos pessoais do titular (filiação etc.) nunca saem pela API.

Escopo: credito:read

Exemplo
curl -X POST "https://corpdata.com.br/api/v1/credito/consultar" \
  -H "Authorization: Bearer $CORPDATA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filtros":{"ufs":["ES"],"situacao_cadastral":["02"]},"quantidade":1000,"formato":"csv"}'

Respostas

200 · Relatório normalizado.401 · Envie sua chave em Authorization: Bearer <chave>. · Chave de API inválida.402 · Créditos insuficientes para esta operação.403 · Sua chave não tem permissão para este recurso.404 · Recurso não encontrado.422 · Parâmetros inválidos.429 · Muitas requisições. Tente novamente em alguns segundos. · Limite diário do seu plano atingido.500 · Erro interno. Tente novamente.502 · Serviço de consulta indisponível no momento.503 · API temporariamente indisponível.
POST/pessoas/consultar
Consultar pessoa (CPF ou telefone)

Consulta de pessoa física por CPF ou por telefone (busca reversa: telefone → dono), para KYC, análise de crédito e finalidades correlatas.

Acesso: exige o escopo pessoas:read e liberação individual da sua chave.

Ter o escopo não basta — a liberação é comercial e feita caso a caso.

Por que POST e não `GET /pessoas/{cpf}`: CPF não trafega em URL. O caminho da

requisição fica registrado em log de servidor, proxy, CDN e no header Referer —

lugares onde dado pessoal não deve estar em claro. No corpo, ele fica na conexão.

Finalidade define o que volta na resposta. Cada finalidade libera um conjunto de

campos, contratado com você — não é o mesmo para todos os clientes:

• ANALISE_CREDITO — Análise de crédito: Avaliação de risco para concessão de crédito ou limite.

• KYC_CADASTRO — Cadastro (KYC): Conferência cadastral e conheça-seu-cliente.

• COBRANCA_DIVIDA_PROPRIA — Cobrança de dívida própria: Localização de devedor de dívida da própria organização.

• PREVENCAO_FRAUDE — Prevenção à fraude: Verificação de indícios de fraude em cadastro ou transação.

Justificativa é opcional. Quando enviada, vai para a trilha de auditoria e deve ter

ao menos 15 caracteres, sem CPF, telefone ou e-mail (é campo livre, não depósito de dado

pessoal — e um número de 8+ dígitos é lido como telefone). Se você não enviar (ou enviar

algo inválido), a consulta usa automaticamente a justificativa padrão da sua conta e,

na falta dela, um texto padrão da finalidade — a chamada nunca falha por causa deste campo.

Custo: 15 créditos por consulta. Cobra a cada chamada, inclusive do mesmo CPF.

Exemplo
curl -X POST "https://corpdata.com.br/api/v1/pessoas/consultar" \
  -H "Authorization: Bearer $CORPDATA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filtros":{"ufs":["ES"],"situacao_cadastral":["02"]},"quantidade":1000,"formato":"csv"}'

Respostas

200 · Dossiê com os campos que a finalidade libera.401 · Envie sua chave em Authorization: Bearer <chave>. · Chave de API inválida.402 · Créditos insuficientes para esta operação.403 · Sua chave não tem permissão para este recurso. · Consulta de pessoa física não habilitada para esta chave. Fale com o seu contato comercial. · Esta finalidade não está contratada para a sua chave.404 · Sem dados para este CPF nesta finalidade.422 · Finalidade inválida. Veja as finalidades aceitas na documentação. · CPF inválido (dígitos verificadores não conferem).429 · Muitas requisições. Tente novamente em alguns segundos. · Limite diário do seu plano atingido.500 · Erro interno. Tente novamente.502 · Serviço de consulta indisponível no momento.503 · API temporariamente indisponível.
POST/pessoas/consultar-async
Consultar CPF (assíncrono)

Abre a consulta e devolve um job_id na hora (milissegundos), sem esperar o bureau.

O resultado sai depois em GET /pessoas/jobs/{job_id}.

Para volume: dispare várias consultas sem prender uma conexão em cada, depois colete.

As mesmas travas da consulta síncrona valem aqui. Criar o job não consome crédito;

a cobrança ocorre quando o job é processado, uma única vez.

Exemplo
curl -X POST "https://corpdata.com.br/api/v1/pessoas/consultar-async" \
  -H "Authorization: Bearer $CORPDATA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filtros":{"ufs":["ES"],"situacao_cadastral":["02"]},"quantidade":1000,"formato":"csv"}'

Respostas

200 · Job criado.401 · Envie sua chave em Authorization: Bearer <chave>. · Chave de API inválida.402 · Créditos insuficientes para esta operação.403 · Sua chave não tem permissão para este recurso. · Consulta de pessoa física não habilitada para esta chave. Fale com o seu contato comercial. · Esta finalidade não está contratada para a sua chave.404 · Sem dados para este CPF nesta finalidade.422 · Finalidade inválida. Veja as finalidades aceitas na documentação. · CPF inválido (dígitos verificadores não conferem).429 · Muitas requisições. Tente novamente em alguns segundos. · Limite diário do seu plano atingido.500 · Erro interno. Tente novamente.502 · Serviço de consulta indisponível no momento.503 · API temporariamente indisponível.
GET/pessoas/jobs/{job_id}
Resultado da consulta assíncrona

Estado e resultado de um job criado em /pessoas/consultar-async.

A primeira chamada que encontra o job pendente é quem executa a consulta — essa

absorve o tempo do bureau; as demais leem o resultado pronto. Refaça após retry_after

segundos enquanto o status for pendente ou processando.

status = concluido traz dados (o dossiê). O resultado é entregue uma vez e apagado:

guarde-o do seu lado. O crédito é cobrado no processamento, nunca duas vezes.

Parâmetros

NomeTipoDescrição
job_id*string · caminho—
Exemplo
curl "https://corpdata.com.br/api/v1/pessoas/jobs/SEU_JOB_ID" \
  -H "Authorization: Bearer $CORPDATA_KEY"

Respostas

200 · Estado do job. Verifique `status`.401 · Envie sua chave em Authorization: Bearer <chave>. · Chave de API inválida.403 · Sua chave não tem permissão para este recurso.404 · Recurso não encontrado.422 · Parâmetros inválidos.429 · Muitas requisições. Tente novamente em alguns segundos. · Limite diário do seu plano atingido.500 · Erro interno. Tente novamente.
POST/pessoas/lote
Consultar vários CPFs

Mesma consulta, vários CPFs numa chamada. Feito para quem processa fila.

A resposta é sempre 200, com um item por CPF e o status de cada um. Um CPF

inválido no meio do lote não derruba os outros: você recebe exatamente quais

falharam e por quê, sem precisar reprocessar tudo.

CPF rejeitado na validação não consome crédito — não chegou a virar consulta.

Custo: 15 créditos por CPF consultado com sucesso; duplicata no mesmo lote cobra uma vez só.

O tamanho máximo do lote é definido no seu contrato (padrão 100 CPFs por chamada). Acima

dele a resposta é 422 PARAMETRO_INVALIDO informando o teto.

A finalidade e a justificativa valem para o lote inteiro.

Exemplo
curl -X POST "https://corpdata.com.br/api/v1/pessoas/lote" \
  -H "Authorization: Bearer $CORPDATA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filtros":{"ufs":["ES"],"situacao_cadastral":["02"]},"quantidade":1000,"formato":"csv"}'

Respostas

200 · Resultado por CPF. Verifique o `status` de cada item.401 · Envie sua chave em Authorization: Bearer <chave>. · Chave de API inválida.402 · Créditos insuficientes para esta operação.403 · Sua chave não tem permissão para este recurso. · Consulta de pessoa física não habilitada para esta chave. Fale com o seu contato comercial. · Esta finalidade não está contratada para a sua chave.404 · Sem dados para este CPF nesta finalidade.422 · Finalidade inválida. Veja as finalidades aceitas na documentação. · CPF inválido (dígitos verificadores não conferem). · Parâmetros inválidos.429 · Muitas requisições. Tente novamente em alguns segundos. · Limite diário do seu plano atingido.500 · Erro interno. Tente novamente.502 · Serviço de consulta indisponível no momento.503 · API temporariamente indisponível.

© 2026 CorpData — Todos os Direitos Reservados

Saiba mais sobre a nossa política de LGPD

Todas as informações desta plataforma são confidenciais e deverão ser utilizadas exclusivamente para a orientação das transações comerciais do titular do cadastro aprovado nesta plataforma, que por sua vez, responsabiliza-se nas searas cível, criminal e administrativa por danos que possa causar a terceiros, quando utilizadas em desacordo com a legislação em vigor. Desta forma, o titular do cadastro declara ter ciência de que todas as informações contidas no corpo desta consulta vão ao encontro de atividades amparadas pela Lei Geral de Proteção de Dados (LGPD), e jamais poderão substituir as informações prestadas por órgãos oficiais, bem como é vedado o seu uso público e/ou em processos judiciais.