Descripción general
Un retiro permite a los usuarios transferir fondos de su saldo de Fluz a una cuenta externa. Los usuarios pueden retirar desde dos tipos de saldos:- Saldo en efectivo - Fondos depositados por el usuario en su cuenta de Fluz
- Saldo de recompensas - Ganancias de cashback acumuladas por compras
Retirar saldo en efectivo
Ejemplo de solicitud
Puedes iniciar un retiro con la mutaciónwithdrawCashBalance. Esta mutación transfiere fondos del saldo de Fluz de un usuario a su cuenta externa especificada.
WithdrawCashBalanceInput. Cualquier campo marcado con un signo de exclamación (!) en el esquema es obligatorio y debe incluirse en la solicitud.
Campos de entrada
WithdrawCashBalanceInput
Ejemplo de respuesta
La respuesta de la mutaciónwithdrawCashBalance incluye el/los registro(s) del retiro y los saldos actualizados del usuario.
Campos de la respuesta
Objeto Withdraw
Alcance requerido
Esta mutación requiere que el token de acceso tenga otorgado el alcanceMAKE_WITHDRAWAL. La consulta getWithdrawFeeEstimate requiere el mismo alcance.
Métodos de retiro por tipo de cuenta
Previsualizar comisiones antes de retirar
Usa la consultagetWithdrawFeeEstimate para cotizar un retiro antes de enviarlo. Pasa el mismo amount, method, source e isExpedited que piensas enviar, y la respuesta te indicará exactamente cuánto recibirá el usuario.
La comisión se deduce del retiro en lugar de sumarse encima: el saldo se debita por el
amount completo, y el destino recibe netAmount. Pasar FLUZPAY como method devuelve ARG-0001.
Retiros push-to-card (OCT)
Un retiroBANK_CARD es un pago push-to-card, entregado como una transacción de crédito original (OCT) — el tipo de transacción de red de tarjetas para abonar fondos a una tarjeta. Requiere bankCardId, y la tarjeta de débito vinculada debe admitir OCT. Una tarjeta no elegible no puede recibirse por ningún otro medio, por lo que el usuario debe elegir otro método de retiro.
La velocidad de entrega se controla con isExpedited:
Elegibilidad de la tarjeta
La mayoría de las tarjetas de débito Visa y Mastercard pueden recibir un pago push-to-card. La elegibilidad se evalúa cuando se envía el retiro y es una propiedad de la propia tarjeta más que algo que configures.La elegibilidad no está disponible por adelantado y no se hereda desde los depósitos.No hay una consulta que informe si una tarjeta admite OCT — esto se muestra en el primer retiro a esa tarjeta. La elegibilidad para retiros y depósitos también es independiente, por lo que una tarjeta desde la que un usuario depositó exitosamente no es necesariamente una tarjeta a la que puedas enviar un retiro. Ver Depositar desde cuentas externas.
BANK_CARD no están restringidos por cardType: una tarjeta PREPAID no se descarta de antemano y se acepta o rechaza por elegibilidad como cualquier otra. Debido a que BANK_CARD no tiene una vía de entrega alternativa, mantén siempre BANK_ACH, PAYPAL o VENMO disponibles en tu interfaz para que una tarjeta no elegible no bloquee el flujo. Los fallos de push-to-card aparecen como HN-0124 o BC-0004 — consulta Manejo de errores abajo.
Manejo de errores
Escenarios comunes de error:
Los errores
ARG-* se generan antes de que se muevan fondos.
Ejemplo de respuesta de error
Retiros múltiples
En algunos casos, una sola solicitud de retiro puede resultar en múltiples registros de retiro. Esto puede ocurrir cuando el monto del retiro se divide entre múltiples posiciones (seats) de la red. La respuesta contendrá todos los registros de retiro creados.Mejores prácticas
- Usa siempre claves de idempotencia únicas - Genera un UUID nuevo para cada solicitud de retiro para evitar transacciones duplicadas.
- Verifica los saldos antes de retirar - Usa la consulta
getWalletpara confirmar que el usuario tiene fondos suficientes antes de iniciar un retiro. - Maneja estados pendientes - Los retiros pueden tardar en procesarse. El campo
statusindicará el estado actual del retiro. - Guarda las referencias de transacción - Conserva
withdrawIdytransactionLogIdpara conciliación y soporte.
Registro de cambios
v1.3.0
Retiros acelerados y previsualización de comisiones- Se reintrodujo
isExpeditedenWithdrawCashBalanceInput. Controla la velocidad de entrega para retirosBANK_CARD:trueenvía a la tarjeta durante la solicitud,falseu omitido liquida en el calendario estándar. Esto reemplaza la nota de la v1.2.0 de abajo, que decía que el campo había sido eliminado. - Se añadió la consulta
getWithdrawFeeEstimatey los tiposGetWithdrawFeeEstimateInput/WithdrawFeeEstimate, para que las comisiones, el monto neto y los tiempos de liquidación puedan previsualizarse antes de enviar. - Se documentaron los retiros push-to-card como transacciones de crédito originales (OCT), incluyendo la elegibilidad de la tarjeta y el hecho de que un retiro estándar aún puede fallar después de enviado y ser reembolsado al saldo de origen.
- Se corrigió el alcance requerido para
withdrawCashBalanceaMAKE_WITHDRAWAL. El alcanceMANAGE_PAYMENTlistado previamente en esta página era incorrecto;seat_iden el tipoWithdrawtambién es opcional (UUID), no requerido como indicaba la v1.2.0. - Se documentó que
FLUZPAY, aunque presente en el enumWithdrawMethods, no es un método de retiro utilizable:withdrawCashBalancelo rechaza conWDR-0004(método de retiro inválido) ygetWithdrawFeeEstimatelo rechaza conARG-0001.
v1.2.0 - 2024-11-20
Ajustes de esquema y limpieza de campos- Se eliminó el campo
isExpediteddeWithdrawCashBalanceInput- el ACH acelerado ya no es configurable vía la API - Se cambió el campo
seat_iden el tipoWithdrawde opcional a requerido (UUID→UUID!) - Se actualizó la descripción para el método
BANK_CARDpara eliminar la referencia a “acelerado”
v1.1.0 - 2024-10-15
Se agregó soporte de Venmo y retiros del saldo de recompensas- Se agregó
VENMOal enumWithdrawMethods - Se agregó el campo
venmoAccountIdaWithdrawCashBalanceInput - Se agregó
REWARDS_BALANCEal enumWithdrawSourcepara admitir el retiro de ganancias de cashback - Se agregó el campo
seat_idal tipo de respuestaWithdrawpara el seguimiento en cuentas con múltiples seats
v1.0.0 - 2024-09-01
Lanzamiento inicial- Se introdujo la mutación
withdrawCashBalancecon el requisito de alcanceMAKE_WITHDRAWAL - Se agregó el enum
WithdrawMethodscon los métodosPAYPAL,BANK_ACHyBANK_CARD - Se agregó el enum
WithdrawSourcecon la fuenteCASH_BALANCE - Se agregó el tipo de entrada
WithdrawCashBalanceInputcon soporte de idempotencia - Se agregó el tipo de respuesta
Withdrawcon detalles completos del registro de retiro - Se agregó el tipo
WithdrawCashBalanceResponseque devuelve los registros de retiro y los saldos actualizados - Integración con payout-service para el procesamiento de retiros
- Se agregó el registro de acciones de la aplicación para la auditoría