Consulta CNPJ Receita
Um dos melhores recursos já lançados para o Excel, com certeza são os suplementos Power. (Power Query, Power Pivot e Power View). Para saber o que é Power Query veja mais no artigo O que é Power Query e como Instalar este suplemento leia o artigo Como Instalar o Power Query no Excel .
Podemos fazer milagres com estes suplementos. Com o Power Query por exemplo podemos nos conectar a várias fontes de dados, inclusive as API’s para extrair informações online. Hoje vou mostrar como conectar via API ao site da receita para fazer consulta cnpj receita. E a grande vantagem é que você pode consultar vários CNPJ’s de uma única vez e não necessita de VBA.
Criando uma Tabela com os CNPJ
O que vamos fazer é criar uma tabela, nomear com o nome tCNPJ e inserir os números de CNPJ que desejamos consultar.
Digite CNPJ na célula A1, depois digite a lista de CNPJ abaixo.
Selecione a célula A1 até a última célula com CNPJ. (Ou clique na célula A1 e use a tecla de atalho CTRL + * para selecionar todo o intervalo).
Vá na guia Inserir, Tabela deixe marcado Minha Tabela Contém Cabeçalhos e clique em OK. (Para inserir tabela pode-se usar também a tecla de atalho CTRL + ALT + T).
Depois de clique na Tabela, vá na Guia Design e no campo Nome da Tabela digite tCNPJ.
Importando dados para o Power Query
Clique na Tabela, clique na Guia Dados, Obter Dados, De Outras Fontes, Da Tabela/Intervalo.
Irá abrir o Editor de Consultas.
No Editor de Consultas, clique na Página Inicial, No Grupo Nova Consulta, clique em Nova Fonte, Outras Fontes, Web.
Na janela que abrir, deixe selecionado Básico e na URL digite o endereço a seguir se as aspas e clique em OK: “https://www.receitaws.com.br/v1/cnpj/27865757000102”. Esta é a API da Receita.
Criando Função no Power Query
O que nós vamos fazer agora é transformar em Função esta consulta da Web para buscar o CNPJ da Tabela que criamos anteriormente.
Clique na Guia Exibição e depois em Editor Avançado.
Irá abrir a tela do Editor Avançado do Power Query onde é utilizado a linguagem M.
Temos que editar esta consulta para criar uma Função Personalizada.
Antes do let vamos inserir:
(CNPJ as number) =>
Isso já transforma esta consulta em uma Função. Ainda temos que modificar o final do nosso endereço da API. Apague o número do CNPJ insira o texto abaixo após as aspas:
&Number.ToText(CNPJ)
Isto faz com que o número do CNPJ seja informado via função.
Após fazer estas alterações clique em concluído.
Altere o nome da Consulta para API, fica mais fácil de se localiza.
Invocar Função Personalizada
Agora clique na Consulta tCNPJ, vá na Guia Adicionar Colunas e clique em Invocar Função Personalizada.
No campo Consulta de função selecione API, no último campo selecione Nome da Coluna e clique em OK.
Perceba que agora foi adicionado uma nova coluna com o nome API. Perceba também que no canto superior direito é um ícone para para expandir as colunas.
Clique neste ícone, desmarque a opção Use o nome da coluna original como prefixo e clique em OK.
Perceba que foram criados várias novas colunas com os dados dos respectivos CNPJ’s. Mas há ainda colunas que podemos expandir, que são: atividade_principal, atividades_secundárias e qsa.
Clique no ícone para expandir a coluna, e selecione Expandir para Novas Linhas. Clique novamente no ícone para expandir e clique em OK.
Você também pode renomear o nome das colunas se preferir, dando duplo clique no nome da coluna.
Após estes passos clique em Fechar e Carregar.
Caso não abra uma janela de Importar Dados, Clique na Guia Dados e clique em Consultas e Conexões.
Ao lado direito da Planilha irá abrir a janela de Consultas e Conexões.
Clique com o botão direito do mouse na consulta tCNPJ e clique em Carregar para…
Irá abrir a janela de Importar Dados.
Clique na opção Tabela e clique em OK e seus dados serão carregados em uma nova planilha.
Agora podemos trabalhar com estes dados de diversas maneiras. Usando formatação condicional para deixar em vermelho os cadastros irregulares, usar Tabela Dinâmica, o Power View entre outras coisas. E aí, o que achou deste artigo? Compartilhe com seus amigos.
Assista a Vídeo Aula:
Robson Rogerio diz
Muito bacana Gerson. Comecei a utilizar o PQ a pouco tempo, mas já me ajudou muito em algumas tarefas que antes demorariam muito mais tempo para serem finalizadas.
Marcos Silvério diz
Saudações Gerson, espero que esteja bem. Poxa achei super interessante esta funcionalidade “Consulta de CNPJ no site da Receita com Power Query” que já estou utilizando e me ajudou muito em um trabalho que estou realizando. No entanto percebi que poderia ser melhorada e você como especialista no assunto poderia nos ajudar e deixar a funcionalidade melhorada. A melhora trata-se de como contornar CNPJ que se iniciam com “0” (Zero), que por conta disto acabam não conseguindo ser consultados. Tentei utilizar de várias formas, mas sem sucesso. Será que poderia auxiliar na resolução desta questão?.
Felipe K diz
Marcos.
Eu consegui resolver essa situação.
A função nao pode ser solicitada como ‘numero’ pois o excel nao vai interpretar os ‘000’ na frente do CNPJ. a requisição tem que ser diretamente em texto.
no parametro: (CNPJ as number) =>
Coloque: (CNPJ as text) =>
e na função do URL, em vez de: &Number.ToText(CNPJ)
coloque: &(CNPJ)
Lembre de alterar dentro do POWER QUERY EDITOR, a coluna para TEXTO
Gustavo diz
Conseguir contornar usando uma condicional para ser 14 caracteres. “”00000000000000″”
edgar diz
precisa colocar essa notação na parte de tabela personalizada
Text.PadStart (Text.From ([Mês]), 2, ”0 ″)
edgar diz
so colocar desse jeito
Text.PadStart (Text.From ([CNPJ]), 14, ”0 ″)
Luis diz
Olá!
A API da Receita não está permitindo mais consultar CNPJ em lote de forma gratuita. São apenas 3 consultas por minuto, o que atrasa muito o processo. Há alguma outra alternativa?
Gerson Viergutz diz
Olá Luis. Somente com a versão paga da API. Este vídeo é uma aula de como usar uma API no Excel usando o Power Query.
Fernando diz
Coloquei um delay de 20 segundos para cada consulta, assim não dá o erro de 03 consultas por minuto. Demora, mas funciona:
Fonte = Function.InvokeAfter(()=>Json.Document(Web.Contents(“https://www.receitaws.com.br/v1/cnpj/”&(CNPJ))),#duration(0,0,0,20))
André diz
Top demais!
Resolveu de prima!
Valeeeu
Maicon Orlando da Silva diz
valeu pela dica ajudou muito!!!
Célio diz
Olá Gerson!!
Primeiramente obrigado por compartilhar seus conhecimentos com os demais e parabéns pela explicação e pelo vídeo. Fiquei com uma duvida, é possível fazer este procedimento em um site para consultar CPF´s e trazer resultados das consultas, mas logando com um usuário e senha antes?
Andre I S Souza diz
Muito bom! Fico muitíssimo grato por esta preciosa ajuda, Gerson Viergutz.
Grande abraço.
Ricardo Botega diz
Teria como criar um botão para atualizar os dados dos novos cnpj só com o click?
Isabela G. Francischini diz
Olá, Gerson.
Muito obrigada pelas explicações.
Gostaria de saber como faço para lidar com erros, para mim todas as vezes em que aparece ‘[404] Not found’ o Excel não mostra as linhas carregadas até o erro. Minha intenção é que ele ignore erros e coloque na visualização tudo o que for possível.
Desde já agradeço.