Documentación › Emisión de NF-e
Emisión de NF-e
Emitir, validar, consultar, cancelar y corregir NF-e modelo 55, con los tributos provenientes de tu ERP.
Todas las UF. La emisión funciona en cualquier estado: Sudrel prepara la UF de tu empresa en minutos, a partir del registro, sin acción tuya. Donde el texto cita Bahia, es la UF de los ejemplos y de las reglas ya detalladas.
Emite NF-e (modelo 55) con las mismas convenciones de la NFS-e: Idempotency-Key,
referencia única por empresa, Prefer: wait, errores en Problem Details,
ajustes, regras_versao, cursor de eventos y webhooks firmados. Quien ya
integró NFS-e no tiene que aprender nada de nuevo.
Tres modos, elegidos en modo:
informado(predeterminado): los tributos vienen listos de tu ERP. Envías, en cada ítem, los grupos de ICMS, IPI, PIS, COFINS e IBS/CBS ya calculados; Sudrel verifica los totales contra la suma de los ítems, valida en el esquema oficial de la SEFAZ antes de firmar, firma con el certificado A1 de la empresa, transmite y hace el seguimiento.calcular: cada ítem trae soloproduto(el código registrado en/v1/produtos), cantidad y valor; el motor fiscal de Sudrel resuelve CFOP y tributos y explica cada valor enajustes(regla, versión y fuente legal). Consulta Productos y motor fiscal.conferir: envías los valores, como en el informado, más elprodutode cada ítem; Sudrel calcula en paralelo y devuelve las diferencias enajustes.
Una nota nunca se convierte en dos. La clave de acceso se graba antes del envío. Si la
respuesta de la SEFAZ no llega (timeout, caída), la nota queda en
aguardando_confirmacao y Sudrel consulta la clave en la SEFAZ: solo reenvía, y el
MISMO XML, si la SEFAZ dice que la nota no existe. La duplicidad (204) no es un
error para ti: la consulta lo resuelve.
Qué es obligatorio
| Campo | Modo informado |
Modo calcular |
|---|---|---|
empresa_id |
Sí (no se exige con clave restringida a una empresa) | Igual |
referencia |
No, pero envíala: con ella consultas y evitas notas duplicadas | Igual |
natureza_operacao |
Sí | No: viene del catálogo de operaciones |
presenca |
Sí | Sí |
destinatario.documento |
Sí | Sí |
destinatario.nome |
Con CPF. Con CNPJ, viene de la Receita | Igual |
destinatario.endereco |
Con CPF, solo cep y numero. Con CNPJ, viene de la Receita |
Igual |
destinatario.inscricao_estadual |
Solo con contribuinte: "contribuinte". Sin contribuinte, Sudrel consulta la SEFAZ |
Igual |
| Ítem | codigo, descricao, ncm, cfop, origem, unidade, quantidade, valor_unitario, icms, pis y cofins |
produto, quantidade y valor_unitario |
pagamentos |
Al menos uno, con forma y valor (descricao en la forma outros) |
Al menos uno; si es uno solo, el valor puede faltar (pasa a ser el valor de la nota) |
totais |
No: se suman de los ítems | No |
Según la operacao (modos calcular y conferir; en el informado, el CFOP y la
finalidade que envías ya indican la operación):
operacao |
Exige además | Tributos |
|---|---|---|
venda (predeterminado), venda_consumidor_final, bonificacao |
Nada | Calculados |
remessa |
subtipo: conserto, demonstracao, industrializacao u outras |
En modo informado: el catálogo resuelve CFOP y naturaleza, el motor no calcula remesa |
transferencia |
Nada | En modo informado |
devolucao |
chave_referenciada (44 caracteres) y subtipo comercializacao (predeterminado) o industrializacao |
En modo informado: envía la misma chave_referenciada y finalidade: "devolucao", con los tributos de la nota de origen. En conferir, la nota sigue con tus valores, sin verificación |
En modo informado, la finalidade decide si la nota de origen es obligatoria:
devolucao y complementar exigen chave_referenciada (sin ella, 422
chave_referenciada_obrigatoria); normal y ajuste la aceptan, sin exigirla.
Sudrel verifica el tamaño y el dígito verificador antes de enviar y pone la clave
donde la SEFAZ la pide: en la devolución, en cada ítem (det/DFeReferenciado, con el
item_referenciado cuando lo informas); en las otras finalidades, en la nota
(NFref/refNFe). Las dos juntas la SEFAZ las rechaza (rechazo 1010).
Lo que falta o está mal vuelve junto, en un 422 validacao, cada error con el
campo (JSON Pointer), el mensagem y la correcao.
Sandbox y producción
- Clave
sdr_test_: emite de verdad en la homologación de la SEFAZ (tpAmb 2), con el certificado real de la empresa, sin valor fiscal y sin cobro, en cualquier UF. El nombre del destinatario sale como la SEFAZ exige en homologación. - Clave
sdr_live_: emite en la producción de la SEFAZ (tpAmb 1), con valor fiscal. La solicitud, la respuesta y los webhooks son los mismos de la homologación.
Status
| Status | Qué significa |
|---|---|
transmitindo |
Nos estamos encargando: en la cola o enviando. No reenvíes. |
aguardando_confirmacao |
La nota se envió y la respuesta de la SEFAZ no llegó. Sudrel está consultando la clave; no se crea ninguna nota nueva y no necesitas hacer nada. |
autorizada |
NF-e autorizada. protocolo, chave_acesso, XML y DANFE disponibles. |
rejeitada |
La SEFAZ la rechazó. rejeicao trae el cStat, el mensaje de la SEFAZ y, cuando se conoce, la explicación en portugués. El número sigue siendo tuyo: corrige con POST /v1/nfe/{id}/correcao. |
denegada |
Uso denegado por la SEFAZ (irregularidad fiscal). El número se consumió y la nota no puede usarse. |
cancelada |
Cancelada después de autorizada. Protocolo en cancelamento. |
descartada |
Desististe de la nota (o Sudrel descartó una rechazada olvidada). El número se inutiliza. |
contingencia_epec |
La SEFAZ de la UF estaba caída y la nota entró en contingencia por EPEC: el evento se registró en el Ambiente Nacional y el DANFE ya es válido. La NF-e va a la UF cuando esta vuelva (consulta Contingencia de la NF-e). |
Equivalencia con el status interno: PENDENTE y TRANSMITINDO son
transmitindo; AGUARDANDO_CONFIRMACAO, AUTORIZADA, DENEGADA, REJEITADA,
DESCARTADA y CANCELADA tienen el mismo nombre en minúsculas; EPEC_REGISTRADO es
contingencia_epec. En la NFS-e,
aguardando_confirmacao pide tu confirmación; en la NF-e, es Sudrel
confirmando con la SEFAZ.
Lo que Sudrel completa (ajustes)
regra |
Qué se hizo |
|---|---|
nfe_modo_informado |
Sin modo: tributos informados por ti. |
nfe_serie_da_origem |
Sin serie: la serie de la API de esta empresa (cada canal tiene la suya). |
nfe_destino_operacao |
Operación interna, interestatal o con el exterior, según las UF. |
nfe_totais_somados |
Totales que no enviaste, sumados de los ítems. |
nfe_valor_total_item |
Valor del ítem: cantidad por valor unitario. |
nfe_sem_gtin |
Producto sin código de barras: "SEM GTIN". |
nfe_transporte_sem_frete |
Sin transporte: "sin flete". |
nfe_tipo_operacao_saida |
Sin tipo_operacao: salida. |
nfe_finalidade_normal |
Sin finalidade: NF-e normal. |
nfe_ibs_soma_uf_municipio |
IBS del ítem: suma de la parte de la UF con la del municipio. |
nfe_totais_ibs_cbs_somados |
Totales de IBS y CBS que no enviaste, sumados de los ítems. |
nfe_correcao_<cStat> |
Corrección automática hecha después de un rechazo conocido. |
nfe_destinatario_homologacao |
En el sandbox, el nombre del destinatario es el literal de la SEFAZ. |
nfe_autxml_escritorio |
En BA, la oficina contable de la empresa en el grupo autXML (exigencia de la UF). |
nfe_autxml_sefaz_sem_escritorio |
En BA, sin oficina contable vinculada: el CNPJ de la SEFAZ-BA. |
nfe_autxml_sefaz_apos_487 |
La SEFAZ rechazó la oficina contable (487); la nota se rehízo con el CNPJ de la SEFAZ. |
nfe_indintermed_padrao |
Indicativo de intermediario "sin intermediario", cuando la presencia lo exige. |
nfe_autxml_sefaz_escritorio_recusado |
La SEFAZ ya había rechazado la oficina contable de esta empresa (487): la nota salió directo con el CNPJ de la SEFAZ, sin un envío rechazado. |
nfe_operacao_venda |
Modos calcular y conferir, sin operacao: venta. |
nfe_natureza_da_operacao |
Naturaleza de la operación del catálogo de operaciones. |
nfe_pagamento_valor_da_nota |
Modo calcular, un pago sin valor: el valor de la nota calculada. |
nfe_conferencia_divergencia |
Modo conferir: el valor informado difiere del calculado (acao: "divergente"). |
nfe_conferencia_fora_de_cobertura |
Modo conferir: el ítem no se verificó porque está fuera de la cobertura del motor. |
En modo calcular, cada valor calculado entra en ajustes con acao: "calculado",
la regra (por ejemplo icms_ba_ai_geral_2024, ipi_aliquota_tipi,
pis_cofins_base_sem_icms, ibs_cbs_calculadora_oficial), el valor, la versao
de la regla o de la tabla y la fonte legal.
Cancelación y carta de corrección
Cancelación hasta 24 horas después de la autorización (regla nacional). Fuera del
plazo, la respuesta es 422 cancelamento_fora_do_prazo: solo queda la cancelación
extemporánea, solicitada por el contribuyente en la SEFAZ. En Bahia no existe
cancelación extemporánea (RICMS/BA, art. 92): si la mercancía no circuló, el
camino es una NF-e de entrada o salida de regularización en hasta 60 días, con la
clave de la nota incorrecta referenciada; la respuesta del 422 ya lo indica. La carta de corrección (hasta 20 por
nota) no corrige valores, cantidad, base de cálculo, alícuota, datos que
cambien el remitente o el destinatario, ni la fecha de emisión o de salida. Sudrel
no lee el texto: la respuesta trae ese aviso, sin bloquear.
Numeración
Cada canal (API, planilla, panel) tiene su serie, y el número solo se reserva
cuando se crea la nota (la validación y la vista previa nunca reservan). Una rechazada olvidada
pasa a descartada sola antes del plazo legal de inutilización, con el webhook
NFE_DESCARTE_PROXIMO algunos días antes. Sudrel inutiliza sola los números
que ella misma perdió; GET /v1/nfe/inutilizacoes muestra qué se inutilizó y
por qué.
Rutas de esta sección, con prueba en la página
- GET/v1/nfe · Lista las NF-e
- POST/v1/nfe · Emite una NF-e (modelo 55)
- POST/v1/nfe/previas · Valida y muestra el XML sin emitir
- GET/v1/nfe/prontidao/{empresa_id} · ¿La empresa está lista para emitir NF-e?
- GET/v1/nfe/inutilizacoes · Números inutilizados por Sudrel
- GET/v1/nfe/{id} · Consulta una NF-e
- GET/v1/nfe/{id}/xml · XML autorizado (nfeProc)
- GET/v1/nfe/{id}/danfe · DANFE en PDF
- POST/v1/nfe/{id}/correcao · Corrige una NF-e rechazada y la reenvía
- POST/v1/nfe/{id}/descarte · Desiste de una NF-e rechazada
- POST/v1/nfe/{id}/cancelamento · Cancela una NF-e autorizada
- POST/v1/nfe/{id}/cartas-correcao · Registra una carta de corrección (CC-e)