NFe via TSS — fluxo completo end-to-end

Como funciona emissao de NFe no Protheus via TSS: configuracao, geracao XML, envio SEFAZ, autorizacao, DANFE. Troubleshooting comum.

NFe e o pilar fiscal da venda no Protheus. Por baixo dos panos: TSS (TOTVS Service SOA) ou seu sucessor SAFe faz o middleware entre Protheus e SEFAZ. Saber o fluxo completo ajuda a debugar quando algo da errado.

Arquitetura

┌──────────────────┐       ┌─────────────┐       ┌─────────────────┐
│ Protheus         │  ──→  │ TSS / SAFe  │  ──→  │ SEFAZ (governo) │
│ (MATA461 emite)  │       │ (middleware)│       │ (autoriza)      │
└──────────────────┘       └─────────────┘       └─────────────────┘
        │                        │                       │
        └ Gera SF2/SD2  ───→ Recebe XML, ───→ Recebe pdo, retorna
                            assina,             autorizacao+chave
                            envia               de acesso (44 chars)

Fluxo passo a passo

1. Configuracao inicial (uma vez)

2. Emissao no Protheus

// MATA461 cria SF2 + SD2
RecLock("SF2", .T.)
SF2->F2_FILIAL   := xFilial("SF2")
SF2->F2_DOC      := cNumNF       // sequencial
SF2->F2_SERIE    := "001"
SF2->F2_EMISSAO  := dDataBase
SF2->F2_CLIENTE  := cCliente
SF2->F2_VALMERC  := nTotal
// ...
SF2->(MsUnlock())

3. Geracao XML

Protheus monta o XML conforme schema NFe 4.0. Mandando ao TSS via Web Service interno.

4. TSS assina + envia ao SEFAZ

TSS aplica assinatura digital com o certificado, envia ao SEFAZ via WS proprio.

5. Status retornado

CodigoSignificado
100Autorizado o uso da NFe — sucesso
110Uso denegado — emissao foi rejeitada
135Evento registrado e vinculado a NF
205NFe esta denegada na base do SEFAZ
217NFe nao consta na base do SEFAZ
539Duplicidade de NFe com a mesma chave
999Erro nao catalogado — checar log TSS

6. Chave de acesso e atualizacao

Apos status 100, SEFAZ retorna chave de acesso de 44 digitos. TSS grava em SF2->F2_CHVNFE. Pode ser usada pra:

Troubleshooting comum

Erro "Rejeicao: total da NF nao confere"

Soma de SD2 nao bate F2_VALMERC. Reconciliar antes de tentar denovo.

Erro "Rejeicao: CFOP nao permite tributacao"

CFOP definido na TES nao bate com a tributacao (CST ICMS, PIS, COFINS). Revisar TES.

Erro "Certificado expirou"

Renovar A1 no TSS. Status 217 ate trocar.

Erro "Indisponibilidade do SEFAZ"

Status 108-109. SEFAZ fora do ar. Aguardar ou usar contingencia (SVC).

Status 100 mas DANFE nao imprime

Geralmente: layout PDF nao processou. Cheque MV_NFEUF, MV_RELT (relatorio padrao).

Contingencia — SVC (Sefaz Virtual Contingencia)

Quando SEFAZ principal cai, voce pode emitir pela SVC. Protheus tem flag em MV_NFETIPO = "SVC". Apos retornar normal, deve transmitir NFs SVC pro SEFAZ regular.

Cancelamento

// MATA465 - Cancelar NFe (max 24h apos autorizacao)
// Por PE NFEAUT, voce e notificado quando cancelamento processa
// Status 135 = evento registrado

CCe (Carta de Correcao Eletronica)

Corrige erros nao-essenciais (descricao, observacao). Limite: 20 CCes por NFe. Use MATA468.

Pegadinhas importantes

Veja também