# Especificación OpenAPI

La API v1 publica su contrato en OpenAPI 3.0.3, descargable en /openapi.json.

> [!WARNING]
> El SDK `vexor` de npm (Stripe, MercadoPago, PayPal, Square, Talo) está **deprecado**: ya no se mantiene y no debe usarse. Vexorpay es hoy una **API REST sobre Stripe, siempre en USD, sin SDK oficial**. Migración: <https://developers.vexorpay.com/docs/migracion-desde-el-sdk>

Fuente: <https://developers.vexorpay.com/docs/api/openapi>

La API pública de Vexorpay publica su **especificación OpenAPI 3.0.3**, la
estándar de la industria para describir una API REST. Sirve para explorar los
endpoints, generar clientes/SDKs, y validar contratos en tus propios tests.

- **Especificación (JSON):** [developers.vexorpay.com/openapi.json](/openapi.json)
  — también disponible en el host de la API (`https://api.staging.vexorpay.com/openapi.json`
  en staging).
- La spec se genera desde el mismo código que responde los endpoints, así que
  siempre refleja el comportamiento real (parámetros, bodies, códigos de error,
  rate limit e idempotencia).

## Cómo usarla

La spec es un documento estándar: la consume cualquier tooling de OpenAPI (para
generar un cliente, validar el contrato en tus tests o levantar un mock server).
No tiene UI interactiva propia; para probar un endpoint sin escribir código la
podés abrir en un visor de OpenAPI, o usar la [colección de Postman](/docs/resources)
que ya trae todos los requests configurados con tu API key.

Las requests de la API se autentican con tu API key (`vxp_u_...`), creada en el
dashboard → **Desarrolladores → API keys**, y van contra el host de API del
entorno donde estés parado (`api.vexorpay.com` en producción,
`api.staging.vexorpay.com` en staging). El rate limit de **100 req/min por API
key** aplica igual que en cualquier integración.

## Notas

- Los montos de la API van en **dólares** (`amount: 10.5` = USD 10.50); los
  campos `*Cents` de las respuestas van en centavos.
- El modo de prueba se elige **request a request** con `sandbox: true` (body o
  query), no con una clave distinta.
- Los POST de creación aceptan el header `Idempotency-Key`: misma clave + mismo
  body devuelve el recurso ya creado.
- Si preferís un cliente ya armado, hay una [colección de Postman](/docs/resources).
