vexorpayDocs

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 que cobra siempre en dólares, en la cuenta de cobro del creador, y no tiene SDK oficial: se consume por HTTP.

Qué cambió

Antes (SDK vexor)Ahora (API REST de vexorpay)
npm install vexorNada que instalar: curl, fetch, requests, guzzle…
Vexor.fromEnv() / Vexor.init({ standalone: { … } })Authorization: Bearer vxp_live_<tu clave> en cada request
Multiprocesador: platform: 'stripe' | 'mercadopago' | 'paypal' | 'talo' | 'square'Un solo canal: la cuenta de cobro del creador. Los precios son siempre en 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-platformPOST https://api.vexorpay.com/api/v1/payment-links
currency configurable por itemSiempre usd
Callbacks de webhook por plataformaUn ú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 quieres 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_live_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

Pasos

  1. Saca la dependencia. npm uninstall vexor y borra platform de todos los cuerpos de request: la API no lo acepta.
  2. Crea una API key en el dashboard → Desarrolladores → API keys. Tiene formato vxp_live_… (producción; vxp_test_… para pruebas) y va en el header Authorization: Bearer.
  3. Reemplaza cada llamada por su endpoint de la referencia de la API.
  4. Reconcilia 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.
  5. Prueba 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: los precios se fijan siempre en USD, las ventas se acreditan en el saldo de la cuenta de cobro del creador y desde ahí se retiran a su cuenta bancaria. Para recibir en una moneda o un procesador local, sigue usando el proveedor que ya tenías.