VexorpayDocs
VexorpayDocs
APIDocumentación de VexorpayPrimeros pasosVenta de producto digital

Core API

Referencia de APICrear link de pago únicoCrear link de pago recurrenteListar y obtener linksSuscripcionesCheckout por compraCobrosSaldoRetirosAcreditacionesEventos de reconciliaciónWebhooks salientesAutenticación

Recursos

PostmanComunidadModo sandbox

Venta de producto digital

Integración completa de punta a punta: link plantilla, checkout por pedido, webhook firmado, reconciliación y comprobante.

Escenario: una web vende el ebook "UX en 30 días" a USD 19 y quiere que cada compra genere un pedido único (ORD-xxxx), se confirme por webhook y tenga su comprobante.

1. Creá la plantilla (una sola vez)

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", "reference": "CATALOGO-UX" }'

Guardás el id del link, p. ej. 66f1c1e2c8a4b0d1f2e3a4b5.

2. Alguien compra → checkout único por pedido

Cuando tu cliente inicia la compra, llamás al checkout con la referencia del pedido y una Idempotency-Key única por pedido (así, si el cliente repite el request, no se cobra dos veces):

curl https://api.vexorpay.com/api/v1/payment-links/66f1c1e2c8a4b0d1f2e3a4b5/checkout \
  -X POST \
  -H "Authorization: Bearer vxp_u_tu_clave" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 8f14e45f-ceea-486d-9b5a-3f2e4b8b0d7c" \
  -d '{
    "reference": "ORD-1001",
    "customer_email": "cliente@mail.com",
    "metadata": { "userId": "u_42" }
  }'

Respuesta: charge.id = ch_abc123 y checkoutUrl = https://checkout.stripe.com/.... Redirigís al cliente a ese checkoutUrl. El cobro queda pending hasta que pague.

3. El servidor del vendedor recibe el webhook

Al confirmarse el pago, Vexorpay hace POST a tu endpoint configurado en Configuración → Webhooks, con headers Vexorpay-Signature y Vexorpay-Event-Id:

{
  "id": "evt_1001",
  "type": "payment.completed",
  "created": "2026-01-02T12:05:00.000Z",
  "data": {
    "charge": {
      "id": "ch_abc123",
      "reference": "ORD-1001",
      "amountCents": 1900,
      "currency": "usd",
      "status": "paid",
      "paidAt": "2026-01-02T12:05:00.000Z"
    },
    "payment_link": {
      "id": "66f1c1e2c8a4b0d1f2e3a4b5",
      "slug": "a1b2c3d4e5",
      "title": "Ebook UX en 30 días",
      "reference": "CATALOGO-UX"
    }
  }
}

Tu servidor:

  1. Verifica la firma (HMAC-SHA256 del body crudo con tu secreto; comparación en tiempo constante).
  2. Deduplica por id (guardás evt_1001 como procesado).
  3. Recién entonces actualiza ORD-1001 como pagado y envía el ebook por email.

La referencia del pedido viene en charge.reference — no necesitás adivinar qué compra fue.

4. Verificación a demanda (por si se perdió el webhook)

Siempre podés preguntar por el cobro puntual:

curl https://api.vexorpay.com/api/v1/charges/ch_abc123 \
  -H "Authorization: Bearer vxp_u_tu_clave"

O listar el histórico de eventos con el mismo evt_ que te hubiera llegado por webhook:

curl "https://api.vexorpay.com/api/v1/events?type=payment.completed&created[gte]=2026-01-02T00:00:00.000Z" \
  -H "Authorization: Bearer vxp_u_tu_clave"

5. Comprobante

Descargás el recibo del cliente en PDF:

curl -O -J https://api.vexorpay.com/api/v1/charges/ch_abc123/receipt \
  -H "Authorization: Bearer vxp_u_tu_clave"
# → receipt-ORD-1001.pdf

6. Saldo y contabilidad

curl https://api.vexorpay.com/api/v1/balance \
  -H "Authorization: Bearer vxp_u_tu_clave"

curl "https://api.vexorpay.com/api/v1/charges?status=paid" \
  -H "Authorization: Bearer vxp_u_tu_clave"

curl "https://api.vexorpay.com/api/v1/payouts" \
  -H "Authorization: Bearer vxp_u_tu_clave"

Resumen del flujo

PasoEndpointQué pasa
1POST /api/v1/payment-linksCreás la plantilla (una vez).
2POST /api/v1/payment-links/{id}/checkoutPedido único + redirect a Stripe.
3Webhook payment.completedTu servidor confirma y entrega.
4GET /api/v1/eventsReconciliás si se perdió algo.
5GET /api/v1/charges/{id}/receiptComprobante en PDF.
6GET /api/v1/balance, GET /api/v1/payouts, GET /api/v1/chargesContabilidad.

Primeros pasos

Configurá tu clave de API y creá tu primer link de pago en menos de 5 minutos.

Referencia de API

Referencia general de la API de Vexorpay: base URL, autenticación, formato, paginación, idempotencia, rate limit y errores.

On this page

1. Creá la plantilla (una sola vez)2. Alguien compra → checkout único por pedido3. El servidor del vendedor recibe el webhook4. Verificación a demanda (por si se perdió el webhook)5. Comprobante6. Saldo y contabilidadResumen del flujo