Requisitos RFW.SEFAZ

De Wiki do Leitão
Revisão de 00h07min de 14 de fevereiro de 2025 por Rodrigogml (discussão | contribs)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

Requisitos

Objetivo Principal

O objetivo deste módulo é permitir uma integração transparente com os serviços da SEFAZ (WebServices) de forma mais transparente possível e integrada ao framework RFW para facilitar sua utilização.


Para atingir este objetivo o módulo fornece objetos com a estrutura de dados defina nos Schemas dos XMLs da SEFAZ. Desta forma o desenvolvedor pode abstrair toda a preocupação escrita e tratamento do XML. O módulo recebe esses objetos e faz toda a conversão e comunicação com a SEFAZ internamente.

Status do Desenvolvimento

Métodos Implementados

  • WebServices Suportados
    • Homologação SP
    • Produção SP


  • Métodos Implementados
    • consultaCadastro - Layout v2.00
    • nfeAutorizacaoLote - Layout v4.00
    • nfeRetAutorizacao - Layout v4.00
    • nfeStatusServicoNF - Layout v4.00


Pendêncis da Implementação (Próximos passos e melhorias)

  • Próximos Passos de Implementação:
  1. Implementar suporte aos demais servidores
  2. Implementação dos métodos restantes:
    • nfeAutorizacaoLoteZip

Objetos de Representação do XML

Os objetos que representam as tags do XML são criados com o JAXB a partir do Schema fornecido pela própria SEFAZ.


Note 64.png
Diferenças Entre os Nomes das Tags e Classes
Quando o JAXB gera os arquivos a partir do Schema ele utiliza os nomes dos "tipos" definidos pelo Schema para batizar o objeto ao invés do nome da Tag.

Por isso é comum termos os nomes das classes precedidas com a letra "T" (embora não seja uma regra), já que a SEFAZ batiza o 'type' dentro do schema com o mesmo nome da tag precedida da letra 'T".


Resumo de Informações que Você Deve Saber

Estrutura das Tags da NFe

Definição do Documento Fiscal

  • A estrutura de informações de uma NFe é inteiramente escrita dentro de uma tag <NFe>, e a documentação do seu conteúdo está descrito no Anexo I do Manual de Orientações ao Contribuinte (MOC).
    • Dentro dessa estrutura existem duas tags: <infNFe> e <Signature> que respecitivamente contém as informações do documento fiscal, e a assinatura digital dos dados dessa nota.

A estrutura simplificada fica assim:

<NFe>
   <infNFe>
      [dados da NFe]
   </infNFe>
   <Signature>
      [assinatura digital]
   </Signature>
</NFe> 


Envio da NFe para Autorização

Para solicitar a autorização da NFe no WebService da SEFAZ enviamos a tag <NFe> encapsulada dentro da tag <enviNFe>, que aceita uma lista de até 50 tags <NFe> para autorização em Lote. Montando a seguinte estrutura:

<enviNFe>
   <NFe>
      <infNFe>
         [dados da NFe]
      </infNFe>
      <Signature>
         [assinatura digital]
      </Signature>
   </NFe> 
   <NFe>
      <infNFe>
         [dados da NFe]
      </infNFe>
      <Signature>
         [assinatura digital]
      </Signature>
   </NFe> 
   ...
</enviNFe>

No método assíncrono, temos de consultar a autorização do lote com outro método do WebService, cujo retorno tem a seguinte estrutura:

<retConsReciNFe>
   <protNFe>
      [protocolo de autorização da NFe]
   </protNFe>
   <protNFe>
      [protocolo de autorização da NFe]
   </protNFe>
   ...
</retConsReciNFe>

Note que há uma tag <protNFe> para cada tag <NFe> enviada para autorização.


Layout de Distribuição

Por fim, o Manual de Orientações ao Contribuinte, define o Layout de Distribuição. Este layout define como os arquivos .XML da NFe devem ser compatilhado entre as pontas. E sua estrutura, de forma simplificada, é a seguinte:


<nfeProc>
   <NFe>
      <infNFe>
         [dados da NFe]
      </infNFe>
      <Signature>
         [assinatura digital]
      </Signature>
   </NFe> 
   <protNFe>
      [protocolo de autorização da NFe]
   </protNFe>
</nfeProc>


Note que o arquivo final .XML da NFe contém a tag <NFe> com a assinatura que foi enviada no começo para a autorização, seguida da tag <protNFe> que contém os dados da sua autorização.