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

Prueba toda tu integración en modo Test

Ejecuta cada método de pago, webhook y payout que piensas usar con tu clave Test — sin mover dinero real — antes de pedir salir a producción.

Qué vas a hacer

Cada cuenta tiene un lado Live y uno Test. Test funciona desde el primer día, usa sandboxes y nunca le cobra a un comprador real. Al terminar este playbook habrás completado un pago de prueba con cada método que piensas ofrecer, recibido y verificado su webhook, y leído el resultado en tu saldo.

  • Acceso al portal (el enlace de inicio de sesión que te envió VEXPay).
  • Un servidor que pueda hacer solicitudes HTTPS y recibir un webhook HTTPS público (usa un túnel mientras desarrollas en local).

Pasos

  1. Cambia el portal a Test

    Usa el selector Live | Test en el encabezado del portal. Sigues con la sesión iniciada. Todo lo que crees con Test seleccionado pertenece a tu cuenta Test.

  2. Crea una clave Test

    Abre Credentials, ponle a la clave el nombre de la integración que la usará (por ejemplo "Backend") y haz clic en Create key. Copia la clave cuando se muestre y guárdala en el entorno de tu servidor como VEXPAY_API_KEY.

  3. Registra un endpoint de webhook en Test

    Abre Webhooks → New endpoint, o llama a POST /v1/webhooks con la clave Test. Guarda el secreto de firma: se muestra una sola vez. Luego haz clic en Send test. Detalle completo: Configurar webhooks.

  4. Paga una vez con cada método que ofrecerás

    Crea una sesión de checkout (o un enlace de pago) con la clave Test y págala. Los controles de prueba de cada método están en la tabla de abajo.

  5. Prueba también los caminos de error

    Usa un código equivocado, deja que un pago expire o usa una tarjeta que se rechaza, y comprueba que tu sistema reacciona a payment.failed y payment.canceled sin entregar el pedido.

  6. Lee el resultado

    Llama a GET /v1/payments/:id y GET /v1/balance con la clave Test. Las cuentas Test no tienen retención de saldo, así que los créditos de prueba están disponibles de inmediato.

Crear un checkout de pruebabash
curl --request POST "${API_URL}/v1/checkout/sessions" \
  --header "content-type: application/json" \
  --header "x-api-key: ${VEXPAY_API_KEY}" \
  --data '{
    "amountUsd": 5.00,
    "description": "Pedido de prueba",
    "reference": "test-order-1"
  }'
# Abre la "url" de la respuesta y paga con los controles de prueba de abajo.
MétodoCómo completarlo en Test
TarjetaUsa los números de tarjeta de prueba en VPOS. Las tarjetas reales se rechazan sin cobrarse.
Débito Inmediato (C2P)Ingresa el código vigente que muestra Portal → Sandbox. Cualquier otro código hace fallar el pago.
Pago Móvil (checkout alojado)La pantalla de espera muestra datos de ejemplo: nunca les envíes dinero real. Presiona Simular pago recibido.
USDT / USDCLa página alojada de stablecoins muestra botones de prueba para confirmar, cancelar o simular un pago incompleto. Las direcciones de depósito todavía no se pueden simular; pruébalas con el checkout alojado.
Pesos colombianosNequi: cualquier dato válido (por ejemplo teléfono 3001234567, documento CC 1234567890) se completa cerca de un minuto después. Daviplata: código 123456. Nunca envíes pesos reales en Test.
Contracargo de tarjetaPaga con 4000000000000259. Cerca de un minuto después se registra un contracargo de prueba y llega payment.chargeback.

Comprueba que funcionó

  • Cada pago de prueba aparece COMPLETED en GET /v1/payments/:id (COP: completed en GET /v1/cop/payments/:id) y en la página Payments del portal.
  • Tu endpoint recibió payment.completed con livemode: false y tu verificación de firma pasó. Portal → Webhooks → Delivery history muestra la entrega como exitosa.
  • Tu pedido se marcó como pagado una sola vez, incluso cuando reenviaste el mismo evento.

Qué funciona distinto en Test

  • Sin retención de saldo: los créditos de prueba están disponibles de inmediato (los créditos Live quedan retenidos 24 horas).
  • Las conversiones a USDT se completan en la misma solicitud, y los payouts de stablecoins de prueba se completan al instante sin hash de transacción.
  • Los microdepósitos de la cuenta de payout y de los vendedores, y los payouts en bolívares, mueven céntimos reales incluso en Test (siempre menos de Bs 0,50 en total). Usa un destino de Pago Móvil real y lee los montos en el estado de cuenta.
  • USDT, USDC y pesos colombianos aparecen en Test solo cuando VEXPay los habilitó en tu cuenta.

Si algo sale mal

SíntomaCausa probableQué hacer
403 live_mode_not_activatedEstás enviando la clave LiveUsa la clave Test hasta que tu cuenta sea aprobada.
401 en todas las llamadasClave faltante, mal escrita, revocada o rotadaCopia la clave de nuevo desde Credentials (con Test seleccionado).
Falta un método en el checkout de pruebaNo está habilitado en tu cuenta, o está apagado en Payment methodsMira Activar o desactivar métodos. Pide a VEXPay que habilite el método que necesitas.
Débito Inmediato falla con un error de códigoEl código cambió o se escribió malUsa el código que muestra Portal → Sandbox en ese momento.
El endpoint de webhook se rechaza con 400La URL es localhost, privada o no es http(s)Usa una URL HTTPS pública, por ejemplo un túnel a tu máquina.

Relacionado: Ruta de integración · Salir a producción · Salir a producción