Contenido de esta página

¿Integras tu propio sistema? Emite los seis comprobantes del SRI desde tu código con la API de Contadeo: idempotencia, webhooks firmados y ambiente de Pruebas que no gasta cupo.

Empezar gratis →

Facturar suscripciones SaaS en Ecuador: una factura por cada cobro

Tu producto cobra $19 al mes a 300 suscriptores. La pasarela hace su trabajo y te avisa de cada cobro exitoso; a partir de ahí empieza el tuyo: cada cobro acreditado es una venta y le corresponde su comprobante electrónico. Y desde el 1 de enero de 2026, con la Resolución NAC-DGERCGC25-00000017, ese comprobante viaja al SRI en el momento de emitirlo, no en un lote nocturno.

Trescientos cobros al mes son trescientas facturas al mes. A mano no se sostiene, y a medias tampoco: si el mes que viene alguien pide su factura de marzo, tiene que existir.

Esta guía cubre el circuito completo de un SaaS ecuatoriano: cuándo emitir, cómo cae el IVA del 15 %, cuándo puedes facturar a consumidor final y cuándo tienes que pedir los datos del cliente, cómo llega el RIDE al comprador, qué hacer con un reembolso y cómo evitar facturas duplicadas cuando la pasarela reintenta un aviso.

Ojo: esta guía asume que ya está decidido qué facturas y con qué tarifa. La estructura tributaria de tu servicio —tu régimen, tus tarifas, tus obligaciones— la define tu contador. Lo que sigue es el circuito operativo una vez tomada esa decisión.

El disparador es el cobro acreditado, no la fecha de renovación

El error más caro es emitir cuando el sistema programa la renovación en vez de cuando el cobro se confirma. Si la tarjeta rebota y ya emitiste, tienes una factura autorizada por un dinero que no entró, y deshacerla cuesta más que haberla esperado.

El orden que funciona es siempre el mismo:

Momento Qué pasa
La pasarela confirma el cobro Tu sistema recibe el aviso
Tu sistema emite POST /comprobantes/factura responde 202
El SRI resuelve (5-30 s) El comprobante llega a AUTORIZADO
Se entrega El RIDE en PDF y el XML van al comprador

Entre el segundo y el tercer paso no hay nada que hacer: la emisión es asíncrona y el estado te llega por webhook o consultando GET /comprobantes/:id.

El IVA del 15 % lo calcula el servidor, no tu código

La tarifa general del IVA es del 15 %. En el cuerpo de la factura eso es codigo: "2" con codigoPorcentaje: "4"; en tu catálogo de productos, la tarifaCodigo "4".

Lo que conviene no hacer es escribir esos porcentajes a mano en tu código. GET /sri/catalogos devuelve las tablas de referencia con las que valida el backend —tarifa general vigente, tarifas por código, formas de pago, tipos de identificación y la regla de consumidor final— y consumirlas significa que cuando una tarifa cambie, como pasó con el salto del 12 % al 15 %, tu sistema siga cuadrando sin un despliegue de urgencia.

Si los totales que envías no cuadran con las líneas, la respuesta es un 400 con la lista de problemas[] antes de llegar al SRI. Es mejor error que un rechazo tres minutos después.

Consumidor final hasta $50: cuándo puedes ahorrarte los datos

Una factura puede emitirse a consumidor finaltipoIdentificacionComprador "07" con identificación 9999999999999— y eso te evita pedir cédula o RUC en el checkout. Pero tiene dos límites que hay que respetar desde el diseño:

  • Hasta $50. Por encima de ese monto el SRI rechaza con el error 69; Contadeo lo bloquea antes, con un 400.
  • No sustenta crédito de IVA. Sin comprador identificado no hay a quién atribuir el crédito, así que un cliente que sea empresa te va a pedir su RUC en la factura de todas formas.

Traducido a producto: si vendes planes de $19 a personas, consumidor final te sirve; si vendes planes de $89 o le cobras a empresas, pide RUC o cédula en el alta y guárdalo. GET /clientes/lookup/:identificacion te prellena razón social y dirección desde tu directorio o desde el catastro público del SRI, así que pedir el número no significa pedir un formulario entero.

Consejo: guarda al comprador con PUT /clientes/por-identificacion/:tipo/:identificacion después de emitir. Es un upsert que solo pisa los campos que mandas, así que no borra el correo que ya tenías, y la siguiente factura de ese suscriptor sale con los datos puestos.

El RIDE le llega al comprador si mandas su correo

No hace falta que tu sistema descargue el PDF y lo adjunte a un email propio. Si el comprobante incluye en infoAdicional un campo cuyo nombre contenga email o correo, al autorizarse se envían automáticamente el RIDE en PDF y el XML al receptor:

"infoAdicional": [{ "nombre": "Email", "valor": "cliente@correo.com" }]

Para reenviarlo después —el clásico "no me llegó"— está POST /comprobantes/:id/reenviar-email, que acepta un {para} opcional y funciona solo sobre comprobantes autorizados con RIDE.

Un reembolso se resuelve con nota de crédito, no anulando

Aquí hay una regla que cambia el diseño de tu flujo de reembolsos. La anulación de un comprobante autorizado, según la Resolución NAC-DGERCGC25-00000017, solo es posible hasta el día 7 (inclusive) del mes siguiente a la emisión, y nunca sobre comprobantes emitidos a consumidor final.

Es decir: para un SaaS que cobra todos los días y factura mucho a consumidor final, la anulación no es el camino normal. El camino normal es la nota de crédito, POST /comprobantes/nota-credito, que referencia el documento que modifica:

"infoNotaCredito": {
  "codDocModificado": "01",
  "numDocModificado": "001-001-000000123",
  "fechaEmisionDocSustento": "2026-08-01",
  "valorModificacion": 21.85,
  "motivo": "Reembolso de suscripción"
}

La factura (01) y la nota de crédito (04) son los dos tipos incluidos incluso en el plan gratuito, así que el circuito completo de cobro y reembolso se prueba sin contratar nada. Y si trabajas por IA, el flujo equivalente son preparar_nota_credito y emitir_nota_credito en el servidor MCP: la matemática la hace el servidor y la emisión pide tu confirmación.

Ten en cuenta que la anulación en Contadeo es el registro interno; el trámite formal se sigue haciendo en el portal SRI en línea, donde el emisor solicita y el receptor acepta.

Idempotencia por id del cobro: la línea que evita facturas dobles

Las pasarelas reintentan. Tu worker se reinicia. Un timeout de red deja el request en el limbo y no sabes si la factura se creó. La respuesta a los tres casos es la misma: manda el header Idempotency-Key con el id del cobro.

curl -X POST https://contadeo.com/api/comprobantes/factura \
  -H "Authorization: Bearer cdo_…" \
  -H "Idempotency-Key: ch_1PqR2s3t" \
  -d @factura.json

Si reintentas con la misma clave recibes el mismo comprobante marcado reutilizado: true, sin duplicar ni quemar otro secuencial. La clave no caduca, así que un reintento tardío sigue devolviendo el original, y su alcance es por (cuenta, emisor, tipo de comprobante): puedes usar el mismo id del cobro en la factura y en su nota de crédito sin que choquen.

Clientes del exterior: eso lo decide tu contador

Si tu SaaS cobra a personas o empresas fuera de Ecuador, la pregunta de qué tarifa corresponde y qué requisitos hay que cumplir para aplicarla no tiene una respuesta que se pueda dar en un artículo genérico: depende de tu actividad, de tu régimen y de cómo esté documentada la operación. Llévala a tu contador antes de configurar la tarifa en tu catálogo, no después de haber emitido trescientas facturas.

Preguntas frecuentes

¿Tengo que emitir una factura por cada cobro mensual? Cada cobro acreditado es una venta con su comprobante. Si cobras mensualmente a un suscriptor, son doce facturas al año para esa persona, no una. Lo que sí puedes es automatizarlo del todo: el aviso de la pasarela dispara la emisión y el RIDE le llega al comprador por correo.

¿Puedo facturar todo a consumidor final y evitarme pedir la cédula? Solo hasta $50 por comprobante, y sabiendo que esa factura no sustenta crédito de IVA para tu cliente. Para planes de mayor precio o para clientes empresa, necesitas su identificación.

¿Cuántas facturas al mes cubre cada plan? El plan gratuito son 10 comprobantes de Producción al mes, permanente y sin tarjeta. Después: 150 al mes por $39 al año, 500 por $89 y 2.000 por $179, todos sin IVA. En los planes de pago la emisión no se corta al llegar al cupo.

¿Y si el cobro falla después de que ya emití? Emite la nota de crédito que revierte esa factura. La anulación solo está disponible hasta el día 7 del mes siguiente y nunca sobre comprobantes a consumidor final, así que en un cobro recurrente la nota de crédito es el instrumento habitual.

Qué hacer con esto

Monta el circuito en el ambiente de Pruebas del SRI antes de tocar producción: crea tu cuenta gratis, conecta el aviso de tu pasarela a POST /comprobantes/factura con el id del cobro como Idempotency-Key y comprueba el reembolso con una nota de crédito. Los detalles de cada endpoint están en la documentación para integradores, y los cupos y límites de cada plan, en precios.


Guía informativa, no asesoría tributaria. Basada en la Resolución NAC-DGERCGC25-00000017 del SRI, vigente desde el 1 de enero de 2026, en lo relativo a la tarifa general del IVA del 15 %, el límite de $50 para consumidor final y la ventana de anulación hasta el día 7 del mes siguiente. Las tarifas, los límites y el tratamiento de las operaciones con el exterior pueden cambiar por resolución: confirma tu caso con tu contador antes de emitir.