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
- Comprueba que Pago Móvil está disponible
GET /v1/payment-methodsdebe mostrarpago_movilconavailable: true. Si muestra unareason(not_enabledoreceiving_account_not_configured), contacta a VEXPay. - Crea la sesión
Llama a
POST /v1/checkout/sessionscon tu monto en USD ymethods: ["pago_movil"]. Guarda elidde la sesión con tu pedido. - Envíale la url al comprador
Comparte la
urlde la respuesta por WhatsApp, email o una redirección. El enlace es válido duranteexpiresInMinutes(60 por defecto). - 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.
- VEXPay lo confirma
Cuando llega la transferencia, el checkout muestra el recibo y se dispara
payment.completedcon tureferenceencheckoutSession. Si el comprador pagó desde otro teléfono, después de 5 minutos puede ingresar el banco y la referencia.
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
paidenGET /v1/checkout/sessions/:idy llegapayment.completedconlivemode: false. - En Live, el recibo muestra la referencia bancaria.
Si algo sale mal
| Síntoma | Causa probable | Qué hacer |
|---|---|---|
400 invalid_data mencionando pago_movil | No está habilitado en tu cuenta, o está apagado en Payment methods | Enciéndelo, o pide a VEXPay que lo habilite. |
| El comprador pagó pero el checkout sigue esperando | Pagó desde otro teléfono o por otro monto | Despué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 minutos | No se acredita automáticamente. Contacta al soporte de VEXPay con la referencia. |
| Nunca envíes dinero a los datos de Test | Los checkouts Test muestran datos receptores de ejemplo | Usa Simular pago recibido en Test. |
Relacionado: Verificación de Pago Móvil · Enlaces de pago