Emissão por tipo de nota
Referência dos campos de cada emissão. NF-e e NFC-e partem de um pedido de venda; a NFS-e tem payload próprio. Tipos completos no OpenAPI.
Valores & unidades
Atenção às unidades: nos itens (pedido e NFS-e) o valor é em centavos (unitPriceCents, discountCents). Nos pagamentos da NFC-e o valor é em reais (valor). Ex.: R$ 19,90 → 1990 (centavos) no item, 19.90 (reais) no pagamento.
Pedido de venda POST /v1/sales-orders
Base de NF-e e NFC-e. Campos:
| Campo | | Descrição |
companyId | obrigatório | Empresa emitente |
customerId | opcional | Cliente (destinatário). Obrigatório para NF-e 55 |
items[] | obrigatório | Itens — ver abaixo |
priceListId | opcional | Tabela de preço; senão usa a do cliente/empresa |
paymentTerms | opcional | Condição de pagamento (texto) |
duplicatas[] | opcional | Parcelas (grupo <cobr>): numero, vencimento (YYYY-MM-DD), valorCents |
referencedAccessKey | opcional | Chave (44 díg.) de NF-e referenciada (<NFref>) |
Item (items[])
| Campo | | Descrição |
description | obrigatório | Descrição do produto |
unit | obrigatório | Unidade comercial (ex.: UN, KG) |
quantity | obrigatório | Quantidade |
productId / sku | opcional | Vincula a um produto cadastrado (resolve NCM/preço) |
unitPriceCents | opcional | Preço unitário em centavos. Omitido → resolve da tabela/produto |
discountCents | opcional | Desconto do item em centavos |
ncm / cfop | opcional | Sobrescrevem o do produto |
curl -X POST https://api.certfiscal.com.br/v1/sales-orders \
-H "Authorization: Bearer SUA_CHAVE" -H "Content-Type: application/json" \
-d '{
"companyId": "comp_...",
"items": [
{ "description": "Camiseta P", "unit": "UN", "quantity": 2, "unitPriceCents": 4990 }
]
}'
NFC-e (modelo 65) POST /v1/nfce
Cupom fiscal eletrônico, emissão síncrona. Escopo nfce:write + header Idempotency-Key.
| Campo | | Descrição |
salesOrderId | obrigatório | Pedido de venda |
payments[] | obrigatório | Formas de pagamento (não vazio) |
troco | opcional | Troco em reais (default 0) |
Pagamento (payments[])
| Campo | | Descrição |
tipo | obrigatório | tPag: 01 dinheiro, 03 crédito, 04 débito, 17 PIX… |
valor | obrigatório | Valor pago nesta forma, em reais |
curl -X POST https://api.certfiscal.com.br/v1/nfce \
-H "Authorization: Bearer SUA_CHAVE" \
-H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
-d '{
"salesOrderId": "so_...",
"payments": [{ "tipo": "17", "valor": 99.80 }]
}'
NF-e (modelo 55) POST /v1/nfe
Prepara a NF-e do pedido e autoriza na SEFAZ. Escopo nfe:write + Idempotency-Key. O destinatário (customerId no pedido) é obrigatório.
| Campo | | Descrição |
salesOrderId | obrigatório | Pedido de venda |
companyId | opcional | Empresa (se diferente da do pedido) |
curl -X POST https://api.certfiscal.com.br/v1/nfe \
-H "Authorization: Bearer SUA_CHAVE" \
-H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
-d '{ "salesOrderId": "so_..." }'
NFS-e POST /v1/nfse
Nota de serviço, com payload próprio (não usa pedido de venda). Escopo nfse:write + Idempotency-Key.
| Campo | | Descrição |
companyId | obrigatório | Empresa prestadora |
tomadorType | obrigatório | PJ | PF | exterior |
items[] | obrigatório | Serviços — ver abaixo |
tomadorDoc / tomadorName / tomadorEmail | opcional | Dados do tomador |
tomadorCityIbge | opcional | Município do tomador (código IBGE) |
competencia | opcional | Competência (data) |
deductionsCents | opcional | Deduções em centavos |
Serviço (items[])
| Campo | | Descrição |
description | obrigatório | Descrição do serviço |
unitPriceCents | obrigatório | Valor unitário em centavos |
quantity | opcional | Quantidade (default 1) |
issRate | opcional | Alíquota de ISS |
cTribNac | opcional | Código de tributação nacional (NBS) |
curl -X POST https://api.certfiscal.com.br/v1/nfse \
-H "Authorization: Bearer SUA_CHAVE" \
-H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
-d '{
"companyId": "comp_...",
"tomadorType": "PJ",
"tomadorDoc": "12345678000190",
"tomadorName": "Cliente Ltda",
"items": [{ "description": "Consultoria em TI - 10h", "unitPriceCents": 500000, "issRate": 2.0 }]
}'
Cobertura NFS-e: 2.419 cidades pelo Emissor Nacional + conectores próprios. Consulte a cobertura em GET /v1/coverage.
Cancelamento POST /v1/nfe/{id}/cancelamento
Cancela NF-e/NFC-e autorizada. Escopo nfe:write.
| Campo | | Descrição |
justification | obrigatório | Motivo, entre 15 e 255 caracteres (regra SEFAZ) |
curl -X POST https://api.certfiscal.com.br/v1/nfe/inv_.../cancelamento \
-H "Authorization: Bearer SUA_CHAVE" -H "Content-Type: application/json" \
-d '{ "justification": "Cancelamento por desistencia do cliente" }'
XML & DANFE
| Endpoint | Retorna |
GET /v1/nfe/{id}/xml | XML autorizado da NF-e/NFC-e (base64) |
GET /v1/nfe/{id}/danfe | DANFE em PDF (base64, sob demanda) |
GET /v1/nfse/{id}/xml | XML autorizado da NFS-e (base64) |
GET /v1/invoices?companyId=… | Lista/busca notas por empresa e período |