VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Sessão do cliente

Consulta de CNPJ no cadastro

Preenche o cadastro de uma empresa a partir do CNPJ, com dados da Receita Federal e as regras de elegibilidade da loja.

No cadastro B2B, o cliente digita só o CNPJ e a tela se completa sozinha: razão social, nome fantasia, atividade econômica (CNAE), situação cadastral e endereço. Esta rota faz essa consulta e já aplica as regras da loja: recusa empresa com situação irregular e atividade que a loja não atende. O resultado alimenta o POST /api/v1/auth/register.

Pontos principais
  • Pública, mas depende do módulo cnpj-login (403 module_disabled quando desligado).
  • Aceita o CNPJ com ou sem pontuação. Precisa ter 14 caracteres depois de limpo.
  • A rota não diz se o CNPJ já tem conta. Quem recusa um CNPJ repetido é o register.
  • Consulta serviços externos (Receita Federal, Sintegra). Pode demorar e falhar com 502; deixe o cliente tentar de novo ou preencher na mão.
GET/api/v1/storefront/register/cnpj/{cnpj}Pública

Consultar CNPJ para cadastro

Parâmetros de caminho

cnpjstringobrigatório
CNPJ da empresa, com ou sem pontuação (12.345.678/0001-95 ou 12345678000195).

Exemplo de requisição

bash
curl "$BASE_URL/api/v1/storefront/register/cnpj/$CNPJ"

Resposta

200Dados da empresa
json
{
  "person_type": "PJ",
  "document": {
    "type": "CNPJ",
    "number": "12345678000195",
    "formatted": "12.345.678/0001-95"
  },
  "company": {
    "legal_name": "COMERCIAL EXEMPLO LTDA",
    "trade_name": "EXEMPLO ATACADO",
    "state_registration": "",
    "is_state_taxpayer": false,
    "cnae": "4744099",
    "cnae_raw": "4744099",
    "cnae_description": "Comércio varejista de materiais de construção em geral",
    "registration_status": "ATIVA",
    "legal_nature": "206-2 - Sociedade Empresária Limitada",
    "company_size": "DEMAIS",
    "opening_date": "02/09/2009"
  },
  "address": {
    "street": "R DAS FLORES",
    "number": "100",
    "complement": "",
    "district": "CENTRO",
    "city": "São Paulo",
    "state": "SP",
    "zipcode": "01310100",
    "country": "BR",
    "street_line": "R DAS FLORES, 100"
  },
  "contacts_from_registry": {
    "phone": "(11) 3000-0000",
    "email": "contato@exemplo.com.br"
  },
  "ui": {
    "city_needs_manual_select": false,
    "district_needs_manual_select": true,
    "city_id": "be56d0aa-fe67-4988-8a67-4f90b08bff85",
    "locked_fields": [
      "document.number",
      "company.legal_name",
      "address.street"
    ],
    "editable_if_empty": [
      "company.state_registration",
      "company.trade_name"
    ]
  },
  "source": {
    "provider": "netrin",
    "services": [
      "receita-federal-cnpj"
    ],
    "queried_at": "2026-10-11T20:50:52Z"
  }
}

Campos da resposta

person_typestring
Sempre PJ.
documentobject
type (CNPJ), number (14 caracteres, sem pontuação) e formatted.
companyobject
Dados cadastrais: legal_name (razão social), trade_name (nome fantasia), state_registration (inscrição estadual, vazio se desconhecida), is_state_taxpayer, cnae e cnae_raw (atividade principal, só dígitos), cnae_description, registration_status (por exemplo ATIVA), legal_nature, company_size, opening_date. Podem vir também share_capital (capital social em centavos, como string) e cnae_secondary (lista de CNAEs secundários).
addressobject
street, number, complement, district, city, state (UF), zipcode (CEP, 8 dígitos), country e street_line (logradouro e número juntos).
contacts_from_registryobject
phone e email que constam no registro público, como sugestão. Podem estar desatualizados.
uiobject
Dicas para montar a tela: locked_fields (campos que vieram da Receita e não devem ser editados), editable_if_empty (liberados se vazios), city_id (id da cidade no cadastro da loja) e os avisos city_needs_manual_select e district_needs_manual_select, que indicam que o cliente precisa escolher cidade ou bairro.
sourceobject
De onde veio a consulta: provider, services e queried_at (RFC 3339).

Erros

StatusQuandoExemplo de corpo
400CNPJ sem 14 caracteres.{"error":"CNPJ inválido","detail":"invalid_cnpj"}
400Situação cadastral irregular, atividade (CNAE) que a loja não atende, ou inscrição estadual irregular. detail traz o motivo (situacao_inativa, cnae_not_accepted, ie_irregular...). As mensagens de error vêm em português.{"error":"...","detail":"cnae_not_accepted"}
403Módulo cnpj-login desligado.{"error":"module_disabled","module":"cnpj-login"}
404CNPJ não encontrado.{"error":"...","detail":"cnpj_not_found"}
429Limite de requisições da família /storefront/.{"error":"rate limit exceeded","detail":"too many requests, please try again later"}
502Os serviços de consulta falharam ou devolveram dados incompletos.{"error":"Falha na consulta do CNPJ","detail":"..."}
503Consulta não configurada na loja.{"error":"CNPJ registration lookup not configured"}
Recusa com texto da loja

Quando a loja define a própria mensagem para atividades que não atende, o 400 por CNAE traz error com o texto da loja, detail: cnae_not_accepted, store_message: "1" e, se houver, um link (por exemplo, onde encontrar um revendedor). Mostre o texto e o link ao cliente.

Veja também

  • Adoção de conta importada por CNPJ
  • Autenticação
Anterior
Verificação por código
Próxima
Conta do administrador
Nesta página
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também