Ir al contenido
API v1.0.0 · PRIMEROS PASOS

API de facturación electrónica

Emite facturas, notas de crédito y comprobantes de retención del SRI desde tu propio sistema. Golem calcula los totales, asigna el número y la clave de acceso, firma el XML con la firma electrónica de tu empresa, lo envía al SRI y te devuelve la autorización.

Es un API REST con JSON. Para la primera emisión, sigue el inicio rápido: crear un token de pruebas, emitir una factura, consultarla y descargar el XML y el RIDE.

Qué permite el API

Operación Método y ruta Token
Emitir una factura POST /comprobantes/facturas Sí
Emitir una nota de crédito POST /comprobantes/notas-credito Sí
Emitir un comprobante de retención POST /comprobantes/retenciones Sí
Listar comprobantes GET /comprobantes Sí
Consultar un comprobante GET /comprobantes/{claveAcceso} Sí
Descargar el RIDE en PDF GET /comprobantes/{claveAcceso}/pdf Sí
Descargar el XML autorizado GET /comprobantes/{claveAcceso}/xml Sí
Reprocesar un comprobante POST /comprobantes/{claveAcceso}/reprocesar Sí
Reenviar el correo del comprobante POST /comprobantes/{claveAcceso}/correo Sí
Consultar la empresa del token GET /empresa Sí
Consultar un RUC en el catastro del SRI GET /ruc/{ruc} Sí
Listar los catálogos GET /catalogos No
Consultar un catálogo GET /catalogos/{nombre} No
Obtener esta especificación OpenAPI GET /openapi.json No

Comprobantes admitidos en esta versión: factura (01), nota de crédito (04) y comprobante de retención (07, esquema 1.0.0 del SRI). Las notas de débito, las liquidaciones de compra y las guías de remisión están en la hoja de ruta.

Datos para conectar

URL base https://api.golem.ec/v1
Autenticación Cabecera Authorization: Bearer <token> con un token de la empresa. Ver Autenticación.
Ambiente Lo decide el token: glm_prueba_… para pruebas y glm_prod_… para producción. Ver Ambientes.
Formato JSON en UTF-8 con nombres en camelCase. Fechas yyyy-MM-dd, instantes ISO 8601 con la zona de Ecuador (-05:00) y montos en dólares con 2 decimales.
Tiempo de espera del cliente Al menos 30 segundos en las emisiones: Golem espera la respuesta del SRI hasta 12 segundos.
Límites 60 solicitudes por minuto por token, de ellas hasta 20 emisiones. Ver Límites.

El API se llama desde tu servidor: no admite CORS, para que el token no quede expuesto en un navegador.

Antes de empezar

  • Una cuenta de Golem con el RUC de la empresa y un usuario administrador, que es quien crea los tokens en Cuenta > API e integraciones.
  • La firma electrónica de la empresa cargada y vigente en la aplicación.
  • Establecimientos y puntos de emisión configurados en la aplicación.
  • Créditos disponibles para emitir.
  • Para el ambiente de pruebas, el RUC habilitado para pruebas en SRI en línea.

Cómo se emite un comprobante

  1. Tu sistema envía el comprobante con los datos del cliente, los ítems con su precio sin IVA y la forma de pago.
  2. Golem valida los datos, calcula subtotales, IVA y total, y asigna el secuencial y la clave de acceso.
  3. Golem firma el XML con la firma de la empresa, lo envía al SRI y espera la autorización hasta 12 segundos.
  4. La respuesta es 201 con el estado final (AUTORIZADO, NO_AUTORIZADO, DEVUELTO o ERROR) o 202 con EN_PROCESO si el SRI aún no responde. Ver Estados.
  5. En producción, Golem envía al receptor el correo con el XML autorizado y el RIDE.
Emitir una factura
# Usa una clave nueva por cada comprobante en Idempotency-Key (por ejemplo, la salida de uuidgen).
curl -X POST https://api.golem.ec/v1/comprobantes/facturas \
  --max-time 30 \
  -H "Authorization: Bearer $GOLEM_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 5d8c1f3e-9b2a-4e67-8c04-3f6a2b9d7e15" \
  -d @factura.json

La cabecera Idempotency-Key permite repetir la solicitud sin duplicar el comprobante si la conexión se corta. Usa una clave nueva por cada comprobante: la del ejemplo es solo una muestra. Ver Idempotencia.

Créditos

Cada comprobante emitido por el API consume un crédito del saldo de la empresa, igual que en la aplicación y también en el ambiente de pruebas. Si el comprobante termina DEVUELTO, NO_AUTORIZADO o ERROR, el crédito vuelve al saldo. Sin créditos, la emisión responde 402 SIN_CREDITOS. Las consultas, el listado y las descargas no consumen créditos y siguen disponibles sin saldo. GET /empresa devuelve los créditos disponibles.

Especificación y colección

La especificación OpenAPI es la fuente de esta documentación. Sirve para generar un cliente o para importar las operaciones en tu herramienta:

La colección de Postman tiene las 14 operaciones con sus ejemplos. Al importarla, completa la variable token; cada emisión genera su propia Idempotency-Key.

Obtener esta especificación OpenAPI

GET /openapi.json

  • Sin token

La especificación OpenAPI 3.1 del API en JSON. No requiere token.

Límites: 60 solicitudes por minuto por dirección IP.

Ejemplo de solicitud

Los ejemplos leen el token de la variable de entorno GOLEM_TOKEN.

Terminal
curl https://api.golem.ec/v1/openapi.json \
  --max-time 30

Respuestas

200 application/json

Especificación OpenAPI.

Errores: HTTP 429
Códigos de error de obtener esta especificación openapi
HTTP Código Causa y solución
429 LIMITE_EXCEDIDO

Se superó un límite de solicitudes por minuto.

Repite la solicitud después de los segundos de Retry-After.

Formato y lista completa en Errores.

Soporte del API: [email protected], incluido en el precio. Cita el requestId del error o la cabecera X-Request-Id de la respuesta.

Los mantenimientos programados se avisan por correo con 24 horas de anticipación.