stackin
Volver al blog
Soluciones

Emitir NF-e

Emisión de factura de producto — ítems, clasificación fiscal y transmisión real a la SEFAZ.

NF-e (Nota Fiscal Eletrônica) es la factura electrónica usada en la venta de bienes físicos en Brasil. Cada ítem necesita descripción, monto y clasificación fiscal específica de Brasil — códigos NCM y CFOP como mínimo — ya que el autorizador de NF-e (SEFAZ) valida clasificación fiscal, no solo totales.

La NF-e exige un recipient_address completo del destinatario — street, number, neighborhood, city, state, zip_code y el city_code (código IBGE del municipio). El state dentro de él es lo que decide si el documento sale como operación interestatal o interna (idDest), sin que la integración deba indicarlo por separado.

Cada NF-e emitida devuelve una clave de acceso que puedes usar para consultar su estado de autorización o cancelarla después, y el dashboard guarda el historial completo de envío, incluyendo el motivo de rechazo crudo del autorizador si alguna vez es rechazada.

Los campos de impuesto no hay que calcularlos a mano: ICMS, IPI, PIS y COFINS se desglosan automáticamente por ítem en cuanto se definen los códigos de clasificación, y los grupos opcionales — CEST, códigos NVE, créditos presuntos, números de control de contenido de importación — cubren los casos menos comunes sin volverse campos obligatorios para todos los demás.

Un indicador de bien mueble usado, referencias de orden de compra, montos de flete/seguro/descuento/otros gastos y el CNPJ del fabricante son todos compatibles por ítem cuando la venta los necesita — ninguno es obligatorio en una venta minorista simple, así que el caso común sigue siendo un puñado de campos.

Los SDKs reflejan esto 1:1: un Product en Python o Go lleva los mismos campos que el grupo product.br de la API cruda, así que pasar de prototipar contra la REST API a un SDK tipado después no cambia los datos que ya estás enviando.

Los rechazos vuelven con el texto de error del propio autorizador, no un "solicitud inválida" genérico — un NCM incorrecto o un CFOP que no coincide con el tipo de operación es exactamente el tipo de cosa que la validación de la propia SEFAZ detecta, y stackin expone ese mensaje directamente en lugar de enmascararlo.

Ver Emisión de NFe para cómo esa superficie de la API encaja en el resto de stackin.