Emitir un DTE
const url = 'https://api.sudte.com/v1/documents?mode=sync&dry_run=false';const options = { method: 'POST', headers: { 'Idempotency-Key': 'example', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"emitter_id":"emi_01HZY","type":"01","establishment":"M001","point_of_sale":"P001","external_id":"odoo-account.move-1542","receiver":{"name":"Cliente final","email":"cliente@example.com"},"items":[{"description":"Servicio de soporte","quantity":"1","unit_price":"113.00","unit_code":"59","tax":"gravada"}],"payment":{"condition":"1","methods":[{"code":"01","amount":"113.00"}]}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url 'https://api.sudte.com/v1/documents?mode=sync&dry_run=false' \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: example' \ --data '{ "emitter_id": "emi_01HZY", "type": "01", "establishment": "M001", "point_of_sale": "P001", "external_id": "odoo-account.move-1542", "receiver": { "name": "Cliente final", "email": "cliente@example.com" }, "items": [ { "description": "Servicio de soporte", "quantity": "1", "unit_price": "113.00", "unit_code": "59", "tax": "gravada" } ], "payment": { "condition": "1", "methods": [ { "code": "01", "amount": "113.00" } ] } }'Sudte calcula, arma el JSON oficial, valida contra el esquema del MH, firma, transmite y devuelve el sello.
mode=sync (por defecto) espera hasta 20 s; si MH no responde a tiempo devuelve 202 y notifica por webhook.
dry_run=true valida y calcula sin firmar ni transmitir (sin costo).
Autorización
Sección titulada « Autorización »Parámetros
Sección titulada « Parámetros »Cabeceras
Sección titulada « Cabeceras »Parámetros de consulta
Sección titulada « Parámetros de consulta »Cuerpo de la solicitudobligatorio
Sección titulada « Cuerpo de la solicitudobligatorio »object
CAT-002. Semana 1 implementa 01, 03, 05 y 06.
Código MH del establecimiento (4)
Código MH del punto de venta (4)
Id en el sistema del cliente (ej. Odoo)
Por defecto ahora; holgura máxima 30 min
Requerido según tipo. En FE puede omitirse si el total es menor al umbral del Aviso DGII ($25,000).
object
CAT-022 (36 NIT, 13 DUI, 37 otro, 03 pasaporte, 02 carnet residente)
CAT-019
object
CAT-012
CAT-013
CAT-008
CAT-020 (exportación)
object
CAT-011
CAT-014
FE: con IVA. CCF/NC/ND: sin IVA.
Tributos CAT-015 adicionales
CodigoGeneracion relacionado (NC/ND)
object
object
Percepción IVA 1%
object
CAT-016
object
CAT-017
CAT-018
object
CAT-002. Semana 1 implementa 01, 03, 05 y 06.
object
Avanzado. JSON MH ya armado (sin firma); sudte solo valida, firma y transmite.
object
Solo con sesión del panel (por defecto 00). Con API key el ambiente lo determina la key y este campo se ignora
Ejemplos
Factura (01) a consumidor final
{ "emitter_id": "emi_01HZY", "type": "01", "establishment": "M001", "point_of_sale": "P001", "external_id": "odoo-account.move-1542", "receiver": { "name": "Cliente final", "email": "cliente@example.com" }, "items": [ { "description": "Servicio de soporte", "quantity": "1", "unit_price": "113.00", "unit_code": "59", "tax": "gravada" } ], "payment": { "condition": "1", "methods": [ { "code": "01", "amount": "113.00" } ] }}Respuestas
Sección titulada « Respuestas »Resultado de dry_run (sin firmar ni transmitir)
object
00 pruebas, 01 producción (CAT-001)
CAT-002. Semana 1 implementa 01, 03, 05 y 06.
CodigoGeneracion
NumeroControl
SelloRecibido
object
object
Consulta pública MH (QR)
Código MH del establecimiento
Código MH del punto de venta
Resumen del receptor para listados
object
object
CAT-002. Semana 1 implementa 01, 03, 05 y 06.
Datos de la invalidación si status=voided
object
Advertencias no bloqueantes (p. ej. retención no aplicada por monto menor a $100)
object
Historial (creado, firmado, transmitido, reintento, sellado, rechazado, correo enviado, invalidado)
object
Example
{ "object": "document", "environment": "00", "type": "01", "status": "draft", "totals": { "subtotal": "113.00", "iva": "113.00", "total": "113.00" }, "related_documents": [ { "type": "01" } ]}Documento procesado por MH
object
00 pruebas, 01 producción (CAT-001)
CAT-002. Semana 1 implementa 01, 03, 05 y 06.
CodigoGeneracion
NumeroControl
SelloRecibido
object
object
Consulta pública MH (QR)
Código MH del establecimiento
Código MH del punto de venta
Resumen del receptor para listados
object
object
CAT-002. Semana 1 implementa 01, 03, 05 y 06.
Datos de la invalidación si status=voided
object
Advertencias no bloqueantes (p. ej. retención no aplicada por monto menor a $100)
object
Historial (creado, firmado, transmitido, reintento, sellado, rechazado, correo enviado, invalidado)
object
Example
{ "object": "document", "environment": "00", "type": "01", "status": "draft", "totals": { "subtotal": "113.00", "iva": "113.00", "total": "113.00" }, "related_documents": [ { "type": "01" } ]}Aceptado; en proceso o en contingencia. Se notificará por webhook
object
00 pruebas, 01 producción (CAT-001)
CAT-002. Semana 1 implementa 01, 03, 05 y 06.
CodigoGeneracion
NumeroControl
SelloRecibido
object
object
Consulta pública MH (QR)
Código MH del establecimiento
Código MH del punto de venta
Resumen del receptor para listados
object
object
CAT-002. Semana 1 implementa 01, 03, 05 y 06.
Datos de la invalidación si status=voided
object
Advertencias no bloqueantes (p. ej. retención no aplicada por monto menor a $100)
object
Historial (creado, firmado, transmitido, reintento, sellado, rechazado, correo enviado, invalidado)
object
Example
{ "object": "document", "environment": "00", "type": "01", "status": "draft", "totals": { "subtotal": "113.00", "iva": "113.00", "total": "113.00" }, "related_documents": [ { "type": "01" } ]}Error (RFC 9457)
object
object
object
Example generated
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "instance": "example", "request_id": "example", "errors": [ { "path": "example", "message": "example" } ], "mh": { "codigoMsg": "example", "descripcionMsg": "example", "observaciones": [ "example" ] }}Error (RFC 9457)
object
object
object
Example generated
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "instance": "example", "request_id": "example", "errors": [ { "path": "example", "message": "example" } ], "mh": { "codigoMsg": "example", "descripcionMsg": "example", "observaciones": [ "example" ] }}default
Sección titulada « default »Error (RFC 9457)
object
object
object
Example generated
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "instance": "example", "request_id": "example", "errors": [ { "path": "example", "message": "example" } ], "mh": { "codigoMsg": "example", "descripcionMsg": "example", "observaciones": [ "example" ] }}