Integración
Flujo general de pago
TAYPI procesa pagos QR interoperables en Perú. El flujo completo es:
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Comercio │ │ TAYPI │ │ Cliente │
│ (Backend) │ │ (API) │ │ (App banco) │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
│ POST /payments │ │
│────────────────────>│ │
│ │ │
│ { qr_image, │ │
│ checkout_token } │ │
│<────────────────────│ │
│ │ │
│ Muestra QR al │ │
│ cliente │ │
│─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ >│
│ │ │
│ │ Escanea QR con │
│ │ Yape/Plin/banco │
│ │<────────────────────│
│ │ │
│ Webhook: │ │
│ payment.completed │ │
│<────────────────────│ │
│ │ │Pasos de integración
1. Crea tu cuenta
Regístrate en sandbox.taypi.pe con tu RUC y correo electrónico.
2. Obtén tus API Keys
En el panel, ve a API Keys y genera un par de claves:
| Clave | Formato | Uso |
|---|---|---|
| Public Key | taypi_pk_test_ + 32 hex | Frontend (checkout.js) y header Authorization |
| Secret Key | taypi_sk_test_ + 64 hex | Solo backend — firma HMAC. Nunca exponerla |
IMPORTANTE
La Secret Key solo se muestra una vez al generarla. Guárdala en un lugar seguro. Nunca la incluyas en código frontend, repositorios públicos o logs.
3. Elige tu método de integración
| Método | Complejidad | Ideal para |
|---|---|---|
| Checkout.js | Baja | Sitios web, e-commerce, landing pages |
| SDK PHP | Media | Laravel, WordPress, Magento |
| SDK JavaScript | Media | Node.js, Next.js, Express |
| SDK C# / .NET | Media | ASP.NET, Blazor, WPF |
| API REST directa | Alta | Cualquier lenguaje, control total |
4. Configura tu webhook
En Configuración > Webhooks, registra tu URL para recibir notificaciones de pago.
TAYPI enviará un POST a tu URL cuando el pago se complete:
json
{
"event": "payment.completed",
"payment_id": "a14dfb8e-d5c2-4a69-bae4-4688fef5eac2",
"amount": "50.00",
"currency": "PEN",
"status": "completed",
"reference": "ORD-12345",
"paid_at": "2026-03-15T10:30:00-05:00"
}Ver guía completa de webhooks →
5. Prueba en sandbox
Usa las claves taypi_pk_test_* y taypi_sk_test_* para probar sin dinero real.