Sudrel API
Panel Crear clave de API

Documentación › Emisión de NF-e

Guías

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 solo produto (el código registrado en /v1/produtos), cantidad y valor; el motor fiscal de Sudrel resuelve CFOP y tributos y explica cada valor en ajustes (regla, versión y fuente legal). Consulta Productos y motor fiscal.
  • conferir: envías los valores, como en el informado, más el produto de cada ítem; Sudrel calcula en paralelo y devuelve las diferencias en ajustes.

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