Validar o CNPJ do fornecedor antes de lançar a NF-e

Antes de pagar uma nota ou de cadastrar um fornecedor, confirme por API se o CNPJ existe, se a empresa está ativa e se a razão social é a que consta no contrato.

O problema: a nota chega antes da verificação

No contas a pagar, a NF-e chega por e-mail ou pelo portal do fornecedor e o cadastro é feito com pressa. Os erros que aparecem depois são conhecidos: um CNPJ digitado com um dígito trocado, um fornecedor baixado ou inapto, uma razão social diferente da do contrato, uma empresa que mudou de situação entre a assinatura e o pagamento. Cada um desses erros custa retrabalho, e alguns afetam a escrituração fiscal, caso em que vale conversar com o seu contador.

Esta página mostra uma verificação curta, que roda antes do lançamento da nota. Ela não substitui a autorização da nota pela SEFAZ nem a consulta ao documento fiscal; ela responde a uma pergunta anterior: a empresa por trás do CNPJ existe e está em situação regular no cadastro?

Como funciona com a API

  • GET /companies/search?country=BR&company_number=<CNPJ> devolve o registro da matriz, ou uma lista vazia.
  • Valide o formato antes de chamar: o validador de CNPJ mostra a regra, e a API devolve 400 para dígitos verificadores incorretos.
  • POST /monitor com {"company_id": ..., "country": "BR"} avisa por webhook se o fornecedor mudar de situação depois do cadastro.
  • Para vários fornecedores de uma vez, repita a chamada por CNPJ; cada consulta de registro custa 1 crédito.
import requests

BASE = 'https://api.prometiam.com/functions/v1/risk-api'
H = {'Authorization': 'Bearer rk_live_...'}

def fornecedor_ok(cnpj: str, razao_do_contrato: str) -> str:
    r = requests.get(f'{BASE}/companies/search', headers=H,
                     params={'country': 'BR', 'company_number': cnpj})
    if r.status_code == 400:
        return 'CNPJ inválido'
    dados = r.json().get('data', [])
    if not dados:
        return 'não encontrado: pode ser MEI, filial ou número inexistente'
    e = dados[0]
    if e['status'] != 'active':
        return f"revisar: {e['local_status']}"
    if e['company_name'].upper() != razao_do_contrato.upper():
        return 'razão social diferente do contrato'
    return 'ok'

O que conferir em cada fornecedor

VerificaçãoOnde aparece
O CNPJ existeUm resultado em company_number
A empresa está ativastatus e local_status (ativa, suspensa, inapta, baixada)
A razão social bate com o contratocompany_name
Natureza jurídica compatívellegal_form e local_legal_form
Recuperação judicial, falência ou liquidaçãoSituação especial em registry_details e no status
Atividade econômica declaradaactivity_code em CNAE 2.3

A situação inapta, que a Receita aplica a empresas com omissão de declarações, é servida como active_strike_off_pending; a suspensa como suspended; e a baixada como deregistered. Trate qualquer valor diferente de active como motivo para revisar a compra antes de pagar.

Quando o CNPJ não retorna nada

Um CNPJ válido sem resultado não é prova de que a empresa não existe. A Prometiam serve só pessoas jurídicas: o MEI e o empresário individual nunca aparecem, e as filiais, entidades sem fins lucrativos, órgãos públicos e sucursais de empresas estrangeiras também não são servidos. Se o fornecedor é um MEI, a verificação precisa ser feita no portal da Receita.

Lembre também que a atualização é mensal. Os dados vêm dos arquivos de dados abertos da Receita Federal, que publica um arquivo completo por mês: a atualização é mensal, não uma consulta ao vivo. Para um pagamento de valor alto, confirme o cartão CNPJ na hora.

O que não entregamos

  • Só pessoas jurídicas: o empresário individual, o MEI e as demais pessoas físicas nunca são servidos. A EIRELI é servida.
  • Sem quadro societário (QSA), sem sócios e sem administradores, e sem telefone nem e-mail de contato.
  • Sem número de IVA: o Brasil não tem um número de IVA ligado ao CNPJ, e uma busca com vat= é recusada.
  • Sem avisos de insolvência: o Brasil não é um dos doze mercados de insolvência. Recuperação judicial, falência e liquidação aparecem na situação especial e no status.
  • A atividade é a CNAE 2.3 (BR-CNAE-2.3), não a NACE, e nenhum código NACE é derivado dela.
  • Uma empresa por raiz de CNPJ, com o CNPJ da matriz; filiais, entidades sem fins lucrativos, órgãos públicos e sucursais de empresas estrangeiras não são servidos.

Qual plano serve

O teste gratuito dura 14 dias e inclui 500 créditos; é preciso informar um cartão, mas nada é cobrado durante o teste. Depois, o plano Starter custa € 9,99 por mês com 1.000 créditos, o Professional € 29,99 com 10.000 e o Scale € 99,99 com 50.000; o Enterprise tem preço sob consulta. Consultar um registro de empresa custa 1 crédito, cerca de € 0,01 no Starter e a partir de € 0,002 no Scale. Os preços são públicos e o plano anual dá dois meses grátis.

Contains data from the Cadastro Nacional da Pessoa Jurídica (CNPJ), Receita Federal do Brasil, published as open data (CC BY). Adapted by Prometiam.

Páginas relacionadas

Começar o teste gratuito de 14 dias · Documentação da API

O teste dura 14 dias e inclui 500 créditos. É necessário informar um cartão; nada é cobrado durante o teste e, depois, vale o plano Starter (€ 9,99 por mês), salvo cancelamento.

Frequently asked questions

A API valida a nota fiscal eletrônica?
Não. Ela verifica a empresa pelo CNPJ no cadastro da Receita; a autorização e a consulta da NF-e continuam sendo feitas junto à SEFAZ e ao portal nacional da nota.
Como saber se um fornecedor está inapto?
Pelo status: uma empresa inapta aparece como active_strike_off_pending, e o texto original da Receita está em local_status.
Consigo consultar centenas de fornecedores de uma vez?
Sim, com uma chamada por CNPJ. Cada registro consultado custa 1 crédito; escolha o plano pelo volume mensal.
E se o fornecedor for MEI?
Ele não é servido. A consulta de um MEI deve ser feita diretamente no portal da Receita Federal.
Posso saber quando um fornecedor mudar de situação?
Sim. Com POST /monitor você recebe um webhook quando a situação muda; a mudança é datada quando aparece pela primeira vez nos dados mensais da Receita.