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

Acepta USDT y USDC

Recibe pagos en stablecoins en el checkout alojado o con una dirección de depósito permanente por cliente, y acredita a tu cliente una vez por pago.

Qué vas a hacer

Los compradores pagan 1 USDT o 1 USDC por dólar. La moneda llega a tu saldo USDT o USDC (cada uno es aparte), neto de tu comisión de stablecoins, que pagas tú: el comprador no ve comisión. Elige el checkout alojado para pedidos, o una dirección de depósito para recargas.

  • USDT (y USDC, por separado) habilitado en tu cuenta por VEXPay.
  • Un endpoint de webhook suscrito a payment.completed y payment.canceled.

Pasos: checkout alojado

  1. Crea una sesión

    POST /v1/checkout/sessions con amountUsd y methods que incluya usdt y/o usdc (o sin methods para ofrecer todo).

  2. El comprador elige moneda y red

    El checkout muestra las redes habilitadas para esa moneda. Los pagos en TON necesitan el tag/memo que se muestra.

  3. El comprador envía la moneda

    Una página de pago muestra la dirección y el monto exacto. La página de estado pasa de iniciado a confirmación de red y a completado; el comprador puede cerrarla.

  4. Entrega desde el webhook

    payment.completed trae currency, amount, fee, network, txHashes y la referencia de tu checkoutSession.

Pasos: dirección de depósito por cliente

  1. Lista las redes

    GET /v1/crypto/networks?currency=USDT (o USDC) muestra las redes habilitadas para ti.

  2. Obtén la dirección

    POST /v1/crypto/deposit-addresses con customerRef (el id de tu cliente: 1–128 caracteres de letras, dígitos y _ . : @ -), network y opcionalmente currency. Llamarlo de nuevo para el mismo cliente, moneda y red devuelve la misma dirección.

  3. Muéstrasela a tu cliente

    Muestra la address, y el tag siempre que tagRequired sea true. El cliente puede enviar cualquier monto, cuando quiera.

  4. Acredita a tu cliente

    Cada depósito dispara payment.completed con customerRef. Acredita amount − fee una sola vez por paymentId.

curlbash
curl --request POST "${API_URL}/v1/crypto/deposit-addresses" \
  --header "content-type: application/json" \
  --header "x-api-key: ${VEXPAY_API_KEY}" \
  --data '{ "customerRef": "user_123", "network": "TRC20", "currency": "USDT" }'

Comprueba que funcionó

  • En Test, usa los botones de prueba de la página de pago para confirmar, cancelar o enviar de menos; cada resultado envía su webhook con livemode: false.
  • Una dirección de depósito de Test todavía no puede recibir un depósito simulado. Prueba tu código de acreditación con el checkout alojado, que envía el mismo payment.completed.
  • GET /v1/crypto/balances muestra el crédito como held hasta nextReleaseAt en Live, y luego como available.

Si algo sale mal

SíntomaCausa probableQué hacer
403 method_not_allowedUSDT o USDC no habilitado en tu cuentaPide a VEXPay que lo habilite.
400 unsupported_networkEsa red no está habilitada para esa monedaElige una de GET /v1/crypto/networks.
payment.completed por más del montoEl comprador envió de másTodo lo que llegó se acredita, neto de la comisión, y el checkout se marca como pagado. Para devolver el excedente, pide al comprador una dirección y envíalo con POST /v1/crypto/payouts (aplica la comisión de payout). Nunca lo devuelvas a la dirección de origen: suele ser un exchange que no lo acreditará.
payment.completed con underpaid: trueEl comprador envió menos del montoLo que llegó se acredita, neto de la comisión; el checkout no se marca como pagado. Resuelve la diferencia con el comprador.
Depósito en TON sin asociar al clienteFalta el tag/memoMuestra siempre tag cuando tagRequired es true. Contacta al soporte de VEXPay con el hash de la transacción.
Llegó un depósito pero no el webhookUna moneda o red que no está habilitada para tiContacta al soporte de VEXPay con el hash de la transacción.
502/503 processor_unavailableFalla temporalReintenta más tarde; las otras monedas siguen funcionando en el checkout.

Comisiones: Precios. Sacar las monedas: Retirar tu saldo. Relacionado: USDT y USDC