Endpoints NF-e / NFC-e
Referência completa dos endpoints para emissão, cancelamento, consulta de status e download do DANFE. Todos os endpoints usam o prefixo https://platform.notaas.com.br/api/v1 e requerem x-api-key.
Emissão
POST
/nfe/emitir🔑 x-api-keyEnfileira uma NF-e ou NFC-e para emissão assíncrona via SEFAZ. Retorna 202 com invoiceId para polling.
Body (JSON)
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| modelo | number | não | 55 para NF-e, 65 para NFC-e (padrão: 55) |
| naturezaOperacao | string | sim | Natureza da operação (ex: "Venda de mercadoria") |
| destinoOperacao | number | não | 1=Interna, 2=Interestadual, 3=Exterior (padrão: 1) |
| dest.cnpj | string | não | CNPJ do destinatário (14 dígitos). Obrigatório para NF-e. |
| dest.cpf | string | não | CPF do destinatário (11 dígitos). Alternativo ao CNPJ. |
| dest.nome | string | sim | Razão social / nome do destinatário (mín. 2 chars) |
| dest.ie | string | não | Inscrição Estadual do destinatário (omitir para consumidor final) |
| dest.email | string | não | E-mail do destinatário |
| dest.endereco.logradouro | string | sim | Logradouro do destinatário |
| dest.endereco.numero | string | não | Número (padrão: "SN") |
| dest.endereco.complemento | string | não | Complemento |
| dest.endereco.bairro | string | sim | Bairro |
| dest.endereco.codigoMunicipio | number | sim | Código IBGE do município (7 dígitos, ex: 4106902) |
| dest.endereco.cidade | string | sim | Nome do município |
| dest.endereco.uf | string | sim | Sigla do estado (ex: "PR") |
| dest.endereco.cep | string | sim | CEP (apenas dígitos) |
| items[] | array | sim | Array de itens da nota (mínimo 1) |
| items[].descricao | string | sim | Descrição do produto |
| items[].ncm | string | sim | NCM — 8 dígitos (ex: "61091000") |
| items[].cfop | string | sim | CFOP — 4 dígitos (ex: "5102") |
| items[].valorTotal | number | sim | Valor total do item em reais (deve ser > 0) |
| items[].quantidade | number | não | Quantidade (padrão: 1) |
| items[].valorUnitario | number | não | Valor unitário em reais (padrão: valorTotal) |
| items[].unidade | string | não | Unidade comercial (padrão: "UN") |
| items[].codigo | string | não | Código interno do produto (padrão: "PRD001") |
| items[].cst | string | não | CST do ICMS — para CRT 2 ou 3. Nível raiz do item (ex: "00", "40", "60") |
| items[].csosn | string | não | CSOSN do ICMS — para CRT 1 / Simples Nacional (ex: "102", "500"). Exclusivo com cst. |
| items[].aliquotaIcms | number | não | Alíquota ICMS em % — obrigatório para CST 00, 10, 20 (ex: 12) |
| items[].desconto | number | não | Desconto do item em reais |
| items[].ean | string | não | EAN/GTIN do produto (omitir para "SEM GTIN") |
| pagamentos[] | array | sim | Formas de pagamento (mínimo 1) |
| pagamentos[].tipoPagamento | string | sim | Código SEFAZ: 01=Dinheiro, 03=Cartão de Crédito, 04=Cartão de Débito, 17=PIX, 99=Outros. Veja tabela completa abaixo. |
| pagamentos[].valor | number | sim | Valor pago nesta forma em reais |
| pagamentos[].tipoIntegracao | number | não | Tipo de integração: 1=Integrado (TEF), 2=Não integrado (POS). Auto-preenchido como 2 para pagamentos eletrônicos. |
| pagamentos[].bandeira | string | não | Bandeira do cartão (2 dígitos). Ex: "01"=Visa, "02"=Mastercard. Veja tabela abaixo. |
| pagamentos[].autorizacao | string | não | Código de autorização da transação (fornecido pela operadora). Até 128 caracteres. |
| pagamentos[].cnpjPagamento | string | não | CNPJ da instituição de pagamento (adquirente). 14 dígitos, apenas números. |
| presencaComprador | number | não | Indicador de presença do comprador (padrão: 1). NF-e: 0–5 ou 9. NFC-e: apenas 1, 4 ou 5. Veja tabela abaixo. |
| infCpl | string | não | Informações complementares (texto livre) |
Valores de presencaComprador
| Valor | Significado | NF-e | NFC-e |
|---|---|---|---|
| 0 | Não se aplica (complementar/ajuste) | ✅ | ❌ |
| 1 | Operação presencial (padrão) | ✅ | ✅ |
| 2 | Não presencial, internet | ✅ | ❌ |
| 3 | Não presencial, teleatendimento | ✅ | ❌ |
| 4 | Entrega em domicílio (delivery) | ❌ | ✅ |
| 5 | Presencial, fora do estabelecimento | ✅ | ✅ |
| 9 | Não presencial, outros | ✅ | ❌ |
Tipos de Pagamento (tipoPagamento)
| Código | Tipo | Grupo card |
|---|---|---|
| 01 | Dinheiro | — |
| 02 | Cheque | — |
| 03 | Cartão de Crédito | ✅ Auto |
| 04 | Cartão de Débito | ✅ Auto |
| 05 | Crédito Loja | — |
| 10 | Vale Alimentação | ✅ Auto |
| 11 | Vale Refeição | ✅ Auto |
| 15 | Boleto Bancário | ✅ Auto |
| 17 | PIX | ✅ Auto |
| 18 | Transferência | ✅ Auto |
| 90 | Sem Pagamento | — |
| 99 | Outros | — |
✅ Auto = sistema gera automaticamente o grupo card com tipoIntegracao=2 (não integrado) quando omitido.
Bandeiras de Cartão (bandeira)
| Código | Bandeira |
|---|---|
| 01 | Visa |
| 02 | Mastercard |
| 03 | American Express |
| 04 | Sorocred |
| 05 | Diners Club |
| 06 | Elo |
| 07 | Hipercard |
| 08 | Aura |
| 09 | Cabal |
| 99 | Outros |
{
"modelo": 55,
"naturezaOperacao": "Venda de mercadoria",
"dest": {
"cnpj": "12345678000195",
"nome": "Empresa Compradora Ltda",
"endereco": {
"logradouro": "Rua das Flores",
"numero": "100",
"bairro": "Centro",
"codigoMunicipio": 4106902,
"cidade": "Curitiba",
"uf": "PR",
"cep": "80010100"
}
},
"items": [
{
"descricao": "Camiseta algodão P",
"ncm": "61091000",
"cfop": "5102",
"quantidade": 2,
"valorUnitario": 49.90,
"valorTotal": 99.80,
"csosn": "102"
}
],
"pagamentos": [
{ "tipoPagamento": "01", "valor": 99.80 }
],
"infCpl": "Pedido #2026-001"
}Cancelamento
POST
/nfe/cancelar🔑 x-api-keySolicita o cancelamento assíncrono de uma NF-e ou NFC-e autorizada. Prazo: 24h para NF-e, variável por UF para NFC-e.
Body (JSON)
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| invoiceId | string | sim | ID da nota a cancelar |
| motivo | string | sim | Motivo do cancelamento (mínimo 15, máximo 255 caracteres — exigência SEFAZ) |
Respostas
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| 202 | Accepted | não | Cancelamento aceito e enfileirado para processamento assíncrono |
| 404 | Not Found | não | Invoice não encontrada ou não pertence ao projeto |
| 422 | Unprocessable | não | Status ≠ issued, prazo expirado, ou chave de acesso ausente |
Status & Polling
GET
/nfe/invoices/{id}/status🔑 x-api-keyRetorna o status de uma NF-e/NFC-e. Use para polling após receber 202 do /nfe/emitir.
Resposta
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| invoiceId | string | não | ID da invoice |
| status | string | não | queued | processing | issued | error | cancelled | inutilized |
| modelo | number | não | 55 ou 65 |
| tpAmb | number | não | 1=Produção, 2=Homologação |
| nNf | number | não | Número sequencial (quando ≥ processing) |
| serie | number | não | Série da nota (quando ≥ processing) |
| chaveAcesso | string | não | Chave de acesso 44 dígitos (quando ≥ processing) |
| nProt | string | não | Número de protocolo SEFAZ (quando issued) |
| cStat | number | não | Código de status SEFAZ (100=autorizada) |
| xMotivo | string | não | Descrição do status SEFAZ |
| vNf | number | não | Valor total da NF em reais (quando issued) |
| errorMessage | string | não | Mensagem de erro (quando status=error) |
Documentos
GET
/nfe/invoices/{id}/danfe🔑 x-api-keyRetorna o DANFE da NF-e em PDF (A4) ou o DANFE da NFC-e (cupom 80mm com QR Code).
Comportamento
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| 200 | application/pdf | não | PDF do DANFE (A4 para modelo 55, cupom para modelo 65) |
| issued | DANFE normal | não | Gerado a partir do XML autorizado armazenado no banco |
| cancelled | DANFE + watermark | não | Inclui marca d'água "NOTA CANCELADA" |
Erros
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| 422 | Unprocessable | não | Nota ainda não emitida (status queued/processing/error) |
| 404 | Not Found | não | Nota não encontrada ou não pertence ao projeto |