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
/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 | Descrição da operação fiscal (ex: "Venda de mercadoria") |
| dest | object | sim | Dados do destinatário (obrigatório para NF-e mod. 55) |
| dest.cnpj / dest.cpf | string | sim | CNPJ (14 dígitos) ou CPF (11 dígitos), apenas números |
| dest.nome | string | sim | Razão social / nome completo do destinatário (mínimo 2 caracteres) |
| dest.ie | string | não | Inscrição Estadual (se contribuinte; omitir se isento/não-contribuinte) |
| dest.indicadorIE | number | não | 1=Contribuinte, 2=Isento, 9=Não contribuinte. Auto-inferido de dest.ie quando omitido. |
| dest.email | string | não | E-mail do destinatário para envio do XML e DANFE |
| 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", "SP") |
| dest.endereco.cep | string | sim | CEP (apenas dígitos) |
| items[] | array | sim | Array de itens/produtos da nota (mínimo 1) |
| items[].descricao | string | sim | Descrição do produto (alias: items[].xProd) |
| items[].codigo | string | não | Código interno do produto (padrão: "PRD001", alias: items[].cProd) |
| items[].ncm | string | sim | NCM — 8 dígitos (ex: "61091000") |
| items[].cfop | string | sim | CFOP — 4 dígitos (ex: "5102") |
| items[].quantidade | number | não | Quantidade comercial (padrão: 1, alias: items[].qCom) |
| items[].valorUnitario | number | não | Valor unitário em reais (padrão: valorTotal, alias: items[].vUnCom) |
| items[].valorTotal | number | sim | Valor total bruto do item em reais (deve ser > 0, alias: items[].vProd) |
| items[].unidade | string | não | Unidade comercial (padrão: "UN", alias: items[].uCom) |
| items[].ean | string | não | EAN/GTIN do produto (omitir para "SEM GTIN", alias: items[].cEAN) |
| items[].cst | string | não | CST do ICMS para CRT 2 ou 3 (ex: "00", "40", "41", "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 (alias: items[].pICMS) |
| items[].codigoBeneficioFiscal | string | não | Código de Benefício Fiscal na UF (ex: "SP070130", "PR800000"). Exigido para UFs/CSTs com benefício fiscal (ex: CST 41 em SP). Aceita também alias SEFAZ items[].cBenef. |
| items[].valorFrete | number | não | Valor do frete específico deste item em reais (alias: items[].vFrete ou items[].frete) |
| items[].valorSeguro | number | não | Valor do seguro específico deste item em reais (alias: items[].vSeg ou items[].seguro) |
| items[].desconto | number | não | Desconto do item em reais (alias: items[].vDesc) |
| items[].outrasDespesas | number | não | Outras despesas acessórias do item em reais (alias: items[].vOutro) |
| items[].aliquotaPis | number | não | Alíquota PIS do item (%) |
| items[].aliquotaCofins | number | não | Alíquota COFINS do item (%) |
| items[].ibscbs | object | não | Grupo IBS/CBS da NT 2025.002-RTC. Quando informado, a API calcula base e valores dos tributos; não envie valores monetários calculados. |
| items[].ibscbs.cst | string | sim | CST IBS/CBS com 3 dígitos. Alias: cstIbsCbs. |
| items[].ibscbs.cClassTrib | string | sim | Classificação tributária oficial com 6 dígitos, compatível com o CST e com o modelo. Não possui valor padrão. Alias: classificacaoTributaria. |
| items[].ibscbs.aliquotaIbsEstadual | number | não | Alíquota nominal do IBS estadual (%). Obrigatória para classificações tributadas. Alias: pIBSUF. |
| items[].ibscbs.aliquotaIbsMunicipal | number | não | Alíquota nominal do IBS municipal (%). Obrigatória para classificações tributadas. Alias: pIBSMun. |
| items[].ibscbs.aliquotaCbs | number | não | Alíquota nominal da CBS (%). Obrigatória para classificações tributadas. Alias: pCBS. |
| items[].ibscbs.diferimentoIbsEstadual | number | não | Percentual de diferimento do IBS estadual, quando exigido pela classificação. Alias: pDifIBSUF. |
| items[].ibscbs.diferimentoIbsMunicipal | number | não | Percentual de diferimento do IBS municipal, quando exigido pela classificação. Alias: pDifIBSMun. |
| items[].ibscbs.diferimentoCbs | number | não | Percentual de diferimento da CBS, quando exigido pela classificação. Alias: pDifCBS. |
| items[].nfeReferenciada | object | não | Documento fiscal original referenciado neste item. Obrigatório em devoluções (finalidade: 4), exceto para os CFOPs 1201, 1202, 1410, 1411, 5921 e 6921. Aliases aceitos: items[].dfeReferenciado, items[].refNFe e items[].chaveReferenciada. |
| items[].nfeReferenciada.chaveAcesso | string | sim | Chave de acesso de 44 dígitos da NF-e original que deu origem à mercadoria devolvida. |
| items[].nfeReferenciada.nItem | number | sim | Número do item na NF-e original (inteiro entre 1 e 999). Consulte o atributo nItem do elemento det no XML original; a plataforma não infere esse valor. |
| 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 (alias: tPag) |
| pagamentos[].valor | number | sim | Valor pago nesta forma em reais (alias: vPag) |
| pagamentos[].descricaoPagamento | string | não | Descrição do meio de pagamento. Obrigatório quando tipoPagamento for "99" (Outros). Aceita também aliases: pagamentos[].descricao, pagamentos[].xPag. |
| pagamentos[].tipoIntegracao | number | não | 1=Integrado (TEF), 2=Não integrado (POS) |
| pagamentos[].bandeira | string | não | Bandeira do cartão (2 dígitos) |
| pagamentos[].autorizacao | string | não | Código de autorização da transação |
| pagamentos[].cnpjPagamento | string | não | CNPJ da credenciadora de pagamento |
| valorFrete | number | não | Valor total do frete da nota em reais. Se informado na raiz da nota, é distribuído proporcionalmente entre os itens. Alias amigável para frete. |
| valorSeguro | number | não | Valor total do seguro da nota em reais. Se informado na raiz da nota, é distribuído proporcionalmente entre os itens. Alias amigável para seguro. |
| transporte.modalidadeFrete | number | não | Modalidade do frete: 0=Emitente, 1=Destinatário, 2=Terceiros, 9=Sem frete (padrão: 9, alias: modFrete) |
| presencaComprador | number | não | Indicador de presença do comprador (padrão: 1) |
| indicadorIntermediador | number | não | 0=Sem intermediador, 1=Via marketplace. Obrigatório quando presencaComprador for 2, 3, 4 ou 9. |
| tipoOperacao | number | não | 0=Entrada, 1=Saída (padrão: 1) |
| finalidade | number | não | 1=Normal, 2=Complementar, 3=Ajuste, 4=Devolução (padrão: 1) |
| consumidorFinal | number | não | 0=Normal, 1=Consumidor final |
| tipoEmissao | number | não | 1=Normal, 3=Contingência SVC-AN, 5=Contingência SVC-RS (padrão: 1) |
| nfesReferenciadas (ou refNFe) | string | string[] | não | Referências no nível da nota para operações que permitem NFref. Não use em devoluções (finalidade: 4) nem em conjunto com items[].nfeReferenciada; essa combinação causa rejeição 1010. |
| infCpl | string | não | Informações complementares da nota (texto livre) |
🏛️ Funcionamento dos Cálculos Automáticos de IBS/CBS (NT 2025.002-RTC)
Reforma TributáriaO integrador precisa enviar apenas as alíquotas nominais, o CST (3 dígitos) e o código de classificação tributária cClassTrib (6 dígitos). A plataforma Notaas gerencia e calcula automaticamente todo o grupo fiscal e o XML SEFAZ.
1. Base de Cálculo (vBC)
Calculada automaticamente conforme fórmula SEFAZ: vProd + vFrete + vSeg + vOutro - vDesc. Não envie vBC manual no payload.
2. Redução de Alíquota (cClassTrib)
Conforme a tabela oficial v1.60 (LC 214/2025), a API aplica o percentual de redução (100%, 60%, 40% ou tributação integral) diretamente sobre a alíquota nominal.
3. Diferimento (CST 510)
Para NF-e (modelo 55) com CST 510, se informados percentuais de diferimento (diferimentoIbsEstadual, etc.), a API calcula o valor diferido e abate o tributo devido.
4. Totais e Transição (2026 vs 2027+)
Em 2025/2026, os valores de IBS/CBS são destacados no XML (IBSCBSTot), mas não somam no valor total do item (vItem) nem no total da nota. A virada para somar ao total ocorre automaticamente em 2027.
Exemplo de Payload com IBS/CBS:
"ibscbs": {
"cst": "000",
"cClassTrib": "000001",
"aliquotaIbsEstadual": 0.1,
"aliquotaIbsMunicipal": 0,
"aliquotaCbs": 0.9
}Valores de presencaComprador
| Valor | Significado | NF-e | NFC-e | Exige indicadorIntermediador? |
|---|---|---|---|---|
| 0 | Não se aplica (complementar/ajuste) | ✅ | ❌ | — |
| 1 | Operação presencial (padrão) | ✅ | ✅ | — |
| 2 | Não presencial, internet | ✅ | ❌ | ✅ Sim |
| 3 | Não presencial, teleatendimento | ✅ | ❌ | ✅ Sim |
| 4 | Entrega em domicílio (delivery) | ❌ | ✅ | — (NFC-e) |
| 5 | Presencial, fora do estabelecimento | ✅ | ✅ | — |
| 9 | Não presencial, outros | ✅ | ❌ | ✅ Sim |
🏪 Quando usar indicadorIntermediador
Para operações não-presenciais (presencaComprador: 2, 3 ou 9), a SEFAZ exige que você informe se a venda foi realizada diretamente ou via marketplace. Se omitido, a API assume 0 automaticamente (sem intermediador).
| Cenário | presencaComprador | indicadorIntermediador |
|---|---|---|
| Venda por WhatsApp, e-mail ou telefone direto | 9 | 0 |
| E-commerce no site próprio da empresa | 2 | 0 |
| Teleatendimento / call center da empresa | 3 | 0 |
| Venda pelo Mercado Livre, Shopee ou Amazon | 9 | 1 |
| Pedido pelo iFood ou Rappi | 9 | 1 |
| Venda presencial (balcão, loja física) | 1 | omitir |
⚠️ Omitir indicadorIntermediador em operações não-presenciais causa rejeição cStat 434 pela SEFAZ.
↩️ Notas de Devolução (finalidade: 4) & Referenciamento de NF
Nas notas de devolução de mercadoria, informe o documento fiscal original em cada item para evitar as rejeições 321 e 1102. A regra entra em produção na SEFAZ em 01/09/2026.
Formato obrigatório no item:
"nfeReferenciada": {
"chaveAcesso": "35260736848840000156550090000000111223152566",
"nItem": 7
}
// Aliases aceitos no item: nfeReferenciada, dfeReferenciado, refNFe, chaveReferenciadaO nItem identifica o item no XML da NF-e original, não a posição na devolução atual. Em uma devolução parcial, por exemplo, o primeiro item do novo documento pode referenciar o item 7 da nota original.
⚠️ Não envie refNFe, nfesReferenciadas ou nfeReferenciada na raiz de uma devolução. O grupo <NFref> no cabeçalho não pode coexistir com <DFeReferenciado> nos itens.
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 |
Transporte (opcional)
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| transporte.modalidadeFrete | number | não | 0=CIF (remetente), 1=FOB (destinatário), 2=Terceiros, 3=Próprio remetente, 4=Próprio destinatário, 9=Sem frete (padrão: 9) |
| transporte.transportadora.cnpj | string | não | CNPJ do transportador (14 dígitos) |
| transporte.transportadora.cpf | string | não | CPF do transportador (11 dígitos). Alternativo ao CNPJ. |
| transporte.transportadora.nome | string | não | Nome ou razão social do transportador |
| transporte.transportadora.ie | string | não | Inscrição Estadual do transportador ou "ISENTO" |
| transporte.transportadora.endereco | string | não | Endereço completo do transportador |
| transporte.transportadora.cidade | string | não | Município do transportador |
| transporte.transportadora.uf | string | não | UF do transportador (2 letras) |
| transporte.veiculo.placa | string | não | Placa do veículo (formato Mercosul ou antigo) |
| transporte.veiculo.uf | string | não | UF de registro do veículo |
| transporte.veiculo.rntc | string | não | Registro Nacional de Transportadores Rodoviários de Carga (ANTT) |
| transporte.volumes[].quantidade | number | não | Quantidade de volumes transportados |
| transporte.volumes[].especie | string | não | Espécie do volume (ex: "CAIXA", "FARDO") |
| transporte.volumes[].marca | string | não | Marca dos volumes |
| transporte.volumes[].numeracao | string | não | Numeração dos volumes |
| transporte.volumes[].pesoLiquido | number | não | Peso líquido em kg (3 casas decimais) |
| transporte.volumes[].pesoBruto | number | não | Peso bruto em kg (3 casas decimais) |
Cobrança (opcional — apenas NF-e mod. 55)
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| cobranca.fatura.numero | string | não | Número da fatura |
| cobranca.fatura.valorOriginal | number | não | Valor original da fatura em reais |
| cobranca.fatura.desconto | number | não | Desconto da fatura em reais |
| cobranca.fatura.valorLiquido | number | não | Valor líquido da fatura em reais |
| cobranca.parcelas[].numero | string | não | Número da parcela (ex: "001") |
| cobranca.parcelas[].vencimento | string | não | Data de vencimento (formato AAAA-MM-DD) |
| cobranca.parcelas[].valor | number | sim | Valor da parcela em reais |
{
"modelo": 55,
"naturezaOperacao": "Remessa para conserto",
"tipoOperacao": 1,
"finalidade": 1,
"nfesReferenciadas": ["35250112345678000195550010000012341123456789"],
"dest": {
"cnpj": "98765432000199",
"nome": "Laboratório Óptico Ltda",
"ie": "123456789",
"indicadorIE": 1,
"endereco": {
"logradouro": "Rua das Lentes",
"numero": "200",
"bairro": "Centro",
"codigoMunicipio": 3550308,
"cidade": "São Paulo",
"uf": "SP",
"cep": "01010100"
}
},
"items": [
{
"descricao": "Lente multifocal para conserto",
"ncm": "90015000",
"cfop": "5915",
"quantidade": 2,
"valorUnitario": 150.00,
"valorTotal": 300.00,
"cst": "50",
"aliquotaIcms": 0
}
],
"transporte": {
"modalidadeFrete": 1
},
"pagamentos": [
{ "tipoPagamento": "90", "valor": 0 }
],
"infCpl": "Remessa para conserto. ICMS suspenso conforme art. 327 do RICMS/SP. NF-e de venda original ref. na chave."
}Cancelamento
/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 |
Carta de Correção (CC-e)
/nfe/invoices/{id}/correcao🔑 x-api-keyEnvia uma Carta de Correção Eletrônica (CC-e) síncrona para sanar erros em campos específicos de uma NF-e autorizada. Não altera impostos, dados de emitente/destinatário ou data de saída.
URL Parameters
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| id | string | sim | ID da invoice autorizada na Notaas (formato UUID, ex: fbfa230b-9a08-45be-ae65-8c5f73152620). ATENÇÃO: Este é o Invoice ID interno da plataforma, não a chave de acesso de 44 dígitos da SEFAZ. |
Body (JSON)
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| correcao | string | sim | Texto descrevendo as correções de forma detalhada (mínimo 15, máximo 1000 caracteres) |
Respostas
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| 200 | OK | não | Carta de Correção registrada e vinculada com sucesso na SEFAZ |
| 404 | Not Found | não | Nota fiscal não encontrada ou não pertence ao projeto |
| 422 | Unprocessable | não | Texto inválido, nota com status diferente de issued, ou rejeição da SEFAZ |
curl -s -X POST \
-H "x-api-key: SUA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"correcao": "Alteracao do campo GTIN (cEAN e cEANTrib) dos itens da nota: Item 1 para 7898976161169."}' \
"https://platform.notaas.com.br/api/v1/nfe/invoices/SUA_INVOICE_ID/correcao"Status & Polling
/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 — Todos os status
| 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 (NF-e) ou 65 (NFC-e) |
| tpAmb | number | não | 1=Produção, 2=Homologação |
| createdAt | string (ISO 8601) | não | Quando a invoice foi criada |
| updatedAt | string (ISO 8601) | não | Última atualização |
Campos adicionais — quando issued ou cancelled
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| nNf | number | não | Número sequencial da nota |
| serie | number | não | Série da nota |
| chaveAcesso | string | não | Chave de acesso 44 dígitos |
| nProt | string | não | Número de protocolo SEFAZ |
| 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) |
| pdfUrl | string (URL) | não | URL para download do DANFE em PDF. Requer header x-api-key. A4 para NF-e, cupom 80mm para NFC-e. |
| xmlUrl | string (URL) | não | URL para download do XML autorizado. Requer header x-api-key. |
Campos adicionais — quando error
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| cStat | number | não | Código de rejeição SEFAZ (ex: 225, 539, 694) |
| xMotivo | string | não | Descrição da rejeição SEFAZ |
| errorMessage | string | não | Mensagem de erro interna para diagnóstico |
| retryCount | number | não | Número de tentativas realizadas |
ℹ️ pdfUrl e xmlUrl
Essas URLs apontam para os endpoints /nfe/invoices/{id}/danfe e /nfe/invoices/{id}/xml. Ambas requerem o header x-api-key — diferente da NFS-e, os documentos NF-e são gerados sob demanda e não estão em CDN público.
{
"invoiceId": "uuid-da-nfe",
"status": "issued",
"modelo": 55,
"tpAmb": 1,
"nNf": 42,
"serie": 1,
"chaveAcesso": "41260512345678000195550010000000421234567890",
"nProt": "141260000012345",
"cStat": 100,
"xMotivo": "Autorizado o uso da NF-e",
"vNf": 99.80,
"vProd": 99.80,
"vTrib": 0,
"destCpfCnpj": "12345678000195",
"destNome": "Empresa Compradora Ltda",
"destUf": "PR",
"natOp": "Venda de mercadoria",
"pdfUrl": "https://platform.notaas.com.br/api/v1/nfe/invoices/uuid-da-nfe/danfe",
"xmlUrl": "https://platform.notaas.com.br/api/v1/nfe/invoices/uuid-da-nfe/xml",
"createdAt": "2026-05-11T12:00:00.000Z",
"updatedAt": "2026-05-11T12:00:05.000Z"
}Documentos
Após a emissão (status=issued), os endpoints abaixo permitem baixar o DANFE (PDF) e o XML autorizado. O campo pdfUrl na resposta do GET /status já aponta para o endpoint de DANFE.
/nfe/invoices/{id}/danfe🔑 x-api-keyGera e retorna o DANFE (Documento Auxiliar da Nota Fiscal Eletrônica) em PDF. O formato varia conforme o modelo: NF-e (mod.55) gera A4, NFC-e (mod.65) gera cupom 80mm com QR Code.
⚠️ O que é o DANFE?
O DANFE é a representação gráfica simplificada da nota fiscal. Não é o documento fiscal (o documento fiscal é o XML). O DANFE serve para acompanhar a mercadoria em trânsito e facilitar a consulta da NF-e no portal da SEFAZ.
🎨 Modelos de DANFE (NF-e mod.55)
Projetos no plano Pro ou superior podem customizar o layout do DANFE A4 via Org API ou Dashboard:
- Padrão: Layout MOC 7.0 clássico (sem logo).
- Retrato com Logo: Layout vertical otimizado com logo do emitente no topo.
- Paisagem com Logo: Layout horizontal com canhoto na lateral esquerda e logo.
Acesse a documentação da Org API para saber como configurar o logo e o modelo.
Comportamento por status
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| issued | 200 · PDF | não | DANFE normal. NF-e: A4 retrato. NFC-e: cupom térmico 80mm com QR Code. |
| cancelled | 200 · PDF | não | DANFE com marca d'água "NOTA CANCELADA" sobreposta. |
| inutilized | 200 · PDF | não | DANFE com marca d'água "NÚMERO INUTILIZADO". |
Headers da resposta
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| Content-Type | application/pdf | não | Sempre retorna PDF binário |
| Content-Disposition | inline | não | Filename no formato danfe-{nNF}-{serie}.pdf (ex: danfe-000000042-001.pdf) |
| Cache-Control | no-store | não | Não cacheado — o status pode mudar (issued → cancelled) e o watermark deve refletir em tempo real |
Erros
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| 422 | Unprocessable | não | Nota ainda não emitida (status queued, processing ou error). Faça polling no /status até issued. |
| 404 | Not Found | não | Nota não encontrada ou não pertence ao projeto (mesma API key) |
| 429 | Too Many Requests | não | Rate limit excedido. Header Retry-After indica quando tentar novamente. |
| 500 | Internal Error | não | Falha na geração do PDF (raro). Tente novamente. |
# Download do DANFE (PDF)
# O response é o binário PDF — salve com -o ou redirecione
curl -s \
-H "x-api-key: SUA_API_KEY" \
"https://platform.notaas.com.br/api/v1/nfe/invoices/{invoiceId}/danfe" \
-o danfe.pdf
# Ou use a pdfUrl retornada no GET /status:
curl -s \
-H "x-api-key: SUA_API_KEY" \
"$(jq -r '.pdfUrl' status.json)" \
-o danfe.pdf/nfe/invoices/{id}/xml🔑 x-api-keyRetorna o XML autorizado da NF-e/NFC-e (nfeProc completo com protocolo de autorização SEFAZ).
Comportamento
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| 200 | application/xml | não | XML nfeProc completo (NFe + protocolo de autorização) |
| Content-Disposition | attachment | não | Filename no formato nfe-{chaveAcesso}.xml |
Erros
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| 422 | Unprocessable | não | Nota ainda não emitida ou XML não disponível |
| 404 | Not Found | não | Nota não encontrada ou não pertence ao projeto |
# Download do XML autorizado
curl -s \
-H "x-api-key: SUA_API_KEY" \
"https://platform.notaas.com.br/api/v1/nfe/invoices/{invoiceId}/xml" \
-o nfe.xml
# Ou use a xmlUrl retornada no GET /status:
curl -s \
-H "x-api-key: SUA_API_KEY" \
"$(jq -r '.xmlUrl' status.json)" \
-o nfe.xml