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.
| Passo | Endpoint | Observação |
|---|---|---|
| 1 Registrar empresa | POST /openapi/v2/empresas | Igual à NF-e, mais o bloco opcional emissaoNFeConsumidor que habilita a NFC-e; reenvie com id para atualizar |
| 2 Enviar certificado | POST /openapi/v1/empresas/{empresaId}/certificadoDigital | Igual à NF-e, o mesmo certificado A1 |
| 3 Registrar webhook | POST /openapi/v1/webhooks | Registre 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 Emitir | POST /openapi/v2/empresas/{empresaId}/nfce | Assíncrono por padrão; o caixa pode usar o modo síncrono para ter o resultado na hora |
| 5 Consultar | GET /openapi/v2/empresas/{empresaId}/nfce/{nfceId} | Status, QR Code, links do cupom e do XML |
| 6 Cancelar | POST .../nfce/{nfceId}/cancelar | Até 30 minutos após a autorização |
| 7 Cancelar por substituição | POST .../nfce/{nfceId}/cancelar-substituicao | Cancela 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ário10022001. - 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.
ambienteEmissaodeve ser igual ao ambiente atual da empresa; caso contrário10022003.
NFC-e ou NF-e
| Situação | Emita |
|---|---|
| Venda na loja para pessoa física | NFC-e |
| Delivery, entrega na cidade ou no estado para pessoa física | NFC-e (consumidor identificado com endereço), ou NF-e |
| Pedido pela internet enviado a outro estado | Só NF-e |
| Comprador contribuinte do ICMS | Só NF-e |
| Nota acima de R$ 200.000 | Só NF-e |
| Devolução, complementar, ajuste ou nota referenciada | Só 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:
"emissaoNFeConsumidor": {"ambienteProducao": {"sequencialNFe": 1,"serieNFe": "1","csc": { "id": "000001", "codigo": "A1B2C3D4E5F6A7B8C9D0E1F2A3B4C5D6" }}}
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
ambienteProducao | object | Sim | Série e CSC. A série vale para homologação e produção; o CSC só para produção |
sequencialNFe | integer | Sim | Pró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 |
serieNFe | string | Sim | Sé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 |
csc | object | Não | Có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.id | string | Sim | Identificador do CSC. De 1 a 6 dígitos, obtido junto com o código no portal da SEFAZ |
csc.codigo | string | Sim | Có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
idda empresa para sobrescrever o bloco. Ao trocar só o CSC, enviesequencialNFeeserieNFecomo 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
| Endpoint | Uso |
|---|---|
| Emitir NFC-e | Aceite assíncrono devolve HTTP 200 sem corpo; o modo síncrono devolve o resultado ou 202; idempotente por id |
| Consultar NFC-e | Status, QR Code, links do cupom e do XML, eco da emissão |
| Cancelar NFC-e | Até 30 minutos após a autorização, assíncrono |
| Cancelar por substituição | Cancela a nota normal duplicada por uma offline, até 168 horas, assíncrono |
Status e webhooks
| Status | Significado | Evento de webhook |
|---|---|---|
AguardandoAutorizacao | Aceita, aguardando a SEFAZ | Nenhum |
Autorizada | Autorizada | nfce.authorized |
Negada | Rejeitada pela SEFAZ, ou falhou no processamento da plataforma | nfce.rejected |
Cancelada | Cancelada | nfce.canceled |
ContingenciaPendente | Emitida offline com a SEFAZ indisponível, aguardando transmissão | nfce.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:
| Estado | Limite de identificação | Venda com entrega | Outros |
|---|---|---|---|
| SP | R$ 10.000 | Permitida, dentro de SP | |
| MG | R$ 10.000 | Só estabelecimentos varejistas | Um CSC para homologação e produção |
| RJ | R$ 2.000 | Permitida, com transportadora | Cancelamento extemporâneo pago na SEFAZ |
| PR | R$ 10.000; entrega sempre identificada | Permitida, no estado | |
| RS | R$ 10.000; atacado e varejo deve identificar | Permitida | |
| SC | R$ 10.000; comprador não pode ser identificado por CNPJ | Proibida | |
| ES | R$ 10.000 | Só restaurantes, farmácias e floriculturas | Identificador do CSC fixo 000001 |
| GO | R$ 10.000, só CPF | Permitida | Comprador identificado por CNPJ exige NF-e |
| MT | R$ 1.000 | Só na mesma cidade | Cancelamento extemporâneo pago na SEFAZ |
| TO | R$ 3.000, com nome e endereço | Só no estado | |
| PE | R$ 5.000 | Permitida | |
| BA, AL, PB | R$ 500 | Permitida | Entrega em AL exige cupom impresso |
| Demais estados | R$ 10.000 | Permitida, 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
qrCodeem QR Code e imprimaurlConsultae 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
- Registre a empresa com
emissaoNFeConsumidor; a resposta traznfceHabilitado=true. - Envie o certificado e registre o webhook de novo com os eventos
nfce.*emeventos. - Emita o exemplo da página de emissão em modo síncrono; vem
AutorizadacomqrCodeelinkDanfe, e baixe o PDF do cupom. - Envie o mesmo
idde novo; volta a mesma nota, com o mesmo número. - Emita o exemplo de entrega em modo assíncrono; chega um webhook com
tipo=NFC-eenfeStatus=Autorizada. - Cancele a nota do passo 3 em até 30 minutos; a consulta mostra
Canceladae chega o webhook de cancelamento. - Casos negativos:
presencaConsumidor=OperacaoPelaInternet, entrega semclientee CFOP 6102 devolvem10022004; cancelar mais de 30 minutos após a autorização devolve10022007.
