---
title: "API de pagos VEXPay para desarrolladores | VEXPay"
description: "Integra cobros en bolívares con la API de VEXPay: quickstart con curl y @vexpay/node, SDKs, webhooks y la documentación completa."
url: "https://vexwallet.co/vexpay/desarrolladores"
---

VEXPay · Desarrolladores

# Integra cobros en bolívares con la API de VEXPay

Crea una sesión de checkout desde tu servidor, insértala en tu web y confirma cada pago con webhooks firmados. SDKs oficiales para Node.js, Python y el navegador.

[Ver documentación](https://docs.pay.vexwallet.co)[Referencia de la API](https://docs.pay.vexwallet.co/api-reference)

¿Buscas tasas USDT/VES y BCV para tu app? [Usa la API pública de VEX Wallet](https://vexwallet.co/developers).

Quickstart

## Tu primer cobro en cuatro pasos

El flujo recomendado: sesión de checkout en tu servidor, checkout embebido en tu web y confirmación por webhook.

1. 01  
### Usa tu llave de prueba  
Toda cuenta tiene una llave de prueba y una live. La de prueba funciona desde el primer día y nunca mueve dinero real. Envíala en el header x-api-key, siempre desde tu servidor.
2. 02  
### Crea una sesión de checkout  
Desde tu servidor creas la sesión con el monto en dólares. VEXPay cobra en bolívares a la tasa oficial del BCV.
3. 03  
### Insértala o redirige  
Monta el checkout en tu página con @vexpay/js usando el clientSecret, o redirige a tu cliente a la página de pago de VEXPay.
4. 04  
### Confirma con un webhook  
Entrega el pedido solo cuando recibas el evento payment.completed firmado o consultes la sesión desde tu servidor.

1 · Crear la sesióncURL

```
curl --request POST "https://api.pay.vexwallet.co/v1/checkout/sessions" \
  --header "content-type: application/json" \
  --header "x-api-key: $VEXPAY_API_KEY" \
  --data '{
    "amountUsd": 25,
    "description": "Pedido #1042",
    "reference": "order-1042",
    "successUrl": "https://tutienda.com/gracias",
    "allowedOrigins": ["https://tutienda.com"]
  }'
```

1 · Crear la sesión@vexpay/node

```
import VexPay from '@vexpay/node'

const vexpay = new VexPay(process.env.VEXPAY_API_KEY)

const session = await vexpay.checkout.sessions.create({
  amountUsd: 25,
  reference: 'order-1042',
  allowedOrigins: ['https://tutienda.com'],
})

// Envía al navegador solo session.clientSecret, nunca tu API key.
```

2 · Montar el checkout@vexpay/js

```
import { checkout } from '@vexpay/js'

const cx = checkout({ clientSecret })
cx.on('completed', ({ paymentId }) => {
  // Aviso informativo: confirma el pago en tu servidor antes de entregar.
})
cx.mount('#pagar')

// Si tu página no puede usar un iframe: redirectToCheckout({ clientSecret })
```

Tu API key va solo en tu servidor. Las llaves live se activan cuando VEXPay revisa tu integración; hasta entonces responden `live_mode_not_activated`.

SDKs oficiales

## Instala el SDK de tu lenguaje

Servidor (TypeScript / Node)@vexpay/node

```
npm install @vexpay/node
```

Servidor (sync y async)vexpay

```
pip install vexpay
```

Checkout embebido en tu web@vexpay/js

```
npm install @vexpay/js
```

| Paquete      | Uso                          | Guía                                                        |
| ------------ | ---------------------------- | ----------------------------------------------------------- |
| @vexpay/node | Servidor (TypeScript / Node) | [Node.js](https://docs.pay.vexwallet.co/node-sdk)           |
| vexpay       | Servidor (sync y async)      | [Python](https://docs.pay.vexwallet.co/python-sdk)          |
| @vexpay/js   | Checkout embebido en tu web  | [Navegador](https://docs.pay.vexwallet.co/browser-checkout) |

Webhooks

## Eventos que puedes recibir

Registra tu URL y elige los eventos. Cada entrega llega firmada con HMAC-SHA256 en el header VexPay-Signature e incluye VexPay-Event-Id para deduplicar.

### Pagos

- `payment.pending`
- `payment.completed`
- `payment.failed`
- `payment.canceled`
- `payment.reversed`

### Retiros y pagos a vendedores

- `payout.completed`
- `payout.failed`

### Comercios (marketplaces)

- `merchant.created`
- `merchant.updated`
- `merchant.verified`
- `merchant.rejected`
- `merchant.activated`
- `merchant.deactivated`
- `merchant.reactivated`
- `merchant.restricted`
- `merchant.kyb_required`
- `merchant.capability.updated`
- `merchant.balance.updated`
- `merchant.wallet_credit`

### Tu cuenta

- `tenant.live_status_changed`
- `tenant.status_changed`
- `tenant.api_key.created`
- `tenant.api_key.rotated`
- `tenant.api_key.revoked`

### Pruebas

- `notification.test`

Cada evento se entrega una sola vez, sin reintentos: guarda el evento verificado rápido, respóndelo con un 2xx y reconcilia con la consulta de pagos por si alguno no llega. [Ver la guía de webhooks](https://docs.pay.vexwallet.co/webhooks).

Documentación

## Todo lo demás está en docs.pay.vexwallet.co

- [Documentación completaGuías de cobro, SDKs, errores e idempotencia.](https://docs.pay.vexwallet.co)
- [Referencia de la APITodos los endpoints, explorables desde el navegador.](https://docs.pay.vexwallet.co/api-reference)
- [Modo de prueba y salida a producciónLlaves de prueba, primer pago de prueba y activación de llaves live.](https://docs.pay.vexwallet.co/going-live)
- [WebhooksRegistro de endpoints, firma y comportamiento de entrega.](https://docs.pay.vexwallet.co/webhooks)

¿Trabajas con agentes de IA? La documentación también está en [llms.txt](https://docs.pay.vexwallet.co/llms.txt). [API pública de VEX Wallet (tasas)](https://vexwallet.co/developers)

## ¿Listo para cobrar desde tu app o tienda?

Crea tu cuenta de negocio, integra con tu llave de prueba y activa las llaves live cuando estés listo.

[Crear mi cuenta de negocio](https://wa.me/584149333844)[Conocer VEXPay](https://vexwallet.co/vexpay)

Gratis · Sin mensualidades · Cobras desde el primer día
