Por qué los pagos con stablecoins necesitan confirmaciones y vencimiento
Que una transacción aparezca en la cadena no significa que el pedido deba considerarse final de inmediato. La pasarela todavía debe gestionar confirmaciones, vencimiento, notificaciones repetidas y transferencias enviadas después de cerrar el checkout.
Las confirmaciones controlan la certeza on-chain
Cuando un nodo observa una transacción por primera vez, normalmente sigue pendiente. Esperar una profundidad adecuada reduce el riesgo de bifurcaciones temporales, diferencias entre nodos o cambios de estado. La cantidad debe depender de la red, el valor y la velocidad de entrega.
El vencimiento controla la consistencia comercial
El tiempo de validez limita la ventana de una cotización, reserva o recarga, pero no puede impedir una transferencia. Si el cliente paga tarde, el sistema debe detectar el movimiento y enviarlo a un flujo de pago tardío o excepción.
Separa claramente los estados
- `pending`: pedido creado sin transferencia válida
- `confirming`: transferencia detectada y esperando confirmaciones
- `paid`: importe y confirmaciones cumplidos
- `expired`: venció la ventana antes de detectar el pago
- `exception`: importe, moneda, red o momento requieren revisión
Los callbacks deben ser idempotentes
Los reintentos pueden entregar el mismo evento varias veces. El comercio debe deduplicar por pedido e identificador de evento, y la pasarela debe conservar resultados, reintentos y la última respuesta para evitar abonos duplicados.
Patrón de implementación recomendado
Fija moneda, red, importe y vencimiento al crear el pedido. Registra el hash al detectar la transferencia y marca como pagado solo después de cumplir las confirmaciones. Los pagos insuficientes, excesivos, con moneda incorrecta o tardíos deben tener una ruta de revisión independiente.