Integração com API Comercial do www.receitaws.com.br

Olá!

Compartilho uma grande facilidade para implementação nos cadastros de pessoas jurídicas: a integração com o webservice (API) paga do site www.receitaws.com.br

Para quem quer um serviço profissional e estável para seus clientes, recomendo implementar a versão da API paga, pois terá resposta imediata as requisições.

O código abaixo foi baseado em pesquisas na internet e alguns tópicos aqui no fórum. Adaptei a minha necessidade.

Lembrando que é necessário gerar um TOKEN para utilizar a API paga. Todas as consultas do seu sistema ficam registradas no seu painel e podem ser cobrados do seu cliente se você achar necessário.

Chega de conversa. Segue o código.

Recomendo criar uma biblioteca interna para facilitar a sua vida com as funções abaixo:

[code]function LimpaRetornoConsultaCNPJ($valor){
$valor = trim($valor);
$valor = str_replace(".", “”, $valor);
$valor = str_replace(",", “”, $valor);
$valor = str_replace("-", “”, $valor);
$valor = str_replace("/", “”, $valor);
$valor = str_replace("\", “”, $valor);
$valor = str_replace("(", “”, $valor);
$valor = str_replace(")", “”, $valor);
return $valor;
}

/* Integrar com ReceitaWS e trazer dados de acordo com CNPJ */

function BuscaDadosCNPJReceitaWS($cnpj, $token, $days){

$url = "https://receitaws.com.br/v1/cnpj/$cnpj/days/$days";

//Inicia o cURL
$ch = curl_init($url);

//Pede o que retorne o resultado como string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// TOKEN 
$authorization = "Authorization: Bearer $token";
curl_setopt($ch, CURLOPT_HTTPHEADER,  array('Content-Type: application/json' , $authorization ));
  
//Ignora certificado SSL
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);

//Manda executar a requisição
$data = curl_exec($ch);

//Fecha a conexão para economizar recursos do servidor
curl_close($ch);

//Retorna o resultado da requisição

return $data;

}[/code]

Depois no seu formulário, no campo CNPJ, crie um evento Ajax OnChange e coloque o código abaixo:

[code]

if (!empty({cnpj})){

// Consulta os dados da empresa atualizados nos últimos 30 dias
   $retorno_CNPJ = BuscaDadosCNPJReceitaWS({cnpj},'SEU TOKEN CRIADO', 30);

$obj = json_decode($retorno_CNPJ);

if ($obj->status=='ERROR'){
	sc_ajax_message($obj->message, "ERRO na consulta do CNPJ", "", "");
}else{

	{tipo} = $obj->tipo;
	{nome_fantasia} = $obj->fantasia;
	{razao_social} = $obj->nome;

	//Busca a atividade principal
	$atividade_principal = $obj->atividade_principal;
	foreach ($atividade_principal as $a) {
		{cnae_atividade_principal} = LimpaRetornoConsultaCNPJ($a->code);
		{descricao_atividade_principal} = $a->text;
		break;
	}

	//Busca as atividades secundárias
	$atividades_secundarias = $obj->atividades_secundarias;
	foreach ($atividades_secundarias as $a){
		{cnae_atividade_secundaria} = LimpaRetornoConsultaCNPJ($a->code);
		{descricao_atividade_secundaria} = $a->text;
		break;
	}

	{data_abertura} = sc_date_conv(LimpaRetornoConsultaCNPJ($obj->abertura),"ddmmaaaa","db_format");
	{natureza_juridica} = $obj->natureza_juridica;
	{logradouro} = $obj->logradouro;
	{numero} = $obj->numero;
	{complemento} = $obj->complemento;

	{cep} = LimpaRetornoConsultaCNPJ($obj->cep);

	{bairro} = $obj->bairro;
	{municipio} = $obj->municipio;
	{uf} = $obj->uf;
	{email} =  $obj->email;

	{telefone} = LimpaRetornoConsultaCNPJ($obj->telefone);

}

}[/code]

IMPORTANTE: este código é para utilizar a API PAGA do www.receitaws.com.br Para utilizar a versão gratuita tem alguns ajustes no código. Tem tópico no fórum que explica isto.

Temos esse vídeo feito pelo Jorge Popelnitski a tempos atrás demonstrando o exposto abaixo:

https://www.youtube.com/watch?v=fnq1wE-AWZM&t=418s

Sim Haroldo, muito show este vídeo do Jorge, não tinha visto ainda. Bem completo!

A única diferença que o meu tutorial é para utilizar a API COMERCIAL que tem algumas diferenças obrigatórias na chamado o WS como o TOKEN e obrigatoriedade do SSL.

Valeu Felipe!!!

Essa dica é muito boa, inclusive esse serviço elimina um dos gargalos de usar a consulta a própria receita federal, o captcha.

Continue nos brindando com essas dicas valiosas.

[]s

Grande Jorge!

Recomendo as pessoas também olharem o teu vídeo indicado pelo Haroldo, pois você faz ainda algo mais inteligente que é ver o tamanho da string para pegar apenas com 14 caracteres = CNPJ.

Vamos nos ajudando e evoluindo na ferramenta. Todo mundo ganha!

Abraço

você faz ainda algo mais inteligente

kkkkk

Nada de mais inteligente, só uma outra forma de ver a situação.
heheh

Boa tarde!
Vocês teriam alguma adaptação deste código para o Power Query? de tal forma a conseguir fazer a consulta direta pelo Excel?

Bom dia Leandro.

Conseguiu encontrar uma solução pra usar a API paga no Power Query? Também não estou conseguindo usar e até agora não encontrei uma solução.

@Leandro_Lucio e @Pamela_Borges

O site CNPJá possui esta ferramenta para usar a API de consultas ao CNPJ no Excel e Power Query: