Documentação
API de NFC-e
Basehttps://api.apisimples.com/v1
Visão geral
A NFC-e (modelo 65) usa o emitente da chave, o certificado A1 e o CSC cadastrados no painel. O JSON descreve a venda no varejo, o pagamento e os itens. A API monta o XML, assina, gera o QR Code e envia à SEFAZ.
/nfceEnvia a NFC-e à SEFAZ e grava a nota quando ela é autorizada./nfce/{id}Consulta a NFC-e pelo id ou pela identificação./nfce/{id}/cancelarCancela a NFC-e autorizada deste emitente na SEFAZ./nfce/{id}/pdfGera o DANFE NFC-e em PDF a partir do XML autorizado.Testar
Cole a chave do emitente e envie a requisição nesta página. A chave fica neste navegador e segue somente para a API, no header Authorization.
Autenticação
Envie a chave do emitente no header Authorization: Bearer. O emitente precisa estar habilitado para NFC-e, com certificado A1, ambiente da SEFAZ, CSC e CSC ID.
Ambientes
O ambiente de homologação ou produção fica no cadastro do emitente, no mesmo campo da NF-e. Homologação não tem valor fiscal.
Emitir
/nfceAutoriza a NFC-e na SEFAZ.HTTP 201 devolve a nota autorizada com id, chave, protocolo e XML em base64. Rejeição da SEFAZ volta HTTP 422 sem gravar. Número e série duplicados, ou a mesma identificação, respondem HTTP 409.
curl -X POST https://api.apisimples.com/v1/nfce \
-H "Authorization: Bearer apse_sua_chave_do_emitente" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"identificacao": "venda-1042",
"natureza_operacao": "Venda de mercadoria",
"numero": "15",
"serie": "1",
"presenca_comprador": "1",
"destinatario": {
"cpf": "39053344705",
"nome": "Consumidor Exemplo"
},
"itens": [
{
"numero_item": "1",
"codigo_produto": "SKU-1",
"descricao": "Camiseta algodão",
"codigo_ncm": "61091000",
"cfop": "5102",
"unidade_comercial": "UN",
"quantidade_comercial": "1.0000",
"valor_unitario_comercial": "150.0000000000",
"valor_bruto": "150.00",
"inclui_no_total": "1",
"origem": "0",
"imposto": {
"icms": {
"situacao_tributaria": "102"
},
"pis": {
"situacao_tributaria": "07"
},
"cofins": {
"situacao_tributaria": "07"
}
}
}
],
"frete": {
"modalidade_frete": "9"
},
"pagamento": {
"formas_pagamento": [
{
"meio_pagamento": "01",
"valor": "150.00"
}
]
}
}'
{
"id": "8f3c2a10-6b4e-4d2a-9c11-2e5a7b9d0f32",
"status": "autorizada",
"identificacao": "venda-1042",
"numero": "15",
"serie": "1",
"chave": "35261000000000000000650010000000151000000015",
"protocolo": "135260000000001"
}
Consultar
/nfce/{id}Consulta pelo uuid ou pela identificação.O retorno traz o payload enviado, status, chave, protocolo e XML. Nota cancelada inclui o bloco cancelamento.
Cancelar
/nfce/{id}/cancelarCancela na SEFAZ com justificativa de 15 a 255 caracteres.{
"justificativa": "Cancelamento da venda a pedido do consumidor."
}
Imprimir
/nfce/{id}/pdfGera o DANFE NFC-e.HTTP 200 devolve modelo e pdf em base64. Só notas autorizadas ou canceladas.
Corpo da nota
Campos principais: natureza_operacao, numero, serie, presenca_comprador, itens, frete e pagamento. A data de emissão é opcional; se omitida, a API usa o horário da operação. Tipo, finalidade, consumidor final e destino interno são fixos para NFC-e.
Em contingência, envie contingencia.data e contingencia.motivo (tpEmis 9). CFOPs permitidos: 5101, 5102, 5103, 5104, 5115, 5405, 5656, 5667, 5933 e 5949.
Destinatário
Opcional. Quando informado, envie CPF ou CNPJ. Nome, inscrição estadual e endereço são opcionais no varejo. Sem indicador de IE, a API usa 9 (não contribuinte).
Itens
Cada item exige produto, NCM, CFOP, quantidades, valores, inclui_no_total e imposto com ICMS, PIS e COFINS. GTIN omitido vira SEM GTIN. Unidade, quantidade e valor tributáveis herdam o comercial quando omitidos.
Pagamento
Obrigatório. Informe ao menos uma forma em pagamento.formas_pagamento com meio_pagamento e valor. Cartão integrado (tipo_integracao 1) exige CNPJ da credenciadora e autorização. Use informacoes_adicionais_pagamentos para o comprovante TEF no rodapé do PDF.
Erros
Validação de campos: HTTP 422 com mapa campo → mensagem. SEFAZ: HTTP 422 com o motivo. Duplicidade: HTTP 409. Emitente sem NFC-e, CSC ou certificado: HTTP 403/422 conforme o caso.