API de facturación electrónica · El Salvador
Tu factura electrónica, sellada por Hacienda en una sola llamada.
sudte calcula, arma el JSON oficial, lo firma con tu certificado, lo transmite al Ministerio de Hacienda y te devuelve el sello, el PDF y el JSON. Desde tu sistema, tu POS o tu Odoo.
- Sandbox gratis al instante
- PDF con QR y correo incluidos
- Rechazos sin costo
curl https://api.sudte.com/v1/documents \
-H "Authorization: Bearer $SUDTE_API_KEY" \
-H "Idempotency-Key: venta-000123" \
-H "Content-Type: application/json" \
-d '{
"emitter_id": "emi_01J9Z8K2QF4T6W3X5Y7A9B1C2D",
"type": "01",
"establishment": "M001",
"point_of_sale": "P001",
"receiver": { "name": "Ana López", "email": "ana@example.com" },
"items": [{ "description": "Café molido 1 lb", "quantity": "2",
"unit_price": "8.50", "tax": "gravada" }],
"payment": { "condition": "1",
"methods": [{ "code": "01", "amount": "17.00" }] }
}' const res = await fetch('https://api.sudte.com/v1/documents', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SUDTE_API_KEY}`,
'Idempotency-Key': 'venta-000123',
'Content-Type': 'application/json',
},
body: JSON.stringify({
emitter_id: 'emi_01J9Z8K2QF4T6W3X5Y7A9B1C2D',
type: '01',
establishment: 'M001',
point_of_sale: 'P001',
receiver: { name: 'Ana López', email: 'ana@example.com' },
items: [
{ description: 'Café molido 1 lb', quantity: '2', unit_price: '8.50', tax: 'gravada' },
],
payment: { condition: '1', methods: [{ code: '01', amount: '17.00' }] },
}),
});
const dte = await res.json();
console.log(dte.control_number, dte.reception_stamp); import os
import requests
r = requests.post(
"https://api.sudte.com/v1/documents",
headers={
"Authorization": f"Bearer {os.environ['SUDTE_API_KEY']}",
"Idempotency-Key": "venta-000123",
},
json={
"emitter_id": "emi_01J9Z8K2QF4T6W3X5Y7A9B1C2D",
"type": "01",
"establishment": "M001",
"point_of_sale": "P001",
"receiver": {"name": "Ana López", "email": "ana@example.com"},
"items": [{
"description": "Café molido 1 lb",
"quantity": "2",
"unit_price": "8.50",
"tax": "gravada",
}],
"payment": {"condition": "1", "methods": [{"code": "01", "amount": "17.00"}]},
},
timeout=30,
)
dte = r.json()
print(dte["control_number"], dte["reception_stamp"]) {
"status": "processed",
"control_number": "DTE-01-M001P001-000000000000042",
"generation_code": "8C1F7E2A-4B6D-4E3A-9F1C-2D5B7A9E0C34",
"reception_stamp": "2026A3F9C1D47E8B4F2A9C0D6E1B5A7C3F8D2E4B",
"totals": { "subtotal": "17.00", "iva": "1.96", "total": "17.00" },
"pdf_url": "https://api.sudte.com/v1/documents/doc_01JA…/pdf"
} Documentos tributarios electrónicos
Todos los DTE del MH en un solo endpoint
El mismo POST /v1/documents para cada tipo: cambias
el campo type y sudte aplica las reglas de cada
documento según la Normativa de Cumplimiento DTE versión 2.0.
| Código | Documento | Para qué sirve | Estado |
|---|---|---|---|
| 01 | Factura FE | Ventas a consumidor final. Precios con IVA incluido. | Disponible |
| 03 | Comprobante de crédito fiscal CCF | Ventas a contribuyentes de IVA que necesitan deducir el crédito fiscal. | Disponible |
| 05 | Nota de crédito NC | Disminuye el valor de un CCF ya sellado: devoluciones, descuentos, ajustes. | Disponible |
| 06 | Nota de débito ND | Aumenta el valor de un CCF ya sellado: intereses, cargos omitidos. | Disponible |
| 04 | Nota de remisión NR | Ampara el traslado de bienes sin que exista venta en ese momento. | Próximamente |
| 07 | Comprobante de retención CR | Lo emiten los agentes de retención de IVA designados por el MH. | Próximamente |
| 11 | Factura de exportación FEX | Ventas de bienes o servicios al exterior (IVA 0 %). | Próximamente |
| 14 | Factura de sujeto excluido FSE | Compras a personas no inscritas en IVA, con retención de renta. | Próximamente |
| 08 | Comprobante de liquidación CL | Liquidación de ventas realizadas por cuenta de terceros. | Próximamente |
| 09 | Documento contable de liquidación DCL | Liquidaciones de pagos con tarjeta y operaciones similares. | Próximamente |
| 15 | Comprobante de donación CD | Donaciones recibidas por entidades autorizadas. | Próximamente |
Deja sin efecto un DTE sellado, con o sin documento de reemplazo.
Evento de contingencia
PróximamenteReporta al MH los documentos emitidos mientras su sistema no respondía.
Evento de retorno
PróximamenteDevoluciones sobre facturas sin ajuste de crédito fiscal.
Cómo funciona
De la cuenta a producción en tres pasos
- 01
Crea tu cuenta
Recibe tu API key de pruebas (sk_test_) al instante y emite contra el ambiente de pruebas del Ministerio de Hacienda. Sin tarjeta.
- 02
Integra en una tarde
Envía datos de negocio: cliente, productos y pago. sudte calcula el IVA y los totales con las reglas de redondeo del MH, arma el JSON oficial, lo valida, lo firma y lo transmite.
- 03
Pasa a producción
Carga tu certificado y tu contraseña de API del MH, cambia sk_test_ por sk_live_ y listo. Te acompañamos en la autorización como emisor.
Integraciones
Factura desde donde ya vendes
La misma API sirve a tu ERP, tu caja y tus desarrolladores. Toda la lógica fiscal vive en sudte, así que un cambio de la Normativa no te obliga a actualizar cada sistema.
API REST
Un endpoint para todos los tipos de DTE, contrato OpenAPI 3.1 público, webhooks firmados, idempotencia y dry_run para validar sin costo.
Conoce la APIOdoo
Módulo oficial para Odoo 20: al confirmar la factura, Odoo recibe el número de control, el sello, el PDF y el JSON. Sin lógica fiscal dentro de Odoo.
Ver el módulo OdooPOS y apps
Respuesta síncrona con el sello en la misma llamada, ideal para cajas, apps Android/iOS y sistemas de escritorio. Si el MH tarda, te avisamos por webhook.
Inicio rápidoSeguridad y cumplimiento MH
Hecho para que Hacienda no te rechace
Aplicamos las reglas de la Normativa y del manual técnico del MH en cada documento, y protegemos tus credenciales como lo que son: la firma de tu empresa.
Cómo protegemos tus datosValidado antes de firmar
Cada documento se valida contra el esquema JSON oficial del MH (Factura v2, CCF v4, notas v4) y te devolvemos todos los errores juntos, en español y con la ruta del campo.
Tu certificado, cifrado
Certificado, clave privada y contraseña de la API del MH se guardan cifrados con AWS KMS. Nunca se devuelven ni aparecen en registros.
Números de control sin duplicados
Correlativo atómico por NIT, centralizado o por establecimiento como exige la Normativa, aunque emitas desde varios sistemas o compañías de Odoo.
Reintentar nunca duplica
Idempotency-Key en cada POST. Ante una falla consultamos al MH antes de reenviar y jamás volvemos a firmar un código de generación con otro contenido.
Sello antes de entregar
El receptor recibe el JSON firmado con sello y el PDF con QR de consulta pública solo cuando el MH ya otorgó el sello de recepción.
Redondeo como lo valida el MH
Aritmética decimal (nunca float), 8 decimales por ítem, 2 en el resumen y totales desde valores ya redondeados, dentro de la holgura de ±0.01.
Precios
Pagas por documentos sellados. Nada más.
Sin costo de configuración, sin permanencia y sin cargos ocultos. Recibes tu crédito fiscal de TSA El Salvador por cada cobro.
Sandbox
Gratis para siempre
Ambiente de pruebas del MH sin límite de documentos. Tu API key de pruebas al registrarte.
Crear cuentaAPI
$15 por 1,000 DTE
Prepago sin mensualidad, o plan Integrador desde $49/mes con 5,000 DTE. Emisores ilimitados.
Ver planes de APIOdoo
$29 al mes
Módulo Odoo 20, 500 DTE incluidos y libros de IVA por API. Planes hasta multicompañía.
Ver planes Odoo- Rechazos sin costo
- Notas de crédito y débito gratis
- PDF y correo incluidos
- Sin costo de configuración
- Precios sin IVA
¿Qué es sudte?
sudte es una API de facturación electrónica para El Salvador. Tu sistema envía los datos de la venta (cliente, productos, pago) y sudte calcula los totales, arma el JSON oficial, lo valida contra los esquemas del Ministerio de Hacienda, lo firma con tu certificado, lo transmite y te devuelve el sello de recepción, el PDF y el JSON firmado.
¿Necesito estar autorizado por Hacienda para usar sudte?
Para emitir en producción, sí: cada empresa (NIT) debe estar autorizada como emisor de DTE por el Ministerio de Hacienda y tener su certificado de firma y su contraseña de la API del MH. sudte es tu sistema de transmisión: te ayuda a completar las pruebas en el ambiente 00 y, cuando el MH te autoriza, solo cambias tu API key de pruebas por la de producción.
¿Cuánto tarda en obtenerse el sello?
En modo síncrono (el predeterminado) la respuesta trae el sello en cuanto el MH lo otorga, normalmente en pocos segundos. Si el MH tarda más de 20 segundos, recibes un 202 y el resultado llega por webhook, sin que tengas que reintentar.
¿Qué pasa si el sistema del Ministerio de Hacienda no responde?
sudte aplica la política de reintentos del manual técnico del MH y consulta el estado del documento antes de reenviarlo, para no duplicarlo. Si la falla continúa, el documento queda en estado de contingencia y te avisamos por webhook. La gestión automática del evento de contingencia está en desarrollo.
¿Me cobran los documentos rechazados?
No. Solo cuentan los DTE que obtienen sello de recepción en producción. Los rechazados, las notas de crédito y débito, los del sandbox, las validaciones con dry_run y los eventos de invalidación no se cobran.
¿Funciona con Odoo?
Sí. El módulo oficial de sudte para Odoo 20 envía tus facturas al confirmarlas y guarda el número de control, el sello, el PDF y el JSON en la factura. Odoo no calcula ni firma nada: todo lo fiscal ocurre en sudte. Odoo Community y Odoo 18 vienen después.
¿Puedo facturar para varias empresas desde una cuenta?
Sí. Una cuenta puede tener varios emisores (uno por NIT), cada uno con sus establecimientos y puntos de venta. Puedes crear API keys limitadas a ciertos emisores, ideal para casas de software y grupos empresariales.
¿Dónde se guardan mi certificado y mis contraseñas del MH?
Se guardan cifrados con AWS KMS (cifrado de sobre) y nunca se devuelven por la API ni aparecen en registros. Solo el servicio de firma los descifra en memoria al momento de firmar.
¿Cumple con la Normativa de Cumplimiento DTE versión 2.0?
Sí. sudte valida cada documento contra los esquemas JSON oficiales vigentes (Factura v2, CCF v4, notas v4, invalidación v3) antes de firmarlo. La versión 2.0 es obligatoria desde el 1 de diciembre de 2026.
Emite tu primer DTE de prueba hoy
Crea tu cuenta, copia tu API key de pruebas y envía tu primera factura al ambiente de pruebas del Ministerio de Hacienda en minutos. Sin tarjeta.