Ir al contenido principal
Para desarrolladores

Tu primer QR de pago en 5 minutos

API REST predecible, Checkout.js plug-and-play, webhooks en tiempo real. Sandbox completo para que pruebes sin riesgo.

Tres caminos, un resultado

Elige la integración que mejor se adapte a tu stack

< 5 min

Checkout.js

Incluye el script, llama una función, el modal hace todo. Ideal si no quieres manejar UI de pagos.

  • + Modal preconstruido con QR
  • + Polling automático cada 3s
  • + Callbacks: onSuccess, onExpired
  • + Secret key nunca en frontend
Control total

API REST

Endpoints predecibles, JSON, HMAC-SHA256. Para cuando necesitas personalizar cada paso del flujo.

  • + 8 endpoints bien definidos
  • + Firma HMAC en cada request
  • + Idempotencia built-in
  • + Webhooks en tiempo real
Multi-lenguaje

SDKs

Wrappers oficiales que manejan auth, signatures y reintentos por ti. Instala y empieza.

  • + PHP · JavaScript · Python · .NET
  • + Auth y firmas automáticas
  • + Tipado completo
  • + Reintentos con backoff

Checkout.js en 3 pasos

La forma más rápida de aceptar pagos QR

Paso 1 — Backend: crear el pago
server.js
const response = await fetch('https://api.taypi.pe/api/v1/payments', { method: 'POST', headers: { 'Authorization': `Bearer ${TAYPI_SECRET_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ amount: 85.50, currency: 'PEN', description: 'Orden #4821', }), }); const { checkout_url, session_token } = await response.json(); // → session_token: "abc123"
Paso 2 — Frontend: abrir el checkout
checkout.html
<script src="https://cdn.taypi.pe/checkout.js"></script> TaypiCheckout.open({ sessionToken: 'abc123', onSuccess: (payment) => { console.log('Pagado:', payment.id); // Redirigir a página de éxito }, onExpired: () => console.log('QR expirado'), onClose: () => console.log('Modal cerrado'), });

Nota: La secret key nunca toca el frontend. El polling del estado del pago es automático cada 3 segundos. El modal se cierra solo cuando el pago se completa o expira.

API REST: control total del flujo

Endpoints predecibles, JSON, autenticación robusta

Headers requeridos en cada request
HTTP Headers
Authorization: Bearer taypi_sk_live_xxx Taypi-Timestamp: 1711672800 Taypi-Signature: hmac_sha256_hex Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000 // solo POST Content-Type: application/json
Endpoints principales
GET /api/v1/merchant
POST /api/v1/payments
GET /api/v1/payments
GET /api/v1/payments/{id}
POST /api/v1/payments/{id}/cancel
Ciclo de vida del pago
pending completed / expired / cancelled

Webhooks: tu sistema se entera al instante

Recibe notificaciones en tiempo real cuando un pago cambia de estado

payment.
completed
payment.
expired
payment.
cancelled
payment.
failed
Verificación de firma HMAC — Node.js
webhook.js
const crypto = require('crypto'); function verifyWebhook(rawBody, headers, secret) { const timestamp = headers['taypi-timestamp']; const received = headers['taypi-signature']; // Rechazar si el timestamp tiene más de 5 minutos if (Math.abs(Date.now() / 1000 - timestamp) > 300) { throw new Error('Timestamp expirado'); } const expected = crypto .createHmac('sha256', secret) .update(rawBody) .digest('hex'); return crypto.timingSafeEqual( Buffer.from(expected), Buffer.from(received) ); }

Seguridad que un developer aprecia

No es security theater. Son primitivas que funcionan.

HMAC-SHA256

Firma criptográfica en cada request y webhook. Timestamp validation con ventana de 5 minutos contra replay attacks.

Idempotencia

Idempotency-Key header en cada POST. El mismo key dentro de 24h retorna la misma respuesta. Cero cobros duplicados.

Rate Limiting

60 req/min por merchant, sliding window en Redis. Headers X-RateLimit-* en cada respuesta para que tu código se adapte.

TLS 1.2+

HSTS habilitado, auto-redirect HTTP→HTTPS. Certificados gestionados. Zero-trust networking.

Sandbox completo, documentación interactiva

Prueba todo sin dinero real. Rompe cosas. Itera rápido.

Sandbox aislado

Datos de prueba, pagos simulados, webhooks reales. API keys de test completamente separadas de producción.

Documentación en docs.taypi.pe

VitePress con ejemplos ejecutables, guías paso a paso, referencia completa de API y SDKs.

Logs detallados

Cada request queda logueado con headers, body y response. Debug sin adivinar qué salió mal.

Errores predecibles

HTTP codes estándar, mensajes en español, errores de validación con detalle por campo (422).

Pricing simple

2.50% + S/ 0.20
+ IGV por transacción completada
Sin setup Sin monthly Sin mínimos Sandbox gratis
Ver pricing completo →
TAYPI

Empieza a cobrar con QR hoy

Crea tu cuenta en 2 minutos. Sin tarjeta de crédito.

Crear cuenta gratis

Tienes preguntas? Escríbenos a [email protected]