{"info":{"_postman_id":"673a78ba-edf4-4fbc-8aaa-b769ac8d19f6","name":"Waconecta | Client Services","description":"<html><head></head><body><h2 id=\"🇪🇸-descripción-general\">🇪🇸 Descripción general</h2>\n<p>Esta documentación contiene la información necesaria para comenzar a utilizar la API de <strong>Waconecta</strong>.</p>\n<p>La API de Waconecta proporciona endpoints para vincular sesiones, enviar mensajes y gestionar interacciones mediante WhatsApp.</p>\n<hr>\n<h3 id=\"🚀-guía-de-iniciación\">🚀 Guía de iniciación</h3>\n<ul>\n<li><p>Necesita una <strong>clave de API válida</strong>, que será proporcionada por Engaged Tech.</p>\n</li>\n<li><p>Las solicitudes deben realizarse únicamente a través de <strong>HTTPS</strong>. Las solicitudes HTTP serán redirigidas automáticamente con un código 301.</p>\n</li>\n<li><p>Las respuestas de la API se entregan en <strong>formato JSON</strong>.</p>\n</li>\n<li><p>Esta API tiene límites de uso y velocidad definidos.</p>\n</li>\n</ul>\n<hr>\n<h3 id=\"🔐-autenticación\">🔐 Autenticación</h3>\n<p>Waconecta API utiliza una <strong>clave de API</strong> para autenticar cada solicitud.</p>\n<ul>\n<li><p>Incluya el header <code>X-Api-Key</code> con su clave en cada petición.</p>\n</li>\n<li><p>Si la clave falta, está mal formada o no es válida, se devolverá un código HTTP <strong>401 Unauthorized</strong>.</p>\n</li>\n</ul>\n<hr>\n<h3 id=\"⏱️-límites-de-uso\">⏱️ Límites de uso</h3>\n<ul>\n<li><p>Se permite un máximo de <strong>30 solicitudes por minuto</strong> por clave de API.</p>\n</li>\n<li><p>Dependiendo de su plan, también podrían aplicarse límites adicionales de uso.</p>\n</li>\n<li><p>Al exceder estos límites, se devolverá un código HTTP <strong>429 Too Many Requests</strong>.</p>\n</li>\n</ul>\n<hr>\n<h3 id=\"⚠️-respuesta-503\">⚠️ Respuesta 503</h3>\n<p>Una respuesta HTTP <strong>503 Service Unavailable</strong> indica un pico inesperado de tráfico. Generalmente, el servicio se restablece en menos de 5 minutos. Si la interrupción persiste o recibe otros errores <strong>5XX</strong>, por favor contacte al soporte técnico.</p>\n<hr>\n<h2 id=\"🇺🇸-overview\">🇺🇸 Overview</h2>\n<p>This documentation provides the necessary information to start using the <strong>Waconecta API</strong>.</p>\n<p>The Waconecta API offers endpoints to manage sessions, send messages, and interact via WhatsApp.</p>\n<hr>\n<h3 id=\"🚀-getting-started\">🚀 Getting Started</h3>\n<ul>\n<li><p>You must use a <strong>valid API key</strong>, which will be provided by Engaged Tech.</p>\n</li>\n<li><p>All requests must be made over <strong>HTTPS</strong>. Requests over HTTP will be redirected with a 301 status code.</p>\n</li>\n<li><p>Responses are returned in <strong>JSON format</strong>.</p>\n</li>\n<li><p>The API enforces rate and usage limits.</p>\n</li>\n</ul>\n<hr>\n<h3 id=\"🔐-authentication\">🔐 Authentication</h3>\n<p>Waconecta API uses an <strong>API key</strong> for authentication.</p>\n<ul>\n<li><p>Include the <code>X-Api-Key</code> header in every request.</p>\n</li>\n<li><p>If the key is missing, malformed, or invalid, you will receive an HTTP <strong>401 Unauthorized</strong> response.</p>\n</li>\n</ul>\n<hr>\n<h3 id=\"⏱️-rate--usage-limits\">⏱️ Rate &amp; Usage Limits</h3>\n<ul>\n<li><p>The API allows up to <strong>30 requests per minute</strong> per API key.</p>\n</li>\n<li><p>Additional usage limits may apply depending on your subscription plan.</p>\n</li>\n<li><p>If limits are exceeded, the API will return a <strong>429 Too Many Requests</strong> status.</p>\n</li>\n</ul>\n<hr>\n<h3 id=\"⚠️-503-response\">⚠️ 503 Response</h3>\n<p>An HTTP <strong>503 Service Unavailable</strong> response indicates a temporary traffic spike. The server is usually back online within 5 minutes. If the issue persists or other <strong>5XX errors</strong> appear, please contact technical support.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"38039981","collectionId":"673a78ba-edf4-4fbc-8aaa-b769ac8d19f6","publishedId":"2sB2qi8xRe","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"6ee4ab"},"publishDate":"2025-06-04T18:18:54.000Z"},"item":[{"name":"Send Message","id":"4eeb5e3f-6773-45e6-a225-5808608fbe48","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-api-key","value":"{{api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"number\": \"+59169657008\",\n  \"message\": \"Tu código de verificación es *000000*. Por tu seguridad, no lo compartas\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url_base_middleware}}/api/v1/services/sendMessage","description":"<h2 id=\"🇪🇸-enviar-mensaje\">🇪🇸 Enviar mensaje</h2>\n<p>Este endpoint permite enviar un mensaje de texto a un número de WhatsApp previamente vinculado a través de la API.</p>\n<p><strong>URL:</strong> <code>POST /api/v1/services/sendMessage</code><br /><strong>Base URL:</strong> <code>https://waconecta-api.engaged.com.bo</code></p>\n<h3 id=\"📥-cuerpo-de-la-solicitud-json\">📥 Cuerpo de la solicitud (JSON)</h3>\n<p>Incluya un objeto JSON con las siguientes propiedades:</p>\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>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>number</code></td>\n<td>integer</td>\n<td>Sí</td>\n<td>Número de WhatsApp al que se enviará el mensaje.</td>\n</tr>\n<tr>\n<td><code>message</code></td>\n<td>string</td>\n<td>Sí</td>\n<td>Texto del mensaje que se desea enviar.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"🇺🇸-send-message\">🇺🇸 Send Message</h2>\n<p>This endpoint allows you to send a text message to a WhatsApp number previously linked via the API.</p>\n<p><strong>URL:</strong> <code>POST /api/v1/services/sendMessage</code><br /><strong>Base URL:</strong> <code>https://waconecta-api.engaged.com.bo</code></p>\n<h3 id=\"📥-request-body-json\">📥 Request Body (JSON)</h3>\n<p>Include a JSON object with the following required properties:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>number</code></td>\n<td>integer</td>\n<td>Yes</td>\n<td>WhatsApp number to which the message will be sent.</td>\n</tr>\n<tr>\n<td><code>message</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Text content of the message you want to send.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["api","v1","services","sendMessage"],"host":["{{url_base_middleware}}"],"query":[],"variable":[]}},"response":[{"id":"31d5abc5-d46e-459b-9363-89f3bd016b0f","name":"Successful Response","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"number\":\"59169657008\",\r\n    \"message\":\"Este es un mensaje de prueba\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{url_base_middleware}}/api/v1/services/sendMessage"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"status\": 200,\n    \"message\": \"data retrieved successfully\",\n    \"data\": {\n        \"key\": {\n            \"remoteJid\": \"59169657008@s.whatsapp.net\",\n            \"fromMe\": true,\n            \"id\": \"BAE56A9BA190B10F\"\n        },\n        \"message\": {\n            \"extendedTextMessage\": {\n                \"text\": \"test\"\n            }\n        },\n        \"messageTimestamp\": \"1721966309\",\n        \"status\": \"PENDING\"\n    }\n}"},{"id":"68d06a85-edd8-4580-a4cf-0e292d4eedc6","name":"Unauthorized","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"number\":\"59169657008\",\n    \"message\":\"Este es un mensaje de prueba\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url_base_middleware}}/api/v1/services/sendMessage"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": false,\n    \"status\": 401,\n    \"message\": \"No autorizado\",\n    \"data\": \"\"\n}"},{"id":"6204f608-93b9-4ac9-8612-a093e96d70b7","name":"Session has ended","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"number\":\"59169657008\",\n    \"message\":\"Este es un mensaje de prueba\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url_base_middleware}}/api/v1/services/sendMessage"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": false,\n    \"status\": 400,\n    \"message\": \"Session has ended\",\n    \"data\": \"\"\n}"},{"id":"bdb9b785-124a-4fe2-8c01-ff54252e059f","name":"Bad Request","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"number\":\"5916965700e8\",\n    \"message\":\"Este es un mensaje de prueba\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url_base_middleware}}/api/v1/services/sendMessage"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":{"content":"","type":"text/plain"}}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": false,\n    \"status\": 400,\n    \"message\": \"Invalid phone number\",\n    \"data\": \"\"\n}"},{"id":"4c78d8dd-acf3-4e0d-8ea1-2c4c62bb77c5","name":"Too Many Requests","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"{{api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"number\":\"59169657008\",\n    \"message\":\"Este es un mensaje de prueba\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url_base_middleware}}/api/v1/services/sendMessage"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": false,\n    \"status\": 429,\n    \"message\": \"You can only send 30 messages per minute\",\n    \"data\": \"\"\n}"}],"_postman_id":"4eeb5e3f-6773-45e6-a225-5808608fbe48"},{"name":"Get Qr Static Session","id":"02496f59-def5-4096-9ee2-07254c3a6bdd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-api-key","value":"{{api-key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"containerToken\":\"abY1289L/xPrKjL+3GTuf92YQptxLM2hrH9TpVKs4eRw=\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url_base_middleware}}/api/v1/services/getQrStaticSession","description":"<h2 id=\"🇪🇸-📥-cuerpo-de-la-solicitud\">🇪🇸 📥 Cuerpo de la solicitud</h2>\n<p>Debe enviar un objeto JSON con el siguiente campo obligatorio:</p>\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>Requerido</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>containerToken</code></td>\n<td>string</td>\n<td>Sí</td>\n<td>Token único del contenedor generado previamente para iniciar la sesión.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"🇪🇸-🖼️-respuesta-esperada\">🇪🇸 🖼️ Respuesta esperada</h2>\n<p>La API devolverá una imagen codificada en <strong>base64</strong> que representa un <strong>código QR</strong>.<br />El usuario debe escanear este código desde su aplicación móvil de WhatsApp para vincular una nueva sesión en Waconecta.</p>\n<hr />\n<h2 id=\"🇺🇸-📥-request-body\">🇺🇸 📥 Request Body</h2>\n<p>Send a JSON object with the following required field:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>containerToken</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Unique container token generated earlier to initiate the session.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"🇺🇸-🖼️-expected-response\">🇺🇸 🖼️ Expected Response</h2>\n<p>The API will return a <strong>base64-encoded image</strong> representing a <strong>QR code</strong>.<br />The user must scan this code using the WhatsApp mobile app to successfully link a new session in Waconecta.</p>\n","urlObject":{"path":["api","v1","services","getQrStaticSession"],"host":["{{url_base_middleware}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"02496f59-def5-4096-9ee2-07254c3a6bdd"}]}