Documentación
Retención
Retenciones de renta e IVA a sociedades y personas naturales.
Se emite con POST /v1/retenciones (o POST /v1/comprobantes con "tipo": "retencion"). Los totales los calcula el servicio a partir de los ítems.
Campos
- sujetoRetenidoObligatorio: síDescripción: El proveedor:
tipoIdentificacion,identificacion,razonSocial,tipoSujetoRetenido(personaNaturalosociedad),parteRelacionadayemail. - docsSustento[]Obligatorio: síDescripción: Cada factura (u otro documento) sobre la que retienes.
- docsSustento[].codSustentoObligatorio: síDescripción: Código de sustento tributario (tabla 5 del catálogo ATS): 01 crédito tributario de IVA, 02 costo o gasto…
- docsSustento[].codDocSustentoObligatorio: síDescripción:
factura,notaVenta,liquidacionCompra… o su código. - docsSustento[].numDocSustentoObligatorio: síDescripción: Número del documento del proveedor.
- docsSustento[].fechaEmisionDocSustentoObligatorio: síDescripción: Fecha del documento del proveedor.
- docsSustento[].numAutDocSustentoObligatorio: noDescripción: Su número de autorización (49 dígitos).
- docsSustento[].impuestosDocSustento[]Obligatorio: síDescripción: Base imponible y tarifa de IVA del documento.
- docsSustento[].retenciones[]Obligatorio: síDescripción:
codigo(renta,ivaoisd),codigoRetencion,baseImponibley, en renta,porcentajeRetener. - docsSustento[].pagos[]Obligatorio: síDescripción: Cómo se pagó al proveedor.
- periodoFiscalObligatorio: noDescripción: MM/AAAA; por defecto el mes de la emisión.
| Campo | Obligatorio | Descripción |
|---|---|---|
| sujetoRetenido | sí | El proveedor: tipoIdentificacion, identificacion, razonSocial, tipoSujetoRetenido (personaNatural o sociedad), parteRelacionada y email. |
| docsSustento[] | sí | Cada factura (u otro documento) sobre la que retienes. |
| docsSustento[].codSustento | sí | Código de sustento tributario (tabla 5 del catálogo ATS): 01 crédito tributario de IVA, 02 costo o gasto… |
| docsSustento[].codDocSustento | sí | factura, notaVenta, liquidacionCompra… o su código. |
| docsSustento[].numDocSustento | sí | Número del documento del proveedor. |
| docsSustento[].fechaEmisionDocSustento | sí | Fecha del documento del proveedor. |
| docsSustento[].numAutDocSustento | no | Su número de autorización (49 dígitos). |
| docsSustento[].impuestosDocSustento[] | sí | Base imponible y tarifa de IVA del documento. |
| docsSustento[].retenciones[] | sí | codigo (renta, iva o isd), codigoRetencion, baseImponible y, en renta, porcentajeRetener. |
| docsSustento[].pagos[] | sí | Cómo se pagó al proveedor. |
| periodoFiscal | no | MM/AAAA; por defecto el mes de la emisión. |
Casos
Retención a una sociedad por servicios
Como agente de retención, retienes renta e IVA sobre la factura de un proveedor. Los códigos son los de las tablas de retención del SRI.
curl -X POST "https://api.devfact.fonles.com/v1/retenciones" \
-H "Authorization: Bearer $DEVFACT_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: ret-servicios-1" \
-d '{
"sujetoRetenido": {
"tipoIdentificacion": "ruc",
"identificacion": "1792146739001",
"razonSocial": "PROVEEDOR DE SERVICIOS S.A.",
"tipoSujetoRetenido": "sociedad",
"parteRelacionada": false,
"email": "facturacion@example.com"
},
"docsSustento": [
{
"codSustento": "01",
"codDocSustento": "factura",
"numDocSustento": "001-001-000000123",
"fechaEmisionDocSustento": "2026-11-04",
"numAutDocSustento": "2010202601179214673900110010010000001231234567810",
"impuestosDocSustento": [
{
"iva": "15",
"baseImponible": "1000.00"
}
],
"retenciones": [
{
"codigo": "renta",
"codigoRetencion": "3440",
"baseImponible": "1000.00",
"porcentajeRetener": "3"
},
{
"codigo": "iva",
"codigoRetencion": "1",
"baseImponible": "150.00"
}
],
"pagos": [
{
"formaPago": "transferencia"
}
]
}
]
}'- IVA: el codigoRetencion define el porcentaje (9 = 10 %, 10 = 20 %, 1 = 30 %, 11 = 50 %, 2 = 70 %, 3 = 100 %); la base es el IVA de la factura.
- Renta: indica el porcentaje del código que corresponda.
Retención a una persona natural por honorarios
Honorarios profesionales de una persona natural: renta 10 % (código 303) e IVA 100 % (código 3).
curl -X POST "https://api.devfact.fonles.com/v1/retenciones" \
-H "Authorization: Bearer $DEVFACT_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: ret-honorarios-1" \
-d '{
"sujetoRetenido": {
"tipoIdentificacion": "ruc",
"identificacion": "1710034065001",
"razonSocial": "PÉREZ LÓPEZ JUAN CARLOS",
"tipoSujetoRetenido": "personaNatural",
"email": "juan.perez@example.com"
},
"docsSustento": [
{
"codSustento": "01",
"codDocSustento": "factura",
"numDocSustento": "001-002-000000045",
"fechaEmisionDocSustento": "2026-11-04",
"numAutDocSustento": "2010202601171003406500120010020000000451234567811",
"impuestosDocSustento": [
{
"iva": "15",
"baseImponible": "800.00"
}
],
"retenciones": [
{
"codigo": "renta",
"codigoRetencion": "303",
"baseImponible": "800.00",
"porcentajeRetener": "10"
},
{
"codigo": "iva",
"codigoRetencion": "3",
"baseImponible": "120.00"
}
],
"pagos": [
{
"formaPago": "transferencia"
}
]
}
]
}'- POST /v1/inteligencia/retencion sugiere los códigos para una compra a partir de su descripción (borrador).
Las retenciones se emiten dentro de los 5 días siguientes a recibir la factura del proveedor. Para anular una retención el proveedor tiene que aceptarlo en el portal del SRI.

