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

Crea un enlace de checkout que solo acepte Pago Móvil

Crea una sesión de checkout limitada a Pago Móvil, envíale el enlace al comprador y deja que VEXPay identifique la transferencia automáticamente.

Qué vas a hacer

Los enlaces de pago del portal ofrecen todos los métodos que acepta tu cuenta. Para ofrecer solo Pago Móvil en un enlace, crea una sesión de checkout con methods: ["pago_movil"]. El comprador paga desde la app de su banco y VEXPay confirma la transferencia comparando teléfono, monto y hora.

  • Pago Móvil habilitado en tu cuenta y no apagado en Portal → Payment methods.
  • En Live, una cuenta receptora completa (la gestiona VEXPay; tú nunca la ingresas).
  • Tu clave de API en tu servidor.

Pasos

  1. Comprueba que Pago Móvil está disponible

    GET /v1/payment-methods debe mostrar pago_movil con available: true. Si muestra una reason (not_enabled o receiving_account_not_configured), contacta a VEXPay.

  2. Crea la sesión

    Llama a POST /v1/checkout/sessions con tu monto en USD y methods: ["pago_movil"]. Guarda el id de la sesión con tu pedido.

  3. Envíale la url al comprador

    Comparte la url de la respuesta por WhatsApp, email o una redirección. El enlace es válido durante expiresInMinutes (60 por defecto).

  4. El comprador paga

    El comprador ingresa su cédula/RIF y el teléfono desde el que pagará. El checkout muestra el banco, teléfono, RIF y el monto exacto en bolívares. El comprador tiene 15 minutos para enviar el Pago Móvil desde ese teléfono.

  5. VEXPay lo confirma

    Cuando llega la transferencia, el checkout muestra el recibo y se dispara payment.completed con tu reference en checkoutSession. Si el comprador pagó desde otro teléfono, después de 5 minutos puede ingresar el banco y la referencia.

curlbash
curl "${API_URL}/v1/payment-methods" \
  --header "x-api-key: ${VEXPAY_API_KEY}"

curl --request POST "${API_URL}/v1/checkout/sessions" \
  --header "content-type: application/json" \
  --header "x-api-key: ${VEXPAY_API_KEY}" \
  --data '{
    "amountUsd": 20.00,
    "description": "Pedido #2051",
    "reference": "order-2051",
    "methods": ["pago_movil"]
  }'

Comprueba que funcionó

  • El checkout ofrece solo Pago Móvil.
  • En Test, presiona Simular pago recibido en la pantalla de espera: la sesión pasa a paid en GET /v1/checkout/sessions/:id y llega payment.completed con livemode: false.
  • En Live, el recibo muestra la referencia bancaria.

Si algo sale mal

SíntomaCausa probableQué hacer
400 invalid_data mencionando pago_movilNo está habilitado en tu cuenta, o está apagado en Payment methodsEnciéndelo, o pide a VEXPay que lo habilite.
El comprador pagó pero el checkout sigue esperandoPagó desde otro teléfono o por otro montoDespués de 5 minutos, el comprador ingresa el banco y la referencia. Mira Pago Móvil no encontrado.
El pago venció y luego el comprador pagóLa transferencia llegó después de los 15 minutosNo se acredita automáticamente. Contacta al soporte de VEXPay con la referencia.
Nunca envíes dinero a los datos de TestLos checkouts Test muestran datos receptores de ejemploUsa Simular pago recibido en Test.

Relacionado: Verificación de Pago Móvil · Enlaces de pago