Factura Sujeto Excluido (DTE 14)
El DTE tipo 14 se utiliza para compras de bienes o servicios a personas que no están inscritas en el IVA.
Endpoint
Section titled “Endpoint”POST /dte/dte14
(Consulta la guía de Endpoints y Entornos para obtener la URL base según el ambiente).
Estructura del Payload (JSON)
Section titled “Estructura del Payload (JSON)”{ "sujetoExcluido": { "tipoDocumento": "37", "numDocumento": "98765432101234", "nombre": "CLIENTE DE PRUEBAS LIMITADO", "codActividad": "45100", "descActividad": "Venta de vehículos automotores", "direccion": { "departamento": "02", "municipio": "14", "distrito": "07", "complemento": "Colonia San Francisco, Calle Tulipanes" }, "telefono": "70000000", "correo": "proveedor@correo-prueba.com" }, "items": [ { "descripcion": "Servicio profesional de consultoría", "cantidad": 5, "precioUnitario": 1.0, "tipoImpuesto": "GRAVADO", "codigo": "SERV-001", "uniMedida": 99, "tipoItem": 2 } ], "condicionOperacion": 1, "observaciones": "Pago en ventanilla", "applyrent": false}Campos Específicos
Section titled “Campos Específicos”| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
applyrent | boolean | Sí | Indica si se debe aplicar la retención del 10% de Impuesto sobre la Renta. |
condicionOperacion | number | Sí | Condición de la venta: 1 (Contado), 2 (Crédito), 3 (Otro). Ver Condición de Operación y Métodos de Pago. |
pago | object | Según aplique | Requerido si condicionOperacion es 2 o 3. Especifica el método y condiciones de pago. |
Retención de Renta (applyrent)
Section titled “Retención de Renta (applyrent)”El campo applyrent especifica si se debe calcular la retención de renta del 10% en una Factura de Sujeto Excluido (DTE-14).
¿Cuándo utilizar applyrent: true?
Section titled “¿Cuándo utilizar applyrent: true?”Debe establecerse en true cuando la operación corresponda a la prestación de servicios de personas no inscritas en el IVA que estén sujetos a retención de renta por ley.
Ejemplos comunes:
- Servicios profesionales u honorarios.
- Asesorías o consultorías.
- Servicios técnicos o de mantenimiento.
- Capacitaciones.
Ejemplo en el Payload:
{ "applyrent": true}En este caso, el sistema calculará automáticamente la retención de renta del 10% sobre el monto de la operación y descontará dicho valor del total a pagar al sujeto excluido.
¿Cuándo utilizar applyrent: false?
Section titled “¿Cuándo utilizar applyrent: false?”Debe establecerse en false cuando la operación corresponda a la adquisición de bienes o mercaderías por parte de personas no inscritas en el IVA donde no proceda retener impuesto.
Ejemplos comunes:
- Compra de repuestos o herramientas.
- Compra de materiales de oficina o limpieza.
- Compra de productos para reventa o mobiliario.
Ejemplo en el Payload:
{ "applyrent": false}Ejemplo Completo y Resultado Esperado
Section titled “Ejemplo Completo y Resultado Esperado”Servicio profesional sujeto a retención:
{ "sujetoExcluido": { "tipoDocumento": "37", "numDocumento": "98765432101234", "nombre": "CLIENTE DE PRUEBAS LIMITADO" }, "items": [ { "descripcion": "Servicio profesional", "cantidad": 1, "precioUnitario": 100.0, "tipoItem": 2 } ], "applyrent": true}Resultado esperado en el resumen:
{ "totalCompra": 100.00, "reteRenta": 10.00, "totalPagar": 90.00}[!IMPORTANT] La determinación final de si una operación está sujeta a retención de renta depende de la normativa tributaria aplicable y de las características específicas de la transacción. El parámetro
applyrentpermite indicar explícitamente al sistema cuándo debe efectuarse dicha retención.
Condición de Operación y Métodos de Pago
Section titled “Condición de Operación y Métodos de Pago”El campo condicionOperacion define la forma en que se realiza la venta y determina cómo debe enviarse la información de pago.
| Valor | Descripción |
|---|---|
1 | Contado |
2 | Crédito |
3 | Otro |
Venta al Contado (condicionOperacion = 1)
Section titled “Venta al Contado (condicionOperacion = 1)”Para operaciones al contado no es necesario enviar información adicional de pago. El sistema registrará automáticamente el pago en efectivo (01).
{ "condicionOperacion": 1}Venta al Crédito (condicionOperacion = 2)
Section titled “Venta al Crédito (condicionOperacion = 2)”Para operaciones al crédito debe enviarse el objeto pago, indicando el método de pago y las condiciones pactadas.
{ "condicionOperacion": 2, "pago": { "codigo": "04", "plazo": "01", "periodo": 30, "referencia": "CR-0001" }}Otra Condición de Operación (condicionOperacion = 3)
Section titled “Otra Condición de Operación (condicionOperacion = 3)”Cuando la operación corresponda a una modalid distinta de contado o crédito, debe enviarse el objeto pago especificando el método utilizado y las condiciones de plazo si aplican.
{ "condicionOperacion": 3, "pago": { "codigo": "02", "plazo": "01", "periodo": 30, "referencia": "POS-0001" }}Objeto Pago
Section titled “Objeto Pago”| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
codigo | string | Sí | Código del método de pago. |
plazo | string | Según aplique | Código del plazo otorgado para operaciones a crédito u otras modalidades. |
periodo | number | Según aplique | Cantidad de períodos otorgados para la operación. |
referencia | string | No | Referencia interna de la operación o pago. |
Métodos de Pago Comunes
Section titled “Métodos de Pago Comunes”| Código | Método |
|---|---|
01 | Efectivo |
02 | Tarjeta |
03 | Cheque |
04 | Transferencia bancaria |
05 | Depósito en cuenta |
[!NOTE] Los códigos válidos para métodos de pago, plazos y períodos están sujetos a los catálogos oficiales publicados por el Ministerio de Hacienda. El envío de valores no permitidos provocará el rechazo del DTE.
Respuestas de la API
Section titled “Respuestas de la API”El endpoint retorna el detalle completo del documento creado en base de datos junto con la respuesta de firma y el resultado directo del Ministerio de Hacienda.
Respuesta Exitosa (201 Created)
Section titled “Respuesta Exitosa (201 Created)”Se retorna cuando el documento es firmado correctamente y aceptado por el Ministerio de Hacienda (estado: "PROCESSED").
{ "status": "success", "data": { "id": 991, "tipo": "SUJETO_EXCLUIDO", "codigoGeneracion": "FC25FE33-5F44-499D-8AFD-742E0B77A95B", "numeroControl": "DTE-14-M001P001-000000000000030", "estado": "PROCESSED", "ambiente": "TEST", "total": "5", "dteJson": { // ... (Estructura interna del DTE firmado enviado a Hacienda) }, "dteFirmado": "eyJhbGciOiJSUzUxMiJ9.eyJpZGVudGlmaWNhY2lvbiI6ey...", "selloRecibido": "2026907A097F91D247BC8C85414E12B896DDERGJ", "respuestaMh": { "estado": "PROCESSED", "version": 2, "ambiente": "00", "codigoMsg": "001", "versionApp": 2, "clasificaMsg": "10", "observaciones": [], "selloRecibido": "2026907A097F91D247BC8C85414E12B896DDERGJ", "descripcionMsg": "RECIBIDO", "fhProcesamiento": "08/06/2026 22:59:02", "codigoGeneracion": "FC25FE33-5F44-499D-8AFD-742E0B77A95B" }, "dteJsonUrl": "emisores/empresa-pruebas/DTES/TEST/2026/06/08/DTE14/json/FC25FE33-5F44-499D-8AFD-742E0B77A95B.json", "dtePdfUrl": "emisores/empresa-pruebas/DTES/TEST/2026/06/08/DTE14/pdf/FC25FE33-5F44-499D-8AFD-742E0B77A95B.pdf", "sequenceNumber": "30", "sequenceId": 42, "serie": "P001", "emisorId": 2, "branchId": 3, "pointOfSaleId": 10, "tokenId": 22, "errorTecnico": null, "createdAt": "2026-06-08T22:59:01.000Z", "analisisHacienda": { "estadoDocumento": "PROCESSED", "aceptadoPorMH": true, "tieneObservaciones": false, "observaciones": [], "erroresValidacion": [], "mensaje": "Documento procesado exitosamente" } }}Respuesta de Error / Rechazo (201 Created con estado REJECTED)
Section titled “Respuesta de Error / Rechazo (201 Created con estado REJECTED)”Se retorna si el DTE es firmado correctamente pero es rechazado por Hacienda debido a un fallo en las reglas de validación (por ejemplo, enviar un código de actividad inválido).
{ "status": "success", "data": { "id": 992, "tipo": "SUJETO_EXCLUIDO", "codigoGeneracion": "E2FFAA2F-8EAE-47EE-A6DD-C19FFB8AB5F1", "numeroControl": "DTE-14-M001P001-000000000000031", "estado": "REJECTED", "ambiente": "TEST", "total": "5", "dteJson": { // ... (Estructura interna del DTE firmado enviado a Hacienda) }, "dteFirmado": "eyJhbGciOiJSUzUxMiJ9.eyJpZGVudGlmaWNhY2lvbiI6ey...", "selloRecibido": null, "respuestaMh": { "estado": "RECHAZADO", "version": 2, "ambiente": "00", "codigoMsg": "003", "versionApp": 2, "clasificaMsg": "13", "observaciones": [], "selloRecibido": null, "descripcionMsg": "[receptor.codActividad] VALOR NO VALIDO", "fhProcesamiento": "08/06/2026 23:00:04", "codigoGeneracion": "E2FFAA2F-8EAE-47EE-A6DD-C19FFB8AB5F1" }, "dteJsonUrl": null, "dtePdfUrl": null, "sequenceNumber": "31", "sequenceId": 42, "serie": "P001", "emisorId": 2, "branchId": 3, "pointOfSaleId": 10, "tokenId": 22, "errorTecnico": "Rechazado por Hacienda: Documento rechazado: [receptor.codActividad] VALOR NO VALIDO", "createdAt": "2026-06-08T23:00:03.000Z", "analisisHacienda": { "estadoDocumento": "REJECTED", "aceptadoPorMH": false, "tieneObservaciones": false, "observaciones": [], "erroresValidacion": [ "Documento rechazado: [receptor.codActividad] VALOR NO VALIDO" ], "mensaje": "Documento rechazado: [receptor.codActividad] VALOR NO VALIDO" } }}