Errores comunes
Soluciones a los problemas más frecuentes durante la integración.
El QR generado expira muy rápido
El tiempo de vida del QR es definido por Yappy y no es configurable desde la API. Si tus clientes no alcanzan a pagar, considera reducir el tiempo entre la generación del QR y mostrarlo al cliente. También puedes agregar un indicador de cuenta regresiva en tu interfaz.
El polling no detecta el pago
- Verifica que estés consultando el endpoint con el
transactionIdcorrecto (del response de/qr/generate). - Asegúrate de enviar el
authorizationcon el token activo de la sesión. - Si el cliente reporta haber pagado pero tu sistema sigue en
PENDING, consulta directamente en Yappy Comercial Web la transacción para validar el estado real.
No puedo abrir sesión (YP-0002)
- Verifica que el
device.idexista en Yappy Comercial. Cópialo exactamente como aparece (es sensible a mayúsculas y guiones). - Confirma que el
group_idsea correcto.
Error de cabeceras (YP-0008)
Todos los endpoints (excepto POST /session/device) requieren los tres headers: api-key, secret-key y authorization. Si falta cualquiera, recibirás YP-0008.
No puedo anular una venta (YP-0014)
La transacción ya fue liquidada. Las anulaciones solo son posibles antes de la liquidación (medianoche del mismo día). A partir de este punto, deberás gestionar el reembolso manualmente con tu cliente.
La transacción ya fue reversada (YP-0016)
La transaccion que se intenta reversar posee un estado reversado. No se requieren acciones adicionales.
El desglose no coincide con el total (YP-0405)
La fórmula es total = sub_total + tax + tip − discount. Asegúrate de redondear a 2 decimales antes de enviar y de no perder precisión por floats. Usa una librería de decimales precisos si tu lenguaje lo requiere.
// ❌ Incorrecto — puede acumular error de float
const total = 200.52 + 2.21 + 0 - 0; // 202.73000000000002
// ✅ Correcto — redondea a 2 decimales
const total = Math.round((200.52 + 2.21 + 0 - 0) * 100) / 100; // 202.73