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

Suscripciones

Lista, consulta, cancela y gestiona las suscripciones de tus links recurrentes.

Las suscripciones se crean cuando un comprador paga uno de los planes de tu link recurrente. El dinero de cada ciclo se te transfiere automáticamente (precio − comisión de Stripe − USD 1) y podés enterarte de cada cobro por el webhook subscription.payment.completed.

El objeto Subscription

{
  "id": "66f1c1e2c8a4b0d1f2e3a4b7",
  "stripeSubscriptionId": "sub_1P...",
  "paymentLinkId": "66f1c1e2c8a4b0d1f2e3a4b6",
  "paymentLinkPriceId": "66f1c1e2c8a4b0d1f2e3a4c1",
  "price": {
    "amountCents": 900,
    "currency": "usd",
    "interval": "month",
    "intervalCount": 1,
    "trialPeriodDays": null
  },
  "status": "active",
  "customerEmail": "cliente@ejemplo.com",
  "reference": "MEMBRESIA",
  "currentPeriodStart": "2026-01-02T12:00:00.000Z",
  "currentPeriodEnd": "2026-02-02T12:00:00.000Z",
  "canceledAt": null,
  "cancelAtPeriodEnd": false,
  "trialStart": null,
  "trialEnd": null,
  "sandbox": false,
  "createdAt": "2026-01-02T12:00:00.000Z"
}

Estados posibles (status): active, trialing, past_due, canceled, unpaid, pending, incomplete.

Listar suscripciones

GET /api/v1/subscriptions

Query paramDescripción
statusFiltra por estado.
payment_link_idFiltra por link.
sandboxtrue/false. Sin el parámetro devuelve ambos entornos.
limitTamaño de página (default 10, máx 100).
starting_after / ending_beforePaginación por cursor (id de suscripción).
curl "https://api.vexorpay.com/api/v1/subscriptions?status=active" \
  -H "Authorization: Bearer vxp_u_tu_clave"

La respuesta usa el formato de lista con data, has_more y total_count.

Ver una suscripción

GET /api/v1/subscriptions/{id}

En sandbox, mandá ?sandbox=true (si no, una suscripción de prueba no se encuentra).

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

Cancelar una suscripción

POST /api/v1/subscriptions/{id}/cancel

Programa la cancelación al final del período (cancel_at_period_end: true): el cliente conserva el acceso hasta que termine el ciclo pago y no se le vuelve a cobrar. Es idempotente: cancelar una suscripción ya cancelada responde 200 con su estado actual.

curl https://api.vexorpay.com/api/v1/subscriptions/66f1c1e2c8a4b0d1f2e3a4b7/cancel \
  -X POST \
  -H "Authorization: Bearer vxp_u_tu_clave" \
  -H "Content-Type: application/json" \
  -d '{}'

En sandbox, el body es { "sandbox": true }.

Abrir el portal del cliente

POST /api/v1/subscriptions/{id}/portal

Devuelve { "url": "https://billing.stripe.com/..." } para que el suscriptor gestione su método de pago, vea facturas o cancele por su cuenta. Redirigí al comprador a esa URL.

curl https://api.vexorpay.com/api/v1/subscriptions/66f1c1e2c8a4b0d1f2e3a4b7/portal \
  -X POST \
  -H "Authorization: Bearer vxp_u_tu_clave" \
  -H "Content-Type: application/json" \
  -d '{}'

Errores

ErrorHTTPCausa
unauthorized401Falta el header Authorization.
invalid_key401La API key es inválida o fue revocada.
validation_error400status inválido en el listado.
invalid_request400La suscripción no tiene un customer de Stripe asociado (portal).
subscription_not_found404No existe esa suscripción, o es de otro modo (sandbox).
rate_limited429Superaste el límite de 100 requests por minuto.

Listar y obtener links

Consulta, actualiza y cancela los links de pago de tu cuenta con filtros y paginación.

Checkout por compra

Genera un pago único (charge) y un checkout de Stripe por cada pedido.

On this page

El objeto SubscriptionListar suscripcionesVer una suscripciónCancelar una suscripciónAbrir el portal del clienteErrores