{"id":679,"date":"2016-11-16T18:46:56","date_gmt":"2016-11-16T21:46:56","guid":{"rendered":"http:\/\/www.l2maker.com.br\/documentacao\/?p=679"},"modified":"2024-04-30T14:03:36","modified_gmt":"2024-04-30T17:03:36","slug":"criando-um-conector-para-comunicacao-atraves-da-api-da-sefaz","status":"publish","type":"post","link":"https:\/\/www.l2maker.com.br\/documentacao\/2016\/11\/criando-um-conector-para-comunicacao-atraves-da-api-da-sefaz\/","title":{"rendered":"Criando um conector para comunica\u00e7\u00e3o atrav\u00e9s da API da SEFAZ"},"content":{"rendered":"<p>O conector \u00e9 o meio de comunica\u00e7\u00e3o entre a API e o servidor da SEFAZ, sempre que for consultar ou enviar dados de\/para a SEFAZ voc\u00ea precisar\u00e1 iniciar um conector. Entre outras coisas ele \u00e9 respons\u00e1vel pela\u00a0autentica\u00e7\u00e3o entre os dois lados da comunica\u00e7\u00e3o.<\/p>\n<p>Para criar um novo conector utilize a fun\u00e7\u00e3o &#8220;<strong>SEFAZ &#8211; Criar Conex\u00e3o<\/strong>&#8221; com os seguintes par\u00e2metros:<\/p>\n<ol>\n<li>UF &#8211; Sigla (ou c\u00f3digo do IBGE) da SEFAZ que ir\u00e1 receber a comunica\u00e7\u00e3o (A UF da SEFAZ que o fornecedor\/vendedor\/emissor tem inscri\u00e7\u00e3o estadual. Independente do WebService\/Autorizador, somente a sigla. EX: BA, PE, SP, RS&#8230;);<\/li>\n<li>Ambiente &#8211; Se for verdadeiro indica o ambiente de produ\u00e7\u00e3o, falso de homologa\u00e7\u00e3o (testes);<\/li>\n<li>Tipo de certificado:\n<ul>\n<li><strong>A1<\/strong> &#8211; \u00c9 o formato mais simples e funciona na camada cliente ou servidor.<\/li>\n<li><strong>A3<\/strong> &#8211; Utiliza uma DLL (ou .SO) compat\u00edvel com o padr\u00e3o PKCS#11, cada fabricante de hardware (token\/leitor) fornece as DLLs e suas configura\u00e7\u00f5es.<\/li>\n<li><strong>MsCapi<\/strong> &#8211; Esse recurso utiliza o driver da Microsoft, utilizando o mesmo driver que muitos navegadores utilizam para acessar o certificado (est\u00e1 dispon\u00edvel no Windows apenas).<\/li>\n<\/ul>\n<\/li>\n<li>Certificado &#8211; Depende do tipo:\n<ul>\n<li><strong>A1<\/strong> &#8211; Se for A1 deve-se passar o caminho completo (EX: &#8220;C:\\CERTIFICADO\\meu.pfx&#8221;), tenha certeza que o usu\u00e1rio do servidor de aplica\u00e7\u00e3o (Tomcat) tenha acesso \u00e0 pasta, e que o caminho foi passado corretamente. De acordo com o servidor o nome pode ser case sensitive.<\/li>\n<li><strong>A3<\/strong> &#8211; Deve ser passado os dados de configura\u00e7\u00e3o da DLL do token ou cart\u00e3o criptogr\u00e1fico compat\u00edvel com o padr\u00e3o PKCS#11. Algumas dicas podem ser obtidas neste t\u00f3pico:\u00a0Configura\u00e7\u00e3o de certificados A3 via PKCS#11 Para utiliza\u00e7\u00e3o do certificado. o suporte n\u00e3o cobre a insta\u00e7\u00e3o e configura\u00e7\u00e3o do certificado no Java. Se necess\u00e1rio\u00a0entre em contato com o fornecedor do equipamento para mais informa\u00e7\u00f5es.<\/li>\n<li><strong>MsCapi<\/strong> &#8211; Informar o nome do certificado, ou\u00a0a palavra &#8220;AUTO:&#8221; seguida por parte do nome do certificado, por exemplo o CNPJ. EX: &#8220;<strong><span style=\"color: #000080;\">AUTO<span style=\"color: #ff0000;\">:<\/span><\/span><\/strong><span style=\"color: #008000;\"><strong>18590980000195<\/strong><\/span>&#8220;, assim ser\u00e1 retornado o primeiro certificado que tenha esse CNPJ no nome. Neste caso n\u00e3o h\u00e1 um arquivo fisico, e sim um certificado instalado no compuador, no caso de e-CNPJ normalmente ele \u00e9 identificado pelo &#8220;NOME:CNPJ&#8221;.<\/li>\n<\/ul>\n<\/li>\n<li>Senha &#8211; Senha do certificado.<\/li>\n<\/ol>\n<h1>Alternando entre as vers\u00f5es do servi\u00e7o<\/h1>\n<p>Para alternar entre as diferentes vers\u00f5es do servi\u00e7o chame a fun\u00e7\u00e3o &#8220;SEFAZ &#8211; Definir Vers\u00e3o&#8221; passando o conector e a vers\u00e3o desejada. Ex:\u00a0<strong>SEFAZ &#8211; Definir Vers\u00e3o(conector, &#8220;<span style=\"color: #ff0000;\">4.00<\/span>&#8220;)<\/strong>;<\/p>\n<h1>Passos extras<\/h1>\n<p>Alguns certificados podem apresentar pequenas varia\u00e7\u00f5es, como n\u00e3o ter o nome e CNPJ do emitente, ou ser de uma cadeia de certifica\u00e7\u00e3o n\u00e3o reconhecida pelo Java. Para corrigir essas discrep\u00e2ncias existem algumas fun\u00e7\u00f5es auxiliares que devem ser chamadas logo ap\u00f3s criar o conector.<\/p>\n<h4><strong>SEFAZ &#8211; Definir dados do emissor<\/strong><\/h4>\n<p>Utilize quando o certificado n\u00e3o\u00a0retornar ou contiver o nome e\/ou CNPJ do\u00a0certificado corretamente. Atrav\u00e9s dessa fun\u00e7\u00e3o ser\u00e1 for\u00e7ado esses\u00a0 dados diretamente, sem levar em considera\u00e7\u00e3o o que est\u00e1 no\u00a0 certificado.<\/p>\n<p><span style=\"color: #ff0000;\">OBS:<span style=\"color: #000000;\"> Na camada cliente a fun\u00e7\u00e3o retorna o conector modificado. Na camada servidor ela tem efeito colateral.<\/span><\/span><\/p>\n<h4><strong>SEFAZ &#8211; Definir Tipo de Servi\u00e7o<\/strong><\/h4>\n<p>Utilize esta fun\u00e7\u00e3o para trocar o servi\u00e7o para &#8220;<strong>NFCE<\/strong>&#8220;, &#8220;<strong>MDFE<\/strong>&#8220;, &#8220;<strong>GNRE<\/strong>&#8221; ou &#8220;<strong>NFE<\/strong>&#8221; (padr\u00e3o). Caso contr\u00e1rio voc\u00ea pode receber um erro (c\u00f3digo 450), informando que n\u00e3o era esperado c\u00f3digo diferente de &#8220;55&#8221; ou similar. Por padr\u00e3o o conector \u00e9 criado para NF-e (modelo 55). Ap\u00f3s chamar essa fun\u00e7\u00e3o todas as chamadas subsequentes a ela usar\u00e3o os webservices do servi\u00e7o determinado.<\/p>\n<h4><strong>SEFAZ \u2013 Definir Servidor<\/strong><\/h4>\n<p>Usado para determinar qual servidor vai receber a requisi\u00e7\u00e3o, especialmente quando o servi\u00e7o existe no Ambiente Nacional (<strong>AN<\/strong>), ou para entrar em conting\u00eancia. Se n\u00e3o informado, ele ir\u00e1 usar o servidor padr\u00e3o da UF.<\/p>\n<h4><strong>SEFAZ &#8211; Definir TrustStore<\/strong><\/h4>\n<p>Utilize quando houver problemas no reconhecimento do certificado na comunica\u00e7\u00e3o (Erro 403).<\/p>\n<h1>Observa\u00e7\u00f5es<\/h1>\n<p>Um conector criado na camada cliente pode ser passado para camada servidor para cria\u00e7\u00e3o do(s) XML(s) da NF-e por exemplo. Esse recurso visa facilitar a montagem dos XMLs j\u00e1 que normalmente os dados est\u00e3o no banco de dados que s\u00f3 est\u00e1 dispon\u00edvel na camada servidor.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O conector \u00e9 o meio de comunica\u00e7\u00e3o entre a API e o servidor da SEFAZ, sempre que for consultar ou enviar dados de\/para a SEFAZ voc\u00ea precisar\u00e1 iniciar um conector. Entre outras coisas ele \u00e9 respons\u00e1vel pela\u00a0autentica\u00e7\u00e3o entre os dois lados da comunica\u00e7\u00e3o. Para criar um novo conector utilize a fun\u00e7\u00e3o &#8220;SEFAZ &#8211; Criar Conex\u00e3o&#8221; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[47],"tags":[],"class_list":["post-679","post","type-post","status-publish","format-standard","hentry","category-documentacao"],"_links":{"self":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts\/679","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/comments?post=679"}],"version-history":[{"count":24,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts\/679\/revisions"}],"predecessor-version":[{"id":3479,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts\/679\/revisions\/3479"}],"wp:attachment":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/media?parent=679"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/categories?post=679"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/tags?post=679"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}