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

Disputas

Consulta las disputas (chargebacks) de tus ventas de Polar y acéptalas.

Las disputas (dispute, o chargeback) son reclamos que abre el titular de una tarjeta sobre una venta. Polar es el Merchant of Record y las defiende por ti: no recibe evidencia del creador, y lo único que puedes hacer desde la API es listarlas, verlas y aceptarlas. Polar no avisa las disputas por webhook: vexorpay las sincroniza cada 10 minutos.

Listar disputas

GET /api/v1/disputes

Parámetros

ParámetroDescripción
statusprevented, early_warning, needs_response, under_review, won o lost.
order_idFiltrar por la venta disputada (el id de /orders).
limit / starting_after / ending_beforePaginación por cursor (default 10, máximo 100).

Ejemplo

curl "https://api.vexorpay.com/api/v1/disputes?status=needs_response" \
  -H "Authorization: Bearer vxp_live_tu_clave"

Respuesta exitosa

200 OK

{
  "data": [
    {
      "id": "68f1c1e2c8a4b0d1f2e3a4b5",
      "provider": "polar",
      "orderId": "67f1c1e2c8a4b0d1f2e3a4b5",
      "paymentLinkId": "66f1c1e2c8a4b0d1f2e3a4b5",
      "reference": null,
      "customerEmail": "cliente@mail.com",
      "polarDisputeId": "2b1f0c9e-...",
      "status": "needs_response",
      "statusLabel": "Requiere respuesta",
      "reason": "fraudulent",
      "reasonLabel": "fraudulent",
      "amountCents": 1900,
      "currency": "usd",
      "feeCents": 1500,
      "evidenceDeadline": "2026-10-15T12:00:00.000Z",
      "daysLeft": 7,
      "isOpen": true,
      "canAccept": true,
      "outcome": null,
      "sandbox": false,
      "paymentLinkUrl": "https://www.vexorpay.com/p/a1b2c3d4e5",
      "createdAt": "2026-10-08T12:03:00.000Z",
      "resolvedAt": null
    }
  ],
  "has_more": false,
  "total_count": 1,
  "url": "/v1/disputes?limit=10"
}

Campos clave:

  • status: estado de la disputa en Polar. Abiertas: early_warning, needs_response, under_review. Cerradas: prevented, won, lost.
  • orderId: la venta disputada (GET /api/v1/orders/{id}). polarDisputeId es el id de la disputa en Polar.
  • amountCents: el monto disputado, con impuesto.
  • canAccept: si se puede aceptar (dar por perdida). Es true mientras la disputa está abierta en needs_response o early_warning.
  • feeCents: la fee de la disputa (USD 15), que Polar descuenta de tu saldo.
  • evidenceDeadline / daysLeft: plazo de respuesta que informa Polar (null cuando no aplica).

Obtener una disputa

GET /api/v1/disputes/{id}

El id es el de vexorpay (el campo id de la lista, no el polarDisputeId). El entorno lo define la API key: con una clave vxp_test_... operas sobre disputas de prueba. Devuelve el mismo objeto de la lista o 404 dispute_not_found.

Aceptar una disputa

POST /api/v1/disputes/{id}/accept

La das por perdida: el monto disputado no vuelve. Es irreversible. Es la única acción posible sobre una disputa. Devuelve la disputa actualizada. Con un token OAuth exige el scope disputes:write.

curl -X POST https://api.vexorpay.com/api/v1/disputes/68f1c1e2c8a4b0d1f2e3a4b5/accept \
  -H "Authorization: Bearer vxp_live_tu_clave"

Errores

ErrorHTTPCausa
validation_error400status no es un estado válido o el cursor de paginación no existe.
dispute_not_found404No existe esa disputa en tu cuenta (o es de otro modo).
dispute_not_respondable400La disputa ya está cerrada o no se puede aceptar.
polar_reconnect_required409Aceptar una disputa exige reconectar Polar desde el dashboard (la conexión es anterior a este permiso).
polar_update_failed502Polar no aceptó la disputa. Reintenta.

Clientes

Lista y consulta las personas que te compraron por Polar, con lo que pagaron, sus ventas y sus suscripciones.

Saldo

Consulta tu saldo de Polar (disponible, retenido y retirado) y su estimado en tu moneda local.

On this page

Listar disputasParámetrosEjemploRespuesta exitosaObtener una disputaAceptar una disputaErrores