TF Fiscal
Documentación

NF-e

Emisión de NF-e en nombre de vendedores - orden de los endpoints, semántica de los estados, requisitos previos, idempotencia, alcance, lista de verificación de integración y solución de problemas.

Visión general

Los endpoints de NF-e emiten facturas de producto (NF-e) en nombre de una empresa registrada: la emisión se acepta de inmediato y se autoriza de forma asíncrona en la SEFAZ, el resultado llega por webhook o consulta, y una factura autorizada puede cancelarse o complementarse con cartas de corrección (CC-e).

Endpoints

Antes de emitir, la empresa debe estar registrada mediante Registrar empresa, tener el certificado vinculado mediante Vincular certificado, y su aplicación debería tener una URL de callback registrada mediante Registrar webhook. El empresaId devuelto en el registro es la variable de ruta de todos los endpoints siguientes.

PasoEndpointNotas
1 Emitir NF-ePOST /openapi/v2/empresas/{empresaId}/nf-eSe acepta de inmediato; se autoriza de forma asíncrona en la SEFAZ
2 Consultar NF-eGET /openapi/v2/empresas/{empresaId}/nf-e/{nfeId}Estado, datos de la factura, enlaces de descarga del DANFE / XML
3 Cancelar NF-eDELETE /openapi/v2/empresas/{empresaId}/nf-e/{nfeId}Dentro de las 24 horas siguientes a la autorización
4 Registrar carta de correcciónPOST /openapi/v2/empresas/{empresaId}/nf-e/{nfeId}/carta-correcaoDentro de las 720 horas siguientes a la autorización, hasta 20 por factura, protocolo devuelto de forma síncrona
5 Listar cartas de correcciónGET /openapi/v2/empresas/{empresaId}/nf-e/{nfeId}/carta-correcaoCada entrada lleva el XML de recibo y el enlace de descarga del DACCE

Toda solicitud lleva las tres cabeceras de firma descritas en Autenticación; el path firmado incluye el prefijo /openapi y las variables de ruta (empresaId / nfeId).

Semántica de los estados

statusSignificado
AguardandoAutorizacaoDesde la aceptación hasta la respuesta de la SEFAZ
AutorizadaAutorizada por la SEFAZ; linkDanfe / linkDownloadXml quedan disponibles
NegadaRechazada; motivoStatus lleva el código de estado y la descripción de la SEFAZ (por ejemplo 778 - Rejeicao: NCM inexistente). Corrija y reenvíe
CanceladaTras una cancelación exitosa

Los resultados autorizado y denegado también se entregan en su URL de callback; los formatos de carga están en Webhooks.

Estado de la empresa y requisitos previos

El endpoint de registro coloca la empresa en la cola de aprobación de la plataforma; la empresa puede emitir facturas solo después de que operaciones la apruebe y el certificado esté vinculado. Emitir antes de la aprobación devuelve el error 10004004 (empresa no habilitada para emitir). Confirme el avance de la aprobación con operaciones de la plataforma.

Toda empresa tiene un entorno actual (prueba Homologacao / producción Producao); las empresas recién registradas comienzan en prueba, y el cambio a producción es una acción de operaciones. El ambienteEmissao de la solicitud de emisión debe corresponder al entorno actual de la empresa; la discrepancia devuelve 10004030, una protección estricta contra facturas de prueba emitidas en producción. Vea Entornos.

Idempotencia y reenvío

Las solicitudes de emisión aceptadas devuelven HTTP 200 sin cuerpo y entran en el flujo asíncrono de emisión; el resultado llega por webhook o por el endpoint de consulta. Reenviar el mismo id reutiliza la tarea original; si el intento anterior fue denegado (Negada), reenviar el mismo id con los campos corregidos emite de nuevo con el nuevo payload, sin necesidad de otro id. Cambiar campos clave como el destinatario mientras el intento anterior sigue en proceso o ya fue autorizado se rechaza con 10004032.

Alcance

ElementoSoporte
Finalidad de la facturaFacturas normales y de devolución (finalidade=Normal / Devolucao); facturas complementarias / de ajuste aún no admitidas
DestinatarioCompradores CPF; los compradores CNPJ deben llevar inscricaoEstadual (contribuyente de ICMS)
Presencia del consumidorSolo OperacaoPelaInternet
Formas de pagoUna o más entradas cuya suma de valor debe ser igual al total de la factura; los datos del procesador de tarjeta no se escriben en la NF-e
FleteFijo sin transporte (modFrete=9)
AlícuotasCódigos tributarios más parámetros de alícuota opcionales; para empresas CRT=3 las alícuotas ad valorem omitidas se completan con la tabla de alícuotas, y el pCredSN de CSOSN 101/201 recurre al perfil de la empresa
Enlace del DANFEDisponible en la respuesta de la consulta y, como nfeLinkDanfe, en el callback de autorización; el PDF se renderiza en la primera descarga
Carta de corrección (CC-e)Registro y listado, protocolo devuelto de forma síncrona, DACCE incluido; todavía sin callback invoice.cce.registered
digestValue / teléfono del cliente / complemento de la direcciónNo se proporcionan por el momento

Lista de verificación de integración

  1. Registre una empresa → 200 + empresaId; registre el mismo CNPJ de nuevo → 400 + 10003002.
  2. Vincule el certificado → 200 sin cuerpo; contraseña incorrecta → 400 + CER0005.
  3. Registre el webhook → 200 + webHookId.
  4. Tras la aprobación, emita con ambienteEmissao=Homologacao → 200 sin cuerpo; luego consulteAguardandoAutorizacao pasa a Autorizada, y linkDanfe / linkDownloadXml se descargan correctamente.
  5. Reciba el callback de autorización: la cabecera token es igual al valor registrado y la carga tiene nfeStatus=Autorizada.
  6. Casos negativos: ambienteEmissao=Producao → 400 + 10004030; presencaConsumidor=OperacaoPresencial → 400 + 10004031.
  7. Cancele la factura recién autorizada → 200; consulte de nuevo → Cancelada; cancele un id desconocido → 404 + NFe0001.
  8. Rutas de fallo: sign incorrecto → 401 + 10009003; endpoint no suscrito → 403 + 10009005.

Solución de problemas

¿Firma no coincide (401, 10009003)?

Vea la sección de solución de problemas en Autenticación.

¿Emisión atascada en AguardandoAutorizacao?

Mientras la empresa está en el entorno de prueba, esto depende de la disponibilidad del entorno de prueba de la SEFAZ; si persiste más de unos minutos, contacte con la plataforma indicando el empresaId y el nfeId.

¿La emisión devuelve 10004004?

La empresa aún no ha sido aprobada, o su certificado no está vinculado / ha caducado. Complete primero la aprobación y la vinculación del certificado tras el registro.

¿No llegan los callbacks?

Asegúrese de que uri sea una dirección https/http accesible públicamente que devuelva 2xx; la plataforma reintenta con backoff y activa un cortacircuitos tras fallos consecutivos. Llamar de nuevo a Registrar webhook restaura la entrega.