Passo a passo completo para emitir NFC-e
O CSC (Código de Segurança do Contribuinte) é obrigatório para NFC-e.
O CSC deve estar ATIVO no portal. CSC revogado gera erro 463.
Use o template abaixo ou copie de exemplos_json/nfce_emissao_completa.json:
{
"empresa": {
"nome": "SUA EMPRESA LTDA",
"nome_fantasia": "Sua Loja",
"cnpj": "12345678000190",
"inscricao_estadual": "123456789",
"regime_tributario": 1,
"estado": "PE",
"cidade": "Recife",
"endereco": "Rua Exemplo",
"numero": "100",
"bairro": "Centro",
"cep": "50000000",
"email": "contato@empresa.com.br",
"telefone": "(81) 99999-9999",
"senha_certificado": "SUA_SENHA_CERTIFICADO_A1"
},
"nfce": {
"numero": "1",
"serie": "001",
"ambiente": 2,
"csc": "SEU_CSC_AQUI",
"csc_id": "000001"
},
"cliente": {
"cpf": "05138670409",
"nome": "João da Silva",
"email": "joao@email.com",
"telefone": "(81) 98888-7777"
},
"itens": [
{
"codigo": "PROD001",
"descricao": "Produto Exemplo",
"ncm": "49111090",
"cfop": "5102",
"unidade": "UN",
"quantidade": 1,
"valor_unitario": 10.00,
"valor_total": 10.00
}
],
"pagamentos": [
{
"forma_pagamento": "01",
"valor": 10.00
}
],
"desconto": 0,
"informacoes_complementares": "Venda realizada no PDV",
"responsavel_tecnico": {
"cnpj": "12345678000190",
"contato": "TI",
"email": "ti@empresa.com.br",
"telefone": "11999999999"
}
}
Cliente opcional: Para vendas sem identificação do consumidor, remova todo o bloco "cliente"
Faça uma requisição POST para o endpoint:
POST http://localhost/pontti_nfe/api/nfce/emitir.php
Content-Type: application/json
curl -X POST http://localhost/pontti_nfe/api/nfce/emitir.php \
-H "Content-Type: application/json" \
-d '{
"empresa": {...},
"nfce": {...},
"itens": [...],
"pagamentos": [...]
}'
fetch('http://localhost/pontti_nfe/api/nfce/emitir.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
empresa: {...},
nfce: {...},
itens: [...],
pagamentos: [...]
})
})
.then(response => response.json())
.then(data => console.log(data));
{
"success": true,
"numero": "1",
"serie": "001",
"chave_acesso": "26251021497109000156650010000000011182804582",
"protocolo": "226250936821623",
"cStat": "100",
"xml_path": "/pontti_nfe/arquivos/.../nfce/xml/...",
"pdf_path": "/pontti_nfe/arquivos/.../nfce/pdf/...",
"data_emissao": "2025-10-21 16:09:31",
"valor_total": 10.00,
"message": "NFC-e emitida com sucesso"
}
Guarde a chave_acesso e o protocolo para futuras operações (cancelamento, consulta).
O pdf_path contém o DANFCE com QR Code para impressão.
{
"success": false,
"numero": "1",
"serie": "001",
"cStat": "463",
"error": "NFe rejeitada [463]: Rejeição: Codigo identificador do CSC no QR-Code foi revogado"
}
Verifique o código de erro (cStat) e a mensagem (error).
Consulte a seção de erros comuns abaixo.
| Código | Erro | Solução |
|---|---|---|
463 |
CSC revogado | Gere um novo CSC no portal da SEFAZ e atualize no JSON |
704 |
Data/hora atrasada | Sistema corrige automaticamente - não informe data_emissao |
778 |
NCM inexistente | Use um NCM válido (ex: 49111090) |
972 |
Falta responsável técnico | Inclua o bloco "responsavel_tecnico" no JSON |
Para cancelar uma NFC-e autorizada, use o endpoint abaixo dentro do prazo de 24 horas após a emissão.
POST http://localhost/pontti_nfe/api/nfce/cancelar.php
Content-Type: application/json
Use o template abaixo ou copie de exemplos_json/nfce_cancelamento.json:
{
"chave_acesso": "26251021497109000156650010000000011182804582",
"protocolo": "226250936821623",
"cnpj": "21497109000156",
"senha_certificado": "SUA_SENHA_CERTIFICADO_A1",
"justificativa": "Erro no valor - cancelamento solicitado pelo cliente"
}
{
"success": true,
"chave_acesso": "26251021497109000156650010000000011182804582",
"protocolo": "226250936821625",
"cStat": "135",
"message": "Cancelamento homologado"
}
{
"success": false,
"chave_acesso": "26251021497109000156650010000000011182804582",
"cStat": "573",
"error": "Rejeição: Duplicidade de Evento"
}
| Código | Forma de Pagamento |
|---|---|
01 |
Dinheiro |
02 |
Cheque |
03 |
Cartão de Crédito |
04 |
Cartão de Débito |
05 |
Crédito Loja |
10 |
Vale Alimentação |
11 |
Vale Refeição |
12 |
Vale Presente |
13 |
Vale Combustível |
15 |
Boleto Bancário |
16 |
Depósito Bancário |
17 |
PIX |
90 |
Sem Pagamento |
99 |
Outros |
{
"empresa": {...},
"nfce": {
"numero": "1",
"serie": "001",
"ambiente": 2,
"csc": "1A8F6141-B4E9-4F46-BE82-1AA462EDA8B5",
"csc_id": "000002"
},
"cliente": {
"cpf": "05138670409",
"nome": "João da Silva"
},
"itens": [...],
"pagamentos": [...]
}
{
"empresa": {...},
"nfce": {
"numero": "2",
"serie": "001",
"ambiente": 2,
"csc": "1A8F6141-B4E9-4F46-BE82-1AA462EDA8B5",
"csc_id": "000002"
},
"itens": [...],
"pagamentos": [...]
}
Nota: Sem o bloco "cliente", a NFC-e será emitida para "Consumidor Não Identificado"
{
"empresa": {...},
"nfce": {...},
"itens": [...],
"pagamentos": [
{
"forma_pagamento": "01",
"valor": 50.00
},
{
"forma_pagamento": "03",
"valor": 50.00
}
]
}
Total da venda: R$ 100,00 (R$ 50 em dinheiro + R$ 50 no cartão de crédito)
Para cancelar uma NFC-e autorizada (prazo: até 24 horas):
{
"chave_acesso": "26251021497109000156650010000000011182804582",
"protocolo": "226250936821623",
"justificativa": "Erro no preenchimento dos dados da NFC-e"
}
• Justificativa mínima: 15 caracteres
• Prazo: até 24 horas após autorização
• Após cancelamento, não pode ser revertido
Controle rigoroso da numeração sequencial por série
Não informe data_emissao, o sistema usa a data/hora atual automaticamente
Use valores com 2 casas decimais (10.00 e não 10)
Verifique periodicamente se o CSC está ativo no portal SEFAZ
Sempre impresso automaticamente no DANFCE para consulta
Teste sempre em homologação (ambiente: 2) antes de produção