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.

POST/nfceEnvia a NFC-e à SEFAZ e grava a nota quando ela é autorizada.
GET/nfce/{id}Consulta a NFC-e pelo id ou pela identificação.
POST/nfce/{id}/cancelarCancela a NFC-e autorizada deste emitente na SEFAZ.
GET/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.

POST

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

POST/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

GET/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

POST/nfce/{id}/cancelarCancela na SEFAZ com justificativa de 15 a 255 caracteres.
{
    "justificativa": "Cancelamento da venda a pedido do consumidor."
}

Imprimir

GET/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.