feat: bot WhatsApp Business API — Palmas360 inicial

This commit is contained in:
Lizandro Guarnizo
2026-06-04 13:35:23 -05:00
commit 202a263e25
18 changed files with 2100 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
Options -Indexes
RewriteEngine On
# Permitir acceso directo a archivos y carpetas reales
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Todo lo demás pasa por index.php
RewriteRule ^ index.php [QSA,L]
+170
View File
@@ -0,0 +1,170 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Condiciones del Servicio — Somos19D</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Segoe UI', Arial, sans-serif;
background: #f0f2f5;
color: #1c1e21;
font-size: 15px;
line-height: 1.65;
}
.whatsapp-bar {
background: #25D366;
color: #fff;
text-align: center;
padding: 10px 16px;
font-size: 13px;
font-weight: 600;
}
.card {
max-width: 680px;
margin: 24px auto;
background: #fff;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}
.card-header {
background: linear-gradient(135deg, #0b3d91 0%, #1565c0 100%);
padding: 28px 24px 20px;
color: #fff;
}
.card-header .nit {
font-size: 12px;
background: rgba(255,255,255,0.15);
border-radius: 20px;
display: inline-block;
padding: 3px 10px;
margin-bottom: 10px;
}
.card-header h1 { font-size: 22px; font-weight: 700; margin-bottom: 6px; }
.card-header p { font-size: 13px; opacity: 0.88; }
.card-body { padding: 24px; }
.section { border-left: 3px solid #1565c0; padding: 12px 16px; background: #f8f9fd; border-radius: 0 8px 8px 0; margin-bottom: 18px; }
.section h2 { font-size: 14px; font-weight: 700; color: #0b3d91; margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.4px; }
.section p, .section li { font-size: 14px; color: #333; }
.section ul { padding-left: 18px; margin-top: 6px; }
.section li { margin-bottom: 4px; }
.section a { color: #0b3d91; }
.highlight { background: #e8eaf6; border-radius: 8px; padding: 12px 14px; font-size: 13px; color: #0b3d91; margin-top: 10px; font-weight: 500; }
footer { text-align: center; padding: 16px; font-size: 12px; color: #888; background: #fafafa; border-top: 1px solid #eee; }
@media (max-width: 600px) {
.card { margin: 0; border-radius: 0; }
.card-body { padding: 16px; }
}
</style>
</head>
<body>
<div class="whatsapp-bar">📄 Condiciones Oficiales del Servicio · Somos19D</div>
<div class="card">
<div class="card-header">
<span class="nit">NIT: 901677603-5</span>
<h1>Condiciones del Servicio</h1>
<p>Somos19D — Empresa jurídicamente constituida en Colombia<br>Vigente desde el 1 de enero de 2025</p>
</div>
<div class="card-body">
<div class="section">
<h2>1. Identificación del prestador</h2>
<p><strong>Somos19D</strong>, empresa jurídicamente constituida en Colombia, con NIT <strong>901677603-5</strong>, es responsable de la prestación de los servicios descritos en estas condiciones. Nuestros canales de atención incluyen WhatsApp y plataformas digitales.</p>
</div>
<div class="section">
<h2>2. Aceptación de las condiciones</h2>
<p>Al usar nuestros servicios —ya sea a través de WhatsApp, nuestro sitio web u otros canales— aceptas íntegramente estas condiciones. Si no estás de acuerdo, debes abstenerte de utilizar el servicio.</p>
</div>
<div class="section">
<h2>3. WhatsApp Business Platform</h2>
<p>Somos19D utiliza la <strong>WhatsApp Business Platform</strong> de <strong>Meta Platforms, Inc.</strong> para prestar servicios de atención y comunicación. Al usar este canal:</p>
<ul>
<li>Aceptas las <a href="https://www.whatsapp.com/legal/business-terms" target="_blank" rel="noopener noreferrer">Condiciones del Servicio de WhatsApp Business</a> de Meta.</li>
<li>Los mensajes están sujetos a las políticas de uso aceptable de WhatsApp.</li>
<li>Queda prohibido el uso del canal para spam, mensajes masivos no autorizados o contenido ilegal.</li>
<li>Somos19D puede bloquear usuarios que infrinjan las políticas de Meta o las presentes condiciones.</li>
</ul>
<div class="highlight">📱 Al escribirnos por WhatsApp confirmas que has leído y aceptado estas condiciones.</div>
</div>
<div class="section">
<h2>4. Descripción del servicio</h2>
<p>Somos19D ofrece servicios digitales y de información a través de múltiples canales incluyendo WhatsApp Business, sitio web y otros medios digitales. Los detalles específicos de cada servicio serán informados al usuario antes de su contratación, incluyendo tarifas, plazos y condiciones particulares.</p>
</div>
<div class="section">
<h2>5. Obligaciones del usuario</h2>
<ul>
<li>Proporcionar información veraz, exacta y actualizada</li>
<li>Usar el servicio únicamente para fines lícitos</li>
<li>No suplantar la identidad de terceros</li>
<li>No interferir en el funcionamiento del servicio</li>
<li>Respetar los derechos de propiedad intelectual de Somos19D</li>
<li>Mantener la confidencialidad de sus credenciales de acceso</li>
</ul>
</div>
<div class="section">
<h2>6. Obligaciones de Somos19D</h2>
<ul>
<li>Prestar el servicio con la calidad y oportunidad acordada</li>
<li>Proteger los datos personales del usuario conforme a la ley</li>
<li>Informar oportunamente sobre cambios en el servicio o en estas condiciones</li>
<li>Atender las reclamaciones del usuario en tiempos razonables</li>
</ul>
</div>
<div class="section">
<h2>7. Tarifas y pagos</h2>
<p>Los precios del servicio serán comunicados de forma clara antes de cada transacción. Somos19D se reserva el derecho de modificar sus tarifas, notificando al usuario con antelación razonable. Los pagos realizados no son reembolsables salvo disposición expresa contraria.</p>
</div>
<div class="section">
<h2>8. Propiedad intelectual</h2>
<p>Todo el contenido, diseño, marca, textos y elementos digitales de Somos19D son propiedad exclusiva de la empresa. Está prohibida su reproducción, distribución o uso sin autorización escrita previa.</p>
</div>
<div class="section">
<h2>9. Limitación de responsabilidad</h2>
<p>Somos19D no será responsable por:</p>
<ul>
<li>Interrupciones del servicio por causas de fuerza mayor o fallas de terceros</li>
<li>Daños derivados del uso indebido del servicio por parte del usuario</li>
<li>Pérdidas de datos por causas ajenas a nuestra infraestructura</li>
<li>Acciones de terceros no autorizados</li>
</ul>
</div>
<div class="section">
<h2>10. Suspensión del servicio</h2>
<p>Somos19D podrá suspender o terminar el servicio a un usuario si este incumple estas condiciones, proporciona información falsa o realiza actividades que perjudiquen a la empresa o a otros usuarios. Se notificará al usuario antes de la suspensión cuando sea posible.</p>
</div>
<div class="section">
<h2>11. Legislación y jurisdicción</h2>
<p>Estas condiciones se rigen por las leyes de la <strong>República de Colombia</strong>. Cualquier controversia se resolverá conforme a la normativa colombiana vigente. Para consumidores aplican los mecanismos de protección al consumidor establecidos en la Ley 1480 de 2011.</p>
<div class="highlight">📌 Ante cualquier disputa, puedes contactar a la Superintendencia de Industria y Comercio (SIC) o a la Defensoría del Consumidor.</div>
</div>
<div class="section">
<h2>12. Modificaciones</h2>
<p>Podemos actualizar estas condiciones en cualquier momento. Los cambios se comunicarán por WhatsApp u otros canales oficiales con al menos 5 días de anticipación. El uso continuo del servicio implica la aceptación de las nuevas condiciones.</p>
</div>
<div class="section">
<h2>13. Contacto oficial</h2>
<p>Para dudas, reclamaciones o ejercicio de derechos, comunícate con <strong>Somos19D</strong> a través de nuestros canales oficiales de WhatsApp o correo electrónico.</p>
</div>
</div>
<footer>© 2025 Somos19D · NIT 901677603-5 · Todos los derechos reservados<br>Documento generado el 4 de junio de 2026</footer>
</div>
</body>
</html>
+179
View File
@@ -0,0 +1,179 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Eliminación de Datos — Somos19D</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Segoe UI', Arial, sans-serif;
background: #f0f2f5;
color: #1c1e21;
font-size: 15px;
line-height: 1.65;
}
.whatsapp-bar {
background: #25D366;
color: #fff;
text-align: center;
padding: 10px 16px;
font-size: 13px;
font-weight: 600;
}
.card {
max-width: 680px;
margin: 24px auto;
background: #fff;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}
.card-header {
background: linear-gradient(135deg, #0b3d91 0%, #1565c0 100%);
padding: 28px 24px 20px;
color: #fff;
}
.card-header .nit {
font-size: 12px;
background: rgba(255,255,255,0.15);
border-radius: 20px;
display: inline-block;
padding: 3px 10px;
margin-bottom: 10px;
}
.card-header h1 { font-size: 22px; font-weight: 700; margin-bottom: 6px; }
.card-header p { font-size: 13px; opacity: 0.88; }
.card-body { padding: 24px; }
.section { border-left: 3px solid #1565c0; padding: 12px 16px; background: #f8f9fd; border-radius: 0 8px 8px 0; margin-bottom: 18px; }
.section h2 { font-size: 14px; font-weight: 700; color: #0b3d91; margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.4px; }
.section p, .section li { font-size: 14px; color: #333; }
.section ul { padding-left: 18px; margin-top: 6px; }
.section li { margin-bottom: 4px; }
.steps { counter-reset: step; }
.step { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.step-num {
background: #0b3d91; color: #fff;
border-radius: 50%; min-width: 28px; height: 28px;
display: flex; align-items: center; justify-content: center;
font-weight: 700; font-size: 13px; flex-shrink: 0;
}
.step-text { font-size: 14px; color: #333; padding-top: 4px; }
.step-text strong { color: #0b3d91; }
.badge-red { display: inline-block; background: #e8eaf6; color: #0b3d91; font-size: 12px; padding: 3px 10px; border-radius: 12px; margin-top: 8px; font-weight: 600; }
footer { text-align: center; padding: 16px; font-size: 12px; color: #888; background: #fafafa; border-top: 1px solid #eee; }
@media (max-width: 600px) {
.card { margin: 0; border-radius: 0; }
.card-body { padding: 16px; }
}
</style>
</head>
<body>
<div class="whatsapp-bar">🗑️ Solicitud de Eliminación de Datos · Somos19D</div>
<div class="card">
<div class="card-header">
<span class="nit">NIT: 901677603-5</span>
<h1>Eliminación de Datos del Usuario</h1>
<p>Somos19D — Tu privacidad es un derecho.<br>Ejercelo de forma sencilla y sin costo.</p>
</div>
<div class="card-body">
<div class="section">
<h2>¿Por qué existe este derecho?</h2>
<p>La Ley 1581 de 2012 (Colombia) y el Habeas Data te otorgan el derecho de solicitar la supresión de tus datos personales cuando ya no son necesarios, cuando retiras tu consentimiento o cuando el tratamiento infringe la ley. <strong>Somos19D</strong> (NIT 901677603-5) está obligada a respetar y tramitar esta solicitud.</p>
</div>
<div class="section">
<h2>¿Cuándo puedes pedirlo?</h2>
<ul>
<li>Cuando los datos ya no son necesarios para el servicio contratado</li>
<li>Cuando retiras tu consentimiento de tratamiento</li>
<li>Cuando consideras que el tratamiento viola la ley</li>
<li>Cuando el período de conservación acordado ha vencido</li>
<li>Cuando nunca autorizaste el uso de tus datos</li>
</ul>
</div>
<div class="section">
<h2>Cómo hacer tu solicitud — paso a paso</h2>
<div class="steps">
<div class="step">
<div class="step-num">1</div>
<div class="step-text">Escríbenos por nuestros <strong>canales oficiales de WhatsApp</strong> o correo electrónico de Somos19D.</div>
</div>
<div class="step">
<div class="step-num">2</div>
<div class="step-text">Indica: <strong>"Solicito eliminación de mis datos personales"</strong> y proporciona tu nombre completo y documento de identidad.</div>
</div>
<div class="step">
<div class="step-num">3</div>
<div class="step-text">Menciona qué <strong>datos específicos</strong> deseas eliminar o si quieres la eliminación total de tu historial.</div>
</div>
<div class="step">
<div class="step-num">4</div>
<div class="step-text">Confirmaremos la recepción de tu solicitud en <strong>máximo 2 días hábiles</strong>.</div>
</div>
<div class="step">
<div class="step-num">5</div>
<div class="step-text">La eliminación se ejecutará en un plazo máximo de <strong>15 días hábiles</strong> contados desde la confirmación.</div>
</div>
</div>
</div>
<div class="section">
<h2>Información necesaria en tu solicitud</h2>
<ul>
<li>Nombre completo</li>
<li>Número de cédula o documento de identidad</li>
<li>Correo electrónico o número de WhatsApp asociado a la cuenta</li>
<li>Descripción de los datos que deseas eliminar</li>
<li>Motivo de la solicitud (opcional, pero útil)</li>
</ul>
</div>
<div class="section">
<h2>Excepciones legales</h2>
<p>Existen casos en los que <strong>no podemos eliminar</strong> algunos datos de forma inmediata:</p>
<ul>
<li>Cuando la ley exige conservarlos (ej. datos tributarios o contables)</li>
<li>Cuando son necesarios para cumplir un contrato vigente contigo</li>
<li>Cuando exista un proceso legal en curso</li>
</ul>
<p style="margin-top:8px;">En estos casos, te informaremos el motivo y el plazo estimado de conservación.</p>
<span class="badge-red">⚠️ Siempre te informaremos antes de denegar una solicitud</span>
</div>
<div class="section">
<h2>¿Qué pasa después de la eliminación?</h2>
<ul>
<li>Tus datos serán borrados permanentemente de nuestras bases de datos activas</li>
<li>Las copias de respaldo se eliminarán en el ciclo de actualización más próximo</li>
<li>Recibirás confirmación escrita (por WhatsApp o correo) una vez completado el proceso</li>
</ul>
</div>
<div class="section">
<h2>Datos de WhatsApp y Meta</h2>
<p>Si interactuaste con <strong>Somos19D</strong> a través de <strong>WhatsApp Business API</strong>, ten en cuenta que:</p>
<ul>
<li>Los datos de la conversación en WhatsApp están también sujetos a las políticas de <strong>Meta Platforms, Inc.</strong></li>
<li>Para eliminar tus datos en Meta directamente, visita: <a href="https://www.facebook.com/help/contact/540977946302970" target="_blank" rel="noopener noreferrer" style="color:#c0392b;">Centro de ayuda de Meta</a>.</li>
<li>Somos19D eliminará los registros internos de tus conversaciones y datos asociados dentro del plazo indicado.</li>
<li>Esta página puede ser presentada ante Meta como URL de instrucciones de eliminación de datos.</li>
</ul>
<span class="badge-red">📋 Esta URL es válida como "Data Deletion Instructions URL" para Meta/WhatsApp Business</span>
</div>
<div class="section">
<h2>¿No recibes respuesta?</h2>
<p>Si en 15 días hábiles no has recibido respuesta, puedes radicar una queja ante la <strong>Superintendencia de Industria y Comercio (SIC)</strong> de Colombia en <a href="https://www.sic.gov.co" target="_blank" rel="noopener noreferrer" style="color:#1565c0;">www.sic.gov.co</a>.</p>
</div>
</div>
<footer>© 2025 Somos19D · NIT 901677603-5 · Todos los derechos reservados<br>Documento generado el 4 de junio de 2026</footer>
</div>
</body>
</html>
+72
View File
@@ -0,0 +1,72 @@
<?php
declare(strict_types=1);
require_once __DIR__ . '/../config/env.php';
require_once __DIR__ . '/../config/db.php';
require_once __DIR__ . '/../admin/v1/WpWebhook.php';
require_once __DIR__ . '/../middleware/SessionAuth.php';
require_once __DIR__ . '/../admin/LoginController.php';
require_once __DIR__ . '/../admin/DashboardController.php';
// ─── Helper de respuesta JSON ────────────────────────────────────────────────
function jsonResponse(int $status, array $body): void
{
http_response_code($status);
header('Content-Type: application/json; charset=utf-8');
echo json_encode($body, JSON_UNESCAPED_UNICODE);
exit;
}
function serveHtml(string $filename): void
{
$file = __DIR__ . '/' . $filename;
if (!file_exists($file)) {
jsonResponse(404, ['error' => 'Página no encontrada']);
}
http_response_code(200);
header('Content-Type: text/html; charset=utf-8');
readfile($file);
exit;
}
// ─── Router ──────────────────────────────────────────────────────────────────
$method = $_SERVER['REQUEST_METHOD'];
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
// Normalizar: quitar trailing slash
$path = rtrim($path, '/') ?: '/';
// ─── Tabla de rutas ──────────────────────────────────────────────────────────
$routes = [
['GET', '/health', fn() => jsonResponse(200, ['status' => 'ok', 'service' => 'bot-palmas360'])],
// ─── WhatsApp webhook ────────────────────────────────────────────────────
// Seguridad: HMAC-SHA256 (X-Hub-Signature-256) verificado dentro del controlador
['GET', '/admin/v1/wp-webhook', fn() => WpWebhook::verify()],
['POST', '/admin/v1/wp-webhook', fn() => WpWebhook::receive()],
// ─── Login / Logout ──────────────────────────────────────────────────────
['GET', '/login', fn() => LoginController::showForm()],
['POST', '/login', fn() => LoginController::authenticate()],
['GET', '/logout', fn() => LoginController::logout()],
// ─── Dashboard protegido ─────────────────────────────────────────────────
['GET', '/admin/dashboard', fn() => DashboardController::index()],
['GET', '/admin/live', fn() => DashboardController::live()],
['GET', '/admin/webhook/stream', fn() => DashboardController::stream()],
['GET', '/admin/webhook/raw', fn() => DashboardController::getRaw()],
// ─── Páginas legales (requeridas por Meta/WhatsApp Business) ────────────
['GET', '/politicas', fn() => serveHtml('politicas.html')],
['GET', '/eliminacion-datos-usuario', fn() => serveHtml('eliminacion-datos-usuario.html')],
['GET', '/condiciones-servicio', fn() => serveHtml('condiciones-servicio.html')],
];
// ─── Despacho ────────────────────────────────────────────────────────────────
foreach ($routes as [$routeMethod, $routePath, $handler]) {
if ($method === $routeMethod && $path === $routePath) {
$handler();
exit;
}
}
jsonResponse(404, ['error' => 'Ruta no encontrada', 'path' => $path]);
+165
View File
@@ -0,0 +1,165 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Políticas de Privacidad — Somos19D</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Segoe UI', Arial, sans-serif;
background: #f0f2f5;
color: #1c1e21;
font-size: 15px;
line-height: 1.65;
}
.whatsapp-bar {
background: #25D366;
color: #fff;
text-align: center;
padding: 10px 16px;
font-size: 13px;
font-weight: 600;
letter-spacing: 0.3px;
}
.card {
max-width: 680px;
margin: 24px auto;
background: #fff;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}
.card-header {
background: linear-gradient(135deg, #0b3d91 0%, #1565c0 100%);
padding: 28px 24px 20px;
color: #fff;
}
.card-header .nit {
font-size: 12px;
background: rgba(255,255,255,0.15);
border-radius: 20px;
display: inline-block;
padding: 3px 10px;
margin-bottom: 10px;
letter-spacing: 0.5px;
}
.card-header h1 { font-size: 22px; font-weight: 700; margin-bottom: 6px; }
.card-header p { font-size: 13px; opacity: 0.88; }
.card-body { padding: 24px; }
.section { border-left: 3px solid #1565c0; padding: 12px 16px; background: #f8f9fd; border-radius: 0 8px 8px 0; margin-bottom: 18px; }
.section h2 { font-size: 14px; font-weight: 700; color: #0b3d91; margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.4px; }
.section p, .section li { font-size: 14px; color: #333; }
.section ul { padding-left: 18px; margin-top: 6px; }
.section li { margin-bottom: 4px; }
.badge { display: inline-block; background: #e8f5e9; color: #2e7d32; font-size: 12px; padding: 2px 8px; border-radius: 12px; margin-top: 8px; font-weight: 600; }
footer { text-align: center; padding: 16px; font-size: 12px; color: #888; background: #fafafa; border-top: 1px solid #eee; }
@media (max-width: 600px) {
.card { margin: 0; border-radius: 0; }
.card-body { padding: 16px; }
}
</style>
</head>
<body>
<div class="whatsapp-bar">📋 Documento oficial compartido por WhatsApp · Somos19D</div>
<div class="card">
<div class="card-header">
<span class="nit">NIT: 901677603-5</span>
<h1>Políticas de Privacidad</h1>
<p>Somos19D — Empresa jurídica legalmente constituida en Colombia<br>Vigente a partir del 1 de enero de 2025</p>
</div>
<div class="card-body">
<div class="section">
<h2>1. ¿Quiénes somos?</h2>
<p><strong>Somos19D</strong> es una empresa jurídicamente constituida en Colombia, identificada con NIT <strong>901677603-5</strong>. Operamos servicios digitales y de comunicación, incluyendo atención a través de WhatsApp y canales en línea.</p>
</div>
<div class="section">
<h2>2. Datos que recopilamos</h2>
<p>Para prestar nuestros servicios, podemos recopilar:</p>
<ul>
<li>Nombre completo y documento de identidad</li>
<li>Número de teléfono (incluyendo WhatsApp)</li>
<li>Correo electrónico y dirección</li>
<li>Historial de transacciones y servicios solicitados</li>
<li>Información del dispositivo y dirección IP</li>
</ul>
</div>
<div class="section">
<h2>3. ¿Para qué usamos tus datos?</h2>
<ul>
<li>Prestar y mejorar nuestros servicios</li>
<li>Comunicarnos contigo por WhatsApp u otros medios</li>
<li>Procesar pagos y gestionar pedidos</li>
<li>Cumplir obligaciones legales y tributarias</li>
<li>Enviarte información relevante sobre nuestros productos</li>
</ul>
<span class="badge">✅ Nunca vendemos tus datos a terceros</span>
</div>
<div class="section">
<h2>4. Seguridad de la información</h2>
<p>Implementamos medidas técnicas y administrativas para proteger tus datos frente a acceso no autorizado, pérdida o divulgación. El acceso a tu información está limitado al personal estrictamente necesario.</p>
</div>
<div class="section">
<h2>5. Tus derechos</h2>
<p>Como titular de tus datos tienes derecho a:</p>
<ul>
<li>Conocer, actualizar y corregir tu información</li>
<li>Solicitar prueba de tu autorización de tratamiento</li>
<li>Revocar tu consentimiento en cualquier momento</li>
<li>Solicitar la eliminación de tus datos (ver enlace dedicado)</li>
<li>Presentar quejas ante la Superintendencia de Industria y Comercio (SIC)</li>
</ul>
</div>
<div class="section">
<h2>6. WhatsApp Business API y Meta</h2>
<p>Somos19D utiliza la <strong>WhatsApp Business Platform</strong> operada por <strong>Meta Platforms, Inc.</strong> para comunicarse contigo. Al interactuar con nosotros por WhatsApp, aceptas que:</p>
<ul>
<li>Tu número de teléfono y los mensajes intercambiados son procesados por <strong>Meta</strong> conforme a sus propias <a href="https://www.whatsapp.com/legal/privacy-policy" target="_blank" rel="noopener noreferrer">Políticas de Privacidad</a>.</li>
<li>Meta actúa como <strong>sub-procesador</strong> de datos en la prestación del servicio de mensajería.</li>
<li>Los mensajes enviados a través de WhatsApp están sujetos al cifrado de extremo a extremo de Meta.</li>
<li>Somos19D no accede al contenido de los mensajes fuera de la conversación contigo.</li>
</ul>
<span class="badge">📱 Consulta la política de Meta: whatsapp.com/legal</span>
</div>
<div class="section">
<h2>7. Opt-in y Opt-out de mensajes WhatsApp</h2>
<p><strong>Opt-in (consentimiento):</strong> Al escribirnos por WhatsApp o facilitar tu número para recibir comunicaciones, otorgas tu consentimiento expreso para recibir mensajes de Somos19D por este canal.</p>
<p style="margin-top:8px;"><strong>Opt-out (cancelar suscripción):</strong> Puedes dejar de recibir mensajes en cualquier momento respondiendo <strong>"STOP"</strong>, <strong>"DETENER"</strong> o <strong>"NO DESEO RECIBIR MENSAJES"</strong>. Procesaremos tu solicitud en máximo 24 horas.</p>
<span class="badge">✅ Nunca recibirás mensajes sin tu consentimiento previo</span>
</div>
<div class="section">
<h2>8. Compartir información con terceros</h2>
<p>Somos19D puede compartir datos con proveedores de servicios que actúan en nuestro nombre (pasarelas de pago, plataformas de mensajería como Meta/WhatsApp), bajo estrictos acuerdos de confidencialidad y solo para los fines autorizados.</p>
</div>
<div class="section">
<h2>9. Cookies y tecnologías similares</h2>
<p>Nuestro sitio web puede usar cookies para mejorar la experiencia del usuario. Puedes configurar tu navegador para rechazarlas, aunque algunas funcionalidades pueden verse afectadas.</p>
</div>
<div class="section">
<h2>10. Cambios a esta política</h2>
<p>Podemos actualizar esta política en cualquier momento. Te notificaremos los cambios relevantes a través de nuestros canales oficiales, incluyendo WhatsApp.</p>
</div>
<div class="section">
<h2>11. Contacto</h2>
<p>Para ejercer tus derechos o resolver dudas sobre esta política, comunícate con nosotros a través de los canales oficiales de <strong>Somos19D</strong>.</p>
</div>
</div>
<footer>© 2025 Somos19D · NIT 901677603-5 · Todos los derechos reservados<br>Documento generado el 4 de junio de 2026</footer>
</div>
</body>
</html>