Ir al contenido
API v1.0.0 · FUNCIONAMIENTO

Estados y reproceso

Qué estados tiene un comprobante, cuándo la emisión responde 201 o 202, qué hace Golem mientras el SRI no responde y cómo reprocesar un comprobante o reenviar su correo.

Estados de un comprobante

estadoSignificadoFinal
EN_PROCESOGuardado en Golem; aún no se envía al SRI o el SRI no responde la autorización.No
AUTORIZADOEl SRI lo autorizó. Tiene XML autorizado y RIDE.Sí
NO_AUTORIZADOEl SRI no lo autorizó. Es una decisión final para esa clave de acceso.Sí
DEVUELTOEl SRI no lo recibió por un error en los datos. En la aplicación aparece como Rechazado.Sí
ERRORGolem no pudo firmarlo o enviarlo, por ejemplo por un problema con la firma electrónica.Sí
ANULADOAnulado en Golem. El objeto anulacion indica la fecha, el motivo y lo que declaró la empresa sobre la anulación ante el SRI.Sí

En NO_AUTORIZADO, DEVUELTO y ERROR el crédito vuelve al saldo de la empresa y los motivos están en mensajes. Estos estados no se reenvían solos: el comprobante se reprocesa o se emite uno nuevo.

Tu integración debe tolerar valores de estado que no conozca: el contrato puede sumar valores sin cambiar de versión.

Respuestas 201 y 202

Después de guardar el comprobante, Golem lo firma, lo envía al SRI y espera la respuesta hasta 12 segundos:

RespuestaCuándoQué hacer
201 CreatedEl comprobante llegó a un estado final dentro de la espera.Revisa estado. Si es AUTORIZADO, entrega el comprobante; si no, revisa mensajes.
202 AcceptedEl SRI no respondió dentro de la espera. estado es EN_PROCESO.Consulta el comprobante más tarde. La cabecera Location tiene su URL y Retry-After los segundos sugeridos.

En los dos casos el comprobante ya existe, tiene número y clave de acceso, y el crédito está reservado. No lo emitas de nuevo porque respondió 202: crearías otro comprobante.

Cuánto tarda

El tiempo depende del SRI. Cuando sus servicios responden con normalidad, la autorización llega en pocos segundos, dentro de la espera, y la emisión responde 201. Si el SRI está lento o fuera de servicio, la respuesta es 202 y Golem sigue el proceso por su cuenta.

Respuesta inmediata

Con la cabecera Prefer: respond-async, la emisión responde 202 sin esperar al SRI y la respuesta incluye Preference-Applied: respond-async. Sirve a las integraciones que procesan los resultados en segundo plano.

Terminal
# 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 \
  -H "Authorization: Bearer $GOLEM_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: c42f9e10-8a6b-4d3c-b5e7-1a9f0d2c6e84" \
  -H "Prefer: respond-async" \
  -d @factura.json

Tiempo de espera del cliente

Configura en tu cliente HTTP un tiempo de espera de al menos 30 segundos para las emisiones y el reproceso: a los 12 segundos de espera se suman la firma, la red y el envío. Si la conexión se corta antes, repite la solicitud con la misma Idempotency-Key.

Seguir un comprobante en proceso

Mientras un comprobante está EN_PROCESO, Golem reintenta por su cuenta el envío al SRI y la consulta de la autorización. No hace falta reprocesarlo.

  • Para un comprobante, consulta GET /comprobantes/{claveAcceso} por ejemplo a los 5, 15 y 60 segundos, y luego cada pocos minutos.
  • Para muchos, usa el listado con cambiadoDesde: devuelve los comprobantes que cambiaron desde tu última consulta.

Si el SRI está caído por un tiempo largo, los comprobantes siguen en EN_PROCESO hasta que el SRI los recibe. En el ambiente de pruebas, Golem reintenta los comprobantes emitidos por el API durante los 3 días siguientes a su fecha de emisión.

Mensajes del SRI

mensajes lista lo que respondió el SRI al recibir o autorizar el comprobante, y los avisos de Golem sobre su procesamiento:

Comprobante devuelto (resumido)
{
  "estado": "DEVUELTO",
  "mensajes": [
    {
      "origen": "SRI",
      "identificador": "56",
      "mensaje": "ESTABLECIMIENTO CERRADO",
      "informacionAdicional": "El establecimiento 001 del RUC 1790000000001 está cerrado en el catastro.",
      "tipo": "ERROR"
    }
  ]
}
  • origen: SRI o GOLEM.
  • identificador: código del mensaje en el catálogo de errores del SRI.
  • tipo: ERROR, ADVERTENCIA o INFORMATIVO. Un comprobante autorizado puede traer advertencias.

Los mensajes del SRI no son errores del API: la emisión responde 201 con el comprobante y sus mensajes.

Fecha de emisión desde 2026

Desde el 1 de enero de 2026 el SRI exige transmitir cada comprobante en el momento de su emisión. Por eso:

  • fechaEmision es opcional y por defecto es la fecha de hoy en Ecuador (UTC−5).
  • Se acepta la fecha de hoy o la de ayer; la de ayer cubre diferencias de zona horaria.
  • Otra fecha responde 422 FECHA_FUERA_DE_RANGO y no crea el comprobante.
  • Una nota de crédito no puede tener una fecha anterior a la de la factura que modifica, ni una retención una anterior a la de su documento sustento.

El SRI puede devolver un comprobante enviado con una fecha extemporánea (mensaje 65). Esto afecta sobre todo al reproceso de comprobantes antiguos.

Reprocesar un comprobante

POST /comprobantes/{claveAcceso}/reprocesar vuelve a procesar un comprobante con la misma clave de acceso y el mismo número:

EstadoQué haceCrédito
EN_PROCESO, sin enviarLo firma y lo envía al SRI.Ya está reservado.
EN_PROCESO, recibido por el SRIConsulta la autorización.Ya está reservado.
DEVUELTO o ERRORLo firma y lo envía otra vez.Consume un crédito; vuelve si el SRI lo rechaza otra vez. Sin créditos responde 402 SIN_CREDITOS.
AUTORIZADO, NO_AUTORIZADO o ANULADONo se puede: 409 ESTADO_NO_PERMITE.—

Un token restringido a algunos puntos de emisión solo reprocesa los comprobantes de esos puntos; con otros responde 403 PUNTO_NO_PERMITIDO.

Reprocesa cuando la causa se corrigió fuera del comprobante (por ejemplo, se cargó una firma vigente o se habilitó el RUC para pruebas) o fue temporal. Un comprobante devuelto por un error en sus datos se vuelve a devolver: en ese caso emite uno nuevo con los datos corregidos.

El comprobante conserva su fecha de emisión. Si ya pasó más de un día, el SRI puede devolverlo por fecha extemporánea: emite uno nuevo.

El reproceso espera el resultado como la emisión: 200 con el estado final o 202 si el SRI no responde, y acepta Prefer: respond-async. Cuenta para el límite de emisiones.

Reenviar el correo

POST /comprobantes/{claveAcceso}/correo vuelve a enviar el correo con el XML y el RIDE:

  • Solo para comprobantes AUTORIZADO; en otro estado, 409 ESTADO_NO_PERMITE.
  • Va al correo que se usó al emitir el comprobante. Si el comprobante no tiene correo, 422 SIN_CORREO.
  • En pruebas va al buzón de Golem, nunca al receptor.
  • El envío se hace en segundo plano: 202 confirma que quedó en cola. La respuesta muestra el destinatario enmascarado.

Anulación

El API no anula comprobantes. Un comprobante se anula en la aplicación de Golem y, ante el SRI, en SRI en línea. Un comprobante anulado aparece con estado ANULADO y el objeto anulacion; si estuvo autorizado, su XML y su RIDE se pueden seguir descargando.

Reprocesar un comprobante

POST /comprobantes/{claveAcceso}/reprocesar

  • Requiere token
  • Espera al SRI hasta 12 s

Vuelve a procesar un comprobante que no terminó bien, con la misma clave de acceso y el mismo número:

EstadoQué hace
EN_PROCESO, aún sin enviarLo firma y lo envía al SRI.
EN_PROCESO, ya recibido por el SRIConsulta la autorización.
DEVUELTO o ERRORLo firma y lo envía otra vez. Consume un crédito de nuevo antes de enviarlo: sin créditos responde 402 y el comprobante no cambia. Si el SRI lo vuelve a rechazar, el crédito regresa.
AUTORIZADO, NO_AUTORIZADO o ANULADONo se puede: responde 409. Para corregir un comprobante no autorizado, emite uno nuevo.

Un comprobante devuelto por un error en sus datos se vuelve a devolver: en ese caso emite uno nuevo. Usa el reproceso cuando la causa ya se corrigió fuera del comprobante (por ejemplo, la firma electrónica) o fue temporal. El comprobante conserva su fecha de emisión: si ya pasó más de un día, el SRI puede devolverlo por fecha extemporánea. Espera el resultado igual que la emisión y acepta la misma cabecera Prefer.

Reprocesar firma y envía el comprobante con el número de su punto de emisión, igual que emitir: un token restringido a algunos puntos solo reprocesa los comprobantes de esos puntos, y uno sin puntos permitidos no reprocesa ninguno. En esos casos responde 403 PUNTO_NO_PERMITIDO.

Límites: 60 solicitudes por minuto por token; 20 emisiones por minuto por token y 40 por empresa.

Parámetros

Parámetros de reprocesar un comprobante
Campo Descripción
claveAcceso
ruta string obligatorio

Clave de acceso de 49 dígitos del comprobante.

  • Formato ^\d{49}$
Prefer
cabecera string

respond-async responde de inmediato con 202 sin esperar al SRI. Sin esta cabecera, Golem espera el resultado hasta 12 segundos. Otros valores se ignoran.

X-Request-Id
cabecera string

Identificador propio de la solicitud (hasta 64 caracteres: letras, números y -). Si no lo envías, Golem genera uno. Vuelve en la cabecera de respuesta y en los errores; cítalo al escribir a soporte.

  • Hasta 64 caracteres
  • Formato ^[A-Za-z0-9-]{1,64}$

Ejemplo de solicitud

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

Terminal
curl -X POST https://api.golem.ec/v1/comprobantes/2409202601179000000000120010010000001481234567815/reprocesar \
  --max-time 30 \
  -H "Authorization: Bearer $GOLEM_TOKEN"

Respuestas

200 application/json

El comprobante llegó a un estado final.

Esquema Comprobante.

Respuesta 200: Factura autorizada
{
  "tipo": "FACTURA",
  "codDoc": "01",
  "claveAcceso": "2409202601179000000000120010010000001481234567815",
  "numero": "001-001-000000148",
  "estado": "AUTORIZADO",
  "ambiente": "PRODUCCION",
  "fechaEmision": "2026-09-24",
  "fechaEnvio": "2026-09-24T10:42:28-05:00",
  "fechaAutorizacion": "2026-09-24T10:42:31-05:00",
  "numeroAutorizacion": "2409202601179000000000120010010000001481234567815",
  "fechaActualizacion": "2026-09-24T10:42:33.512-05:00",
  "establecimiento": "001",
  "puntoEmision": "001",
  "referencia": null,
  "origen": "API",
  "total": 89.7,
  "cliente": {
    "tipoIdentificacion": "04",
    "identificacion": "0990000000001",
    "razonSocial": "CLIENTE DEMO S.A.",
    "email": "[email protected]",
    "direccion": null,
    "telefono": null
  },
  "items": [
    {
      "codigo": "P-001",
      "codigoAuxiliar": null,
      "descripcion": "Producto de ejemplo",
      "cantidad": 10,
      "precioUnitario": 7.8,
      "descuento": 0,
      "subtotal": 78,
      "codigoIva": "4",
      "tarifaIva": 15,
      "valorIva": 11.7,
      "detallesAdicionales": []
    }
  ],
  "pagos": [
    {
      "formaPago": "20",
      "total": 89.7,
      "plazo": null,
      "unidadTiempo": null
    }
  ],
  "guiaRemision": null,
  "totales": {
    "subtotal": 78,
    "descuento": 0,
    "subtotalesIva": [
      {
        "codigoIva": "4",
        "tarifa": 15,
        "baseImponible": 78,
        "valor": 11.7
      }
    ],
    "iva": 11.7,
    "propina": 0,
    "total": 89.7
  },
  "mensajes": [],
  "anulacion": null,
  "informacionAdicional": [
    {
      "nombre": "RUC Proveedor",
      "valor": "0195113076001"
    }
  ],
  "enlaces": {
    "self": "https://api.golem.ec/v1/comprobantes/2409202601179000000000120010010000001481234567815",
    "pdf": "https://api.golem.ec/v1/comprobantes/2409202601179000000000120010010000001481234567815/pdf",
    "xml": "https://api.golem.ec/v1/comprobantes/2409202601179000000000120010010000001481234567815/xml"
  }
}

202 application/json

Comprobante creado; el SRI aún no responde. Estado EN_PROCESO. Consulta Location más tarde (por ejemplo a los 5, 15 y 60 segundos). Golem reintenta el envío y la autorización por su cuenta.

Esquema Comprobante.

Respuesta 202: Factura en proceso (el SRI aún no responde)
{
  "tipo": "FACTURA",
  "codDoc": "01",
  "claveAcceso": "2609202601179000000000120010010000001498765432115",
  "numero": "001-001-000000149",
  "estado": "EN_PROCESO",
  "ambiente": "PRODUCCION",
  "fechaEmision": "2026-09-26",
  "fechaEnvio": "2026-09-26T09:15:04-05:00",
  "fechaAutorizacion": null,
  "numeroAutorizacion": null,
  "fechaActualizacion": "2026-09-26T09:15:04.120-05:00",
  "establecimiento": "001",
  "puntoEmision": "001",
  "referencia": "PED-2026-00482",
  "origen": "API",
  "total": 89.7,
  "cliente": {
    "tipoIdentificacion": "04",
    "identificacion": "0990000000001",
    "razonSocial": "CLIENTE DEMO S.A.",
    "email": "[email protected]",
    "direccion": null,
    "telefono": null
  },
  "items": [
    {
      "codigo": "P-001",
      "codigoAuxiliar": null,
      "descripcion": "Producto de ejemplo",
      "cantidad": 10,
      "precioUnitario": 7.8,
      "descuento": 0,
      "subtotal": 78,
      "codigoIva": "4",
      "tarifaIva": 15,
      "valorIva": 11.7,
      "detallesAdicionales": []
    }
  ],
  "pagos": [
    {
      "formaPago": "20",
      "total": 89.7,
      "plazo": null,
      "unidadTiempo": null
    }
  ],
  "guiaRemision": null,
  "totales": {
    "subtotal": 78,
    "descuento": 0,
    "subtotalesIva": [
      {
        "codigoIva": "4",
        "tarifa": 15,
        "baseImponible": 78,
        "valor": 11.7
      }
    ],
    "iva": 11.7,
    "propina": 0,
    "total": 89.7
  },
  "mensajes": [],
  "anulacion": null,
  "informacionAdicional": [],
  "enlaces": {
    "self": "https://api.golem.ec/v1/comprobantes/2609202601179000000000120010010000001498765432115",
    "pdf": null,
    "xml": null
  }
}
Errores: HTTP 400, 401, 402, 403, 404, 409, 429, 500
Códigos de error de reprocesar un comprobante
HTTP Código Causa y solución
400 JSON_INVALIDO

El cuerpo no es un JSON válido.

Revisa la sintaxis cerca de la línea y la columna que indica el mensaje.

400 VALIDACION

Uno o más campos no cumplen el formato. detalles lista cada campo con su código: CAMPO_REQUERIDO, CAMPO_DESCONOCIDO, TIPO_INVALIDO, FORMATO_INVALIDO, VALOR_INVALIDO, LONGITUD_INVALIDA o DECIMALES_EXCEDIDOS.

Corrige los campos de detalles. Los campos que el API no conoce se rechazan: revisa los nombres.

400 PARAMETRO_INVALIDO

Un parámetro de la ruta o de la consulta no es válido: por ejemplo, una clave de acceso sin 49 dígitos, un rango de fechas de más de 366 días o un cambiadoDesde anterior a 90 días.

Corrige el parámetro que indica campo.

400 IDEMPOTENCY_KEY_INVALIDA

La cabecera Idempotency-Key no tiene entre 8 y 100 caracteres, o usa caracteres distintos de letras, números, -, _, . y :.

Genera la clave con un UUID v4.

400 TOKEN_EN_URL

La URL incluye token, access_token o api_key.

Envía el token solo en la cabecera Authorization. Revoca ese token y crea otro: la URL pudo quedar en registros.

401 TOKEN_REQUERIDO

Falta la cabecera Authorization.

Envía Authorization: Bearer <token>.

401 TOKEN_INVALIDO

El token no existe o no tiene el formato de un token de Golem.

Copia el token completo, con su prefijo. Si no lo tienes, crea otro: Golem no puede mostrarlo de nuevo.

401 TOKEN_REVOCADO

El token fue revocado.

Crea otro en Cuenta > API e integraciones.

402 SIN_CREDITOS

La empresa no tiene créditos para emitir o reprocesar.

Compra una recarga en la aplicación. Las consultas y descargas siguen disponibles.

403 EMPRESA_SUSPENDIDA

La empresa no está activa. Afecta a las emisiones y las acciones; las consultas siguen disponibles.

Escribe a [email protected].

403 PUNTO_NO_PERMITIDO

El token no puede emitir en ese punto de emisión, o está restringido y no tiene puntos.

Usa uno de los puntos que devuelve GET /empresa en token.puntosPermitidos, o cambia los puntos del token en la aplicación.

403 PLAN_NO_PERMITE

El plan de la empresa no incluye la emisión de comprobantes electrónicos.

Revisa el plan en la aplicación o escribe a [email protected].

404 NO_ENCONTRADO

El recurso no existe en la empresa y el ambiente del token, o el catálogo no existe.

Revisa la clave de acceso y que el token sea del mismo ambiente en que se emitió el comprobante.

409 ESTADO_NO_PERMITE

El estado del comprobante no permite la operación: descarga de un comprobante no autorizado, reproceso de uno autorizado o reenvío del correo de uno no autorizado.

Consulta el estado del comprobante. Para corregir uno no autorizado, emite uno nuevo.

429 LIMITE_EXCEDIDO

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

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

500 ERROR_INTERNO

Error inesperado de Golem.

Si ocurrió al emitir, repite la solicitud con la misma Idempotency-Key. Escribe a [email protected] con el requestId.

Formato y lista completa en Errores.

Reenviar el correo del comprobante

POST /comprobantes/{claveAcceso}/correo

  • Requiere token

Vuelve a enviar el correo con el XML y el RIDE al email que se usó al emitir el comprobante. Solo para comprobantes autorizados. En el ambiente de pruebas el correo va a un buzón de Golem, nunca al receptor. El envío se hace en segundo plano: la respuesta 202 confirma que quedó en cola.

El reenvío no cambia el comprobante ni consume créditos, así que no depende de los puntos de emisión del token: cualquier token de la empresa puede reenviar el correo de sus comprobantes.

Límites: 60 solicitudes por minuto por token; 10 reenvíos de correo por minuto por token.

Parámetros

Parámetros de reenviar el correo del comprobante
Campo Descripción
claveAcceso
ruta string obligatorio

Clave de acceso de 49 dígitos del comprobante.

  • Formato ^\d{49}$
X-Request-Id
cabecera string

Identificador propio de la solicitud (hasta 64 caracteres: letras, números y -). Si no lo envías, Golem genera uno. Vuelve en la cabecera de respuesta y en los errores; cítalo al escribir a soporte.

  • Hasta 64 caracteres
  • Formato ^[A-Za-z0-9-]{1,64}$

Ejemplo de solicitud

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

Terminal
curl -X POST https://api.golem.ec/v1/comprobantes/2409202601179000000000120010010000001481234567815/correo \
  --max-time 30 \
  -H "Authorization: Bearer $GOLEM_TOKEN"

Respuestas

202 application/json

El correo quedó en cola de envío.

Esquema EnvioCorreo.

Respuesta 202
{
  "claveAcceso": "2409202601179000000000120010010000001481234567815",
  "destinatario": "fa******@cliente-demo.ec",
  "mensaje": "El correo se envía en segundo plano."
}
Errores: HTTP 400, 401, 403, 404, 409, 422, 429, 500
Códigos de error de reenviar el correo del comprobante
HTTP Código Causa y solución
400 JSON_INVALIDO

El cuerpo no es un JSON válido.

Revisa la sintaxis cerca de la línea y la columna que indica el mensaje.

400 VALIDACION

Uno o más campos no cumplen el formato. detalles lista cada campo con su código: CAMPO_REQUERIDO, CAMPO_DESCONOCIDO, TIPO_INVALIDO, FORMATO_INVALIDO, VALOR_INVALIDO, LONGITUD_INVALIDA o DECIMALES_EXCEDIDOS.

Corrige los campos de detalles. Los campos que el API no conoce se rechazan: revisa los nombres.

400 PARAMETRO_INVALIDO

Un parámetro de la ruta o de la consulta no es válido: por ejemplo, una clave de acceso sin 49 dígitos, un rango de fechas de más de 366 días o un cambiadoDesde anterior a 90 días.

Corrige el parámetro que indica campo.

400 IDEMPOTENCY_KEY_INVALIDA

La cabecera Idempotency-Key no tiene entre 8 y 100 caracteres, o usa caracteres distintos de letras, números, -, _, . y :.

Genera la clave con un UUID v4.

400 TOKEN_EN_URL

La URL incluye token, access_token o api_key.

Envía el token solo en la cabecera Authorization. Revoca ese token y crea otro: la URL pudo quedar en registros.

401 TOKEN_REQUERIDO

Falta la cabecera Authorization.

Envía Authorization: Bearer <token>.

401 TOKEN_INVALIDO

El token no existe o no tiene el formato de un token de Golem.

Copia el token completo, con su prefijo. Si no lo tienes, crea otro: Golem no puede mostrarlo de nuevo.

401 TOKEN_REVOCADO

El token fue revocado.

Crea otro en Cuenta > API e integraciones.

403 EMPRESA_SUSPENDIDA

La empresa no está activa. Afecta a las emisiones y las acciones; las consultas siguen disponibles.

Escribe a [email protected].

403 PUNTO_NO_PERMITIDO

El token no puede emitir en ese punto de emisión, o está restringido y no tiene puntos.

Usa uno de los puntos que devuelve GET /empresa en token.puntosPermitidos, o cambia los puntos del token en la aplicación.

403 PLAN_NO_PERMITE

El plan de la empresa no incluye la emisión de comprobantes electrónicos.

Revisa el plan en la aplicación o escribe a [email protected].

404 NO_ENCONTRADO

El recurso no existe en la empresa y el ambiente del token, o el catálogo no existe.

Revisa la clave de acceso y que el token sea del mismo ambiente en que se emitió el comprobante.

409 ESTADO_NO_PERMITE

El estado del comprobante no permite la operación: descarga de un comprobante no autorizado, reproceso de uno autorizado o reenvío del correo de uno no autorizado.

Consulta el estado del comprobante. Para corregir uno no autorizado, emite uno nuevo.

422 PUNTO_EMISION_NO_EXISTE

El establecimiento o el punto de emisión que indica la solicitud no existe en la empresa.

Usa los códigos que devuelve GET /empresa.

422 IDENTIFICACION_INVALIDA

La cédula o el RUC no son válidos para el tipoIdentificacion indicado, o se indicó consumidor final como sujeto retenido. Sin tipoIdentificacion, una cédula o un RUC inválido responde 400 VALIDACION (CAMPO_REQUERIDO en tipoIdentificacion), porque no se puede deducir el tipo.

Corrige la identificación. Para pasaportes y documentos del exterior, indica tipoIdentificacion 06 u 08.

422 TARIFA_IVA_NO_VIGENTE

La tarifa de IVA no está vigente en la fecha del comprobante (en notas de crédito, en la fecha de la factura modificada).

Usa una tarifa del catálogo tarifas-iva vigente en esa fecha.

422 TARIFA_IVA_NO_COINCIDE

En una nota de crédito sobre una factura de Golem, un ítem usa una tarifa de IVA que la factura no tiene.

Usa en cada ítem una de las tarifas de la factura modificada.

422 PAGOS_NO_CUADRAN

La suma de pagos difiere del total de la factura en más de 0.01.

Ajusta los pagos al total calculado, o usa formaPago para un solo pago por el total.

422 TOTAL_NO_COINCIDE

El total que calcula Golem difiere de totalEsperado en más de 0.01. El mensaje muestra el desglose.

Compara el cálculo de tu sistema con el de la guía de facturas; con precios con IVA incluido, revisa la conversión.

422 DESCUENTO_INVALIDO

El descuento de una línea supera la cantidad por el precio unitario.

Envía el descuento en dólares de la línea completa, sin superar su valor.

422 CONSUMIDOR_FINAL_EXCEDE_LIMITE

Una factura a consumidor final supera el tope que permite el SRI.

Identifica al comprador con su cédula, RUC o pasaporte.

422 FECHA_FUERA_DE_RANGO

La fecha de emisión no es la de hoy ni la de ayer (hora de Ecuador), o es anterior a la del documento modificado o sustento.

Omite fechaEmision para usar la de hoy. El SRI exige transmitir el comprobante al emitirlo.

422 FIRMA_NO_VIGENTE

La empresa no tiene firma electrónica o la firma venció.

Carga una firma vigente en la aplicación.

422 SIN_STOCK

Un ítem usa un producto con control de inventario sin existencias suficientes.

Registra el ingreso en la aplicación o quita el control de inventario del producto.

422 SUSTENTO_NO_ENCONTRADO

La factura que modifica la nota de crédito no existe en la empresa y el ambiente del token.

Revisa la clave de acceso. Si la factura se emitió fuera de Golem, envía codDoc, numero y fechaEmision.

422 SUSTENTO_NO_AUTORIZADO

La factura que modifica la nota de crédito no está autorizada.

Emite la nota de crédito cuando la factura esté autorizada.

422 NOTA_CREDITO_EXCEDE_SALDO

La nota de crédito, sumada a las anteriores de la misma factura, supera el total de la factura.

Reduce el valor de la nota de crédito al saldo de la factura.

422 CLIENTE_NO_COINCIDE

La identificación de cliente no es la de la factura modificada.

Omite cliente: se toma de la factura.

422 CLIENTE_NO_PERMITIDO

Una nota de crédito a consumidor final, o sobre una factura emitida a consumidor final.

El SRI exige un receptor identificado en las notas de crédito.

422 CODIGO_RETENCION_INVALIDO

El código de retención no existe o no está vigente para ese impuesto.

Usa un código de los catálogos retenciones-renta o retenciones-iva.

422 PORCENTAJE_RETENCION_INVALIDO

Falta porcentaje en un código de porcentaje variable, o el porcentaje enviado no coincide con el de un código de porcentaje fijo.

Envía porcentaje solo en los códigos con porcentaje variable.

422 SIN_CORREO

El comprobante no tiene un correo de destino.

El correo se toma del comprobante al emitirlo; en ese caso, envía el XML y el RIDE por tu cuenta.

429 LIMITE_EXCEDIDO

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

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

500 ERROR_INTERNO

Error inesperado de Golem.

Si ocurrió al emitir, repite la solicitud con la misma Idempotency-Key. Escribe a [email protected] con el requestId.

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.