Skip to content

Comprobante de Retención (DTE 07)

El DTE tipo 07 se utiliza para documentar las retenciones de IVA efectuadas por agentes de retención autorizados a otros contribuyentes.

POST /dte/dte07

(Consulta la guía de Endpoints y Entornos para obtener la URL base según el ambiente).

{
"receptor": {
"tipoDocumento": "13",
"numDocumento": "012345678",
"nrc": "1234567",
"nombre": "EMPRESA DE PRUEBA RECEPTORA S.A. DE C.V.",
"codActividad": "47219",
"descActividad": "Venta al por menor de alimentos n.c.p.",
"nombreComercial": "Cliente Receptor Ejemplo",
"direccion": {
"departamento": "02",
"municipio": "14",
"complemento": "Calle Falsa 123, Colonia Escalón",
"distrito": "07"
},
"telefono": "2222-3333",
"correo": "cliente.ejemplo@correo.com"
},
"cuerpoDocumento": [
{
"numDocumento": "A1B2C3D4-E5F6-7A8B-9C0D-1E2F3A4B5C6D",
"fechaEmision": "2026-07-11",
"montoSujetoGrav": 100.0,
"ivaRetenido": 1.0
}
]
}

Campos Específicos del Cuerpo del Documento (cuerpoDocumento)

Section titled “Campos Específicos del Cuerpo del Documento (cuerpoDocumento)”

Cada elemento del arreglo cuerpoDocumento representa una retención aplicada a un DTE relacionado.

CampoTipoRequeridoDescripción
numItemnumberSíNúmero secuencial del ítem (comienza en 1).
tipoDtestringSíTipo de DTE relacionado (ej. 03 para Crédito Fiscal).
tipoGeneracionnumberSíTipo de generación del DTE relacionado: 1 (Físico/Papel), 2 (Electrónico).
numDocumentostringSíCódigo de Generación (si es electrónico) o Número de Control (si es físico).
fechaEmisionstringSíFecha de emisión del documento relacionado (formato YYYY-MM-DD).
montoSujetoGravnumberSíMonto sujeto a la retención de IVA.
codigoRetencionMHstringSíCódigo de retención según catálogo del Ministerio de Hacienda (ej. 22 para retención del 1% de IVA).
ivaRetenidonumberSíMonto del IVA retenido (ej. 1% del montoSujetoGrav).
descripcionstringSíDescripción o concepto de la retención.

La API validará que el objeto receptor contenga los campos requeridos para el DTE 07:

  • tipoDocumento (debe ser 13 DUI, 36 NIT, etc.)
  • numDocumento
  • nombre
  • correo (requerido para el envío automático del comprobante firmado)

Si faltan campos obligatorios, el endpoint responderá con un error 400 (VALIDATION_ERROR).

Ejemplo de Uso con el SDK (Node.js / TypeScript)

Section titled “Ejemplo de Uso con el SDK (Node.js / TypeScript)”

Puedes emitir un Comprobante de Retención de IVA utilizando el método fel.retenciones.crear():

const retencion = await fel.retenciones.crear({
receptor: {
nit: "06141234567890",
nrc: "1234567",
nombre: "PROVEEDOR COMPAÑIA S.A.",
codActividad: "62010",
direccion: {
departamento: "02",
municipio: "14",
distrito: "07",
complemento: "Zona Industrial, Lote 10"
},
correo: "proveedor@ejemplo.com"
},
items: [
{
numDocRelacionado: "DTE-03-S001P003-000000000000045",
tipoDocRelacionado: "03", // Crédito Fiscal
fechaDocRelacionado: "2026-08-19",
montoSujetoRetencion: 100.0,
codigoRetencion: "C1", // Retención del 1%
montoRetenido: 1.0
}
],
observaciones: "Retención del 1% de IVA correspondiente a la compra de agosto"
});
console.log("UUID:", retencion.codigoGeneracion);
console.log("Estado de Emisión:", retencion.estado);
console.log("PDF URL:", retencion.dtePdfUrl);