La infraestructura de pagos vive y muere por su postura de seguridad. Aquí tienes exactamente qué hacemos, qué no hacemos y qué no vamos a pretender tener todavía.
1. Non-custodial por diseño
La garantía de seguridad más fuerte que ofrecemos es arquitectónica: no custodiamos fondos de merchants. Nunca. Cuando un cliente paga con tarjeta, el on-ramp convierte fiat a USDC y nuestro splitter on-chain lo routea atómicamente a tu wallet de Polygon en la misma transacción. Nuestros servidores ven un evento, no un balance. No hay hot wallet, ni treasury pooled, ni cuenta omnibus — así que no hay honeypot que un atacante pueda reventar. Si Peptide-Pay desapareciera mañana, tus pagos pasados seguirían on-chain en tu wallet.
2. Infraestructura
Hosting: Vercel, con red edge global y protección DDoS.
Store de estado: Upstash Redis con TLS en tránsito y AES-256 en reposo.
Settlement: Polygon mainnet, verificado on-chain — mismas asunciones de seguridad que la propia cadena.
DNS y CDN: endurecidos con HSTS preload, registros CAA fijando la CA, DNSSEC activado.
Secrets: guardados en el env store cifrado de Vercel; rotados al offboarding de empleados.
3. Autenticación
Solo magic links — sin contraseñas, nada que phishear, nada que reutilizar de un leak.
Los magic links son de un solo uso y caducan en 15 minutos.
Las sesiones del dashboard son de corta duración (7 días) y están atadas al navegador que inició sesión.
Las cookies de sesión son HTTP-only, Secure, SameSite=Lax.
Los inicios de sesión sospechosos (país nuevo, ASN nuevo) disparan una alerta por email y se pueden revocar desde cualquier sesión activa.
4. Webhooks
Cada webhook se firma con HMAC-SHA256 usando el secret de tu cuenta; verifica antes de confiar en el payload.
El header de firma incluye un timestamp; rechaza cualquier cosa más antigua de 5 minutos para prevenir replay.
Cola de retries con backoff exponencial (30s, 2m, 10m, 30m, 1h, 3h, 12h, 24h) y luego drop.
Los webhooks descartados se pueden reenviar desde el dashboard durante 30 días.
Publicamos el rango IP de egress actual para que nos añadas al allowlist del firewall.
5. API keys
Las keys se muestran una vez, se guardan hasheadas (bcrypt) server-side; no podemos recuperarlas por ti.
Rotables en cualquier momento desde /app/settings — key vieja y nueva funcionan en paralelo durante 24 horas para que despliegues sin downtime.
Las keys con scope están previstas para Q3 2026; por ahora son full-access.
Rate-limit por key: 100 req/s soft, 1000/s hard.
6. Cifrado
En tránsito: TLS 1.3 en todos los endpoints; TLS 1.2 permitido solo para consumidores legacy de webhook y marcado para deprecación.
En reposo: AES-256 en Upstash Redis y en blob storage de Vercel.
Los emails de clientes se hashean (SHA-256 con salt por merchant) antes de ir a los logs del servidor; solo el dashboard del merchant los renderiza en claro.