Documentación · API v1
La API de tu tienda, lista para tu propia web
Lee el catálogo, da cuentas a tus compradores y cobra desde cualquier web con una API REST en JSON. Se autentica con API keys que creas en tu panel.
curl "https://vendiq.pe/api/v1" \
-H "x-api-key: vnd_live_xxxxxxxxxxxx"{
"object": "api",
"version": "v1",
"tenant": {
"name": "Tienda Demo",
"subdomain": "tienda-demo",
"plan": "BUSINESS_PRO"
},
"authentication": { "type": "api_key", "scopes": ["read"] },
"rate_limit": { "limit": 100, "window": "1m" },
"resources": [
"/api/v1/products",
"/api/v1/products/{slug}",
…
],
"docs": "https://vendiq.pe/docs#api"
}En esta páginaLa API de Vendiq
01
La API de Vendiq
Es una API REST: recibe y devuelve JSON y usa los verbos y los códigos de estado de HTTP. Sirve para llevar tu tienda a una web hecha a tu medida, con su catálogo, el contenido del Site Builder, las cuentas de tus compradores, sus pedidos y el checkout.
- Formato
- JSON
- Versión
- v1
- Autenticación
- API key
- Límite
- 100 por minuto
02
URL base
Todas las rutas cuelgan de esta dirección. La tienda no se elige por el dominio: la identifica la API key con la que llamas.
https://vendiq.pe/api/v1La API responde también en el dominio de tu tienda, que es el que usa la documentación de tu panel. De las rutas de la referencia, solo /api/checkout/token vive fuera de /api/v1.
03
Autenticación
Cada petición lleva tu API key en la cabecera x-api-key. Si tu cliente no puede enviar cabeceras propias, la API también la acepta como Authorization: Bearer.
Los endpoints marcados como «Sesión del comprador» piden además el token que devuelve POST /api/v1/auth/login. En ellos la key va en x-api-key y el token en Authorization: Bearer.
curl "https://vendiq.pe/api/v1/products?limit=10" \
-H "x-api-key: vnd_live_xxxxxxxxxxxx"curl -X POST "https://vendiq.pe/api/v1/auth/login" \
-H "x-api-key: vnd_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "email": "cliente@correo.com", "password": "********" }'
curl "https://vendiq.pe/api/v1/users/me" \
-H "x-api-key: vnd_live_xxxxxxxxxxxx" \
-H "Authorization: Bearer <token>"Las keys empiezan por vnd_live_ y siguen con 64 caracteres hexadecimales. Las emitidas antes con el prefijo lum_live_ siguen funcionando.
04
Crear una API key
Las API keys vienen en los planes Business Pro y White label, y solo las gestiona un administrador de la tienda.
- 1
Abre Configuración → API Keys
Está en el panel de tu tienda, en
/dashboard/settings/api-keys. - 2
Pulsa «Nueva API Key»
Ponle un nombre que diga dónde se usa, por ejemplo «Web principal».
- 3
Elige los permisos
«Solo lectura» le da el scope
read; «Lectura y escritura» le sumawrite. - 4
Cópiala y guárdala
Se muestra una sola vez. Vendiq guarda solo su huella SHA-256, así que no se puede recuperar: si la pierdes, revócala y crea otra.
En el navegador, solo lectura
La API acepta llamadas desde cualquier origen. Una key que va en el código de tu web la puede leer cualquiera: usa ahí una de solo lectura y guarda las de escritura en tu servidor.
Cuándo deja de funcionar
Una key revocada o vencida responde
401 UNAUTHORIZED. Si la operación exige un scope que la key no tiene, la respuesta es403 FORBIDDEN.
05
Límites de uso
Cada API key tiene hasta 100 peticiones por minuto. Algunos endpoints sensibles, como el inicio de sesión o el envío de correos, tienen además un límite propio más bajo.
Al pasarte llega un 429 RATE_LIMIT_EXCEEDED. Espera antes de reintentar: cuando la respuesta trae Retry-After, ahí están los segundos.
Consulta tu cuota con estas cabeceras cuando vengan en la respuesta:
Cabecera
Qué indica
- RateLimit-Limit
- Peticiones permitidas en la ventana de un minuto.
- RateLimit-Remaining
- Las que te quedan en esa ventana.
- RateLimit-Reset
- Segundos hasta que la ventana se renueva.
- Retry-After
- En un 429, los segundos que conviene esperar.
06
Errores
Todo error trae error.code y error.message. Programa contra error.code, que es estable, y no contra el texto, que puede cambiar.
Los endpoints del contrato común añaden los campos de Problem Details (RFC 9457): type, title, status, detail e instance, más un requestId para rastrear la petición.
{
"type": "https://vendiq.pe/docs/api#not_found",
"title": "Not found",
"status": 404,
"detail": "No existe un producto publicado con el slug \"xyz\".",
"instance": "/api/v1/products/xyz",
"requestId": "req_3f9c2a7b1e4d8c6a5b0f2e1d",
"error": {
"code": "NOT_FOUND",
"message": "No existe un producto publicado con el slug \"xyz\"."
}
}Código
HTTP
Cuándo ocurre
FORBIDDEN403La API key no tiene el scope necesario (p. ej.write).NOT_FOUND404No existe, o no es de tu tienda. Se responde 404 y no 403 a propósito: confirmar que existe pero es de otro ya sería filtrar información.BAD_REQUEST400Input inválido. Si es por campo, vieneissues.MIXED_CURRENCIES400El carrito mezcla monedas: una orden lleva una sola.RATE_LIMIT_EXCEEDED429Superaste la cuota. Espera lo que diceRetry-After.GONE410Esta versión de la API se retiró.Link rel="successor-version"dice a dónde migrar.INTERNAL_ERROR500Error nuestro. Pasanos elrequestIdde la respuesta.
07
Convenciones
Paginación
Las listas paginadas aceptan
?page=1&limit=20, con un máximo de 100 por página, y responden{ object: "list", data, pagination }.Versión
Cada respuesta indica su versión en
X-API-Version. Antes de retirar una versión se avisa conDeprecationySunset; después, la API responde410 Gone.Trazabilidad
Las respuestas del contrato común traen
X-Request-Id. Inclúyelo cuando escribas a soporte por un error.CORS
Se aceptan llamadas desde cualquier origen, con las cabeceras
Authorization,Content-Typeyx-api-key.
08
Referencia de endpoints
Sale del mismo catálogo que anuncia GET /api/v1 y que usa la documentación de tu panel: las tres listas dicen lo mismo.
Descubrimiento
1 endpointLa raíz se describe a sí misma: qué tienda eres, qué cuota tienes y qué recursos hay.
Productos
5 endpointsCatálogo público. Solo productos ACTIVE: un borrador no se filtra a tu web.
Categorías y colecciones
4 endpointsPara armar el menú y las secciones de tu web.
Blog
2 endpointsArtículos publicados del tenant, para storefronts headless.
Promociones y gift cards
2 endpointsDescuentos vigentes y saldo de tarjetas de regalo.
Carrito, favoritos y fidelidad
3 endpointsLo que es del comprador: su carrito, su wishlist y sus puntos.
Autenticación de compradores
9 endpointsEl comprador vive en la BD de la tienda. Cada tienda tiene SU contraseña: la de una no abre otra.
Perfil y direcciones
4 endpointsRequieren las DOS credenciales: la API key dice qué tienda, el token dice qué comprador.
Compras
6 endpointsCotizar, cobrar y consultar pedidos.
Contenido
10 endpointsLas páginas que armas con el editor de sitio.
Chat en vivo
4 endpointsChat del storefront: visitante anónimo ↔ asesor/bot. Requiere la feature integrations.chat.
Integra tu tienda con tu propia web
Dentro de tu panel, la documentación de la API ya trae la URL de tu tienda y el prefijo de tus keys, lista para copiar.
