TF Fiscal
Documentação

NFC-e

Emissão de NFC-e (modelo 65) em nome de lojistas: fluxo de integração, escolha entre NFC-e e NF-e, configuração da empresa, diferenças estaduais e impressão do cupom.

Visão geral e fluxo de integração

A NFC-e (modelo 65, Nota Fiscal de Consumidor Eletrônica) é o documento fiscal eletrônico do varejo, usado em vendas dentro do estado ao consumidor final: venda na loja, delivery e entrega na mesma cidade, e venda presencial fora da loja. Usa o mesmo leiaute da NF-e, mas os endereços de autorização, o QR Code, o prazo de cancelamento e as regras de validação são outros. Registro da empresa, certificado e webhook são os mesmos da NF-e.

PassoEndpointObservação
1 Registrar empresaPOST /openapi/v2/empresasIgual à NF-e, mais o bloco opcional emissaoNFeConsumidor que habilita a NFC-e; reenvie com id para atualizar
2 Enviar certificadoPOST /openapi/v1/empresas/{empresaId}/certificadoDigitalIgual à NF-e, o mesmo certificado A1
3 Registrar webhookPOST /openapi/v1/webhooksRegistre o webhook de novo com os eventos nfce.* em eventos; a NFC-e não entra na assinatura padrão, e os resultados vão para o mesmo endereço
4 EmitirPOST /openapi/v2/empresas/{empresaId}/nfceAssíncrono por padrão; o caixa pode usar o modo síncrono para ter o resultado na hora
5 ConsultarGET /openapi/v2/empresas/{empresaId}/nfce/{nfceId}Status, QR Code, links do cupom e do XML
6 CancelarPOST .../nfce/{nfceId}/cancelarAté 30 minutos após a autorização
7 Cancelar por substituiçãoPOST .../nfce/{nfceId}/cancelar-substituicaoCancela a nota normal duplicada por uma nota de contingência offline, até 168 horas

A autenticação é a mesma da NF-e; veja Autenticação.

Pré-requisitos

  • Empresa aprovada e com certificado utilizável; caso contrário 10022002.
  • NFC-e habilitada para o ambiente atual pelo bloco emissaoNFeConsumidor; caso contrário 10022001.
  • A empresa tem inscrição estadual e a NFC-e está habilitada no estado. A maioria dos estados habilita automaticamente quem tem IE; SP habilita por estabelecimento, PR exige pedido à SEFAZ antes da produção, e TO, RN e GO exigem antes a habilitação para NF-e.
  • ambienteEmissao deve ser igual ao ambiente atual da empresa; caso contrário 10022003.

NFC-e ou NF-e

SituaçãoEmita
Venda na loja para pessoa físicaNFC-e
Delivery, entrega na cidade ou no estado para pessoa físicaNFC-e (consumidor identificado com endereço), ou NF-e
Pedido pela internet enviado a outro estadoSó NF-e
Comprador contribuinte do ICMSSó NF-e
Nota acima de R$ 200.000Só NF-e
Devolução, complementar, ajuste ou nota referenciadaSó NF-e

A plataforma não converte sozinha um pedido fora das regras em NF-e; ela devolve 10022004 com o motivo.

Registro da empresa: bloco emissaoNFeConsumidor

O corpo de Registrar empresa ganha um bloco opcional; os demais campos não mudam:

json
"emissaoNFeConsumidor": {
"ambienteProducao": {
"sequencialNFe": 1,
"serieNFe": "1",
"csc": { "id": "000001", "codigo": "A1B2C3D4E5F6A7B8C9D0E1F2A3B4C5D6" }
}
}
CampoTipoObrigatórioDescrição
ambienteProducaoobjectSimSérie e CSC. A série vale para homologação e produção; o CSC só para produção
sequencialNFeintegerSimPróximo número. A plataforma numera em sequência a partir dele; a numeração só sobe, e um valor menor na atualização mantém o número atual
serieNFestringSimSérie da NFC-e. De 1 a 3 dígitos, diferente da série da NF-e, e 890 a 899 são reservadas pelo fisco; recomenda-se uma série por caixa ou canal de venda
cscobjectNãoCódigo de segurança do contribuinte (CSC). Só o QR Code v2 usa, e só vale em produção; a plataforma usa v3 por padrão e é ela quem passa a empresa para o v2, o que a API aberta não permite; ao receber 10022009, fale com a plataforma
csc.idstringSimIdentificador do CSC. De 1 a 6 dígitos, obtido junto com o código no portal da SEFAZ
csc.codigostringSimCódigo do CSC. De 16 a 36 letras e dígitos; guardado cifrado e nunca devolvido
  • Enviar o bloco habilita a NFC-e e a resposta do registro traz nfceHabilitado=true. A homologação não precisa de configuração própria: a mesma série serve aos dois ambientes.
  • Atualização: reenvie com o id da empresa para sobrescrever o bloco. Ao trocar só o CSC, envie sequencialNFe e serieNFe como estão; a numeração nunca desce.
  • O CSC é gerado no portal da SEFAZ. Depois de revogar um código no portal, atualize-o aqui, ou a SEFAZ recusa a emissão (462 / 463).

Endpoints

EndpointUso
Emitir NFC-eAceite assíncrono devolve HTTP 200 sem corpo; o modo síncrono devolve o resultado ou 202; idempotente por id
Consultar NFC-eStatus, QR Code, links do cupom e do XML, eco da emissão
Cancelar NFC-eAté 30 minutos após a autorização, assíncrono
Cancelar por substituiçãoCancela a nota normal duplicada por uma offline, até 168 horas, assíncrono

Status e webhooks

StatusSignificadoEvento de webhook
AguardandoAutorizacaoAceita, aguardando a SEFAZNenhum
AutorizadaAutorizadanfce.authorized
NegadaRejeitada pela SEFAZ, ou falhou no processamento da plataformanfce.rejected
CanceladaCanceladanfce.canceled
ContingenciaPendenteEmitida offline com a SEFAZ indisponível, aguardando transmissãonfce.contingency_issued

Quando a SEFAZ recusa um cancelamento a nota continua Autorizada e chega nfce.cancel_rejected. Quando a nota offline é autorizada chega de novo nfce.authorized; se a transmissão for rejeitada, chega nfce.rejected. A carga é a mesma da NF-e, com tipo igual a NFC-e e o conteúdo do QR Code em nfeQrCode; veja Webhooks. Esses eventos precisam ser assinados explicitamente em eventos no registro do webhook.

Contingência offline

Com a SEFAZ indisponível e o estado permitindo, a plataforma emite a NFC-e offline (o dígito 35 da chave é 9) com status ContingenciaPendente; o cupom já pode ser impresso e entregue. A plataforma transmite quando a SEFAZ volta; se a mesma venda também tiver uma nota normal autorizada, a plataforma cancela a normal por substituição sozinha. Para casos especiais use Cancelar por substituição.

Diferenças estaduais

Diferenças conhecidas, sujeitas a mudanças na legislação estadual. O limite de identificação, a proibição de entrega em SC e a proibição de comprador identificado por CNPJ em GO e SC são verificados pela plataforma na aceitação, conforme o estado do emitente, e devolvem 10022004; o restante é verificado pela SEFAZ na autorização e termina como Negada, então respeite antes de enviar:

EstadoLimite de identificaçãoVenda com entregaOutros
SPR$ 10.000Permitida, dentro de SP
MGR$ 10.000Só estabelecimentos varejistasUm CSC para homologação e produção
RJR$ 2.000Permitida, com transportadoraCancelamento extemporâneo pago na SEFAZ
PRR$ 10.000; entrega sempre identificadaPermitida, no estado
RSR$ 10.000; atacado e varejo deve identificarPermitida
SCR$ 10.000; comprador não pode ser identificado por CNPJProibida
ESR$ 10.000Só restaurantes, farmácias e floriculturasIdentificador do CSC fixo 000001
GOR$ 10.000, só CPFPermitidaComprador identificado por CNPJ exige NF-e
MTR$ 1.000Só na mesma cidadeCancelamento extemporâneo pago na SEFAZ
TOR$ 3.000, com nome e endereçoSó no estado
PER$ 5.000Permitida
BA, AL, PBR$ 500PermitidaEntrega em AL exige cupom impresso
Demais estadosR$ 10.000Permitida, no estado

Impressão do cupom

  • O link do cupom na consulta e nos webhooks é um PDF térmico de 80 mm que pode ir direto à impressora.
  • Se montar o cupom por conta própria, inclua todos os itens oficiais, codifique qrCode em QR Code e imprima urlConsulta e a chave de acesso.
  • Com a concordância do consumidor é possível não imprimir e enviar a chave ou o cupom eletrônico; RJ, ES e entregas em AL exigem impressão.
  • O cupom de homologação traz «EMITIDA EM AMBIENTE DE HOMOLOGAÇÃO – SEM VALOR FISCAL», e em homologação a plataforma troca a descrição do primeiro item pelo texto oficial; nada a fazer do seu lado.

Roteiro de testes

  1. Registre a empresa com emissaoNFeConsumidor; a resposta traz nfceHabilitado=true.
  2. Envie o certificado e registre o webhook de novo com os eventos nfce.* em eventos.
  3. Emita o exemplo da página de emissão em modo síncrono; vem Autorizada com qrCode e linkDanfe, e baixe o PDF do cupom.
  4. Envie o mesmo id de novo; volta a mesma nota, com o mesmo número.
  5. Emita o exemplo de entrega em modo assíncrono; chega um webhook com tipo=NFC-e e nfeStatus=Autorizada.
  6. Cancele a nota do passo 3 em até 30 minutos; a consulta mostra Cancelada e chega o webhook de cancelamento.
  7. Casos negativos: presencaConsumidor=OperacaoPelaInternet, entrega sem cliente e CFOP 6102 devolvem 10022004; cancelar mais de 30 minutos após a autorização devolve 10022007.