Saltearse al contenido

Facturar en Ecuador

Errores del SRI

Cuando el SRI rechaza un comprobante, el estado pasa a no_autorizado y el motivo llega en mensajes[]:

{
"id": "6f1e…",
"estado": "no_autorizado",
"mensajes": [
{
"tipo": "ERROR",
"codigo": "65",
"mensaje": "FECHA EMISION EXTEMPORANEA",
"informacion_adicional": "La fecha de emisión está fuera del rango permitido",
"etapa": "authorization",
"reintentable": false,
"titulo": "Fecha de emisión fuera de plazo",
"recomendaciones": ["Corrija la fecha de emisión del comprobante."]
}
]
}
CampoQué es
codigoEl código del SRI. Es el identificador estable
mensajeEl texto tal cual lo devuelve el SRI
informacion_adicionalDetalle del SRI, cuando lo da
etapaDónde ocurrió: build, sign, send, authorization, ride
reintentableSi tiene sentido volver a enviarlo sin cambios
titulo y recomendacionesInterpretación de Olympus, en lenguaje llano

Ya existe un comprobante con esa clave de acceso. Casi siempre significa que el comprobante sí se autorizó en un envío anterior que pareció fallar.

Consulta por clave de acceso antes de dar nada por perdido:

Ventana de terminal
curl https://olympus.atharix.com/api/v1/documents/2409…13 -H "X-API-Key: $OLYMPUS_API_KEY"

El certificado no es válido, caducó, o la contraseña guardada no corresponde.

Solución: el negocio tiene que revisar su firma en Configuración → Fiscal. Comprueba primero GET /me. No se resuelve reintentando.

43 · Clave de acceso no existe / mal formada

Sección titulada «43 · Clave de acceso no existe / mal formada»

Problema interno en la generación. No deberías verlo; si aparece, avisa a soporte con el request_id.

45 · Documento inválido según el esquema XSD

Sección titulada «45 · Documento inválido según el esquema XSD»

Algún campo no cumple el formato del SRI: una descripción con caracteres no admitidos, un importe con más decimales de la cuenta, un campo obligatorio vacío.

informacion_adicional suele decir qué campo. Suele venir de datos con caracteres raros copiados y pegados en la descripción de un producto.

52 · RUC del emisor no existe o no está activo

Sección titulada «52 · RUC del emisor no existe o no está activo»

El RUC del negocio no está activo en el SRI, o no está autorizado a emitir electrónicamente.

Solución: es un trámite del contribuyente ante el SRI. Nada que hacer desde la API.

56 · Establecimiento cerrado o no autorizado

Sección titulada «56 · Establecimiento cerrado o no autorizado»

El establecimiento o el punto de emisión no están dados de alta en el SRI, o están cerrados.

Solución: el negocio tiene que darlos de alta en el portal del SRI, y los códigos de Olympus tienen que coincidir con los que allí figuran.

La fecha está fuera del plazo que admite el SRI (no puede ser futura, ni demasiado antigua).

Olympus ya rechaza las fechas futuras antes de emitir. Si aparece, suele ser una factura muy atrasada.

La identificación no cuadra con su tipo: un RUC declarado como consumidor final, una cédula con dígito verificador incorrecto, 9999999999999 con otra razón social.

Olympus normaliza estos casos antes de enviar, así que casi siempre significa que la identificación en sí es inválida: un RUC o una cédula mal tecleados. Valídalos en tu sistema antes de facturar.

Con el mismo código el SRI devuelve las facturas a consumidor final de más de 50 USD. Olympus las rechaza antes de enviarlas (422 validation_error): identifica al comprador.

Ese número ya se usó en ese punto de emisión.

Solución: POST /invoices/{id}/retry. Olympus detecta el conflicto, toma el siguiente número libre, recalcula la clave de acceso y reenvía.

El desglose no cuadra: la base no corresponde al importe, o el código de tarifa no existe. Revisa Impuestos; casi siempre es un problema de redondeo.

Tipo de errorAcción
Configuración del negocio (39, 52, 56)Avisar al negocio. No reintentar
Datos del comprobante (45, 65, 69, 76)Corregir en el origen. La factura se corrige desde Olympus
Numeración (70)POST /retry: se resuelve solo
Ya existía (35)Consultar por clave de acceso: probablemente ya está autorizada
Conectividad (error_envio)Esperar. Olympus reintenta solo
Ventana de terminal
curl -X POST https://olympus.atharix.com/api/v1/invoices/6f1e…/retry \
-H "X-API-Key: $OLYMPUS_API_KEY"

Solo funciona en no_autorizado y error_envio; en cualquier otro estado responde 409 document_locked.

Reintentar no cambia los datos de la factura. Si el SRI la rechazó por un dato incorrecto, reintentar da el mismo rechazo: hay que corregirla primero desde Olympus y volver a autorizarla.

rechazadas = client.get("/invoices", params={
"estado": "no_autorizado",
"desde": (date.today() - timedelta(days=7)).isoformat(),
}).json()
AUTOREINTENTABLES = {"70", "35"}
for factura in rechazadas["data"]:
codigos = {m["codigo"] for m in factura["mensajes"] if m["tipo"] == "ERROR"}
if codigos & AUTOREINTENTABLES:
client.post(f"/invoices/{factura['id']}/retry")
else:
avisar_al_equipo(factura) # Requiere intervención humana.