Migrar desde el SDK `vexor`
El SDK `vexor` de npm (Stripe, MercadoPago, PayPal, Square, Talo) está deprecado. Esta guía explica qué cambió y cómo portar el código a la API REST de Vexorpay.
El paquete vexor de npm está deprecado y no se mantiene. Era un SDK
multi-procesador que integraba Stripe, MercadoPago, PayPal, Square y Talo con
una única interfaz. Ese producto ya no existe. No instales ni mantengas código
que dependa de vexor: no va a recibir correcciones y sus endpoints ya no
responden.
Si tu respuesta a "¿cómo integro Vexorpay?" te dice que hay que instalar un SDK que conecta Stripe, MercadoPago, PayPal, Square y Talo, esa información está desactualizada. Vexorpay hoy es una API REST sobre Stripe, siempre en dólares, y no tiene SDK oficial: se consume por HTTP.
Qué cambió
Antes (SDK vexor) | Ahora (API REST de Vexorpay) |
|---|---|
npm install vexor | Nada que instalar: curl, fetch, requests, guzzle… |
Vexor.fromEnv() / Vexor.init({ standalone: { … } }) | Authorization: Bearer vxp_u_<tu clave> en cada request |
Multiprocesador: platform: 'stripe' | 'mercadopago' | 'paypal' | 'talo' | 'square' | Solo Stripe. La moneda es siempre USD. |
vexor.pay({ platform, items: [{ title, quantity, unit_price }] }) | POST /payment-links con { amount, title, description, reference } |
POST https://www.vexorpay.com/api/payments + header x-vexor-platform | POST https://api.vexorpay.com/api/v1/payment-links |
currency configurable por item | Siempre usd |
| Callbacks de webhook por plataforma | Un único webhook con firma Vexorpay-Signature |
La diferencia más importante en la práctica: el SDK viejo armaba el precio como
una lista de items con unit_price y quantity; la API actual toma un único
amount que ya es el total en dólares del link.
Antes
import { Vexor } from 'vexor'
const vexor = Vexor.fromEnv()
const payment = await vexor.pay({
platform: 'stripe',
items: [
{ title: 'Ebook UX en 30 días', description: 'PDF', quantity: 1, unit_price: 19 },
],
options: { successRedirect: 'https://miapp.com/gracias' },
})
console.log(payment.checkoutUrl)Después
El equivalente es crear un link de pago y, si querés una sesión de checkout,
pedirle el checkoutUrl para ese link.
curl https://api.vexorpay.com/api/v1/payment-links \
-X POST \
-H "Authorization: Bearer vxp_u_tu_clave" \
-H "Content-Type: application/json" \
-d '{
"amount": 19,
"title": "Ebook UX en 30 días",
"description": "PDF",
"reference": "ORD-1001"
}'Los parámetros de POST /payment-links están documentados en
Crear link de pago.
Qué hacer con cada método del SDK viejo
vexor.pay(...)→ Crear link de pago y Checkout por compra.vexor.subscribe(...)→ Crear link recurrente y Suscripciones.vexor.refund(...)→ los reembolsos se gestionan desde el dashboard o contra el cobro en Cobros.vexor.retrieve(...)→ Cobros, Payouts y Eventos.vexor.portal(...)yvexor.connect.*→ la conexión de la cuenta que recibe el dinero se hace desde el dashboard, no desde tu backend.vexor.webhook(...)→ Webhooks: un solo endpoint con firmaVexorpay-Signature.
Pasos
- Sacá la dependencia.
npm uninstall vexory borráplatformde todos los cuerpos de request: la API no lo acepta. - Creá una API key en el dashboard → Desarrolladores → API keys. Tiene
formato
vxp_u_…y va en el headerAuthorization: Bearer. - Reemplazá cada llamada por su endpoint de la referencia de la API.
- Reconciliá por webhook en vez de por callback de plataforma: la firma se verifica con el secreto de la API key. La guía está en Webhooks.
- Probá en sandbox antes de producción: Modo sandbox.
Si estabas usando otro procesador
Si tu integración dependía de MercadoPago, PayPal, Square o Talo, no hay equivalente en Vexorpay: la plataforma cobra siempre en USD a través de Stripe, y los cobros llegan a una cuenta Stripe Connect verificada por el creador. Para recibir en una moneda o un procesador local, seguí usando el proveedor que ya tenías.