Ir al contenido

MH El Salvador — Facturación electrónica (Hacienda, DTE)

Los nodos MH conectan tus workflows con la facturación electrónica de El Salvador (Ministerio de Hacienda, DTE). A diferencia de otros países, el DTE de El Salvador es un documento JSON que se firma con JWS (RS512) y se envía por REST con un token de autenticación previo. Floogos arma el JSON, lo firma, obtiene el token y hace la recepción ante Hacienda, devolviendo el Sello de Recepción.

NodoQué hace
MH: Emitir factura (mhEmitirFactura)Emite una Factura de consumidor (tipo 01), IVA incluido
MH: Crédito fiscal / Nota (mhEmitirComprobante)Emite Crédito Fiscal (03), Nota de Crédito (05) o Débito (06)
MH: Anular DTE (mhAnular)Invalida un DTE recibido por su Código de Generación
MH: Representación / QR (mhRepresentacion)Genera la representación impresa con QR

Los nodos usan una credencial de tipo MH. Creala en Credenciales → Agregar → El Salvador / Hacienda con:

CampoDescripción
NIT del emisorLa identificación tributaria (sin guiones).
NRCNúmero de Registro de Contribuyente.
Usuario y contraseña de APICredenciales del portal de Hacienda para obtener el token.
Clave privada (.p12 o PEM)Para firmar el DTE (JWS).
Nombre / Nombre comercialDatos del emisor.
Actividad económicaCódigo y descripción.
Establecimiento y ubicaciónCódigo de establecimiento, punto de venta, dirección, municipio, departamento.
AmbientePruebas (00) o Producción (01).

Nodo: MH: Emitir factura. Para consumidor final el receptor es opcional. Ejemplo:

{
"items": [
{ "descripcion": "Producto", "cantidad": 1, "precioUnitario": 113 }
]
}

En la Factura (01) el precioUnitario va con IVA incluido; Floogos calcula el gravable y el IVA (13%).

Nodo: MH: Crédito fiscal / Nota. En el Comprobante de Crédito Fiscal (03) y las notas, el IVA va como tributo (código 20, 13%) y no se incluye en el precio: el precioUnitario es sin IVA. El receptor debe ser un contribuyente (con NIT y NRC).

{
"tipo": "03",
"receptor": { "nit": "06140101801011", "nrc": "1234567", "nombre": "Cliente B2B S.A." },
"items": [
{ "descripcion": "Servicio de consultoría", "cantidad": 1, "precioUnitario": 100 }
]
}

Las notas (05 crédito, 06 débito) referencian el documento de origen con documentoRelacionado (el Código de Generación del CCF original):

{
"tipo": "05",
"receptor": { "nit": "06140101801011", "nrc": "1234567", "nombre": "Cliente B2B S.A." },
"documentoRelacionado": { "codigoGeneracion": "ABCD1234-...", "fecha": "2026-07-29" },
"items": [ { "descripcion": "Devolución", "cantidad": 1, "precioUnitario": 20 } ]
}

Nodo: MH: Anular DTE. Invalida un DTE recibido por su Código de Generación (con un motivo obligatorio). Floogos recupera los datos del DTE original de la base, arma el evento de invalidación, lo firma con JWS y lo envía.

Nodo: MH: Representación / QR. Genera la representación imprimible en HTML (exportable a PDF), con el Código de Generación, el Número de Control, el Sello de Recepción y el QR que apunta a la consulta pública de Hacienda (admin.factura.gob.sv/consultaPublica).

SituaciónReintentableQué hacer
Hacienda rechaza (RECHAZADO)NoEl nodo devuelve las observaciones. Corregí el DTE.
Token inválido / authNoRevisá el usuario y la contraseña de API.
Clave vencidaNoRenová el .p12 / la clave y actualizá la credencial.
Red / TimeoutSíProblema pasajero; se reintenta automáticamente.