Página 1 de 1

Consultar Receita Federal com CNPJ

Enviado: 25 Mai 2011 12:03
por billy1943
Por acaso alguém poderia informar o que devo alterar/incluir no fonte abaixo, que pretendo usar no Xharbour, para informado ou passado por parametro o CNPJ de uma empresa, ele entre no site da Receita Federal pelo IE, só necessitando depois digitar o "capcha" exigido ?

Código: Selecionar todos

#include "inkey.ch"

***************
FUNCTION main()
***************
parameter pcnpj
local oMapa, mcnpj, mweb
setmode(25,80)
setcolor('w+/b,g+/n,,,bg+/b' )
set cursor on
cls

do while .t.

   if pcount() == 0
      mcnpj := space(14)
   else
      mcnpj := pcnpj
   endif

   @ 05, 01 say "Consultar o CNPJ:"
   @ 07, 01 say "CNPJ.....:" get mcnpj picture "99999999999999"
   read

   if lastkey() == K_ESC
      exit
   endif

   try
   oMapa := GetActiveObject( "InternetExplorer.Application" )
   catch
   try
   oMapa := CreateObject( "InternetExplorer.Application" )
   catch
   Alert( "ERRO ! Internet Explorer nÆo dispon¡vel")
   return
   end
   end
   mweb := "http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/Cnpjreva_Solicitacao.asp" + mcnpj
   oMapa:Visible := .t.
   oMapa:Navigate( mweb )

enddo

set cursor off
return

Consultar Receita Federal com CNPJ

Enviado: 17 Jun 2011 11:42
por billy1943
Desculpe a insistência mas gostaria de contar com essa facilidade em meus sistemas, e, acho que também muitos colegas poderiam dela usufruir.

Reconheço que o meu aprendizado em Harbour/Xharbour é incipiente para descobrir o que está faltando ou está errado, mas deve haver colegas que poderiam colaborar tirando a dúvida que resume na passagem do parâmetro (CNPJ) e testar o link fornecido ao Internet Explorer.

Consultar Receita Federal com CNPJ

Enviado: 17 Jun 2011 19:02
por alaminojunior
Eu utilizo algo semelhante para consultar se a empresa é optante pelo Simples Nacional.
O link para consulta é: http://www8.receita.fazenda.gov.br/Simp ... Opcao.aspx
Porém, ainda não ví como passar o cnpj como parâmetro, então:
Antes de invocar o navegador na página do Simples, eu utilizo:

Código: Selecionar todos

COPYSTRINGTOCLIPBOARD(cnpj)
e na página do Simples, eu faço um CTRL+V.
Essa função me parece ser da HWGUI.

Consultar Receita Federal com CNPJ

Enviado: 18 Jun 2011 16:20
por sygecom
Estou a consulta da NFE pela chave do mesmo jeito que o colega Alamino falou, não consegui mais enviar por parâmetro.

Consultar Receita Federal com CNPJ

Enviado: 19 Jun 2011 20:46
por fladimir
Compartilho do anseio dos colegas por implementar coisas do tipo em nossos sistemas, já vi tais funcionalidades um sistema em Delphi q puxa da Receita federal via consulta de CPF ou CNPJ os dados e já abre a tela de cadastro do cliente ou fornecedor com os mesmos ai o cliente só confirma ou complementa, isso é muito legal se em delphi faz seria através de Dll????

Se for talvez consigamos utilizar em nossos sistemas....

Proponho ai afim de eluciar e resolver a questão proposta no tópico um acumulo de informações no sentido de que se alguém conhece uma solução mais direta, talvez dll ou outra, possa compartilhar.

Vou garimpar informações sobre as dlls do sistema q vi tal funcionalidade descrita acima, se eu conseguir algo posto aki.

Abraço e Sucesso a todos os nobres colegas!!!

:)Pos

Consultar Receita Federal com CNPJ

Enviado: 20 Jun 2011 10:42
por billy1943
Realmente o link informado pelo Alamino não permite passagem de parâmetros.

Agradeço o empenho dos colegas e vamos ver se alguém acha a solução porque já existem outras consultas a sites governamentais que ficam na dependência apenas do "captcha".

Consultar Receita Federal com CNPJ

Enviado: 20 Jun 2011 12:40
por Jairo Maia
Caros Colegas,

Não preciso dizer que sou iniciante em xHarbou/Harbour, e este fórum tem sido uma grande fonte de ajuda na minha empreitada na migração do clipeer para [x]HB.

Num sistema, quando vai cadastrar um cliente, após o campo que digita o CPF ou CNPJ, na validação consigo abrir o navegador (adaptei o ex. postado pelo Billy) para que o cliente digite o CPF/CNPJ para verificar se Regular/Ativo.

Vi a possibilidade de copiar para o ClipBoard e usar CTRL+V e digitar apenas o Captcha. Confesso que ainda não tenho a menor idéia de como fazê-lo, mas não é o caso por enquanto.

Porém,tem um exemplo no Reference Guide, que diz que é possível abrir o Google, preencher o campo query, e obter o resultado. Penso que talvez esse seja o caminho para melhorar a função.

O problema é que não consigo compilar para testar outros resultados. Tenho instalado o xHarbour que baixei da seção downloads (disponibilizado pelo colega Leonardo).

Para compilar, fiz da mesmo forma que com vários outros exemplos que precisei, ou seja, usando xBuild para criar o projeto, mas no exemplo especifico, não sei como configurar para compilar.

Procurando no fórum, encontrei apenas dois tópico com TipClientHTTP, um de junho/2008 e outro de dezembro/2010, mas abordam outras questões. Acompanhando este tópico, será que isto pode ajudar, ou nada a ver? Mesmo assim, como posso compilar este exemplo?:

Código: Selecionar todos

// The example loads the Google search page and enters "xHarbour" as
// query data. The response from Google for the query is stored in a local
// HTML file.

    PROCEDURE Main
       LOCAL oHttp, cHtml, hQuery

       oHttp:= TIpClientHttp():new( "http://www.google.de/search" )

       // build the Google query
       hQUery := Hash()
       hSetCaseMatch( hQuery, .F. )

       hQuery["q"]    := "xHarbour"
       hQuery["hl"]   := "en"
       hQuery["btnG"] := "Google+Search"

       // add query data to the TUrl object
       oHttp:oUrl:addGetForm( hQuery )

       // Connect to the HTTP server
       IF oHttp:open()
          // downlowad the Google response
          cHtml   := oHttp:readAll()
          Memowrit( "Google_xHarbour.html", cHtml )

          oHttp:close()
          ? Len(cHtml), "bytes received "
          ?? "and written to file Google_xHarbour.html"
       ELSE
          ? "Connection error:", oHttp:lastErrorMessage()
       ENDIF
    RETURN

Consultar Receita Federal com CNPJ

Enviado: 21 Jun 2011 11:13
por billy1943
Oi, Jairo Maia

Pela simples observação do fonte que você postou, nota-se que ele vai usar o Google da Alemanha (DE) para procurar em inglês (EN) as ocorrências de XHarbour.

Para links vou testar mas mesmo que ele responda positivo ficaria antiproducente somente pesquisar, pois seria mais fácil guardar o referido link da Receita em Favoritos e informar o CNPJ/CPF.

Consultar Receita Federal com CNPJ

Enviado: 22 Jun 2011 12:39
por Jairo Maia
Olá Billy,

Obrigado por sua atenção.
billy1943 escreveu:Pela simples observação do fonte que você postou, nota-se que ele vai usar o Google da Alemanha
Postei o exemplo exatamente como está no Reference Guide, mas o link é irrelevante. Ocorria que eu não estava conseguindo compilar, depois descobri que era "bobeira". A iéia era tentar passar CPF/CNPJ por paramêtro usando a idéia do exemplo. Mas não funciona para este proposito.
billy1943 escreveu:pois seria mais fácil guardar o referido link da Receita em Favoritos e informar o CNPJ/CPF.
Isto ocorre com meu sistema em Clipper. Agora, trabalhando a migração para Harbour, após digitar o CPF/CNPJ o Explorer abre a página para digitação.

Caros Colegas, passar o CNPJ por parametro é possivel. O que não consegui é fazer o cursor saltar o campo, precisa pressionar TAB, mas o navegador abre com o CNPJ no campo para apenas digitar o captcha.

Usando o exemplo do Billy, basta fazer as alterações abaixo:
1- Na linha do link, alterar Cnpjreva_Solicitacao por Cnpjreva_Solicitacao2 e remover o parametro.
2- acrescenar os comandos "?cnpj=" + mcnpj

Código: Selecionar todos

mweb := "http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/Cnpjreva_Solicitacao2.asp"
mweb += "?cnpj=" + mcnpj
Quanto ao CPF, ainda não consegui nenhum sucesso. Se eu tiver publico, se algum colega não conseguir antes. Acredito que se com CNPJ foi possível, deve ser também com o CPF.

Consultar Receita Federal com CNPJ

Enviado: 12 Jan 2015 11:26
por Kapiaba
Bom dia Jairo, tem alguma novidade para consultar o CPF?

Obg. abs.

Consultar Receita Federal com CNPJ

Enviado: 13 Jan 2015 19:31
por JoséQuintas
sobre o site de CNPJ, uso assim:

Código: Selecionar todos

FUNCTION SiteCnpjFazenda( cCnpj )
   LOCAL cUrl
   cUrl := [http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/Cnpjreva_Solicitacao2.asp?cnpj=] + ;
      StrZero( Val( cCnpj ), 14 )
   ShellExecuteOpen( cUrl )
   RETURN NIL
Mas no geral, uso o site da NFE, que retorna uma consulta mais completa, e automática.

Quanto a CPF, talvez o pessoal de páginas web ou php saibam como hackear.

Consultar Receita Federal com CNPJ

Enviado: 14 Jan 2015 09:10
por Jairo Maia
Olá Kapiaba,

Só agora vi sua mensagem. Mas a resposta é não. Nenhum sucesso com relação a CPF, e desisti.

Consultar Receita Federal com CNPJ

Enviado: 04 Jul 2022 10:11
por kovalsk
Depois de tantos anos me interessei em buscar o nome da pessoa pelo cpf ou os dados da empresa pelo cnpj, alguém conseguiu fazer isso automaticamente pelo Harbour?

Consultar Receita Federal com CNPJ

Enviado: 28 Set 2022 11:10
por clodoaldomonteiro
Uso o xHarbour e faço assim:

Código: Selecionar todos

////////////////////////////////////////////////////////////////////////////////
   //https://pctoledo.org/forum/viewtopic.php?f=43&p=155455#p155455
   //https://pctoledo.org/forum/viewtopic.php?f=4&t=23628 (com Header)
   //https://pctoledo.org/forum/viewtopic.php?f=4&t=17427 (usando a  hb_JSONDecode( cJSON, @hJSON ) )
   //https://nfe.io/docs/desenvolvedores/rest-api/consulta-de-cnpj-v1/ (para consultas)
Function CNPJ_Consulta( cCnpj )
   Local mSite := "http://receitaws.com.br/v1/cnpj/", oHttp, hCNPJA := Hash(), mJSONCNPJ, hJSON := Hash()
   //mSite := "https://publica.cnpj.ws/cnpj/" //mais completo

   If Len( cCnpj ) <> 14
      REturn NIL
   Endif

   Begin Sequence

      Try
         oHttp := CreateObject("MSXML2.ServerXMLHTTP")
         oHttp:Open("GET", mSite + cCNPJ, .F.)
         oHttp:send()
      CATCH oError
         msg := 'Internet Error: 010' + CRLF
         msg += 'Aviso..: Erro verificado ao fazer requisição de CNPJ no Site indicado.' + HB_Eol()
         msg += 'Site...:' + mSite + HB_Eol()
         msg += 'CNPJ...:' + cCNPJ + HB_Eol()
         msg += cl_getError(oError, .t.)

         msgError ( msg )

         hCNPJA := NIL

         Break
      End

      If Empty( oHttp:responseText )
         hCNPJA := NIL
         Break

      ElseIf '"ERROR"' $ oHttp:responseText  //Quando ele não encontra o CNPJ.
         msg := 'Request error: 015' + CRLF
         msg += 'Aviso..: O retorno da consulta de CNPJ está com erros.' + HB_Eol()
         msg += '- Aguarde um minuto e tente novamente.' + HB_Eol()
         msg += 'Site...:' + mSite + HB_Eol()
         msg += 'CNPJ...:' + cCNPJ + HB_Eol()
         msg += 'Response:' + oHttp:responseText + HB_Eol()
         msg += 'Status..:' + Str(oHttp:status, 3) + HB_Eol()
         msg += cl_getError(, .t.)

         MsgError ( msg, .t. )

         hCNPJA := NIL
         Break

      ElseIf 'Too many' $ oHttp:responseText   //Quando passa do limite de 3 consultas por minuto.
         msg := 'Request error: 020' + CRLF
         msg += 'Aviso..: Muitas tentativas de pesquisar CNPJ no Site indicado.' + HB_Eol()
         msg += '- Aguarde um minuto e tente novamente.' + HB_Eol()
         msg += 'Site...:' + mSite + HB_Eol()
         msg += 'CNPJ...:' + cCNPJ + HB_Eol()
         msg += 'Response:' + oHttp:responseText + HB_Eol()
         msg += 'Status..:' + Str(oHttp:status, 3) + HB_Eol()

         MsgAtencao ( msg )

         hCNPJA := NIL
         Break
      Endif

      mJSONCNPJ   := HB_AnsiToOem(oHttp:responseText)

      ADOStringGrava(mJSONCNPJ + CRLF)

      hCNPJA      := JSontoHash( mJSONCNPJ )

      oHttp       := NIL

   End Sequence

   Return hCNPJA
   
   /////////////////////////////////////////////////////////////////////////////
Function cl_NulToString( cString )
   cString := If(cString = NIL, '', cString )
   Return cString


Function JSonToHash( cStringJson )
   /***
   * Converte string formato Json em Hash
   */
   Local hJson := {=>}

   cStringJson := StrTran( cStringJson, ':[','=>{')
   cStringJson := StrTran( cStringJson, '":"','" => "')
   cStringJson := StrTran( cStringJson, '[','{')
   cStringJson := StrTran( cStringJson, ']','}')
   cStringJson := StrTran( cStringJson, '":null','"=>nil')
   cStringJson := StrTran( cStringJson, '":true' ,'"=>.t.' )
   cStringJson := StrTran( cStringJson, '":false','"=>.f.')
   cStringJson := StrTran( cStringJson, '":','"=>')
   cStringJson := StrTran( cStringJson, "\/","/" )

   hJSon := &( cStringJson )

   Return hJson


   /////////////////////////////////////////////////////////////////////////////
Function cl_LimpaString( cString )
   Local mRetorno

   mRetorno := StrTran( cString, '.', '' )
   mRetorno := StrTran( mRetorno, '-', '' )
   mRetorno := StrTran( mRetorno, '/', '' )
   mRetorno := StrTran( mRetorno, '\', '' )
   mRetorno := StrTran( mRetorno, ',', '' )

   Return mRetorno

Tem várias APIs .ws, que efertam consulta a CNPJ, limitando a 3 por minuto, consulta de cada cliente, mas se vc fizer um For Next, em que a rotina pesquisa no primeiro e se vier a mensagem que extrapolou o contador, pula pro próximo serviço, até chegar num que consiga, (Dica do amigo Ricardo JR aqui da empresa).
Foi dica de um amigo, Emilio Lemos, do RN.
E agradeço aos amigos aqui do grupo, pois pesquisei em alguns posts, pra fazer ajustes.
Usei algumas funções minhas, mas é só substituir pelas suas.