Guía para desarrolladores
Sitio de VEXPayReferencia de API
Explorar documentación

Receta: recargas pagadas en bolívares, recibidas en USDT

Tu usuario paga en bolívares; VEXPay convierte el neto a USDT y lo envía a su wallet cuando termina la retención de 24 h: una sola solicitud, sin tesorería de tu lado.

Lo que vas a construir

Un flujo de recargas para wallets, exchanges o juegos: el usuario paga en bolívares (Pago Móvil o C2P) y recibe USDT en una dirección de wallet. Agregas un campo, onwardPayout, y sigues un webhook.

  1. Cobra

    El cobro lleva onwardPayout con la red y la dirección del usuario.

  2. Convierte

    Cuando el pago se completa, su neto en VES se convierte a tu precio de conversión (tasa de mercado + tu spread).

  3. Espera la retención

    Los USDT quedan retenidos hasta que termina la retención de 24 h del pago: estado waiting_release con sendAfter.

  4. Envía

    VEXPay envía los USDT, menos la comisión de payout de la red, a la dirección y dispara payout.completed.

Paso 01

Cobra con una instrucción de envío

Verificación de Pago Móvil (curl)bash
curl --request POST "${API_URL}/v1/payments/pago-movil/verify" \
  --header "content-type: application/json" \
  --header "x-api-key: ${VEXPAY_API_KEY}" \
  --data '{
    "usdAmount": 20,
    "reference": "40010003",
    "externalRef": "topup-user-42",
    "onwardPayout": { "network": "BEP20", "address": "0x2f5c0000000000000000000000000000000000aa" }
  }'

VEXPay valida la instrucción antes de tocar el banco: USDT y las conversiones deben estar habilitados, los payouts de la red activos y la dirección válida para la red. Una instrucción incorrecta responde 400 y no se mueve nada.

Paso 02

Síguelo hasta la wallet

onwardPayout.statusQué significaQué le muestras a tu usuario
pendingEl pago aún no se ha completadoEsperando tu pago
convertingConvirtiendo los bolívares netos a USDTConvirtiendo
waiting_releaseConvertido; retenido hasta sendAfter (retención de 24 h del saldo)Tus USDT se enviarán en sendAfter
sendingEl payout de USDT va en caminoEnviando
completedEntregado (con txHash)Listo: muestra la transacción
held / failed / canceledDetenido (ver reason); el dinero queda en tu saldoContacta a soporte

Cada cambio dispara onward_payout.updated con el mismo objeto. Suscríbete y muéstrale sendAfter a tu usuario mientras el estado sea waiting_release, para que sepa cuándo esperar los USDT.

Paso 03

Lo que le cuesta a tu usuario

  • La comisión de cobro en bolívares, como en cualquier pago.
  • El precio de conversión: la tasa USDT de mercado más tu spread, fijada cuando el pago se completa.
  • La comisión de payout USDT de la red (comisión de red + el margen de 0,25 USDT de VEXPay; por ejemplo 1,00 USDT en BEP20 o Polygon). GET /v1/crypto/networks muestra la comisión vigente.