Skip to navigation

Introducción

View as Markdown

Descripción general

La API Pública de Wisboo v1 te permite gestionar usuarios, inscripciones, compras y accesos a productos de tu tienda de forma programática.

URL base: https://api.wisboo.com/v1

Todos los endpoints están bajo el contexto de una tienda: /v1/stores/{store_id}/...

El store_id corresponde al identificador público de tu tienda, y puedes conseguirlo en tu administración en Tienda → Información.

Autenticación

Todos los requests deben incluir una API key válida dentro del header Authorization:

Authorization: Bearer <API_KEY>

Puedes generar API keys desde tu panel de Wisboo en Configuración → API Keys. Cada key está asociada a una tienda específica y debe coincidir con el store_id usado en la URL.

Códigos de error

StatusCódigoDescripción
401NOT_AUTHORIZEDToken faltante o inválido
403FEATURE_DISABLEDLa funcionalidad de API Pública no está habilitada en la cuenta
404—Recurso no encontrado
422—Error de validación — el cuerpo de la respuesta contiene los detalles por campo
429TOO_MANY_REQUESTSLímite de requests excedido — ver sección Rate Limiting
500—Error interno del servidor

Rate Limiting

La API aplica límites de requests por API key para garantizar la estabilidad del servicio.

El límite puede varia según el plan de suscripción de la cuenta, para conocer los límites reales de tu cuentra entra a Configuración → Mi Plan.

Todos los requests a nuestra API retornan los siguientes headers:

HeaderDescripción
X-RateLimit-LimitCantidad máxima de requests permitidos en la ventana actual
X-RateLimit-RemainingRequests restantes en la ventana actual
X-RateLimit-ResetTimestamp UNIX de cuando se restablece la ventana
Retry-AfterSegundos hasta que el límite se restablece

Cuando se supera el límite, la API responde con 429 Too Many Requests e incluye la siguiente respuesta en el body:

{
"type": "rate_limit_error",
"code": "TOO_MANY_REQUESTS",
"message": "Rate limit exceeded.",
"retry_after": 45,
"retry_at": "2024-11-01T10:01:00Z"
}

Se recomienda implementar reintentos con backoff exponencial al recibir un 429.

Paginación

Los endpoints de listado soportan los parámetros page (base 1) y size. Todas las respuestas de tipo lista comparten el mismo formato:

{
"object": "list",
"url": "/v1/stores/{store_id}/...",
"data": [ ... ],
"metadata": {
"page_number": 1,
"page_size": 5,
"total_record_count": 48
}
}

Idempotencia

En los requests de tipo POST , PUT y DELETE puedes incluir el header X-Idempotency-Key para reintentar requests de forma segura sin riesgo de efectos secundarios duplicados.