Pagos
Flujo de un depósito
De la transferencia del usuario al dinero en tu tesorería: detectado, confirmado y liquidado.
Un depósito es una transferencia de USDT o USDC hacia la dirección de un cliente. El servidor lee la red bloque a bloque y lleva cada depósito por tres estados, avisándote en cada cambio.
- 1
Detectado (detected)
La transferencia aparece en un bloque. Se crea el depósito y sale
deposit.detected. Todavía no es firme: no acredites. - 2
Confirmado (confirmed)
Cuando el bloque del depósito tiene encima los bloques de espera de tu empresa (
confirmations, 4 por defecto), el servidor comprueba que la transferencia sigue en la red, calcula el reparto con tus condiciones de ese momento y emitedeposit.confirmed. Aquí se acredita. - 3
Liquidado (settled)
El servidor envía el barrido: una transacción que saca el saldo de la dirección y lo reparte entre la plataforma, tu billetera de comisiones y tu tesorería. Al confirmarse, el depósito pasa a
settledcon el reparto definitivo y saledeposit.settled.
Tiempos típicos#
| Desde que el usuario envía la transferencia | Tiempo típico en pruebas |
|---|---|
Hasta deposit.confirmed | Unos 6 segundos |
Hasta deposit.settled | Unos 11 segundos |
Son medidas en Arbitrum Sepolia con 4 bloques de espera, no una garantía: dependen de la red y de la carga. Contado desde que el usuario pulsa enviar, de los cuales unos 3 segundos son de su billetera y de la red. El servidor revisa la red cada segundo, aproximadamente. Si un barrido falla, se reintenta solo a los 30 segundos.
Mínimos#
Cada empresa tiene un depósito mínimo (min_deposit, en USD, 0.5 por defecto; se trata 1 token como 1 USD). Un depósito se confirma como below_minimum, y no debe acreditarse, en dos casos: si es menor que el mínimo, o si las comisiones más el gas se lo llevarían entero.
- El dinero de un depósito
below_minimumno se pierde: se queda en la dirección del cliente. - No se barre por sí solo. Se barre junto con el siguiente depósito del mismo cliente y token que sí se confirme; entonces pasa a
settledy recibes sudeposit.settled. - A esos depósitos no se les carga gas: el gas del barrido se reparte entre los depósitos confirmados.
Reversión#
Antes de confirmar, el servidor verifica que la transacción sigue en la red y en el mismo bloque. Si desapareció (una reorganización de bloques) o falló, el depósito pasa a reverted y sale deposit.reverted. Si la misma transferencia reaparece en otro bloque, simplemente se vuelve a esperar desde ahí. Un depósito ya confirmado no se revierte: por eso se acredita en deposit.confirmed y no antes.
Casos que conviene conocer#
- Varios depósitos seguidos. El barrido mueve todo el saldo del token en la dirección. Si hay varios depósitos pendientes del mismo cliente, se liquidan en una sola transacción y el reparto se atribuye a cada uno en proporción a su monto. Todos comparten
sweep_tx_hash. - El reparto final puede diferir del cotizado. El gas definitivo nunca supera el cotizado, así que normalmente el neto final es igual o un poco mayor. Las comisiones las calcula el contrato con las condiciones vigentes al barrer: si cambian entre la confirmación y el barrido, manda el reparto final.
- Barrido directo de la empresa. Si el
adminde tu empresa barre por su cuenta antes de que el servidor confirme, el depósito se confirma y se liquida a la vez: llegandeposit.confirmedydeposit.settledseguidos. - USDT y USDC van por separado. Cada token tiene su propio barrido.
La lista completa de estados está en Estados de un depósito y cada campo del objeto en Objeto depósito.