Integração SAP

Usar o FinzioFiscal no lugar do SAP NF-e Cloud (DRC): o SAP transmite as notas ao Finzio trocando apenas o endereço e o perfil de autenticação da filial.

Resumo: sem ABAP, só configuração

Seu SAP emite pelo FinzioFiscal no lugar do SAP NF-e Cloud (DRC): a configuração do DRC continua, e a filial só troca o endereço do serviço, o perfil OAuth e o certificado, sem alterar programa ABAP.

O que muda

  • Endereço do serviço: o host do FinzioFiscal na filial (destino RFC e J_1BNFE_CUST4)
  • Perfil OAuth 2.0 (SOAUTH2) com o Client ID e o Client Secret do conector
  • Certificado do host do FinzioFiscal no STRUST

O que continua igual

  • A configuração do DRC no SAP: ativação e ambiente da filial (J_1BNFE_CUST3) e o processo fiscal
  • Nenhum programa ABAP alterado e nenhum objeto Z/Y
  • O FinzioFiscal atua em somente leitura no S/4HANA: recebe o que o SAP envia e responde

Alcance. NF-e (modelo 55) e NFC-e (modelo 65): autorização, cancelamento, Carta de Correção, inutilização e consulta de situação.

Fora desta integração. CT-e, MDF-e, NFS-e emitida, EPEC, e-mail B2B e download de XML pela nuvem não passam por esta integração.

Os passos, na ordem em que o SAP os usa, estão em Configurar o SAP, filial por filial.

Para quem é e o que cobre

Esta seção é para quem administra o SAP e o conector. O Finzio oferece ao SAP a mesma interface que ele chama para a nuvem de NF-e, então não é preciso alterar programas ABAP: a mudança é de configuração, filial por filial.

Cobre NF-e (modelo 55) e NFC-e (modelo 65): autorização, cancelamento, Carta de Correção, inutilização e consulta de situação. Não cobre CT-e, MDF-e, NFS-e emitida, EPEC, e-mail B2B nem download de XML pela nuvem. Do lado do S/4HANA, o Finzio atua em somente leitura: ele recebe o que o SAP envia e responde, sem gravar nada no seu sistema SAP.

Antes de começar. A empresa emitente precisa estar cadastrada com certificado A1 válido e o ambiente da SEFAZ correto; o módulo de emissão (Outbound) precisa estar contratado, com saldo de documentos; e o conector precisa estar habilitado pela Finzio para a sua organização. Para NFC-e, cadastre também o CSC da empresa em cada ambiente, ou a nota não é autorizada. No SAP, você precisa instalar o certificado do endereço do Finzio na transação STRUST.

Criar o conector no Finzio

  1. 1Em Administração > Conector SAP Fiscal Outbound, cadastre o conector e escolha as empresas que o SAP pode emitir (sem escolher, vale para todas).
  2. 2Copie o Client ID e o Client Secret. O segredo aparece uma única vez: guarde-o em cofre de senhas, nunca em e-mail ou planilha.
  3. 3A mesma tela lista o que configurar no SAP: endereço de obtenção do token, o tipo de autorização e os endereços de cada serviço, com botão de copiar.
Chaves de API comuns não funcionam nas rotas do SAP: só a credencial do conector obtém acesso. Desativar, rotacionar ou revogar o conector derruba o acesso na hora, até para quem já tem um token válido. A tela também mostra o último acesso do SAP.

Configurar o SAP, filial por filial

A ordem abaixo é a da dependência das chaves: o perfil OAuth precisa existir antes de ser escolhido na tabela da filial.

  1. 1No Finzio, com o conector criado e o Client ID e o Client Secret em mãos (seção anterior). Se perdeu o segredo, rotacione a credencial: ele não é mostrado de novo.
  2. 2Em SOAUTH2, crie o perfil OAuth 2.0 (OA2C) com a concessão client_credentials, o endereço de token do Finzio e o Client ID e o Client Secret do conector. O SAP pode enviar as credenciais no corpo do formulário ou por HTTP Basic.
  3. 3Em STRUST, importe a cadeia de certificados do endereço do Finzio (SSL client).
  4. 4Em SM59, só se existirem os destinos NFEACCESSHOST e NFEACCESSTOKEN: ajuste o host e o proxy. O NFEACCESSTOKEN busca o token com o Client ID e o Client Secret do conector em HTTP Basic, na aba Logon & segurança. O botão Teste conexão do SM59 faz GET e só passa com Basic.
  5. 5Na tabela J_1BNFE_CUST4, informe como endereço do serviço o host do Finzio (sem https:// e sem caminho) e, como perfil de autenticação, o perfil que você criou em SOAUTH2. Use a data de início de validade (VALIDFROM) para virar uma filial por vez.
  6. 6Mantenha XNFEACTIVE e TPAMB em J_1BNFE_CUST3: o ambiente segue o da própria nota.
  7. 7Faça o teste de conexão do SAP e confira o monitor de serviços (J_1B_NFE_SERVICE_STATUS) antes da data de virada.
A tela Conector SAP Fiscal Outbound traz o card Preparar o SAP com estes passos já preenchidos com o endereço, o endereço de token e o Client ID do conector, o selo de procedência de cada um, o acompanhamento do que já foi feito e o botão Copiar tudo para enviar à equipe SAP. O Client Secret nunca aparece nele. Os passos de e-mail B2B e de download de XML só aparecem quando o Finzio oferece esses serviços ao conector.
Comece sempre em homologação, com uma única filial, e rode uma amostra de notas reais dela antes de virar para produção.

Criar o client OAuth no S/4HANA (Finzio → SAP)

Este é o sentido inverso: aqui o Finzio chama as APIs OData do S/4HANA. O client fica no servidor OAuth do SAP, em SOAUTH2 (Criar client OAuth 2.0), e o Finzio usa o fluxo client_credentials, sem navegador. O card Preparar o SAP traz o mesmo bloco, marcado como A confirmar, porque a oferta desse fluxo depende da release do S/4HANA.

  1. 1ID do client: um nome que identifique o Finzio. Na conexão do Finzio ele vai no campo Usuário.
  2. 2Autenticação: tipo de cliente Confidencial, com um segredo definido aqui. O segredo vai no campo Senha / Credencial da conexão e nunca é exibido de volta.
  3. 3Concessão: client_credentials. Cliente Público, Código de autorização, PKCE e URI de redirecionamento não se aplicam, porque o Finzio chama o SAP sem navegador: deixe a URI de redirecionamento vazia. O endereço /oauth/token do Finzio é a rota que o SAP chama, não uma URI de redirecionamento.
  4. 4Atribuição de escopo: obrigatória. Sem ela o assistente termina com "Nenhum scope OAuth 2.0 atribuído a client OAuth 2.0". Veja o nome do escopo do serviço na lista de escopos do SOAUTH2 (o serviço em /IWFND/MAINT_SERVICE) e informe o mesmo nome no campo Escopo OAuth 2.0 da conexão; mais de um, separados por espaço.
  5. 5Resumo: confira Confidencial, client_credentials, escopo atribuído e URI de redirecionamento vazia. Depois use Testar Comunicação na conexão.
Se a sua release não oferecer client_credentials no servidor OAuth do SAP, use o modo de autenticação Basic na conexão. Valide sempre em homologação.

Como o SAP conversa com o Finzio

Depois de obter o token, o SAP usa três grupos de serviços. O Finzio responde 202 quando aceita o pedido e 400 com a lista de motivos quando recusa a nota ou o evento.

  • Autorização: envio da nota e consulta da situação dela. Enquanto a SEFAZ não responde, o SAP recebe situação pendente e segue aguardando.
  • Eventos: cancelamento, Carta de Correção e inutilização, com a consulta do resultado de cada um. O SAP envia até 20 por chamada.
  • Status: o teste de conexão do SAP e o serviço de situação dos servidores da SEFAZ por UF.

O monitor de status do SAP mostra a linha de cada UF em verde só quando a SEFAZ responde que está em operação. Se o Finzio não consegue perguntar à SEFAZ (sem certificado, por exemplo), a linha volta vermelha com o motivo - nunca verde por engano. O monitor também verifica a disponibilidade do conector (inclusive o endereço de saúde da NFS-e, que só indica que o conector está no ar; o Finzio não emite NFS-e por esse caminho).

Limites que você precisa conhecer

  • Notas anteriores à virada. O Finzio só cancela, corrige e consulta notas que ele mesmo emitiu. Cancelar uma nota autorizada pela nuvem antes da virada é recusado: resolva isso antes de mudar a filial.
  • Conferência rigorosa. A chave de acesso e os totais enviados pelo SAP são conferidos contra os itens. Divergência recusa a nota, com o motivo.
  • Reenvio. Nota rejeitada e reenviada vira nova tentativa com a mesma numeração, já corrigida.
  • Carta de Correção. A sequência do SAP precisa coincidir com a que o Finzio espera; e não existe Carta de Correção para NFC-e.
  • Tempo. Eventos e inutilizações são processados na própria chamada; a duração é a da SEFAZ.
Os detalhes técnicos de campos e códigos de recusa ficam no guia operacional do conector, mantido pela Finzio. Fale com o suporte para recebê-lo.
Desenvolvido porGSATI Tecnologia da Informação