Facturar en Ecuador
PDF, XML y correo
Cuando el SRI autoriza una factura, quedan disponibles cuatro cosas: el RIDE en PDF, el XML autorizado, una página pública de verificación y el envío por correo.
Los enlaces llegan en urls del detalle de la factura:
{ "estado": "autorizado", "urls": { "detalle": "https://olympus.atharix.com/api/v1/invoices/6f1e…", "pdf": "https://olympus.atharix.com/api/v1/invoices/6f1e…/pdf", "xml": "https://olympus.atharix.com/api/v1/invoices/6f1e…/xml", "publica": "https://olympus.atharix.com/api/public/sri/2409…13/" }}Antes de la autorización son null, y pedirlos da 409 document_not_authorized.
El RIDE (PDF)
Sección titulada «El RIDE (PDF)»La Representación Impresa del Documento Electrónico: el documento que reconoce el cliente, con el logo del negocio, el desglose, la clave de acceso y el código QR de verificación.
curl https://olympus.atharix.com/api/v1/invoices/6f1e…/pdf \ -H "X-API-Key: $OLYMPUS_API_KEY" \ -o factura.pdfpdf = client.get(f"/invoices/{factura_id}/pdf")pdf.raise_for_status()Path("factura.pdf").write_bytes(pdf.content)El diseño (logo, color) sale de la configuración del negocio en Olympus; no se personaliza por la API.
El XML autorizado
Sección titulada «El XML autorizado»curl https://olympus.atharix.com/api/v1/invoices/6f1e…/xml \ -H "X-API-Key: $OLYMPUS_API_KEY" \ -o factura.xmlEs el comprobante firmado tal como lo autorizó el SRI. Guárdalo: el contribuyente debe conservar sus comprobantes electrónicos siete años.
El enlace público
Sección titulada «El enlace público»urls.publica apunta a una página que cualquiera puede abrir sin clave: es la que hay detrás del
código QR del RIDE. Permite al comprador ver y descargar su comprobante.
Puedes enviárselo a tus clientes: no expone nada del negocio más allá de ese comprobante.
Correo automático
Sección titulada «Correo automático»Por defecto, al autorizarse la factura, Olympus envía al comprador un correo con el RIDE y el XML
adjuntos. Solo hace falta que comprador.email venga en el payload.
Para desactivarlo en una factura concreta:
{ "enviar_email": false, "comprador": { … }, "items": [ … ] }Útil si prefieres enviar tú la comunicación con tu propia plantilla.
Reenviar por correo
Sección titulada «Reenviar por correo»curl -X POST https://olympus.atharix.com/api/v1/invoices/6f1e…/send-email \ -H "X-API-Key: $OLYMPUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "destinatarios": ["contabilidad@andina.ec", "gerencia@andina.ec"] }'Sin destinatarios, se envía al correo del comprador. Hasta 5 destinatarios por llamada.
Requiere estado autorizado y scope invoices:write.
Casos típicos: el cliente dio mal su correo, pide copia meses después, o su contador quiere recibirla aparte.
Guardar los documentos en tu sistema
Sección titulada «Guardar los documentos en tu sistema»def archivar(client, factura_id, carpeta: Path): factura = client.get(f"/invoices/{factura_id}").json() if factura["estado"] != "autorizado": return None
clave = factura["clave_acceso"] carpeta.mkdir(parents=True, exist_ok=True) for extension in ("pdf", "xml"): respuesta = client.get(f"/invoices/{factura_id}/{extension}") respuesta.raise_for_status() (carpeta / f"{clave}.{extension}").write_bytes(respuesta.content) return claveNómbralos por la clave de acceso: es única, irrepetible y es lo que te pedirán si hay que buscar un comprobante concreto.