vexorpayDocs
vexorpayDocs
APIDocumentación de vexorpayPrimeros pasosVenta de producto digitalImpuestos y Merchant of Record

Core API

Referencia de APICrear link de pago únicoCrear link de pago recurrenteListar y obtener linksSuscripcionesCheckout por compraVentas de PolarClientesDisputasSaldoRetirosEventos de reconciliaciónCuentas conectadas (marketplace)Webhooks salientesAutenticación

Recursos

vexorpay MCPEspecificación OpenAPIMigrar desde el SDK `vexor`PostmanComunidadModo sandbox

Cuentas conectadas (marketplace)

Opera en nombre de usuarios conectados a tu app con el header Vexor-Account y gestiona las conexiones.

La API permite que una app de marketplace opere en nombre de sus usuarios conectados: crear links de pago y checkouts a su nombre, listar sus links y gestionar las conexiones. La app se autentica con su propia API key (o con un token OAuth de la app) y opera sobre el conectado mandando su id en el header Vexor-Account.

Este flujo requiere que el usuario conectado haya autorizado la app (conexión activa). La creación y gestión de la app se hace desde el dashboard, no por API.

Header Vexor-Account

En los endpoints que lo aceptan (POST / GET /api/v1/payment-links y POST /api/v1/payment-links/{id}/checkout) manda el id del usuario conectado:

Vexor-Account: <connected_user_id>
  • La API valida que el dueño de la credencial tenga una conexión activa con ese usuario y en el mismo modo (prueba o producción). Si no, responde 403 invalid_connected_account.
  • La operación actúa sobre el conectado (los links y las ventas quedan a su nombre, en su organización de Polar) y se atribuye a la app.
  • Sin el header, el comportamiento es el normal: la credencial opera sobre su propia cuenta.
  • Con tokens OAuth de app, el header exige el scope account:operate (si falta, 403 insufficient_scope).

No hay comisión de marketplace: la venta es íntegra del usuario conectado y la cobra Polar como Merchant of Record. Un POST /api/v1/payment-links con marketplace_fee responde 400 marketplace_fee_not_supported_for_polar.

Cuentas conectadas

Listar

GET /api/v1/connected-accounts

Lista las conexiones activas de la app, con paginación por cursor (limit, starting_after, ending_before).

curl "https://api.vexorpay.com/api/v1/connected-accounts?limit=10" \
  -H "Authorization: Bearer vxp_live_tu_clave"
{
  "data": [
    {
      "id": "66f1c1e2c8a4b0d1f2e3a4b5",
      "connected_user_id": "66f1c1e2c8a4b0d1f2e3a4a1",
      "name": "Tienda de Ana",
      "email": "ana@ejemplo.com",
      "mode": "live",
      "scopes": ["read", "links:write", "account:operate"],
      "created_at": "2026-01-02T12:00:00.000Z",
      "revoked_at": null,
      "sandbox": false
    }
  ],
  "has_more": false,
  "total_count": 1,
  "url": "/v1/connected-accounts?limit=10"
}

Obtener

GET /api/v1/connected-accounts/{id}

Devuelve el detalle de una conexión (activa o revocada). 404 not_found si no existe o es de otra app o modo.

Revocar

DELETE /api/v1/connected-accounts/{id}

Revoca la conexión de forma idempotente: revoca los tokens OAuth del conectado para esa app, borra el consentimiento y deja la conexión en status: revoked. Revocar una conexión ya revocada devuelve el mismo estado.

curl -X DELETE https://api.vexorpay.com/api/v1/connected-accounts/66f1c1e2c8a4b0d1f2e3a4b5 \
  -H "Authorization: Bearer vxp_live_tu_clave"

Errores

ErrorHTTPCausa
invalid_connected_account403El header Vexor-Account apunta a una cuenta sin conexión activa de la app, o la credencial no es de una app de marketplace.
insufficient_scope403El token OAuth de la app no tiene el scope account:operate.
not_found404No existe esa conexión en la app.

Eventos de reconciliación

Consulta el histórico de eventos para reconciliar tus webhooks con la API.

Webhooks salientes

Recibe notificaciones firmadas cuando ocurren eventos de negocio en tu cuenta.

On this page

Header Vexor-AccountCuentas conectadasListarObtenerRevocarErrores