Pular para o conteúdo

Emitir uma NFCe

A NFCe é o documento fiscal usado em operações de varejo presencial (substitui o cupom fiscal). Não exige transporte, é mais simples que a NFe, e geralmente é autorizada em segundos.

Fluxo

  1. Emitir a NFCe

    Terminal window
    curl -X POST $BASE/nfce/emissao \
    -H "Authorization: Token $TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
    "serie": "65",
    "cfop": "5102",
    "numero-origem": "VENDA-2026-00100",
    "tp_pagamento": "credito",
    "porcentagem-desconto": "5",
    "cliente": "12345678901",
    "itens": [
    { "produto": "SKU-001", "quantidade": "1", "valor-unitario": "59.90" }
    ]
    }'
  2. Consultar pelo recibo

    Terminal window
    curl $BASE/nfce/cupom/{recibo} \
    -H "Authorization: Token $TOKEN"
  3. Pegar DANFE NFCe e XML

    Quando status: "004", data.sefaz traz url-danfe e url-xml.

    A partir de 05/10/2026 a NFC-e autorizada pode vir com data.sefaz.codigo 120 (“Autorizado o uso da NF-e, com alerta”) em vez de 100. É nota autorizada: o status é o mesmo 004 — guarde e imprima normalmente. Veja Autorizada com alerta.

Tipos de pagamento

Valor tp_pagamentoSignifica
dinheiroPagamento em espécie
credito (ou crédito)Cartão de crédito
debito (ou débito)Cartão de débito
pixPIX dinâmico — QR Code gerado na hora para cada venda (tPag 17)
pix_estatico (ou pix-estatico)PIX estático — chave PIX ou QR Code fixo, o mesmo para todas as vendas (tPag 20)
outrosQualquer outra forma (tPag 99). Não use para PIX

Sem tp_pagamento, a nota sai como dinheiro.

PIX: dinâmico ou estático?

A SEFAZ separa as duas modalidades (Informe Técnico 2024.002):

  • Dinâmico (pix) — o QR Code é gerado para aquela venda, com o valor dentro (maquininha, TEF, link de pagamento). A nota leva o grupo de pagamento eletrônico como não integrado, que é o que a SEFAZ exige para o tPag 17 (regra 391).
  • Estático (pix_estatico) — o cliente paga numa chave PIX ou num QR Code impresso no balcão, que serve para qualquer venda. Não leva o grupo de pagamento eletrônico.

Código numérico da SEFAZ

Em vez das palavras acima, tp_pagamento aceita o código tPag da SEFAZ, com ou sem zero à esquerda ("4" ou "04"). O código vai direto para a nota:

CódigoFormaCódigoForma
01Dinheiro13Vale Combustível
02Cheque15Boleto Bancário
03Cartão de Crédito16Depósito Bancário
04Cartão de Débito17PIX dinâmico
05Crédito Loja18Transferência bancária, Carteira Digital
10Vale Alimentação19Programa de fidelidade, Cashback, Crédito Virtual
11Vale Refeição20PIX estático
12Vale Presente99Outros

Um código que não está na tabela é recusado (veja Erros comuns).

Variações comuns

Sem identificar o cliente (consumidor final)

{
"serie": "65",
"cfop": "5102",
"tp_pagamento": "dinheiro",
"itens": [ ... ]
}

Pode omitir o campo cliente para emissões de balcão sem identificação.

Com taxa de serviço (restaurantes)

{
"serie": "65",
"cfop": "5102",
"tp_pagamento": "credito",
"porcentagem-taxa-servico": "10",
"itens": [ ... ]
}

Com taxa de entrega (delivery)

{
"serie": "65",
"cfop": "5102",
"tp_pagamento": "credito",
"valor-taxa-entrega": "8.50",
"itens": [ ... ]
}

Alterar antes de emitir

Você pode editar uma NFCe que ainda não foi submetida para emissão:

Terminal window
curl -X PUT $BASE/nfce/{id} \
-H "Authorization: Token $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... mesmo formato do emissao ... }'

NFCes já em emissão ou com timer ativo (emissão iminente) não podem ser editadas.

Cancelamento

NFCe tem prazo de cancelamento muito menor que NFe (geralmente alguns minutos após autorização — varia por estado). Veja Cancelar uma NFe para a sintaxe (mesma estrutura, com endpoint POST /nfce/cancelamento).

Erros comuns

MensagemCausa
Campo nfce@serie inválido.Série não numérica ou > 999
Campo nfce@tp_pagamento inválido.Valor fora da lista. Use dinheiro, credito, debito, pix, pix_estatico, outros ou um código numérico da tabela acima
Campo nfce@tp_pagamento inválido: 'NN' não é um código de forma de pagamento (tPag) da SEFAZ.Código numérico que não existe na tabela de formas de pagamento
status: "900" com cstCST do produto incompatível com NFCe — revise configurações fiscais
status: "900" com sefaz.codigo 217/105Não é erro — SEFAZ lenta/instável, ainda processando. Continue consultando o mesmo recibo, não reemita. Veja SEFAZ lenta ou instável

Diferenças NFCe vs NFe

AspectoNFe (55)NFCe (65)
UsoB2B e B2C com entregaVarejo presencial
TransporteDetalhadoNão exige
FaturasSuportaNão suporta
Notas referenciadasSimNão
DANFEA4 completoDANFE NFCe (cupom estilo PDV)
Prazo de cancelamento~24h~minutos
Identificação do clienteSempre obrigatóriaOpcional (consumidor final)