{"id":450,"date":"2016-07-28T11:41:16","date_gmt":"2016-07-28T14:41:16","guid":{"rendered":"http:\/\/www.l2maker.com.br\/documentacao\/?p=450"},"modified":"2021-11-23T18:04:48","modified_gmt":"2021-11-23T21:04:48","slug":"cf-e-emitindo-cupom-fiscal-vai-sat","status":"publish","type":"post","link":"https:\/\/www.l2maker.com.br\/documentacao\/2016\/07\/cf-e-emitindo-cupom-fiscal-vai-sat\/","title":{"rendered":"CF-e: Emitindo cupom fiscal via SAT"},"content":{"rendered":"<p>A seguir est\u00e3o descritos os passos para trabalho com o CF-e SAT.<\/p>\n<h1>Configura\u00e7\u00e3o do equipamento<\/h1>\n<p>O primeiro passo \u00e9 certificar-se que o aparelho est\u00e1 instalado e devidamente configurado na m\u00e1quina do usu\u00e1rio. As rotinas s\u00e3o compat\u00edveis com equipamentos fisicos e\/ou o emulador.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>Qualquer tipo de suporte a instala\u00e7\u00e3o e\/ou configura\u00e7\u00e3o do equipamento deve ser contratado \u00e0 parte. N\u00e3o sendo parte do suporte a API.<\/strong><\/span><\/p>\n<p>Obs: \u00c9 importante conhecer a documenta\u00e7\u00e3o do projeto:<br \/>\n<a href=\"https:\/\/portal.fazenda.sp.gov.br\/servicos\/sat\/Downloads\/Especificacao_SAT_v_ER_2_28_05.pdf\" target=\"_blank\" rel=\"noopener\">https:\/\/portal.fazenda.sp.gov.br\/servicos\/sat\/Downloads\/Especificacao_SAT_v_ER_2_28_05.pdf<\/a><\/p>\n<h2>Configurando a DLL do SAT<\/h2>\n<p>O Webrun deve ter acesso \u00e0 DLL do SAT do respectivo equipamento ou emulador para efetuar a comunica\u00e7\u00e3o. Isso pode ser feito de duas formas:<\/p>\n<ol>\n<li>Asicionando a pasta da DLL do SAT no PATH do sistema operacional;<\/li>\n<li>Copiando a DLL para uma das pastas no PATH. EX:\n<ol>\n<li>Windows com <strong>Java 32 bits<\/strong>:\n<ol>\n<li>C:\\Windows\\System32\\<\/li>\n<li>C:\\SAT\\x32\\<\/li>\n<\/ol>\n<\/li>\n<li>Windows com<strong> Java 64 bits<\/strong>:\n<ol>\n<li>C:\\Windows\\SysWOW64\\<\/li>\n<li>C:\\SAT\\x64\\<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>Adicione as bibliotecas do JNA (acesso a DLL nativa) do Java no Agente, copiar as bibliotecas para a pasta &#8220;<strong>\\apis\\sefaz<\/strong>&#8221; dentro do agente. Os arquivos podem ser obtidos em no Zip da API, na pasta: &#8220;<strong>IMPRESSORAS\\Java <span style=\"color: #ff0000;\">x64<\/span>\\Maker.Commons\\WEB-INF\\lib<\/strong>&#8220;.<\/li>\n<\/ol>\n<h4>Camada cliente<\/h4>\n<p>O agente deve utilizar o Java 32 ou 64 bits de acordo com a vers\u00e3o da DLL fornecida pelo fabricante do equipamento ou emulador.<\/p>\n<h4>Importante<\/h4>\n<p>A DLL deve ter o nome &#8220;<span style=\"color: #003366;\"><strong>SAT.dll<\/strong><\/span>&#8220;, no caso da Bematech por exemplo a DLL por padr\u00e3o vem com o nome &#8220;BemaSAT64.dll&#8221; (vers\u00e3o de 64 bits), ela deve ser renomeada para o nome &#8220;SAT.dll&#8221; e colocada na pasta correta. \u00c9 <strong>importante observar se o Java \u00e9 32 ou 64 bits<\/strong>. Em caso de d\u00favida sobre a vers\u00e3o do Java que o agente utiliza abra o Prompt de Comando (cmd.exe) e digite:<\/p>\n<blockquote><p>java -version<\/p><\/blockquote>\n<p>Observe na sa\u00edda a vers\u00e3o do Java para identificar se \u00e9 32 ou 64 bits, para a camada servidor (Tomcat) observe a vers\u00e3o do Tomcat.<\/p>\n<h2>Gerando o c\u00f3digo de ativa\u00e7\u00e3o<\/h2>\n<p>Para gerar o c\u00f3digo de ativa\u00e7\u00e3o utilize a fun\u00e7\u00e3o\u00a0&#8220;<strong>SEFAZ SAT &#8211; Gerar C\u00f3digo de Vincula\u00e7\u00e3o<\/strong>&#8220;, o primeiro par\u00e2metro \u00e9 um conector, como os utilizados nas fun\u00e7\u00f5es do SEFAZ para NF-e\/NFC-e. Os demais par\u00e2metros s\u00e3o os n\u00fameros\u00a0dos CNPJs envolvidos, a fun\u00e7\u00e3o ir\u00e1 retornar a assinatura (344 caracteres).<\/p>\n<h1>Verificando a comunica\u00e7\u00e3o<\/h1>\n<p>Para testar a comunica\u00e7\u00e3o b\u00e1sica com o SAT utilize a fun\u00e7\u00e3o &#8220;<strong>SEFAZ SAT &#8211; Consultar SAT<\/strong>&#8220;, com o par\u00e2metro &#8220;numeroSessao&#8221; igual a 0 (ZERO).<\/p>\n<h1>Gerado um CF-e<\/h1>\n<ol>\n<li>Use a fun\u00e7\u00e3o &#8220;<strong>SEFAZ SAT &#8211; Criar XML do CF-e<\/strong>&#8221; para iniciar a cria\u00e7\u00e3o do XML do CF-e:\n<ol>\n<li>CNPJ da software house desenvolvedora do sistema;<\/li>\n<li>Numero do caixa: Tag &#8220;&lt;numeroCaixa&gt;&#8221;;<\/li>\n<li>signAC &#8211; Assinatura de (CNPJ Software House + CNPJ do emitente) que gerou o CF-e-SAT;<\/li>\n<li>Vers\u00e3o dos dados (&#8220;0.07&#8221;, &#8220;0.08&#8221;).<\/li>\n<\/ol>\n<\/li>\n<li>Adicione os dados usando a fun\u00e7\u00e3o &#8220;<strong>SEFAZ NF-e &#8211; Adicionar Elemento ao XML<\/strong>&#8221; (Observe que esta fun\u00e7\u00e3o est\u00e1 no grupo geral da SEFAZ);<\/li>\n<li>Ap\u00f3s adicionar todas as tags utilize a fun\u00e7\u00e3o &#8220;<strong>SEFAZ SAT &#8211; Obter XML do CF-e<\/strong>&#8221; para obter o XML a ser enviado para o SAT. EXEMPLO:\n<pre><span class=\"cp\">&lt;?xml version=\"1.0\"?&gt;<\/span>\n<span class=\"nt\">&lt;CFe&gt;<\/span>\n  <span class=\"nt\">&lt;infCFe<\/span> <span class=\"na\">versaoDadosEnt=<\/span><span class=\"s\">\"0.07\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\">&lt;ide&gt;<\/span>\n      <span class=\"nt\">&lt;CNPJ&gt;<\/span>18590980000195<span class=\"nt\">&lt;\/CNPJ&gt;<\/span>\n      <span class=\"nt\">&lt;signAC&gt;<\/span>***ASSINATURA***<span class=\"nt\">&lt;\/signAC&gt;<\/span>\n      <span class=\"nt\">&lt;numeroCaixa&gt;<\/span>001<span class=\"nt\">&lt;\/numeroCaixa&gt;<\/span>\n    <span class=\"nt\">&lt;\/ide&gt;<\/span>\n    <span class=\"nt\">&lt;emit&gt;<\/span>\n      <span class=\"nt\">&lt;CNPJ&gt;<\/span>11222333000199<span class=\"nt\">&lt;\/CNPJ&gt;<\/span>\n      <span class=\"nt\">&lt;IE&gt;<\/span>111111111111<span class=\"nt\">&lt;\/IE&gt;<\/span>\n      <span class=\"nt\">&lt;IM&gt;<\/span>12345<span class=\"nt\">&lt;\/IM&gt;<\/span>\n      <span class=\"nt\">&lt;cRegTribISSQN&gt;<\/span>3<span class=\"nt\">&lt;\/cRegTribISSQN&gt;<\/span>\n      <span class=\"nt\">&lt;indRatISSQN&gt;<\/span>N<span class=\"nt\">&lt;\/indRatISSQN&gt;<\/span>\n    <span class=\"nt\">&lt;\/emit&gt;<\/span>\n    <span class=\"nt\">&lt;dest\/&gt;<\/span>\n    <span class=\"nt\">&lt;det<\/span> <span class=\"na\">nItem=<\/span><span class=\"s\">\"1\"<\/span><span class=\"nt\">&gt;<\/span>\n      <span class=\"nt\">&lt;prod&gt;<\/span>\n        <span class=\"nt\">&lt;cProd&gt;<\/span>123<span class=\"nt\">&lt;\/cProd&gt;<\/span>\n        <span class=\"nt\">&lt;cEAN&gt;<\/span>9990000000000<span class=\"nt\">&lt;\/cEAN&gt;<\/span>\n        <span class=\"nt\">&lt;xProd&gt;<\/span>API DA L2MAKER<span class=\"nt\">&lt;\/xProd&gt;<\/span>\n        <span class=\"nt\">&lt;CFOP&gt;<\/span>9900<span class=\"nt\">&lt;\/CFOP&gt;<\/span>\n        <span class=\"nt\">&lt;uCom&gt;<\/span>UN<span class=\"nt\">&lt;\/uCom&gt;<\/span>\n        <span class=\"nt\">&lt;qCom&gt;<\/span>1.0000<span class=\"nt\">&lt;\/qCom&gt;<\/span>\n        <span class=\"nt\">&lt;vUnCom&gt;1<\/span>.00<span class=\"nt\">&lt;\/vUnCom&gt;<\/span>\n        <span class=\"nt\">&lt;indRegra&gt;<\/span>A<span class=\"nt\">&lt;\/indRegra&gt;<\/span>\n      <span class=\"nt\">&lt;\/prod&gt;<\/span>\n      <span class=\"nt\">&lt;imposto&gt;<\/span>\n        <span class=\"nt\">&lt;ICMS&gt;<\/span>\n          <span class=\"nt\">&lt;ICMSSN102&gt;<\/span>\n            <span class=\"nt\">&lt;Orig&gt;<\/span>0<span class=\"nt\">&lt;\/Orig&gt;<\/span>\n            <span class=\"nt\">&lt;CSOSN&gt;<\/span>500<span class=\"nt\">&lt;\/CSOSN&gt;<\/span>\n          <span class=\"nt\">&lt;\/ICMSSN102&gt;<\/span>\n        <span class=\"nt\">&lt;\/ICMS&gt;<\/span>\n        <span class=\"nt\">&lt;PIS&gt;<\/span>\n          <span class=\"nt\">&lt;PISSN&gt;<\/span>\n            <span class=\"nt\">&lt;CST&gt;<\/span>49<span class=\"nt\">&lt;\/CST&gt;<\/span>\n          <span class=\"nt\">&lt;\/PISSN&gt;<\/span>\n        <span class=\"nt\">&lt;\/PIS&gt;<\/span>\n        <span class=\"nt\">&lt;COFINS&gt;<\/span>\n          <span class=\"nt\">&lt;COFINSSN&gt;<\/span>\n            <span class=\"nt\">&lt;CST&gt;<\/span>49<span class=\"nt\">&lt;\/CST&gt;<\/span>\n          <span class=\"nt\">&lt;\/COFINSSN&gt;<\/span>\n        <span class=\"nt\">&lt;\/COFINS&gt;<\/span>\n      <span class=\"nt\">&lt;\/imposto&gt;<\/span>\n    <span class=\"nt\">&lt;\/det&gt;<\/span>\n    <span class=\"nt\">&lt;total\/&gt;<\/span>\n    <span class=\"nt\">&lt;pgto&gt;<\/span>\n      <span class=\"nt\">&lt;MP&gt;<\/span>\n        <span class=\"nt\">&lt;cMP&gt;<\/span>01<span class=\"nt\">&lt;\/cMP&gt;<\/span>\n        <span class=\"nt\">&lt;vMP&gt;1<\/span>.00<span class=\"nt\">&lt;\/vMP&gt;<\/span>\n      <span class=\"nt\">&lt;\/MP&gt;<\/span>\n    <span class=\"nt\">&lt;\/pgto&gt;<\/span>\n  <span class=\"nt\">&lt;\/infCFe&gt;<\/span>\n<span class=\"nt\">&lt;\/CFe&gt;<\/span><\/pre>\n<\/li>\n<li>Utilize a fun\u00e7\u00e3o &#8220;<strong>SEFAZ SAT &#8211; Enviar Dados Venda<\/strong>&#8221; para solicitar a emiss\u00e3o do CF-e pelo SAT:\n<ol>\n<li>numeroSessao \u00a0&#8211; Deixe 0 (ZERO) para gerar automatico;<\/li>\n<li>C\u00f3digo de ativa\u00e7\u00e3o do equipamento, definido durante a ativa\u00e7\u00e3o;<\/li>\n<li>XML (Letras) gerado.<\/li>\n<\/ol>\n<\/li>\n<li>OBS: Voc\u00ea tamb\u00e9m pode passar esse mesmo XML para a fun\u00e7\u00e3o de testes &#8220;<strong>SEFAZ SAT &#8211; Teste Fim-A-Fim<\/strong>&#8221;\u00a0se desejar apenas verificar o funcionamento.<\/li>\n<li>O retorno dessa fun\u00e7\u00e3o ser\u00e1 um mapa com a situa\u00e7\u00e3o da opera\u00e7\u00e3o e o XML assinado (em caso de sucesso);<\/li>\n<li>Se o XML foi assinado voc\u00ea poder\u00e1 emitir usando as <a href=\"https:\/\/www.l2maker.com.br\/documentacao\/2016\/07\/imprimindo-um-documento-fiscal-cf-e-nfc-e\/\">fun\u00e7\u00f5es de impress\u00e3o<\/a>.<\/li>\n<\/ol>\n<h1>Cancelando um CF-e<\/h1>\n<ol>\n<li>Utilize a fun\u00e7\u00e3o &#8220;<strong>SEFAZ SAT &#8211; Montar XML de Cancelamento da Venda<\/strong>&#8221;\u00a0fornecendo os seguintes par\u00e2metros:\n<ol>\n<li>cnpj<\/li>\n<li>numeroCaixa<\/li>\n<li>chCanc &#8211; A chave de cancelamento pode ser obtido no item &#8220;chaveConsulta&#8221; do Mapa retornado na venda.<\/li>\n<li>signAC<\/li>\n<\/ol>\n<\/li>\n<li>Salve o XML retornado na fun\u00e7\u00e3o anterior numa vari\u00e1vel do tipo letras;<\/li>\n<li>Chame a fun\u00e7\u00e3o &#8220;<strong>SEFAZ SAT &#8211; Cancelar \u00daltima Venda<\/strong>&#8221; passando os seguintes par\u00e2metros:\n<ol>\n<li>numeroSessao &#8211; N\u00famero de sess\u00e3o<\/li>\n<li>codigoDeAtivacao &#8211; Chave de ativa\u00e7\u00e3o do equipamento.<\/li>\n<li>chave &#8211; Chave do CF-e que ser\u00e1 cancelado;<\/li>\n<li>dadosCancelamento &#8211; Este \u00e9 o XML gerado anteriormente.<\/li>\n<\/ol>\n<\/li>\n<li>No retorno vir\u00e3o algumas informa\u00e7\u00f5es no formato de mapa, leia os itens &#8220;mensagem&#8221; e &#8220;CCCC&#8221; para identificar se a opera\u00e7\u00e3o teve sucesso;<\/li>\n<li>Observe o XML retornado no item &#8220;arquivoCFeBase64&#8221; nele constar\u00e1 os dados do cancelamento se for bem sucedido.<\/li>\n<\/ol>\n<p><b>Emulador off-line do SAT<\/b><\/p>\n<p>Emulador off-line do SAT &#8211;\u00a0http:\/\/www.fazenda.sp.gov.br\/sat\/downloads\/vigentes.asp<\/p>\n<h1>Problemas na comunica\u00e7\u00e3o com o equipamento<\/h1>\n<p>O projeto do SAT prev\u00ea que o fabricante forneca uma DLL compat\u00edvel. Assim, n\u00e3o deve(ria) haver diverg\u00eancias entre equipamentos:<\/p>\n<ul>\n<li data-wpview-marker=\"http%3A%2F%2Fwww.oobj.com.br%2Fbc%2Farticle%2Ferro-na-abertura-da-porta-de-comunicacao-com-o-sat-de-desenvolvimento-bematech-rb-1000-fi-como-resolver-452.html\">Bematech: http:\/\/www.oobj.com.br\/bc\/article\/erro-na-abertura-da-porta-de-comunicacao-com-o-sat-de-desenvolvimento-bematech-rb-1000-fi-como-resolver-452.html<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A seguir est\u00e3o descritos os passos para trabalho com o CF-e SAT. Configura\u00e7\u00e3o do equipamento O primeiro passo \u00e9 certificar-se que o aparelho est\u00e1 instalado e devidamente configurado na m\u00e1quina do usu\u00e1rio. As rotinas s\u00e3o compat\u00edveis com equipamentos fisicos e\/ou o emulador. Qualquer tipo de suporte a instala\u00e7\u00e3o e\/ou configura\u00e7\u00e3o do equipamento deve ser contratado [&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,4],"tags":[78,82,79,11,49],"class_list":["post-450","post","type-post","status-publish","format-standard","hentry","category-documentacao","category-nfe-cte-danfe","tag-cf-e","tag-cumpom","tag-sat","tag-sefaz","tag-xml"],"_links":{"self":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts\/450","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=450"}],"version-history":[{"count":25,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts\/450\/revisions"}],"predecessor-version":[{"id":2285,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts\/450\/revisions\/2285"}],"wp:attachment":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/media?parent=450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/categories?post=450"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/tags?post=450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}