Conceitos NF-e / NFC-e

Modelo 55 vs 65, CRT, CSOSN/CST, homologação e dados fiscais.

Fundamentos fiscais para integrar NF-e (modelo 55) e NFC-e (modelo 65). Todos os endpoints usam o prefixo https://api.nfer.me/v1 e exigem X-API-Key.

Homologação vs produção

O campo environment da empresa define se as emissões vão para SEFAZ de homologação (tpAmb=2) ou produção (tpAmb=1). Notas de homologação não têm validade fiscal. Contadores de série são independentes por ambiente.
PUT/v1/companies/:id
Ir para produçãobash
curl -X PUT https://api.nfer.me/v1/companies/$COMPANY_ID \
  -H "X-API-Key: $NFER_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "environment": "producao" }'

Modelo 55 (NF-e) vs 65 (NFC-e)

NF-e (55)NFC-e (65)
UsoB2B / e-commerceConsumidor (PDV)
DestinatárioObrigatórioPode ser omitido
DANFEA4Cupom + QR
CSCNão requerObrigatório (nfceIdCsc + nfceTokenCsc)
NFERPOST /v1/nfePOST /v1/nfce

indFinal × não contribuinte

Destinatário sem IE é tratado como não contribuinte (indIEDest=9). A SEFAZ exige indFinal=1 (consumidor final) — rejeição 696 se vier 0.

NFER normaliza

Se o body chegar com indFinal=0 e o destinatário for não contribuinte, o NFER grava e transmite como 1. NFC-e (65) já é sempre consumidor final.

CRT / ICMS

O CRT do emitente define se os itens usam CSOSN (Simples) ou CST (Regime Normal / excesso).

CRTRegimeItens
1Simples NacionalCSOSN (ex.: 102, 500)
2SN — Excesso de sublimiteCST
3Regime NormalCST (ex.: 00, 40, 60)

CSOSN (CRT 1)

  • 102 — tributada SN sem crédito
  • 103 — isenção faixa receita
  • 500 — ICMS cobrado por ST
  • 900 — outros

CST (CRT 2/3)

  • 00 — tributada integralmente
  • 20 — redução de base
  • 40 / 41 — isenta / não trib.
  • 60 — cobrado anteriormente por ST

CFOP — comuns

CFOPUso
5102Venda mercadoria adquirida (interna)
5405Venda com ST (SN)
6102Venda interestadual
6108Venda interestadual a não contribuinte
5949Outra saída não especificada

Com perfil fiscal (fiscalProfileId), o NFER resolve CSOSN/CST/CFOP automaticamente. Override manual: objeto impostos no item.

Dados fiscais

A SEFAZ rejeita a nota se estes campos vierem errados. O NFER sanitiza o XML, mas não inventa dado fiscal válido.

CampoRegra
cMunNo XML é obrigatório (7 dígitos IBGE da mesma UF). No payload é opcional se houver UF+cidade ou CEP — o NFER resolve na base IBGE. Sem resolução → 400. Nunca fallback SP.
UF + CEPCom xMun resolvem o município. CEP sozinho usa ViaCEP só no cadastro.
ncm8 dígitos vigentes na TIPI. Código extinto → “NCM inexistente”.
modFrete / valorFreteModalidade: modFrete / modalidadeFrete (0=emitente, 1=destinatário, 2=terceiros, 9=sem frete). Custo em reais: valorFrete (raiz ou item). Pagamentos incluem o frete.
foneSó dígitos (6–14). Vazio → omitir.
ieDV válido para a UF. Sem IE no cliente → indIEDest=9. “ISENTO” → indIEDest=2.

CSRT (Paraná): exigência do software house no servidor NFER — fora do payload do ERP.

Certificado A1 — avisos

O NFER verifica o vencimento do certificado diariamente. Com SMTP ativo, envia e-mail ao destinatário fiscal (ou e-mail da empresa) nos marcos de 30, 15, 7, 3 e 1 dia, no dia do vencimento e enquanto estiver expirado. O mesmo aviso aparece no sino do painel e em banner no dashboard — configurável em Configurações → Notificações.

Contingência automática

O ERP não escolhe contingência no payload — o NFER decide no /send.

NF-e 55 — SVC

Se a SEFAZ da UF estiver instável ou fora do ar, o NFER reautoriza sozinho na SVC (servidor federal), no mesmo job.

Consultar se a SEFAZ está no ar

GET /v1/sefaz/status — cStat 107 = em operação. No painel, o badge no header mostra online/offline (e o modo de contingência NFER).
CampoEm contingência SVC
numero / serieNão mudam
chaveAcessoPode mudar (tpEmis 6 = SVC-AN ou 7 = SVC-RS entra na chave). Use sempre a chave do webhook ou GET
ValidadeNota já autorizada na SVC — pode enviar XML/DANFE ao cliente
DepoisNão vem outro número. Cancel/CC-e usam essa mesma chave

Recuperação automática (probe)

Enquanto a SEFAZ estiver fora, novas NF-e da empresa podem ir direto à SVC. O worker contingency-probe consulta statusServico a cada ~15 minutos: se a SEFAZ responder cStat 107, a empresa volta ao regime normal sem esperar o TTL Redis de 24h. Também desliga ao autorizar com sucesso no autorizador estadual.

NFC-e 65 — offline (não é SVC)

NFC-e não usa SVC-AN. Se a SEFAZ cair (timeout / cStat 108/109/584), o NFER assina localmente com tpEmis=9, status contingencia, cupom PDF imprimível e webhook nfe.contingencia. O XML assinado é retransmitido depois (mesmo probe ~15 min).

EPEC (tpEmis=4)

NFC-e: só a critério da UF (senão rejeição 714). O padrão NFER é offline (9). NF-e 55: se a SVC também falhar (transporte), o NFER registra EPEC formal (evento 110140), status contingencia, webhook nfe.contingencia; o probe reautoriza depois. SVC continua sendo o caminho automático primário.

Só entregue XML/DANFE “com valor fiscal” ao cliente depois de status = autorizada. Em contingência ou rejeição o PDF do cupom existe, mas sem autorização SEFAZ.

Normas & conformidade

Leiaute 4.00

A emissão NFER acompanha o leiaute oficial NF-e/NFC-e 4.00 e as Notas Técnicas do Portal Nacional — incluindo a Reforma Tributária do Consumo (IBS/CBS).
  • NT 2025.002 (RTC) — IBS, CBS e Imposto Seletivo (LC 214/2025)
  • Webservices NFe*4 por UF
  • 03/08/2026 — IBS/CBS obrigatório CRT 3 em produção (conforme NT vigente)

Consulte o Portal Nacional da NF-e.