{"info":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","description":"<html><head></head><body><p>Servicio de validación de datos de personas naturales y empresas de Ecuador. Las consultas son realizadas en tiempo real en el instante en el que usted la solicita, obteniendo información completa y verificada. <a href=\"http://www.webservices.ec\">www.webservices.ec</a></p>\n<h2 id=\"🔐-autenticación\">🔐 Autenticación</h2>\n<p>Todos los endpoints requieren un <strong>Bearer Token</strong> en el header <code>Authorization</code>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer TU_TOKEN_AQUI\n\n</code></pre><p>Puedes obtener tu token desde <a href=\"https://webservices.ec\">webservices.ec</a> → <strong>API Tokens</strong>.</p>\n<h2 id=\"⚙️-configuración\">⚙️ Configuración</h2>\n<ol>\n<li><p>Importa esta colección en Postman</p>\n</li>\n<li><p>Configura las variables:</p>\n<ul>\n<li><p><code>base_url</code>: <code>https://webservices.ec</code></p>\n</li>\n<li><p><code>token</code>: Tu token de API personal</p>\n</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"💰-precios-por-consulta\">💰 Precios por Consulta</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Endpoint</th>\n<th>Costo</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Cédula</td>\n<td>$0.05</td>\n</tr>\n<tr>\n<td>RUC</td>\n<td>$0.04</td>\n</tr>\n<tr>\n<td>RUC Lite</td>\n<td>$0.05</td>\n</tr>\n<tr>\n<td>SENESCYT</td>\n<td>$0.10</td>\n</tr>\n<tr>\n<td>Bachiller</td>\n<td>$0.10</td>\n</tr>\n<tr>\n<td>Placas</td>\n<td>$0.08</td>\n</tr>\n<tr>\n<td>WhatsApp Check</td>\n<td>$0.02</td>\n</tr>\n<tr>\n<td>SRI Comprobantes</td>\n<td>$0.004/doc</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"📋-permisos-por-endpoint\">📋 Permisos por Endpoint</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Endpoint</th>\n<th>Permiso</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>/api/cedula/{cedula}</code></td>\n<td><code>api:cedula</code></td>\n</tr>\n<tr>\n<td><code>/api/ruc/{ruc}</code></td>\n<td><code>api:ruc</code></td>\n</tr>\n<tr>\n<td><code>/api/ruclite/{ruc}</code></td>\n<td><code>api:ruc_lite</code></td>\n</tr>\n<tr>\n<td><code>/api/senescyt/{cedula}</code></td>\n<td><code>api:senescyt</code></td>\n</tr>\n<tr>\n<td><code>/api/bachiller/{cedula}</code></td>\n<td><code>api:bachiller</code></td>\n</tr>\n<tr>\n<td><code>/api/placas/{placa}</code></td>\n<td><code>api:placas</code></td>\n</tr>\n<tr>\n<td><code>/api/checkwhatsapp/{phone}</code></td>\n<td><code>api:whatsapp_check_phone</code></td>\n</tr>\n<tr>\n<td><code>/api/sri/comprobantes</code></td>\n<td><code>api:sri_comprobantes</code></td>\n</tr>\n<tr>\n<td><code>/api/tokens</code></td>\n<td><code>api:create_tokens</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"❌-códigos-de-error-comunes\">❌ Códigos de Error Comunes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Error</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthenticated</td>\n<td>Token inválido, expirado o no proporcionado</td>\n</tr>\n<tr>\n<td>402</td>\n<td>Insufficient Balance</td>\n<td>Saldo insuficiente. Recargue en webservices.ec</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Invalid ability provided</td>\n<td>El token no tiene el permiso necesario para este endpoint</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>Acceso denegado por restricción de IP o permisos</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>Identificación no encontrada en registros públicos</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation Error</td>\n<td>Parámetros inválidos o formato incorrecto</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Query Limit Reached</td>\n<td>El token alcanzó su límite de consultas</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Server Error</td>\n<td>Error interno del servicio público consultado</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"ejemplo-error-401---token-inválido\">Ejemplo Error 401 - Token Inválido</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"Unauthenticated.\" }\n\n</code></pre>\n<h3 id=\"ejemplo-error-402---saldo-insuficiente\">Ejemplo Error 402 - Saldo Insuficiente</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Saldo del paquete agotado para este token. Adquiera más saldo en webservices.ec\" } }\n\n</code></pre>\n<h3 id=\"ejemplo-error-402---sin-saldo-global\">Ejemplo Error 402 - Sin Saldo Global</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"No dispone de saldo suficiente para realizar esta consulta. Por favor recargue su saldo en la página de webservices.ec\" } }\n\n</code></pre>\n<h3 id=\"ejemplo-error-403---sin-permiso\">Ejemplo Error 403 - Sin Permiso</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>HTTP 403 Forbidden - Invalid ability provided.\n\n</code></pre><h3 id=\"ejemplo-error-429---límite-de-consultas\">Ejemplo Error 429 - Límite de Consultas</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Este token ha alcanzado su límite de consultas (1100). Adquiera más consultas en la página de paquetes.\" } }\n\n</code></pre>\n<h2 id=\"📞-soporte\">📞 Soporte</h2>\n<p><a href=\"https://mailto:soporte@webservices.ec\">soporte@webservices.ec</a></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"12557860","collectionId":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","publishedId":"2sBXqGr2Jc","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"871eff"},"publishDate":"2026-04-26T00:32:40.000Z"},"item":[{"name":"Consultas Vehiculares","item":[{"name":"PLACAS - Consultar Vehículo","id":"94fba680-ebf0-4d0b-9f52-7f7bc0788371","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"https://webservices.ec/api/placas/ABC1234","description":"<h2 id=\"consulta-de-placas\">Consulta de Placas</h2>\n<p>Información de un vehículo por su placa.</p>\n<h3 id=\"parámetros-url\">Parámetros URL</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parámetro</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>placa</code></td>\n<td>string</td>\n<td>Placa del vehículo (ej: ABC1234)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"permiso-apiplacas--costo-008\">Permiso: <code>api:placas</code> — Costo: $0.08</h3>\n<h3 id=\"✅-respuesta-exitosa-200\">✅ Respuesta Exitosa (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"Placa:\": \"ABC1234\",\n    \"Marca:\": \"CHEVROLET\",\n    \"Modelo:\": \"AVEO FAMILY\",\n    \"Año:\": \"2018\",\n    \"Cilindraje:\": \"1500\",\n    \"Tipo:\": \"AUTOMOVIL\",\n    \"Color:\": \"BLANCO\",\n    \"País_de_Origen:\": \"COREA DEL SUR\",\n    \"Clase:\": \"AUTOMOVIL\",\n    \"Servicio:\": \"PARTICULAR\",\n    \"Estado:\": \"ACTIVO\"\n  }\n}\n</code></pre>\n<h2 id=\"❌-códigos-de-error-comunes\">❌ Códigos de Error Comunes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Error</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthenticated</td>\n<td>Token inválido, expirado o no proporcionado</td>\n</tr>\n<tr>\n<td>402</td>\n<td>Insufficient Balance</td>\n<td>Saldo insuficiente. Recargue en webservices.ec</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Invalid ability provided</td>\n<td>El token no tiene el permiso necesario para este endpoint</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>Acceso denegado por restricción de IP o permisos</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>Identificación no encontrada en registros públicos</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation Error</td>\n<td>Parámetros inválidos o formato incorrecto</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Query Limit Reached</td>\n<td>El token alcanzó su límite de consultas</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Server Error</td>\n<td>Error interno del servicio público consultado</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"ejemplo-error-401---token-inválido\">Ejemplo Error 401 - Token Inválido</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"Unauthenticated.\" }\n</code></pre>\n<h3 id=\"ejemplo-error-402---saldo-insuficiente\">Ejemplo Error 402 - Saldo Insuficiente</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Saldo del paquete agotado para este token. Adquiera más saldo en webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-402---sin-saldo-global\">Ejemplo Error 402 - Sin Saldo Global</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"No dispone de saldo suficiente para realizar esta consulta. Por favor recargue su saldo en la página de webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-403---sin-permiso\">Ejemplo Error 403 - Sin Permiso</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>HTTP 403 Forbidden - Invalid ability provided.\n</code></pre><h3 id=\"ejemplo-error-429---límite-de-consultas\">Ejemplo Error 429 - Límite de Consultas</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Este token ha alcanzado su límite de consultas (1100). Adquiera más consultas en la página de paquetes.\" } }\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}},"urlObject":{"path":["api","placas","ABC1234"],"host":["https://webservices.ec"],"query":[],"variable":[]}},"response":[],"_postman_id":"94fba680-ebf0-4d0b-9f52-7f7bc0788371"}],"id":"c8e7c7b0-4f64-4d01-902a-e59f6329d314","description":"<p>Endpoints de consulta vehicular.</p>\n","_postman_id":"c8e7c7b0-4f64-4d01-902a-e59f6329d314","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}}},{"name":"Consultas Académicas","item":[{"name":"SENESCYT - Consultar Títulos Universitarios","id":"68721b84-f8d9-4726-be73-04c0318be4c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"https://webservices.ec/api/senescyt/0901234567","description":"<h2 id=\"consulta-senescyt\">Consulta SENESCYT</h2>\n<p>Consulta títulos universitarios registrados en la SENESCYT.</p>\n<h3 id=\"parámetros-url\">Parámetros URL</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parámetro</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>cedula</code></td>\n<td>string (10 dígitos)</td>\n<td>Número de cédula</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"permiso-apisenescyt--costo-010\">Permiso: <code>api:senescyt</code> — Costo: $0.10</h3>\n<h3 id=\"✅-respuesta-exitosa-200\">✅ Respuesta Exitosa (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"cedula\": \"0901234567\",\n    \"titulos\": [\n      {\n        \"institucion\": \"UNIVERSIDAD DE GUAYAQUIL\",\n        \"titulo\": \"INGENIERO EN SISTEMAS COMPUTACIONALES\",\n        \"tipo\": \"TERCER NIVEL\",\n        \"registro\": \"1234-2015-567890\",\n        \"fecha_registro\": \"2015-03-20\"\n      }\n    ]\n  }\n}\n</code></pre>\n<h2 id=\"❌-códigos-de-error-comunes\">❌ Códigos de Error Comunes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Error</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthenticated</td>\n<td>Token inválido, expirado o no proporcionado</td>\n</tr>\n<tr>\n<td>402</td>\n<td>Insufficient Balance</td>\n<td>Saldo insuficiente. Recargue en webservices.ec</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Invalid ability provided</td>\n<td>El token no tiene el permiso necesario para este endpoint</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>Acceso denegado por restricción de IP o permisos</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>Identificación no encontrada en registros públicos</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation Error</td>\n<td>Parámetros inválidos o formato incorrecto</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Query Limit Reached</td>\n<td>El token alcanzó su límite de consultas</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Server Error</td>\n<td>Error interno del servicio público consultado</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"ejemplo-error-401---token-inválido\">Ejemplo Error 401 - Token Inválido</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"Unauthenticated.\" }\n</code></pre>\n<h3 id=\"ejemplo-error-402---saldo-insuficiente\">Ejemplo Error 402 - Saldo Insuficiente</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Saldo del paquete agotado para este token. Adquiera más saldo en webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-402---sin-saldo-global\">Ejemplo Error 402 - Sin Saldo Global</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"No dispone de saldo suficiente para realizar esta consulta. Por favor recargue su saldo en la página de webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-403---sin-permiso\">Ejemplo Error 403 - Sin Permiso</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>HTTP 403 Forbidden - Invalid ability provided.\n</code></pre><h3 id=\"ejemplo-error-429---límite-de-consultas\">Ejemplo Error 429 - Límite de Consultas</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Este token ha alcanzado su límite de consultas (1100). Adquiera más consultas en la página de paquetes.\" } }\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}},"urlObject":{"path":["api","senescyt","0901234567"],"host":["https://webservices.ec"],"query":[],"variable":[]}},"response":[],"_postman_id":"68721b84-f8d9-4726-be73-04c0318be4c1"},{"name":"BACHILLER - Consultar Título Bachiller","id":"b8ece4f7-e6ef-4e10-bfa2-fc034401edb7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"https://webservices.ec/api/bachiller/0901234567","description":"<h2 id=\"consulta-de-título-de-bachiller\">Consulta de Título de Bachiller</h2>\n<p>Consulta si una persona posee título de bachiller registrado en el sistema educativo ecuatoriano.</p>\n<h3 id=\"parámetros-url\">Parámetros URL</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parámetro</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>cedula</code></td>\n<td>string (10 dígitos)</td>\n<td>Número de cédula</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"permiso-apibachiller--costo-010\">Permiso: <code>api:bachiller</code> — Costo: $0.10</h3>\n<h3 id=\"✅-respuesta-exitosa-200\">✅ Respuesta Exitosa (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"Cedula\": \"0901234567\",\n    \"Titulado\": \"GARCIA LOPEZ JUAN CARLOS\",\n    \"Institucion\": \"UNIDAD EDUCATIVA FISCAL VICENTE ROCAFUERTE\",\n    \"Titulo\": \"BACHILLER EN CIENCIAS\",\n    \"Especialidad\": \"CIENCIAS GENERALES\",\n    \"Fecha_Grado\": \"2010-07-15\",\n    \"Refrendacion\": \"REF-2010-GYE-001234\"\n  }\n}\n</code></pre>\n<h3 id=\"❌-sin-título-registrado\">❌ Sin Título Registrado</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"error\": \"No se encontraron resultados\",\n    \"codigo\": 404\n  }\n}\n</code></pre>\n<h2 id=\"❌-códigos-de-error-comunes\">❌ Códigos de Error Comunes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Error</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthenticated</td>\n<td>Token inválido, expirado o no proporcionado</td>\n</tr>\n<tr>\n<td>402</td>\n<td>Insufficient Balance</td>\n<td>Saldo insuficiente. Recargue en webservices.ec</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Invalid ability provided</td>\n<td>El token no tiene el permiso necesario para este endpoint</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>Acceso denegado por restricción de IP o permisos</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>Identificación no encontrada en registros públicos</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation Error</td>\n<td>Parámetros inválidos o formato incorrecto</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Query Limit Reached</td>\n<td>El token alcanzó su límite de consultas</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Server Error</td>\n<td>Error interno del servicio público consultado</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"ejemplo-error-401---token-inválido\">Ejemplo Error 401 - Token Inválido</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"Unauthenticated.\" }\n</code></pre>\n<h3 id=\"ejemplo-error-402---saldo-insuficiente\">Ejemplo Error 402 - Saldo Insuficiente</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Saldo del paquete agotado para este token. Adquiera más saldo en webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-402---sin-saldo-global\">Ejemplo Error 402 - Sin Saldo Global</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"No dispone de saldo suficiente para realizar esta consulta. Por favor recargue su saldo en la página de webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-403---sin-permiso\">Ejemplo Error 403 - Sin Permiso</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>HTTP 403 Forbidden - Invalid ability provided.\n</code></pre><h3 id=\"ejemplo-error-429---límite-de-consultas\">Ejemplo Error 429 - Límite de Consultas</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Este token ha alcanzado su límite de consultas (1100). Adquiera más consultas en la página de paquetes.\" } }\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}},"urlObject":{"path":["api","bachiller","0901234567"],"host":["https://webservices.ec"],"query":[],"variable":[]}},"response":[],"_postman_id":"b8ece4f7-e6ef-4e10-bfa2-fc034401edb7"}],"id":"7c43b568-3652-4aa9-bd62-5bc3070bb52c","description":"<p>Endpoints de consulta de títulos académicos.</p>\n","_postman_id":"7c43b568-3652-4aa9-bd62-5bc3070bb52c","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}}},{"name":"Consultas Tributarias","item":[{"name":"RUC - Consulta Completa","id":"698aa1b5-ddaa-45bc-abb7-2eb525ddeb7b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"https://webservices.ec/api/ruc/0901234567001","description":"<h2 id=\"consulta-completa-de-ruc\">Consulta Completa de RUC</h2>\n<p>Información completa de un contribuyente por su RUC, incluyendo datos tributarios, establecimientos, fechas y representantes legales.</p>\n<h3 id=\"parámetros-url\">Parámetros URL</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parámetro</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>ruc</code></td>\n<td>string (13 dígitos)</td>\n<td>Número de RUC</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"permiso-apiruc--costo-004\">Permiso: <code>api:ruc</code> — Costo: $0.04</h3>\n<h3 id=\"estructura-de-respuesta\">Estructura de Respuesta</h3>\n<p>La respuesta contiene dos arrays principales:</p>\n<ul>\n<li><strong><code>main</code></strong>: Datos del contribuyente (razón social, estado, régimen, fechas, representante legal)</li>\n<li><strong><code>addit</code></strong>: Lista de establecimientos (dirección, nombre comercial, estado, matriz)</li>\n</ul>\n<hr />\n<h3 id=\"✅-persona-natural-200\">✅ Persona Natural (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"main\": [\n      {\n        \"numeroRuc\": \"0901234567001\",\n        \"razonSocial\": \"GARCIA LOPEZ JUAN CARLOS\",\n        \"estadoContribuyenteRuc\": \"ACTIVO\",\n        \"actividadEconomicaPrincipal\": \"VENTA AL POR MENOR DE ALIMENTOS EN ESTABLECIMIENTOS ESPECIALIZADOS.\",\n        \"tipoContribuyente\": \"PERSONA NATURAL\",\n        \"regimen\": \"RIMPE\",\n        \"categoria\": \"NEGOCIO POPULAR\",\n        \"obligadoLlevarContabilidad\": \"NO\",\n        \"agenteRetencion\": \"NO\",\n        \"contribuyenteEspecial\": \"NO\",\n        \"informacionFechasContribuyente\": {\n          \"fechaInicioActividades\": \"2010-03-15 00:00:00.0\",\n          \"fechaCese\": \"\",\n          \"fechaReinicioActividades\": \"\",\n          \"fechaActualizacion\": \"2024-01-10 14:30:00.0\"\n        },\n        \"representantesLegales\": null,\n        \"motivoCancelacionSuspension\": null,\n        \"contribuyenteFantasma\": \"NO\",\n        \"transaccionesInexistente\": \"NO\"\n      }\n    ],\n    \"addit\": [\n      {\n        \"nombreFantasiaComercial\": \"TIENDA DON CARLOS\",\n        \"tipoEstablecimiento\": \"MAT\",\n        \"direccionCompleta\": \"GUAYAS / GUAYAQUIL / TARQUI / AV. FRANCISCO DE ORELLANA 234 Y AV. PLAZA DAÑIN\",\n        \"estado\": \"ABIERTO\",\n        \"numeroEstablecimiento\": \"001\",\n        \"matriz\": \"SI\"\n      }\n    ]\n  }\n}\n</code></pre>\n<h3 id=\"✅-persona-jurídica-200\">✅ Persona Jurídica (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"main\": [\n      {\n        \"numeroRuc\": \"0990123456001\",\n        \"razonSocial\": \"COMERCIALIZADORA ANDINA DEL PACIFICO S.A.\",\n        \"estadoContribuyenteRuc\": \"ACTIVO\",\n        \"actividadEconomicaPrincipal\": \"ACTIVIDADES DE COMERCIO EXTERIOR Y LOGÍSTICA.\",\n        \"tipoContribuyente\": \"SOCIEDAD\",\n        \"regimen\": \"GENERAL\",\n        \"categoria\": \"\",\n        \"obligadoLlevarContabilidad\": \"SI\",\n        \"agenteRetencion\": \"SI\",\n        \"contribuyenteEspecial\": \"NO\",\n        \"informacionFechasContribuyente\": {\n          \"fechaInicioActividades\": \"2005-08-22 00:00:00.0\",\n          \"fechaCese\": \"\",\n          \"fechaReinicioActividades\": \"\",\n          \"fechaActualizacion\": \"2023-12-05 11:20:00.0\"\n        },\n        \"representantesLegales\": \"MARTINEZ SUAREZ PEDRO ANTONIO\",\n        \"motivoCancelacionSuspension\": null,\n        \"contribuyenteFantasma\": \"NO\",\n        \"transaccionesInexistente\": \"NO\"\n      }\n    ],\n    \"addit\": [\n      {\n        \"nombreFantasiaComercial\": \"ANDIPAC\",\n        \"tipoEstablecimiento\": \"MAT\",\n        \"direccionCompleta\": \"GUAYAS / GUAYAQUIL / XIMENA / KM 4.5 VIA A DAULE PARQUE INDUSTRIAL\",\n        \"estado\": \"ABIERTO\",\n        \"numeroEstablecimiento\": \"001\",\n        \"matriz\": \"SI\"\n      },\n      {\n        \"nombreFantasiaComercial\": \"ANDIPAC NORTE\",\n        \"tipoEstablecimiento\": \"OFI\",\n        \"direccionCompleta\": \"PICHINCHA / QUITO / IÑAQUITO / AV. AMAZONAS N36-152 Y NACIONES UNIDAS\",\n        \"estado\": \"ABIERTO\",\n        \"numeroEstablecimiento\": \"002\",\n        \"matriz\": \"NO\"\n      }\n    ]\n  }\n}\n</code></pre>\n<h3 id=\"📋-campos-principales-main\">📋 Campos Principales (<code>main</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>numeroRuc</code></td>\n<td>string</td>\n<td>RUC del contribuyente</td>\n</tr>\n<tr>\n<td><code>razonSocial</code></td>\n<td>string</td>\n<td>Nombre o razón social</td>\n</tr>\n<tr>\n<td><code>estadoContribuyenteRuc</code></td>\n<td>string</td>\n<td>ACTIVO, PASIVO, SUSPENDIDO</td>\n</tr>\n<tr>\n<td><code>actividadEconomicaPrincipal</code></td>\n<td>string</td>\n<td>Descripción de actividad CIIU</td>\n</tr>\n<tr>\n<td><code>tipoContribuyente</code></td>\n<td>string</td>\n<td>PERSONA NATURAL, SOCIEDAD</td>\n</tr>\n<tr>\n<td><code>regimen</code></td>\n<td>string</td>\n<td>RIMPE, GENERAL, etc.</td>\n</tr>\n<tr>\n<td><code>categoria</code></td>\n<td>string</td>\n<td>NEGOCIO POPULAR, EMPRENDEDOR, etc.</td>\n</tr>\n<tr>\n<td><code>obligadoLlevarContabilidad</code></td>\n<td>string</td>\n<td>SI / NO</td>\n</tr>\n<tr>\n<td><code>agenteRetencion</code></td>\n<td>string</td>\n<td>SI / NO</td>\n</tr>\n<tr>\n<td><code>contribuyenteEspecial</code></td>\n<td>string</td>\n<td>SI / NO</td>\n</tr>\n<tr>\n<td><code>representantesLegales</code></td>\n<td>string/null</td>\n<td>Nombre del representante legal</td>\n</tr>\n<tr>\n<td><code>contribuyenteFantasma</code></td>\n<td>string</td>\n<td>SI / NO</td>\n</tr>\n<tr>\n<td><code>transaccionesInexistente</code></td>\n<td>string</td>\n<td>SI / NO</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"📋-campos-fechas-informacionfechascontribuyente\">📋 Campos Fechas (<code>informacionFechasContribuyente</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fechaInicioActividades</code></td>\n<td>string</td>\n<td>Fecha de inicio de actividades</td>\n</tr>\n<tr>\n<td><code>fechaCese</code></td>\n<td>string</td>\n<td>Fecha de cese (vacío si activo)</td>\n</tr>\n<tr>\n<td><code>fechaReinicioActividades</code></td>\n<td>string</td>\n<td>Fecha de reinicio (si aplica)</td>\n</tr>\n<tr>\n<td><code>fechaActualizacion</code></td>\n<td>string</td>\n<td>Última actualización del registro</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"📋-campos-establecimientos-addit\">📋 Campos Establecimientos (<code>addit</code>)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>nombreFantasiaComercial</code></td>\n<td>string</td>\n<td>Nombre comercial del establecimiento</td>\n</tr>\n<tr>\n<td><code>tipoEstablecimiento</code></td>\n<td>string</td>\n<td>MAT (Matriz), OFI (Oficina), SUC (Sucursal)</td>\n</tr>\n<tr>\n<td><code>direccionCompleta</code></td>\n<td>string</td>\n<td>Provincia / Ciudad / Parroquia / Dirección</td>\n</tr>\n<tr>\n<td><code>estado</code></td>\n<td>string</td>\n<td>ABIERTO / CERRADO</td>\n</tr>\n<tr>\n<td><code>numeroEstablecimiento</code></td>\n<td>string</td>\n<td>Número secuencial del establecimiento</td>\n</tr>\n<tr>\n<td><code>matriz</code></td>\n<td>string</td>\n<td>SI / NO</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"❌-códigos-de-error-comunes\">❌ Códigos de Error Comunes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Error</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthenticated</td>\n<td>Token inválido, expirado o no proporcionado</td>\n</tr>\n<tr>\n<td>402</td>\n<td>Insufficient Balance</td>\n<td>Saldo insuficiente. Recargue en webservices.ec</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Invalid ability provided</td>\n<td>El token no tiene el permiso necesario para este endpoint</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>Acceso denegado por restricción de IP o permisos</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>Identificación no encontrada en registros públicos</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation Error</td>\n<td>Parámetros inválidos o formato incorrecto</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Query Limit Reached</td>\n<td>El token alcanzó su límite de consultas</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Server Error</td>\n<td>Error interno del servicio público consultado</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"ejemplo-error-401---token-inválido\">Ejemplo Error 401 - Token Inválido</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"Unauthenticated.\" }\n</code></pre>\n<h3 id=\"ejemplo-error-402---saldo-insuficiente\">Ejemplo Error 402 - Saldo Insuficiente</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Saldo del paquete agotado para este token. Adquiera más saldo en webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-402---sin-saldo-global\">Ejemplo Error 402 - Sin Saldo Global</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"No dispone de saldo suficiente para realizar esta consulta. Por favor recargue su saldo en la página de webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-403---sin-permiso\">Ejemplo Error 403 - Sin Permiso</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>HTTP 403 Forbidden - Invalid ability provided.\n</code></pre><h3 id=\"ejemplo-error-429---límite-de-consultas\">Ejemplo Error 429 - Límite de Consultas</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Este token ha alcanzado su límite de consultas (1100). Adquiera más consultas en la página de paquetes.\" } }\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}},"urlObject":{"path":["api","ruc","0901234567001"],"host":["https://webservices.ec"],"query":[],"variable":[]}},"response":[],"_postman_id":"698aa1b5-ddaa-45bc-abb7-2eb525ddeb7b"},{"name":"RUC LITE - Consulta Rápida","id":"62e14826-1f1e-4ab9-a925-5f15ba0172ad","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"https://webservices.ec/api/ruclite/0901234567001","description":"<h2 id=\"consulta-rápida-de-ruc-lite\">Consulta Rápida de RUC (Lite)</h2>\n<p>Versión económica. Retorna datos básicos del contribuyente.</p>\n<h3 id=\"parámetros-url\">Parámetros URL</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parámetro</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>ruc</code></td>\n<td>string (13 dígitos)</td>\n<td>Número de RUC</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"permiso-apiruc_lite--costo-005\">Permiso: <code>api:ruc_lite</code> — Costo: $0.05</h3>\n<h3 id=\"✅-respuesta-exitosa-200\">✅ Respuesta Exitosa (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"identificacion\": \"0901234567001\",\n    \"nombreCompleto\": \"GARCIA LOPEZ JUAN CARLOS\",\n    \"tipoPersona\": \"NAT\"\n  }\n}\n</code></pre>\n<h2 id=\"❌-códigos-de-error-comunes\">❌ Códigos de Error Comunes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Error</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthenticated</td>\n<td>Token inválido, expirado o no proporcionado</td>\n</tr>\n<tr>\n<td>402</td>\n<td>Insufficient Balance</td>\n<td>Saldo insuficiente. Recargue en webservices.ec</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Invalid ability provided</td>\n<td>El token no tiene el permiso necesario para este endpoint</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>Acceso denegado por restricción de IP o permisos</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>Identificación no encontrada en registros públicos</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation Error</td>\n<td>Parámetros inválidos o formato incorrecto</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Query Limit Reached</td>\n<td>El token alcanzó su límite de consultas</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Server Error</td>\n<td>Error interno del servicio público consultado</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"ejemplo-error-401---token-inválido\">Ejemplo Error 401 - Token Inválido</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"Unauthenticated.\" }\n</code></pre>\n<h3 id=\"ejemplo-error-402---saldo-insuficiente\">Ejemplo Error 402 - Saldo Insuficiente</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Saldo del paquete agotado para este token. Adquiera más saldo en webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-402---sin-saldo-global\">Ejemplo Error 402 - Sin Saldo Global</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"No dispone de saldo suficiente para realizar esta consulta. Por favor recargue su saldo en la página de webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-403---sin-permiso\">Ejemplo Error 403 - Sin Permiso</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>HTTP 403 Forbidden - Invalid ability provided.\n</code></pre><h3 id=\"ejemplo-error-429---límite-de-consultas\">Ejemplo Error 429 - Límite de Consultas</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Este token ha alcanzado su límite de consultas (1100). Adquiera más consultas en la página de paquetes.\" } }\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}},"urlObject":{"path":["api","ruclite","0901234567001"],"host":["https://webservices.ec"],"query":[],"variable":[]}},"response":[],"_postman_id":"62e14826-1f1e-4ab9-a925-5f15ba0172ad"}],"id":"7b69c20b-f605-4b09-b8dc-1e5ec9552109","description":"<p>Endpoints de consulta de datos tributarios (SRI).</p>\n","_postman_id":"7b69c20b-f605-4b09-b8dc-1e5ec9552109","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}}},{"name":"Consultas de Identidad","item":[{"name":"CÉDULA - Consultar por Cédula","id":"f8d78c39-9aa2-4183-b29b-0ec97b7c27fe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"https://webservices.ec/api/cedula/0901234567","description":"<h2 id=\"consulta-de-cédula\">Consulta de Cédula</h2>\n<p>Consulta información de una persona natural por su cédula ecuatoriana.</p>\n<h3 id=\"parámetros-url\">Parámetros URL</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parámetro</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>cedula</code></td>\n<td>string (10 dígitos)</td>\n<td>Número de cédula</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"permiso-apicedula--costo-005\">Permiso: <code>api:cedula</code> — Costo: $0.05</h3>\n<h3 id=\"✅-respuesta-exitosa-200\">✅ Respuesta Exitosa (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"response\": {\n      \"identificacion\": \"0901234567\",\n      \"nombreCompleto\": \"GARCIA LOPEZ JUAN CARLOS\",\n      \"nombres\": \"JUAN CARLOS\",\n      \"apellidos\": \"GARCIA LOPEZ\",\n      \"estado\": \"CIUDADANO\"\n    }\n  }\n}\n</code></pre>\n<h3 id=\"💀-persona-fallecida\">💀 Persona Fallecida</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"response\": {\n      \"identificacion\": \"0901234567\",\n      \"nombreCompleto\": \"GARCIA LOPEZ JUAN CARLOS\",\n      \"nombres\": \"JUAN CARLOS\",\n      \"apellidos\": \"GARCIA LOPEZ\",\n      \"estado\": \"FALLECIDO\"\n    }\n  }\n}\n</code></pre>\n<h3 id=\"❌-cédula-no-encontrada-200-con-info\">❌ Cédula No Encontrada (200 con Info)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"Info\": \"No se encontraron resultados para la cédula proporcionada\",\n    \"codigo\": 200\n  }\n}\n</code></pre>\n<h2 id=\"❌-códigos-de-error-comunes\">❌ Códigos de Error Comunes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Error</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthenticated</td>\n<td>Token inválido, expirado o no proporcionado</td>\n</tr>\n<tr>\n<td>402</td>\n<td>Insufficient Balance</td>\n<td>Saldo insuficiente. Recargue en webservices.ec</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Invalid ability provided</td>\n<td>El token no tiene el permiso necesario para este endpoint</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>Acceso denegado por restricción de IP o permisos</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>Identificación no encontrada en registros públicos</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation Error</td>\n<td>Parámetros inválidos o formato incorrecto</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Query Limit Reached</td>\n<td>El token alcanzó su límite de consultas</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Server Error</td>\n<td>Error interno del servicio público consultado</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"ejemplo-error-401---token-inválido\">Ejemplo Error 401 - Token Inválido</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"Unauthenticated.\" }\n</code></pre>\n<h3 id=\"ejemplo-error-402---saldo-insuficiente\">Ejemplo Error 402 - Saldo Insuficiente</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Saldo del paquete agotado para este token. Adquiera más saldo en webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-402---sin-saldo-global\">Ejemplo Error 402 - Sin Saldo Global</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"No dispone de saldo suficiente para realizar esta consulta. Por favor recargue su saldo en la página de webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-403---sin-permiso\">Ejemplo Error 403 - Sin Permiso</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>HTTP 403 Forbidden - Invalid ability provided.\n</code></pre><h3 id=\"ejemplo-error-429---límite-de-consultas\">Ejemplo Error 429 - Límite de Consultas</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Este token ha alcanzado su límite de consultas (1100). Adquiera más consultas en la página de paquetes.\" } }\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}},"urlObject":{"path":["api","cedula","0901234567"],"host":["https://webservices.ec"],"query":[],"variable":[]}},"response":[],"_postman_id":"f8d78c39-9aa2-4183-b29b-0ec97b7c27fe"}],"id":"153e8203-841a-4f2b-a653-0f73cd20485a","description":"<p>Endpoints de consulta de datos de identidad del Ecuador.</p>\n","_postman_id":"153e8203-841a-4f2b-a653-0f73cd20485a","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}}},{"name":"Gestión de Tokens","item":[{"name":"Crear Token","id":"ce1de116-4422-4165-9818-f3f53c3521a6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Mi Token Producción\",\n    \"permissions\": [\n        \"api:cedula\",\n        \"api:ruc\"\n    ],\n    \"whitelist\": []\n}","options":{"raw":{"language":"json"}}},"url":"https://webservices.ec/api/tokens","description":"<h2 id=\"crear-token\">Crear Token</h2>\n<h3 id=\"parámetros-json\">Parámetros JSON</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Param</th>\n<th>Tipo</th>\n<th>Req</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>string</td>\n<td>✅</td>\n<td>Nombre del token</td>\n</tr>\n<tr>\n<td>permissions</td>\n<td>array</td>\n<td>✅</td>\n<td>Permisos a asignar</td>\n</tr>\n<tr>\n<td>ruc</td>\n<td>string</td>\n<td>❌</td>\n<td>RUC para sri_comprobantes</td>\n</tr>\n<tr>\n<td>whitelist</td>\n<td>array</td>\n<td>❌</td>\n<td>IPs permitidas (vacío=todas)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"✅-respuesta-201\">✅ Respuesta (201)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"message\": \"Token creado exitosamente.\",\n  \"data\": {\n    \"token_id\": 42,\n    \"name\": \"Mi Token Producción\",\n    \"plain_text_token\": \"1|abc123def456ghi789...\",\n    \"permissions\": [\"api:cedula\", \"api:ruc\"],\n    \"ruc_registered\": null,\n    \"whitelist\": null\n  },\n  \"warning\": \"⚠️ Guarda este token en un lugar seguro. No podrás verlo de nuevo.\"\n}\n</code></pre>\n<h3 id=\"❌-error-409---ruc-duplicado\">❌ Error 409 - RUC duplicado</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"status\": \"error\", \"message\": \"Ya existe un token activo con este RUC.\" }\n</code></pre>\n<h2 id=\"❌-códigos-de-error-comunes\">❌ Códigos de Error Comunes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Error</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthenticated</td>\n<td>Token inválido, expirado o no proporcionado</td>\n</tr>\n<tr>\n<td>402</td>\n<td>Insufficient Balance</td>\n<td>Saldo insuficiente. Recargue en webservices.ec</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Invalid ability provided</td>\n<td>El token no tiene el permiso necesario para este endpoint</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>Acceso denegado por restricción de IP o permisos</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>Identificación no encontrada en registros públicos</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation Error</td>\n<td>Parámetros inválidos o formato incorrecto</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Query Limit Reached</td>\n<td>El token alcanzó su límite de consultas</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Server Error</td>\n<td>Error interno del servicio público consultado</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"ejemplo-error-401---token-inválido\">Ejemplo Error 401 - Token Inválido</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"Unauthenticated.\" }\n</code></pre>\n<h3 id=\"ejemplo-error-402---saldo-insuficiente\">Ejemplo Error 402 - Saldo Insuficiente</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Saldo del paquete agotado para este token. Adquiera más saldo en webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-402---sin-saldo-global\">Ejemplo Error 402 - Sin Saldo Global</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"No dispone de saldo suficiente para realizar esta consulta. Por favor recargue su saldo en la página de webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-403---sin-permiso\">Ejemplo Error 403 - Sin Permiso</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>HTTP 403 Forbidden - Invalid ability provided.\n</code></pre><h3 id=\"ejemplo-error-429---límite-de-consultas\">Ejemplo Error 429 - Límite de Consultas</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Este token ha alcanzado su límite de consultas (1100). Adquiera más consultas en la página de paquetes.\" } }\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}},"urlObject":{"path":["api","tokens"],"host":["https://webservices.ec"],"query":[],"variable":[]}},"response":[],"_postman_id":"ce1de116-4422-4165-9818-f3f53c3521a6"},{"name":"Listar Tokens","id":"3d22f303-6a31-4a89-bedc-d1a96b941503","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"https://webservices.ec/api/tokens","description":"<h2 id=\"listar-tokens\">Listar Tokens</h2>\n<h3 id=\"✅-respuesta-200\">✅ Respuesta (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"data\": {\n    \"total\": 2,\n    \"tokens\": [\n      {\n        \"id\": 1,\n        \"name\": \"Token Principal\",\n        \"abilities\": [\"api:cedula\", \"api:ruc\"],\n        \"last_used_at\": \"2026-04-25 10:30:00\",\n        \"created_at\": \"2026-01-15 08:00:00\"\n      },\n      {\n        \"id\": 2,\n        \"name\": \"Token SRI\",\n        \"abilities\": [\"api:sri_comprobantes\"],\n        \"last_used_at\": null,\n        \"created_at\": \"2026-04-20 14:00:00\"\n      }\n    ]\n  }\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}},"urlObject":{"path":["api","tokens"],"host":["https://webservices.ec"],"query":[],"variable":[]}},"response":[],"_postman_id":"3d22f303-6a31-4a89-bedc-d1a96b941503"},{"name":"Eliminar Token","id":"cd08ab6e-e138-4102-8512-7da7b503a426","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"https://webservices.ec/api/tokens/1","description":"<h2 id=\"eliminar-token\">Eliminar Token</h2>\n<p>No puedes eliminar el token con el que haces la solicitud.</p>\n<h3 id=\"✅-respuesta-200\">✅ Respuesta (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"status\": \"success\", \"message\": \"Token eliminado correctamente.\" }\n</code></pre>\n<h3 id=\"❌-error-403\">❌ Error 403</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"status\": \"error\", \"message\": \"No puedes eliminar el token que estás usando actualmente.\" }\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}},"urlObject":{"path":["api","tokens","1"],"host":["https://webservices.ec"],"query":[],"variable":[]}},"response":[],"_postman_id":"cd08ab6e-e138-4102-8512-7da7b503a426"}],"id":"6b764789-ac94-41d6-abaa-d111b6d8f1a6","description":"<p>Administrar tokens de API programáticamente.</p>\n<h3 id=\"permiso-apicreate_tokens\">Permiso: <code>api:create_tokens</code></h3>\n<h3 id=\"permisos-disponibles\">Permisos Disponibles</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Permiso</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>api:cedula</code></td>\n<td>Consulta cédulas</td>\n</tr>\n<tr>\n<td><code>api:ruc</code></td>\n<td>Consulta RUC completo</td>\n</tr>\n<tr>\n<td><code>api:ruc_lite</code></td>\n<td>Consulta RUC rápido</td>\n</tr>\n<tr>\n<td><code>api:senescyt</code></td>\n<td>Títulos SENESCYT</td>\n</tr>\n<tr>\n<td><code>api:bachiller</code></td>\n<td>Títulos bachiller</td>\n</tr>\n<tr>\n<td><code>api:placas</code></td>\n<td>Consulta placas</td>\n</tr>\n<tr>\n<td><code>api:whatsapp_check_phone</code></td>\n<td>Verificación WhatsApp</td>\n</tr>\n<tr>\n<td><code>api:sri_comprobantes</code></td>\n<td>Comprobantes SRI</td>\n</tr>\n<tr>\n<td><code>api:create_tokens</code></td>\n<td>Gestión de tokens</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"6b764789-ac94-41d6-abaa-d111b6d8f1a6","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}}},{"name":"WhatsApp","item":[{"name":"CHECK WHATSAPP - Verificar Número","id":"3afa995d-b312-4e7e-a73b-4c78278d942a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"https://webservices.ec/api/checkwhatsapp/593901234567","description":"<h2 id=\"verificar-número-whatsapp\">Verificar Número WhatsApp</h2>\n<p>Verifica si un número tiene cuenta WhatsApp activa.</p>\n<h3 id=\"parámetros-url\">Parámetros URL</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parámetro</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>phone</code></td>\n<td>string</td>\n<td>Número con código de país (ej: 593901234567)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"permiso-apiwhatsapp_check_phone--costo-002\">Permiso: <code>api:whatsapp_check_phone</code> — Costo: $0.02</h3>\n<h3 id=\"✅-número-válido-200\">✅ Número Válido (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"status\": \"valid\",\n    \"is_valid\": true\n  }\n}\n</code></pre>\n<h3 id=\"❌-número-sin-whatsapp-200\">❌ Número Sin WhatsApp (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"status\": \"invalid\",\n    \"is_valid\": false\n  }\n}\n</code></pre>\n<h2 id=\"❌-códigos-de-error-comunes\">❌ Códigos de Error Comunes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Error</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthenticated</td>\n<td>Token inválido, expirado o no proporcionado</td>\n</tr>\n<tr>\n<td>402</td>\n<td>Insufficient Balance</td>\n<td>Saldo insuficiente. Recargue en webservices.ec</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Invalid ability provided</td>\n<td>El token no tiene el permiso necesario para este endpoint</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>Acceso denegado por restricción de IP o permisos</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>Identificación no encontrada en registros públicos</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation Error</td>\n<td>Parámetros inválidos o formato incorrecto</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Query Limit Reached</td>\n<td>El token alcanzó su límite de consultas</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Server Error</td>\n<td>Error interno del servicio público consultado</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"ejemplo-error-401---token-inválido\">Ejemplo Error 401 - Token Inválido</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"Unauthenticated.\" }\n</code></pre>\n<h3 id=\"ejemplo-error-402---saldo-insuficiente\">Ejemplo Error 402 - Saldo Insuficiente</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Saldo del paquete agotado para este token. Adquiera más saldo en webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-402---sin-saldo-global\">Ejemplo Error 402 - Sin Saldo Global</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"No dispone de saldo suficiente para realizar esta consulta. Por favor recargue su saldo en la página de webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-403---sin-permiso\">Ejemplo Error 403 - Sin Permiso</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>HTTP 403 Forbidden - Invalid ability provided.\n</code></pre><h3 id=\"ejemplo-error-429---límite-de-consultas\">Ejemplo Error 429 - Límite de Consultas</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Este token ha alcanzado su límite de consultas (1100). Adquiera más consultas en la página de paquetes.\" } }\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}},"urlObject":{"path":["api","checkwhatsapp","593901234567"],"host":["https://webservices.ec"],"query":[],"variable":[]}},"response":[],"_postman_id":"3afa995d-b312-4e7e-a73b-4c78278d942a"}],"id":"75364784-7b61-4f26-82e7-576ef357edda","description":"<p>Validación de números WhatsApp.</p>\n","_postman_id":"75364784-7b61-4f26-82e7-576ef357edda","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}}},{"name":"SRI Comprobantes","item":[{"name":"Descargar Comprobantes del SRI","id":"ff63c8da-deda-4e74-a880-6e990b2bb3b4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"ruc","value":"0901234567001","description":"<p>(Requerido) RUC del contribuyente (13 dígitos)</p>\n","type":"text"},{"key":"password","value":"mi_clave_sri","description":"<p>(Requerido) Contraseña SRI en línea. NO se almacena.</p>\n","type":"text"},{"key":"year","value":"2026","description":"<p>(Requerido) Año de consulta</p>\n","type":"text"},{"key":"month","value":"4","description":"<p>(Requerido) Mes (1-12)</p>\n","type":"text"},{"key":"type","value":"1","description":"<p>(Requerido) 1=Factura, 2=Liquidación, 3=NC, 4=ND, 5=Retención</p>\n","type":"text"},{"key":"day","value":"0","description":"<p>(Requerido) Día (1-31) o 0=todos</p>\n","type":"text"}]},"url":"https://webservices.ec/api/sri/comprobantes","description":"<h2 id=\"descargar-comprobantes\">Descargar Comprobantes</h2>\n<p>Costo: $0.004 por documento descargado.</p>\n<h3 id=\"✅-respuesta-exitosa-200\">✅ Respuesta Exitosa (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"data\": {\n    \"total_comprobantes\": 2,\n    \"comprobantes\": [\n      {\n        \"clave_acceso\": \"2504202601099012345600110010010000012341234567817\",\n        \"fecha_emision\": \"25/04/2026\",\n        \"ruc_emisor\": \"0991234567001\",\n        \"razon_social_emisor\": \"DISTRIBUIDORA EJEMPLO S.A.\",\n        \"tipo_comprobante\": \"FACTURA\",\n        \"establecimiento\": \"001\",\n        \"punto_emision\": \"001\",\n        \"secuencial\": \"000001234\",\n        \"importe_total\": \"156.80\",\n        \"xml_url\": \"https://s3.amazonaws.com/.../comprobante.xml\",\n        \"ride_url\": \"https://s3.amazonaws.com/.../comprobante.pdf\"\n      }\n    ]\n  },\n  \"billing\": {\n    \"documents_charged\": 2,\n    \"price_per_document\": 0.004,\n    \"total_charged\": \"0.0080\",\n    \"remaining_balance\": \"49.9920\"\n  },\n  \"metadata\": {\n    \"source\": \"python\",\n    \"ruc\": \"0901234567001\"\n  }\n}\n</code></pre>\n<h3 id=\"💾-desde-caché-sin-cargo\">💾 Desde Caché (sin cargo)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"data\": { \"total_comprobantes\": 5, \"comprobantes\": [...] },\n  \"billing\": { \"documents_charged\": 0, \"total_charged\": \"0.0000\" },\n  \"metadata\": { \"source\": \"cache\", \"message\": \"Datos obtenidos desde caché local (fecha pasada, sin cargo)\" }\n}\n</code></pre>\n<h3 id=\"❌-error-403---ruc-no-coincide\">❌ Error 403 - RUC no coincide</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"status\": \"error\", \"message\": \"RUC_MISMATCH: El RUC enviado no coincide con el registrado en este token\" }\n</code></pre>\n<h2 id=\"❌-códigos-de-error-comunes\">❌ Códigos de Error Comunes</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Error</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>401</td>\n<td>Unauthenticated</td>\n<td>Token inválido, expirado o no proporcionado</td>\n</tr>\n<tr>\n<td>402</td>\n<td>Insufficient Balance</td>\n<td>Saldo insuficiente. Recargue en webservices.ec</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Invalid ability provided</td>\n<td>El token no tiene el permiso necesario para este endpoint</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Forbidden</td>\n<td>Acceso denegado por restricción de IP o permisos</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found</td>\n<td>Identificación no encontrada en registros públicos</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation Error</td>\n<td>Parámetros inválidos o formato incorrecto</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Query Limit Reached</td>\n<td>El token alcanzó su límite de consultas</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Server Error</td>\n<td>Error interno del servicio público consultado</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"ejemplo-error-401---token-inválido\">Ejemplo Error 401 - Token Inválido</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"message\": \"Unauthenticated.\" }\n</code></pre>\n<h3 id=\"ejemplo-error-402---saldo-insuficiente\">Ejemplo Error 402 - Saldo Insuficiente</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Saldo del paquete agotado para este token. Adquiera más saldo en webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-402---sin-saldo-global\">Ejemplo Error 402 - Sin Saldo Global</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"No dispone de saldo suficiente para realizar esta consulta. Por favor recargue su saldo en la página de webservices.ec\" } }\n</code></pre>\n<h3 id=\"ejemplo-error-403---sin-permiso\">Ejemplo Error 403 - Sin Permiso</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>HTTP 403 Forbidden - Invalid ability provided.\n</code></pre><h3 id=\"ejemplo-error-429---límite-de-consultas\">Ejemplo Error 429 - Límite de Consultas</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"error\": \"Este token ha alcanzado su límite de consultas (1100). Adquiera más consultas en la página de paquetes.\" } }\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}},"urlObject":{"path":["api","sri","comprobantes"],"host":["https://webservices.ec"],"query":[],"variable":[]}},"response":[],"_postman_id":"ff63c8da-deda-4e74-a880-6e990b2bb3b4"},{"name":"Historial de Comprobantes","id":"dcd84649-4eb2-47a6-9f99-328965793baf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"https://webservices.ec/api/sri/historial?per_page=25&page=1","description":"<h2 id=\"historial-de-comprobantes\">Historial de Comprobantes</h2>\n<p>Consulta comprobantes previamente descargados (paginado).</p>\n<h3 id=\"permiso-apisri_comprobantes\">Permiso: <code>api:sri_comprobantes</code></h3>\n<h3 id=\"query-params-opcionales\">Query Params (opcionales)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Param</th>\n<th>Tipo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>per_page</td>\n<td>int</td>\n<td>Resultados por página (default: 25)</td>\n</tr>\n<tr>\n<td>page</td>\n<td>int</td>\n<td>Número de página</td>\n</tr>\n<tr>\n<td>ruc</td>\n<td>string</td>\n<td>Filtrar por RUC emisor</td>\n</tr>\n<tr>\n<td>desde</td>\n<td>date</td>\n<td>Fecha desde (YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>hasta</td>\n<td>date</td>\n<td>Fecha hasta (YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>tipo</td>\n<td>string</td>\n<td>Tipo de comprobante</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}},"urlObject":{"path":["api","sri","historial"],"host":["https://webservices.ec"],"query":[{"key":"per_page","value":"25"},{"key":"page","value":"1"}],"variable":[]}},"response":[],"_postman_id":"dcd84649-4eb2-47a6-9f99-328965793baf"},{"name":"Estadísticas de Comprobantes","id":"52a9c1ee-2869-4bd4-9465-3a811c8e628e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"https://webservices.ec/api/sri/stats","description":"<h2 id=\"estadísticas\">Estadísticas</h2>\n<p>Resumen de comprobantes descargados.</p>\n<h3 id=\"permiso-apisri_comprobantes\">Permiso: <code>api:sri_comprobantes</code></h3>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}},"urlObject":{"path":["api","sri","stats"],"host":["https://webservices.ec"],"query":[],"variable":[]}},"response":[],"_postman_id":"52a9c1ee-2869-4bd4-9465-3a811c8e628e"}],"id":"04143b83-fed9-4ff1-b09b-26fdc3ea3a6f","description":"<p>Descarga de comprobantes electrónicos del SRI.</p>\n<h3 id=\"⚠️-requisitos\">⚠️ Requisitos</h3>\n<ol>\n<li>Permiso <code>api:sri_comprobantes</code></li>\n<li>RUC se vincula al token en primer uso</li>\n<li>Contraseña SRI requerida (NO se almacena)</li>\n</ol>\n<h3 id=\"tipos-de-comprobante\">Tipos de Comprobante</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Valor</th>\n<th>Tipo</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>Factura</td>\n</tr>\n<tr>\n<td>2</td>\n<td>Liquidación de compras</td>\n</tr>\n<tr>\n<td>3</td>\n<td>Nota de Crédito</td>\n</tr>\n<tr>\n<td>4</td>\n<td>Nota de Débito</td>\n</tr>\n<tr>\n<td>5</td>\n<td>Retención</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"04143b83-fed9-4ff1-b09b-26fdc3ea3a6f","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]},"isInherited":true,"source":{"_postman_id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","id":"72b2fecc-01cc-47d7-bf18-63f9f2aeccf9","name":"WEBSERVICES.EC - Documentación API v2.0","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"TU_TOKEN_AQUI"}]}},"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":[""],"id":"804d2379-71ec-4dc4-9f44-34796c42c0f5"}},{"listen":"test","script":{"type":"text/javascript","exec":[""],"id":"256dfc70-7bb8-4df8-95ae-f5f9a338a231"}}],"variable":[{"key":"base_url","value":"https://webservices.ec"},{"key":"token","value":"TU_TOKEN_AQUI"},{"key":"token_id","value":"1","description":"ID del token a eliminar"}]}