Saltar al contenido
DevFact

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 (personaNatural o sociedad), parteRelacionada y email.
  • 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, iva o isd), codigoRetencion, baseImponible y, 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.

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.

POST /v1/retenciones
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).

POST /v1/retenciones
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.