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.
| Paso | Endpoint | Notas |
|---|---|---|
| 1 Emitir NF-e | POST /openapi/v2/empresas/{empresaId}/nf-e | Se acepta de inmediato; se autoriza de forma asíncrona en la SEFAZ |
| 2 Consultar NF-e | GET /openapi/v2/empresas/{empresaId}/nf-e/{nfeId} | Estado, datos de la factura, enlaces de descarga del DANFE / XML |
| 3 Cancelar NF-e | DELETE /openapi/v2/empresas/{empresaId}/nf-e/{nfeId} | Dentro de las 24 horas siguientes a la autorización |
| 4 Registrar carta de corrección | POST /openapi/v2/empresas/{empresaId}/nf-e/{nfeId}/carta-correcao | Dentro de las 720 horas siguientes a la autorización, hasta 20 por factura, protocolo devuelto de forma síncrona |
| 5 Listar cartas de corrección | GET /openapi/v2/empresas/{empresaId}/nf-e/{nfeId}/carta-correcao | Cada 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
status | Significado |
|---|---|
AguardandoAutorizacao | Desde la aceptación hasta la respuesta de la SEFAZ |
Autorizada | Autorizada por la SEFAZ; linkDanfe / linkDownloadXml quedan disponibles |
Negada | Rechazada; motivoStatus lleva el código de estado y la descripción de la SEFAZ (por ejemplo 778 - Rejeicao: NCM inexistente). Corrija y reenvíe |
Cancelada | Tras 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
| Elemento | Soporte |
|---|---|
| Finalidad de la factura | Facturas normales y de devolución (finalidade=Normal / Devolucao); facturas complementarias / de ajuste aún no admitidas |
| Destinatario | Compradores CPF; los compradores CNPJ deben llevar inscricaoEstadual (contribuyente de ICMS) |
| Presencia del consumidor | Solo OperacaoPelaInternet |
| Formas de pago | Una 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 |
| Flete | Fijo sin transporte (modFrete=9) |
| Alícuotas | Có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 DANFE | Disponible 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ón | No se proporcionan por el momento |
Lista de verificación de integración
- Registre una empresa → 200 +
empresaId; registre el mismo CNPJ de nuevo → 400 +10003002. - Vincule el certificado → 200 sin cuerpo; contraseña incorrecta → 400 +
CER0005. - Registre el webhook → 200 +
webHookId. - Tras la aprobación, emita con
ambienteEmissao=Homologacao→ 200 sin cuerpo; luego consulte →AguardandoAutorizacaopasa aAutorizada, ylinkDanfe/linkDownloadXmlse descargan correctamente. - Reciba el callback de autorización: la cabecera
tokenes igual al valor registrado y la carga tienenfeStatus=Autorizada. - Casos negativos:
ambienteEmissao=Producao→ 400 +10004030;presencaConsumidor=OperacaoPresencial→ 400 +10004031. - Cancele la factura recién autorizada → 200; consulte de nuevo →
Cancelada; cancele un id desconocido → 404 +NFe0001. - Rutas de fallo:
signincorrecto → 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.
