{
  "info": {
    "_postman_id": "a1b2c3d4-sello-kaltiro-v1",
    "name": "Sello by Kaltiro API v1",
    "description": "Facturación electrónica SRI Ecuador.\n\n1. Importa esta colección y el environment `sello-sandbox.postman_environment.json`.\n2. Pon tu `ks_test_…` en `apiKey` y el `emitterId` de la consola.\n3. Empieza por **Account → Get account** y luego **Invoices → Create invoice**.\n\nBase: https://sello.kaltiro.com\nDocs: https://sello.kaltiro.com/docs",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [{ "key": "token", "value": "{{apiKey}}", "type": "string" }]
  },
  "variable": [
    { "key": "baseUrl", "value": "https://sello.kaltiro.com" },
    { "key": "apiKey", "value": "ks_test_REEMPLAZA" },
    { "key": "emitterId", "value": "" },
    { "key": "documentId", "value": "" },
    { "key": "claveAcceso", "value": "" }
  ],
  "item": [
    {
      "name": "Account",
      "item": [
        {
          "name": "Get account",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/api/v1/account",
            "description": "Saldo de créditos y últimos comprobantes."
          }
        }
      ]
    },
    {
      "name": "Invoices (01)",
      "item": [
        {
          "name": "Create invoice",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "if (pm.response.code === 201) {",
                  "  const j = pm.response.json();",
                  "  if (j.id) pm.collectionVariables.set('documentId', j.id);",
                  "  if (j.claveAcceso) pm.collectionVariables.set('claveAcceso', j.claveAcceso);",
                  "}"
                ],
                "type": "text/javascript"
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"emitterId\": \"{{emitterId}}\",\n  \"establecimiento\": \"001\",\n  \"puntoEmision\": \"001\",\n  \"receptor\": {\n    \"tipoDoc\": \"CEDULA\",\n    \"numDoc\": \"0102030405\",\n    \"razonSocial\": \"Cliente Demo\",\n    \"email\": \"cliente@ejemplo.com\"\n  },\n  \"items\": [\n    {\n      \"codigo\": \"P001\",\n      \"descripcion\": \"Servicio\",\n      \"cantidad\": 1,\n      \"precioUnitario\": 10,\n      \"ivaCodigoPorcentaje\": 4,\n      \"ivaTarifa\": 15\n    }\n  ],\n  \"metodoPago\": \"transferencia\",\n  \"externalRef\": \"postman-demo-1\"\n}"
            },
            "url": "{{baseUrl}}/api/v1/invoices",
            "description": "Emite factura electrónica (codDoc 01). precioUnitario = base sin IVA."
          }
        },
        {
          "name": "List documents",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/invoices?limit=20",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "invoices"],
              "query": [
                { "key": "estado", "value": "autorizada", "disabled": true },
                { "key": "limit", "value": "20" }
              ]
            }
          }
        },
        {
          "name": "Get document by id",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/api/v1/invoices/{{documentId}}"
          }
        }
      ]
    },
    {
      "name": "Authorize retry",
      "item": [
        {
          "name": "Get by clave de acceso",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/documents/by-clave/{{claveAcceso}}?refresh=0",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "documents", "by-clave", "{{claveAcceso}}"],
              "query": [
                { "key": "refresh", "value": "1", "disabled": true },
                { "key": "includeXml", "value": "1", "disabled": true }
              ]
            },
            "description": "Consulta por clave (49 dígitos). No reemite."
          }
        },
        {
          "name": "Authorize document (no re-emit)",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/api/v1/documents/{{documentId}}/authorize",
            "description": "Reconsulta autorización SRI si quedó en_proceso. No avanza secuencial."
          }
        }
      ]
    },
    {
      "name": "Invoice variants",
      "item": [
        {
          "name": "Create export invoice",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"emitterId\": \"{{emitterId}}\",\n  \"establecimiento\": \"001\",\n  \"puntoEmision\": \"001\",\n  \"receptor\": {\n    \"tipoDoc\": \"IDENTIFICACION_EXTERIOR\",\n    \"numDoc\": \"US123456789\",\n    \"razonSocial\": \"Buyer LLC\",\n    \"direccion\": \"Miami, FL\"\n  },\n  \"items\": [\n    {\n      \"codigo\": \"EXP1\",\n      \"descripcion\": \"Producto exportación\",\n      \"cantidad\": 1,\n      \"precioUnitario\": 1000,\n      \"ivaCodigoPorcentaje\": 0,\n      \"ivaTarifa\": 0\n    }\n  ],\n  \"metodoPago\": \"transferencia\",\n  \"comercioExterior\": {\n    \"incoTermFactura\": \"FOB\",\n    \"lugarIncoTerm\": \"GUAYAQUIL\",\n    \"paisOrigen\": \"593\",\n    \"puertoEmbarque\": \"GUAYAQUIL\",\n    \"puertoDestino\": \"MIAMI\",\n    \"paisDestino\": \"139\",\n    \"incoTermTotalSinImpuestos\": \"FOB\"\n  }\n}"
            },
            "url": "{{baseUrl}}/api/v1/invoices"
          }
        },
        {
          "name": "Create reimbursement invoice",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"emitterId\": \"{{emitterId}}\",\n  \"establecimiento\": \"001\",\n  \"puntoEmision\": \"001\",\n  \"receptor\": {\n    \"tipoDoc\": \"RUC\",\n    \"numDoc\": \"1790012345001\",\n    \"razonSocial\": \"Cliente Reembolso\"\n  },\n  \"items\": [\n    {\n      \"codigo\": \"R001\",\n      \"descripcion\": \"Reembolso de gastos\",\n      \"cantidad\": 1,\n      \"precioUnitario\": 100,\n      \"ivaCodigoPorcentaje\": 4,\n      \"ivaTarifa\": 15\n    }\n  ],\n  \"metodoPago\": \"transferencia\",\n  \"reembolsos\": [\n    {\n      \"tipoIdentificacionProveedor\": \"RUC\",\n      \"identificacionProveedor\": \"1790012345001\",\n      \"codPaisPago\": \"593\",\n      \"tipoProveedor\": \"02\",\n      \"codDocReembolso\": \"01\",\n      \"estabDocReembolso\": \"001\",\n      \"ptoEmiDocReembolso\": \"001\",\n      \"secuencialDocReembolso\": \"000000001\",\n      \"fechaEmisionDocReembolso\": \"2026-03-10\",\n      \"numeroAutorizacionDocReemb\": \"1234567890\",\n      \"impuestos\": [\n        {\n          \"codigo\": \"2\",\n          \"codigoPorcentaje\": \"4\",\n          \"tarifa\": 15,\n          \"baseImponibleReembolso\": 100,\n          \"impuestoReembolso\": 15\n        }\n      ]\n    }\n  ]\n}"
            },
            "url": "{{baseUrl}}/api/v1/invoices"
          }
        }
      ]
    },
    {
      "name": "Other documents",
      "item": [
        {
          "name": "Create credit note (04)",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"emitterId\": \"{{emitterId}}\",\n  \"establecimiento\": \"001\",\n  \"puntoEmision\": \"001\",\n  \"receptor\": {\n    \"tipoDoc\": \"CEDULA\",\n    \"numDoc\": \"0102030405\",\n    \"razonSocial\": \"Cliente Demo\"\n  },\n  \"items\": [\n    {\n      \"codigo\": \"P001\",\n      \"descripcion\": \"Devolución\",\n      \"cantidad\": 1,\n      \"precioUnitario\": 10,\n      \"ivaCodigoPorcentaje\": 4,\n      \"ivaTarifa\": 15\n    }\n  ],\n  \"motivo\": \"Devolución total\",\n  \"numDocModificado\": \"001-001-000000001\",\n  \"fechaEmisionDocSustento\": \"2026-03-15\"\n}"
            },
            "url": "{{baseUrl}}/api/v1/credit-notes"
          }
        },
        {
          "name": "Create debit note (05)",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"emitterId\": \"{{emitterId}}\",\n  \"establecimiento\": \"001\",\n  \"puntoEmision\": \"001\",\n  \"receptor\": {\n    \"tipoDoc\": \"CEDULA\",\n    \"numDoc\": \"0102030405\",\n    \"razonSocial\": \"Cliente Demo\"\n  },\n  \"motivos\": [{ \"razon\": \"Interés\",\n    \"valor\": 5 }],\n  \"impuestos\": [\n    {\n      \"ivaCodigoPorcentaje\": 4,\n      \"ivaTarifa\": 15,\n      \"baseImponible\": 5,\n      \"valor\": 0.75\n    }\n  ],\n  \"numDocModificado\": \"001-001-000000001\",\n  \"fechaEmisionDocSustento\": \"2026-03-15\"\n}"
            },
            "url": "{{baseUrl}}/api/v1/debit-notes"
          }
        },
        {
          "name": "Create purchase liquidation (03)",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"emitterId\": \"{{emitterId}}\",\n  \"establecimiento\": \"001\",\n  \"puntoEmision\": \"001\",\n  \"proveedor\": {\n    \"tipoDoc\": \"CEDULA\",\n    \"numDoc\": \"0102030405\",\n    \"razonSocial\": \"Proveedor Informal\"\n  },\n  \"items\": [\n    {\n      \"codigo\": \"C001\",\n      \"descripcion\": \"Compra\",\n      \"cantidad\": 1,\n      \"precioUnitario\": 20,\n      \"ivaCodigoPorcentaje\": 4,\n      \"ivaTarifa\": 15\n    }\n  ],\n  \"metodoPago\": \"efectivo\"\n}"
            },
            "url": "{{baseUrl}}/api/v1/purchase-liquidations"
          }
        },
        {
          "name": "Create waybill (06)",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"emitterId\": \"{{emitterId}}\",\n  \"establecimiento\": \"001\",\n  \"puntoEmision\": \"001\",\n  \"dirPartida\": \"Cuenca\",\n  \"transportista\": {\n    \"tipoDoc\": \"RUC\",\n    \"numDoc\": \"1790012345001\",\n    \"razonSocial\": \"Transporte Demo\"\n  },\n  \"fechaIniTransporte\": \"2026-03-15\",\n  \"fechaFinTransporte\": \"2026-03-16\",\n  \"placa\": \"ABC1234\",\n  \"destinatarios\": [\n    {\n      \"tipoDoc\": \"CEDULA\",\n      \"numDoc\": \"0102030405\",\n      \"razonSocial\": \"Destino Demo\",\n      \"direccion\": \"Quito\",\n      \"motivoTraslado\": \"Venta\",\n      \"items\": [\n        { \"codigo\": \"P1\", \"descripcion\": \"Caja\", \"cantidad\": 1 }\n      ]\n    }\n  ]\n}"
            },
            "url": "{{baseUrl}}/api/v1/waybills"
          }
        },
        {
          "name": "Create retention (07)",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"emitterId\": \"{{emitterId}}\",\n  \"establecimiento\": \"001\",\n  \"puntoEmision\": \"001\",\n  \"sujetoRetenido\": {\n    \"tipoDoc\": \"RUC\",\n    \"numDoc\": \"1790012345001\",\n    \"razonSocial\": \"Proveedor SA\"\n  },\n  \"periodoFiscal\": \"03/2026\",\n  \"docsSustento\": [\n    {\n      \"codDocSustento\": \"01\",\n      \"numDocSustento\": \"001-001-000000001\",\n      \"fechaEmisionDocSustento\": \"2026-03-15\",\n      \"numAutDocSustento\": \"1234567890\",\n      \"totalSinImpuestos\": 100,\n      \"importeTotal\": 115,\n      \"retenciones\": [\n        {\n          \"tipo\": \"renta\",\n          \"codigo\": \"1\",\n          \"codigoRetencion\": \"303\",\n          \"baseImponible\": 100,\n          \"tarifa\": 8,\n          \"valorRetenido\": 8\n        }\n      ]\n    }\n  ]\n}"
            },
            "url": "{{baseUrl}}/api/v1/retentions"
          }
        }
      ]
    }
  ]
}
