Saltearse al contenido

Otros comprobantes · Ecuador

Retenciones

POST /api/v1/withholdings/issue · scope documents:write

Un comprobante de retención declara lo que tu negocio retiene al pagar a un proveedor: un porcentaje de renta sobre la base, un porcentaje del IVA de la compra, o ISD. Va siempre atado al comprobante de compra que la sustenta, normalmente la factura del proveedor.

{
"sujeto_retenido": { "identificacion": "1791234567001", "razon_social": "SUMINISTROS DEL PACÍFICO S.A." },
"documento_sustento": { "tipo": "01", "numero": "002-001-000004521", "fecha_emision": "2026-09-20" },
"retenciones": [
{ "impuesto": "renta", "codigo": "312", "base_imponible": 1000.00, "porcentaje": 1.75 },
{ "impuesto": "iva", "codigo": "1", "base_imponible": 150.00, "porcentaje": 30 }
]
}
CampoObligatorioPor defectoNotas
sujeto_retenido✅—El proveedor. Identificado: no admite consumidor final
retenciones✅—Una línea por impuesto retenido
documento_sustento✅*—El comprobante de compra. *Cada línea puede indicar el suyo
periodo_fiscal—El mes de fecha_emisionMM/YYYY
referencia_externa——Envíala siempre. Única por negocio entre retenciones
fecha_emision—Hoy en EcuadorNo puede ser futura
establecimiento—El de la clave o el del negocio{ "codigo", "punto_emision" }
secuencial—El siguiente de la serie de retencionesSolo si controlas la numeración
enviar_email—trueEnviar el RIDE al correo del sujeto retenido al autorizarse
{
"tipo_identificacion": "04",
"identificacion": "1791234567001",
"razon_social": "SUMINISTROS DEL PACÍFICO S.A.",
"email": "cobros@pacifico.ec",
"direccion": "Av. Juan Tanca Marengo, Guayaquil"
}

tipo_identificacion se deduce de la identificación si falta. Si la clave tiene «crear contactos» activado, el proveedor se da de alta en Olympus la primera vez.

{ "tipo": "01", "numero": "002-001-000004521", "fecha_emision": "2026-09-20", "codigo_sustento": "01" }
CampoObligatorioPor defectoNotas
tipo—01Tipo del comprobante sustento; ver GET /catalogs/document-types
numero✅—Número completo, 001-001-000000123
fecha_emision✅—Fecha del comprobante sustento
codigo_sustento—02Sustento tributario (codSustento); ver GET /catalogs/support-types

Puedes ponerlo una vez, a nivel de la retención, y vale para todas las líneas; o ponerlo dentro de una línea concreta cuando esa línea sustenta otro comprobante. Si falta en los dos sitios, la petición no pasa la validación.

{ "impuesto": "renta", "codigo": "312", "base_imponible": 1000.00, "porcentaje": 1.75 }
CampoObligatorioNotas
impuesto✅renta, iva o isd
codigo✅Código de retención del SRI para ese impuesto
base_imponible✅Sobre qué se retiene: el subtotal de la compra en renta, su IVA en la retención de IVA
porcentaje✅Lo que se retiene, en porcentaje (1.75, 30, 100)
valor—Si lo envías se comprueba contra base × porcentaje
documento_sustento—Solo si esta línea sustenta otro comprobante

Los códigos y sus porcentajes están en GET /catalogs/retention-codes, con impuesto ya resuelto:

{ "impuesto": "renta", "codigo": "312", "nombre": "Transferencia de bienes muebles de naturaleza corporal", "porcentaje": 1.75, "porcentaje_variable": false }
{ "impuesto": "iva", "codigo": "1", "nombre": "Retención IVA 30%", "porcentaje": 30.0, "porcentaje_variable": false }

Olympus no valida la combinación código–porcentaje: la valida el SRI al autorizar. Si te equivocas, la retención vuelve no_autorizado con el mensaje del SRI en mensajes, y puedes corregirla desde Olympus y reintentar.

202 Accepted:

{
"id": "c3d8f0a2-6b1e-4c7a-8d92-5e4f3a2b1c09",
"tipo": "retencion",
"estado": "pendiente",
"secuencial": "001-001-000000210",
"clave_acceso": "2509202607099999999900110010010000002101234567812",
"sujeto_retenido": { "tipo_identificacion": "04", "identificacion": "1791234567001", "razon_social": "SUMINISTROS DEL PACÍFICO S.A.", "email": "cobros@pacifico.ec", "telefono": null, "direccion": null },
"periodo_fiscal": "09/2026",
"total_retenido": 62.5,
"retenciones": [
{ "impuesto": "renta", "codigo": "312", "base_imponible": 1000.0, "porcentaje": 1.75, "valor": 17.5, "documento_sustento": { "tipo": "01", "numero": "002-001-000004521", "fecha_emision": "2026-09-20", "codigo_sustento": "01" } },
{ "impuesto": "iva", "codigo": "1", "base_imponible": 150.0, "porcentaje": 30.0, "valor": 45.0, "documento_sustento": { "tipo": "01", "numero": "002-001-000004521", "fecha_emision": "2026-09-20", "codigo_sustento": "01" } }
],
"urls": { "detalle": "https://olympus.atharix.com/api/v1/withholdings/c3d8f0a2-…", "pdf": null, "xml": null, "publica": null }
}
Ventana de terminal
curl -X POST https://olympus.atharix.com/api/v1/withholdings/issue \
-H "X-API-Key: $OLYMPUS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: RET-2026-0210" \
-d '{
"referencia_externa": "RET-2026-0210",
"sujeto_retenido": {
"identificacion": "1791234567001",
"razon_social": "SUMINISTROS DEL PACÍFICO S.A.",
"email": "cobros@pacifico.ec"
},
"periodo_fiscal": "09/2026",
"documento_sustento": { "tipo": "01", "numero": "002-001-000004521", "fecha_emision": "2026-09-20", "codigo_sustento": "01" },
"retenciones": [
{ "impuesto": "renta", "codigo": "312", "base_imponible": 1000.00, "porcentaje": 1.75 },
{ "impuesto": "iva", "codigo": "1", "base_imponible": 150.00, "porcentaje": 30 }
]
}'