{
  "info": {
    "_postman_id": "a219b3ac-a602-4dca-a103-3dace5cfc0bd",
    "name": "API de Golem Facturación 1.0.0",
    "description": "Emisión, consulta y descarga de comprobantes electrónicos del SRI de Ecuador.\n\nAntes de enviar una solicitud, completa la variable `token` de la colección con un token de pruebas (`glm_prueba_…`) creado en Cuenta > API e integraciones.\nLas emisiones envían `Idempotency-Key` con un valor nuevo en cada envío (`{{$guid}}`); para reintentar la misma operación, repite el valor que se envió.\n\nDocumentación: https://golem.ec/desarrolladores/",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{token}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.golem.ec/v1",
      "type": "string",
      "description": "URL base del API."
    },
    {
      "key": "token",
      "value": "",
      "type": "string",
      "description": "Token del API (glm_prueba_… o glm_prod_…). No lo compartas ni lo guardes en un repositorio."
    },
    {
      "key": "claveAcceso",
      "value": "2409202601179000000000120010010000001481234567815",
      "type": "string",
      "description": "Clave de acceso de un comprobante de tu empresa, para las consultas, las descargas y la factura que modifica la nota de crédito."
    }
  ],
  "item": [
    {
      "name": "Emisión",
      "description": "Crear facturas, notas de crédito y comprobantes de retención.",
      "item": [
        {
          "id": "d6dcb6da-4e45-451e-8e48-de54417a2043",
          "name": "Emitir una factura",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Clave única de la operación. Para reintentar la misma emisión, repite el valor enviado."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comprobantes/facturas",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comprobantes",
                "facturas"
              ]
            },
            "description": "Crea una factura (código 01) en el punto de emisión indicado, calcula subtotales, IVA y total, asigna el\nsecuencial y la clave de acceso, la firma y la envía al SRI.\n\n- `establecimiento` y `puntoEmision` son los códigos de 3 dígitos. Si los omites, se usa el punto por\n  defecto del token.\n- Envía el precio unitario **sin IVA**, con hasta 4 decimales, y la cantidad con hasta 2. Si tu sistema\n  maneja precios con IVA incluido, la guía de facturas explica cómo convertirlos. El IVA de cada ítem se\n  indica con `iva` (porcentaje) o con `codigoIva` (código del SRI). Para *no objeto de IVA* usa\n  `codigoIva: \"6\"` y para *exento* `\"7\"`.\n- Indica el pago con `formaPago` (una sola forma por el total) o con `pagos` (varias formas; deben sumar el\n  total).\n- Si envías `totalEsperado`, Golem compara su cálculo con ese valor y rechaza la factura si difieren en más\n  de 0.01.\n- Si un ítem usa el código de un producto de tu catálogo con control de inventario y no hay existencias,\n  la factura no se emite (`422 SIN_STOCK`).\n- Envía siempre `Idempotency-Key`: si la conexión se corta, repite la solicitud con la misma clave.\n\nDocumentación: https://golem.ec/desarrolladores/facturas/",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"establecimiento\": \"001\",\n  \"puntoEmision\": \"001\",\n  \"cliente\": {\n    \"identificacion\": \"0990000000001\",\n    \"razonSocial\": \"CLIENTE DEMO S.A.\",\n    \"email\": \"facturas@cliente-demo.ec\"\n  },\n  \"items\": [\n    {\n      \"codigo\": \"P-001\",\n      \"descripcion\": \"Producto de ejemplo\",\n      \"cantidad\": 10,\n      \"precioUnitario\": 7.8,\n      \"iva\": 15\n    }\n  ],\n  \"formaPago\": \"20\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "id": "5d901724-8c88-4c0c-a046-0a848b22c1f3",
          "name": "Emitir una nota de crédito",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Clave única de la operación. Para reintentar la misma emisión, repite el valor enviado."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comprobantes/notas-credito",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comprobantes",
                "notas-credito"
              ]
            },
            "description": "Crea una nota de crédito (código 04) que modifica una factura.\n\n- Si la factura se emitió en Golem, basta su `claveAcceso` en `documentoModificado`: Golem toma de ella el\n  número, la fecha y los datos del cliente, verifica que esté autorizada, que las tarifas de IVA sean las de\n  la factura y que la suma de sus notas de crédito no supere su total.\n- Si la factura se emitió fuera de Golem, envía `codDoc`, `numero` y `fechaEmision` del documento y los\n  datos del `cliente`.\n- El receptor debe estar identificado: no se emite una nota de crédito a consumidor final\n  (`9999999999999`), tampoco si la factura modificada fue a consumidor final (`422 CLIENTE_NO_PERMITIDO`).\n- Las tarifas de IVA admitidas son las vigentes a la fecha de la factura modificada (por ejemplo, 12 % para\n  facturas anteriores al 1 de abril de 2024).\n\nDocumentación: https://golem.ec/desarrolladores/notas-credito/",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"establecimiento\": \"001\",\n  \"puntoEmision\": \"001\",\n  \"referencia\": \"DEV-2026-0012\",\n  \"documentoModificado\": {\n    \"claveAcceso\": \"{{claveAcceso}}\"\n  },\n  \"motivo\": \"Devolución de 2 unidades\",\n  \"items\": [\n    {\n      \"codigo\": \"P-001\",\n      \"descripcion\": \"Producto de ejemplo\",\n      \"cantidad\": 2,\n      \"precioUnitario\": 7.8,\n      \"iva\": 15\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "id": "958b9ae7-ef36-4cf1-b0a3-544fee067473",
          "name": "Emitir un comprobante de retención",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Clave única de la operación. Para reintentar la misma emisión, repite el valor enviado."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comprobantes/retenciones",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comprobantes",
                "retenciones"
              ]
            },
            "description": "Crea un comprobante de retención (código 07, esquema 1.0.0 del SRI) sobre un documento sustento recibido de\nun proveedor.\n\n- Cada línea de `retenciones` indica el impuesto (`codigoImpuesto`: 1 renta, 2 IVA), el código de retención\n  del catálogo y la base imponible. Golem calcula el valor retenido.\n- El porcentaje sale del catálogo. Solo los códigos de porcentaje variable (`porcentajeVariable: true` en\n  el catálogo) requieren `porcentaje`.\n- El sujeto retenido debe estar identificado con RUC, cédula, pasaporte o identificación del exterior: no\n  se admite consumidor final.\n- El período fiscal es el mes y año de la fecha de emisión de la retención.\n- La retención se emite dentro de los 5 días siguientes a la recepción del documento sustento. Golem no\n  conoce esa fecha de recepción: el plazo es responsabilidad de tu empresa.\n\nDocumentación: https://golem.ec/desarrolladores/retenciones/",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"establecimiento\": \"001\",\n  \"puntoEmision\": \"001\",\n  \"referencia\": \"CXP-2026-0931\",\n  \"sujetoRetenido\": {\n    \"tipoIdentificacion\": \"04\",\n    \"identificacion\": \"0990000000001\",\n    \"razonSocial\": \"PROVEEDOR DEMO S.A.\",\n    \"email\": \"cobranzas@proveedor-demo.ec\"\n  },\n  \"documentoSustento\": {\n    \"codDoc\": \"01\",\n    \"numero\": \"002-001-000004521\",\n    \"fechaEmision\": \"2026-09-22\"\n  },\n  \"retenciones\": [\n    {\n      \"codigoImpuesto\": \"1\",\n      \"codigoRetencion\": \"312\",\n      \"baseImponible\": 1000\n    },\n    {\n      \"codigoImpuesto\": \"2\",\n      \"codigoRetencion\": \"1\",\n      \"baseImponible\": 150\n    }\n  ],\n  \"totalEsperado\": 62.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Consulta",
      "description": "Estado, listado y descargas de los comprobantes de la empresa del token.",
      "item": [
        {
          "id": "db5205b4-6b7c-43ca-95be-0a7969f069d1",
          "name": "Listar comprobantes",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comprobantes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comprobantes"
              ],
              "query": [
                {
                  "key": "tipo",
                  "value": "FACTURA",
                  "description": "Tipo de comprobante.",
                  "disabled": true
                },
                {
                  "key": "estado",
                  "value": "EN_PROCESO",
                  "description": "Estado del comprobante.",
                  "disabled": true
                },
                {
                  "key": "cambiadoDesde",
                  "value": "2026-09-26T09:15:04.120-05:00",
                  "description": "Instante ISO 8601 (con zona). Devuelve los comprobantes con `fechaActualizacion` igual o posterior, del\nmás antiguo al más reciente. No puede ser anterior a 90 días.",
                  "disabled": true
                },
                {
                  "key": "desde",
                  "value": "2026-09-01",
                  "description": "Fecha de emisión inicial, incluida. Sin `cambiadoDesde`, por defecto 30 días antes de `hasta`.",
                  "disabled": true
                },
                {
                  "key": "hasta",
                  "value": "2026-09-30",
                  "description": "Fecha de emisión final, incluida. Sin `cambiadoDesde`, por defecto hoy.",
                  "disabled": true
                },
                {
                  "key": "establecimiento",
                  "value": "001",
                  "description": "Código del establecimiento.",
                  "disabled": true
                },
                {
                  "key": "puntoEmision",
                  "value": "001",
                  "description": "Código del punto de emisión. Requiere `establecimiento`.",
                  "disabled": true
                },
                {
                  "key": "identificacion",
                  "value": "0990000000001",
                  "description": "Identificación del cliente o del sujeto retenido.",
                  "disabled": true
                },
                {
                  "key": "numero",
                  "value": "001-001-000000148",
                  "description": "Número completo del comprobante.",
                  "disabled": true
                },
                {
                  "key": "referencia",
                  "value": "PED-2026-00481",
                  "description": "Referencia que envió el integrador al emitir.",
                  "disabled": true
                },
                {
                  "key": "origen",
                  "value": "API",
                  "description": "Canal por el que se creó el comprobante.",
                  "disabled": true
                },
                {
                  "key": "pagina",
                  "value": "1",
                  "description": "Número de página, desde 1.",
                  "disabled": true
                },
                {
                  "key": "porPagina",
                  "value": "20",
                  "description": "Comprobantes por página.",
                  "disabled": true
                }
              ]
            },
            "description": "Lista los comprobantes de la empresa del token en su ambiente. Incluye los emitidos desde la aplicación y\ndesde el API.\n\n- Sin `cambiadoDesde`: filtra por fecha de emisión (`desde`/`hasta`, rango de hasta 366 días) y ordena del\n  más reciente al más antiguo.\n- Con `cambiadoDesde`: devuelve los comprobantes creados o modificados (estado, anulación u otro dato)\n  desde ese instante, ordenados por `fechaActualizacion` del más antiguo al más reciente. `desde` y\n  `hasta` son opcionales y no tienen valor por defecto. Guarda el `fechaActualizacion` del último\n  comprobante que procesaste y úsalo como `cambiadoDesde` en la siguiente consulta: es la forma\n  recomendada de seguir los cambios de estado, en lugar de consultar cada clave de acceso.\n\nDocumentación: https://golem.ec/desarrolladores/listado/"
          },
          "response": []
        },
        {
          "id": "f91010df-09a4-4dea-9e0d-3cf798216172",
          "name": "Consultar un comprobante",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comprobantes/{{claveAcceso}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comprobantes",
                "{{claveAcceso}}"
              ]
            },
            "description": "Devuelve el comprobante con su estado, número de autorización, totales, ítems y los mensajes del SRI.\nSirve para cualquier comprobante de la empresa del token en su ambiente, emitido desde la aplicación o desde\nel API. Un comprobante de otra empresa o de otro ambiente responde `404`.\n\nDocumentación: https://golem.ec/desarrolladores/consulta-y-descargas/"
          },
          "response": []
        },
        {
          "id": "0507167a-a086-4531-af11-370a3a7c953a",
          "name": "Descargar el RIDE en PDF",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/pdf"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comprobantes/{{claveAcceso}}/pdf",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comprobantes",
                "{{claveAcceso}}",
                "pdf"
              ]
            },
            "description": "Devuelve el RIDE (representación impresa) del comprobante autorizado. Un comprobante que no llegó a\nautorizarse no tiene RIDE válido y responde `409 ESTADO_NO_PERMITE`. Un comprobante anulado en Golem que\nestuvo autorizado sí se puede descargar.\n\nDocumentación: https://golem.ec/desarrolladores/consulta-y-descargas/"
          },
          "response": []
        },
        {
          "id": "4c53a7b4-c5d1-4a52-9167-c3d2d2655c7c",
          "name": "Descargar el XML autorizado",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/xml"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comprobantes/{{claveAcceso}}/xml",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comprobantes",
                "{{claveAcceso}}",
                "xml"
              ]
            },
            "description": "Devuelve el XML autorizado con el envoltorio de autorización del SRI: el elemento `autorizacion` con\n`estado`, `numeroAutorizacion`, `fechaAutorizacion`, `ambiente` y el comprobante firmado dentro de\n`comprobante` (CDATA). Es el archivo que se entrega al receptor y que se conserva por 7 años.\n\nSolo existe para comprobantes autorizados (también los anulados en Golem que estuvieron autorizados). Si el\nXML no está en el almacenamiento de Golem, se pide al SRI; si el SRI no responde, `503` con `Retry-After`.\n\nDocumentación: https://golem.ec/desarrolladores/consulta-y-descargas/"
          },
          "response": []
        }
      ]
    },
    {
      "name": "Acciones",
      "description": "Reprocesar un comprobante pendiente o devuelto y reenviar su correo.",
      "item": [
        {
          "id": "6a792be8-069f-4bfa-91a7-3f7e2f80f294",
          "name": "Reprocesar un comprobante",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comprobantes/{{claveAcceso}}/reprocesar",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comprobantes",
                "{{claveAcceso}}",
                "reprocesar"
              ]
            },
            "description": "Vuelve a procesar un comprobante que no terminó bien, con la misma clave de acceso y el mismo número:\n\n| Estado | Qué hace |\n|---|---|\n| `EN_PROCESO`, aún sin enviar | Lo firma y lo envía al SRI. |\n| `EN_PROCESO`, ya recibido por el SRI | Consulta la autorización. |\n| `DEVUELTO` o `ERROR` | Lo 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. |\n| `AUTORIZADO`, `NO_AUTORIZADO` o `ANULADO` | No se puede: responde `409`. Para corregir un comprobante no autorizado, emite uno nuevo. |\n\nUn comprobante devuelto por un error en sus datos se vuelve a devolver: en ese caso emite uno nuevo. Usa el\nreproceso cuando la causa ya se corrigió fuera del comprobante (por ejemplo, la firma electrónica) o fue\ntemporal. El comprobante conserva su fecha de emisión: si ya pasó más de un día, el SRI puede devolverlo por\nfecha extemporánea. Espera el resultado igual que la emisión y acepta la misma cabecera `Prefer`.\n\nReprocesar firma y envía el comprobante con el número de su punto de emisión, igual que emitir: un token\nrestringido a algunos puntos solo reprocesa los comprobantes de esos puntos, y uno sin puntos permitidos no\nreprocesa ninguno. En esos casos responde `403 PUNTO_NO_PERMITIDO`.\n\nDocumentación: https://golem.ec/desarrolladores/estados/"
          },
          "response": []
        },
        {
          "id": "c289cf9c-9ceb-4df4-a57e-f7fde2ec7059",
          "name": "Reenviar el correo del comprobante",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comprobantes/{{claveAcceso}}/correo",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comprobantes",
                "{{claveAcceso}}",
                "correo"
              ]
            },
            "description": "Vuelve a enviar el correo con el XML y el RIDE al email que se usó al emitir el comprobante. Solo para\ncomprobantes autorizados. En el ambiente de pruebas el correo va a un buzón de Golem, nunca al receptor.\nEl envío se hace en segundo plano: la respuesta `202` confirma que quedó en cola.\n\nEl reenvío no cambia el comprobante ni consume créditos, así que no depende de los puntos de emisión del\ntoken: cualquier token de la empresa puede reenviar el correo de sus comprobantes.\n\nDocumentación: https://golem.ec/desarrolladores/estados/"
          },
          "response": []
        }
      ]
    },
    {
      "name": "Empresa",
      "description": "Datos de la empresa del token, establecimientos, puntos de emisión y créditos.",
      "item": [
        {
          "id": "7c9a0531-ffca-4188-9405-b9e3bf43cd4d",
          "name": "Consultar la empresa del token",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/empresa",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "empresa"
              ]
            },
            "description": "Devuelve el RUC y los datos tributarios de la empresa, sus establecimientos y puntos de emisión con los\nsiguientes secuenciales del ambiente del token, los créditos disponibles, la vigencia de la firma\nelectrónica (nunca el certificado ni su clave) y los datos del token que se usó: su punto de emisión por\ndefecto y los puntos en los que puede emitir.\n\nDocumentación: https://golem.ec/desarrolladores/empresa/"
          },
          "response": []
        }
      ]
    },
    {
      "name": "RUC",
      "description": "Consulta del catastro de RUC del SRI.",
      "item": [
        {
          "id": "df967b06-867b-4aa0-827e-08b12ea98973",
          "name": "Consultar un RUC en el catastro del SRI",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/ruc/:ruc",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "ruc",
                ":ruc"
              ],
              "variable": [
                {
                  "key": "ruc",
                  "value": "1760013210001",
                  "description": "RUC de 13 dígitos terminado en 001."
                }
              ]
            },
            "description": "Consulta en el catastro público del SRI la razón social, el estado, el régimen y los establecimientos de un\nRUC. Sirve para completar los datos de un cliente o de un proveedor antes de emitir. Depende de la\ndisponibilidad del SRI: si no responde, `503` con `Retry-After`. Las respuestas se guardan en caché hasta\nuna hora.\n\nDocumentación: https://golem.ec/desarrolladores/ruc/"
          },
          "response": []
        }
      ]
    },
    {
      "name": "Catálogos",
      "description": "Códigos del SRI que usa el API. No requieren token.",
      "item": [
        {
          "id": "fed0d933-d9fd-4ad8-ae0f-53061aedb865",
          "name": "Listar los catálogos",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/catalogos",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "catalogos"
              ]
            },
            "description": "Nombres y descripción de los catálogos del SRI disponibles. No requiere token.\n\nDocumentación: https://golem.ec/desarrolladores/catalogos/",
            "auth": {
              "type": "noauth"
            }
          },
          "response": []
        },
        {
          "id": "56321f8e-67e4-4bde-b3f7-358ed76d02dd",
          "name": "Consultar un catálogo",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/catalogos/:nombre",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "catalogos",
                ":nombre"
              ],
              "variable": [
                {
                  "key": "nombre",
                  "value": "tipos-identificacion",
                  "description": "Nombre del catálogo."
                }
              ]
            },
            "description": "Códigos que acepta el API, con su nombre y, según el catálogo, su porcentaje y su fecha de vigencia. Solo se\nlistan los códigos vigentes, salvo en `tarifas-iva`, que incluye las tarifas anteriores porque las notas de\ncrédito las usan. No requiere token.\n\nDocumentación: https://golem.ec/desarrolladores/catalogos/",
            "auth": {
              "type": "noauth"
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Especificación",
      "description": "Esta especificación OpenAPI.",
      "item": [
        {
          "id": "c016f791-03f6-4c29-9ed7-188cffc1d735",
          "name": "Obtener esta especificación OpenAPI",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/openapi.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "openapi.json"
              ]
            },
            "description": "La especificación OpenAPI 3.1 del API en JSON. No requiere token.",
            "auth": {
              "type": "noauth"
            }
          },
          "response": []
        }
      ]
    }
  ]
}
