API REST de Multitiendas
Integra tu aplicación con el sistema POS completo. Productos, cotizaciones, citas y más — directamente desde tu código.
https://api.multitiendas.shop/publicBearer TokenJSON (application/json)Introducción
La API pública de Multitiendas permite integrar cualquier aplicación con el sistema POS completo. Puedes consultar catálogos de productos, generar cotizaciones automáticas con PDF y gestionar el agendamiento de citas.
Productos
Catálogo completo con búsqueda avanzada
Cotizaciones
Genera cotizaciones con PDF automático
Citas
Sistema completo de agendamiento
Seguro
Tokens Bearer con permisos granulares
Autenticación
Todos los endpoints requieren dos headers obligatorios: el token de autenticación Bearer y el identificador del tenant (X-Tenant) que corresponde al subdominio o slug de tu empresa en Multitiendas.
Authorization: Bearer TU_API_TOKEN X-Tenant: mi-empresa
| Header | Requerido | Descripción |
|---|---|---|
Authorization | Sí | Token de acceso en formato Bearer TU_TOKEN. Obtenido desde Configuración → Acceso API. |
X-Tenant | Sí | Identificador único de tu empresa en Multitiendas (tu subdominio o slug). Ejemplo: mi-tienda. |
Accept | Recomendado | Usa siempre application/json para recibir respuestas en JSON. |
Errores HTTP
| Código | Significado | Causa común |
|---|---|---|
200 | OK | Solicitud exitosa |
201 | Created | Recurso creado exitosamente |
400 | Bad Request | Parámetros inválidos o faltantes |
401 | Unauthorized | Token inválido, expirado o faltante |
403 | Forbidden | El token no tiene permiso para este endpoint |
404 | Not Found | El recurso no existe |
409 | Conflict | Ya existe un recurso con los mismos datos |
422 | Unprocessable Entity | Error de validación de datos |
429 | Too Many Requests | Rate limit alcanzado — espera y reintenta |
500 | Server Error | Error interno del servidor |
Listar Productos
Obtiene el catálogo completo de productos con filtros y paginación.
| Parámetro | Tipo | Descripción |
|---|---|---|
limit | integer | Cantidad de productos por página (máx. 100). Default: 20 |
offset | integer | Número de productos a omitir. Default: 0 |
category | integer | ID de categoría para filtrar |
status | string | Estado: active, inactive. Default: active |
curl -H "Authorization: Bearer TU_TOKEN" \
-H "X-Tenant: mi-empresa" \
-H "Accept: application/json" \
"https://api.multitiendas.shop/public/products?limit=10&category=1"{
"success": true,
"data": {
"products": [
{
"id": 1,
"nombre": "Auriculares Bluetooth Pro",
"codigo": "BT-PRO-001",
"descripcion": "Auriculares inalámbricos con cancelación de ruido",
"precio_venta": 85000,
"stock": 45,
"categoria": { "id": 1, "nombre": "Electrónicos" },
"imagen": "https://api.multitiendas.shop/storage/productos/bt-pro.jpg",
"estado": "active"
}
],
"pagination": {
"total": 150, "current_page": 1,
"per_page": 10, "last_page": 15, "has_more": true
}
}
}Buscar Productos
Búsqueda de productos por texto en nombre, código y descripción.
| Parámetro | Tipo | Descripción |
|---|---|---|
q | string | *Texto a buscar (mínimo 2 caracteres) |
limit | integer | Cantidad de resultados (máx. 50). Default: 10 |
category | integer | ID de categoría para filtrar resultados |
curl -H "Authorization: Bearer TU_TOKEN" \
-H "X-Tenant: mi-empresa" \
-H "Accept: application/json" \
"https://api.multitiendas.shop/public/products/search?q=auricular&limit=5"Crear Cotización
Genera una cotización con los productos seleccionados. Retorna URL de PDF descargable.
{
"customer": {
"name": "Juan Pérez",
"email": "[email protected]",
"phone": "+57 300 123 4567",
"address": "Calle 123 #45-67, Bogotá"
},
"items": [
{
"product_id": 1,
"quantity": 2,
"unit_price": 85000,
"notes": "Con garantía extendida"
},
{
"product_id": 5,
"quantity": 1,
"unit_price": 35000
}
],
"notes": "Cotización válida por 30 días",
"discount_percentage": 5
}curl -X POST "https://api.multitiendas.shop/public/quotations" \
-H "Authorization: Bearer TU_TOKEN" \
-H "X-Tenant: mi-empresa" \
-H "Content-Type: application/json" \
-d '{
"customer": { "name": "Juan Pérez", "email": "[email protected]" },
"items": [{ "product_id": 1, "quantity": 2, "unit_price": 85000 }]
}'{
"success": true,
"message": "Cotización creada exitosamente",
"data": {
"quotation": {
"id": 42,
"code": "COT-000042",
"customer_name": "Juan Pérez",
"total": 199750,
"total_formatted": "$199.750",
"pdf_url": "https://api.multitiendas.shop/public/quotations/42/pdf",
"view_url": "https://multitiendas.shop/cotizacion/abc123token456"
}
}
}Descargar PDF de Cotización
Descarga el PDF generado de una cotización. Retorna el archivo binario PDF.
curl -H "Authorization: Bearer TU_TOKEN" \
-H "X-Tenant: mi-empresa" \
-H "Accept: application/pdf" \
-o "cotizacion_42.pdf" \
"https://api.multitiendas.shop/public/quotations/42/pdf"Empleados Disponibles
Lista empleados con horarios y servicios que ofrecen. Usa esta información para mostrar disponibilidad en tu UI.
curl -H "Authorization: Bearer TU_TOKEN" \
-H "X-Tenant: mi-empresa" \
"https://api.multitiendas.shop/public/appointments/employees"{
"success": true,
"data": {
"employees": [
{
"id": 1,
"nombre": "Ana García",
"apellido": "López",
"email": "[email protected]",
"services": [
{
"id": 1, "nombre": "Corte de Cabello",
"precio": 25000, "duracion_minutos": 45
}
],
"schedules": [
{ "dia_semana": 1, "hora_inicio": "08:00", "hora_fin": "17:00", "activo": true }
]
}
]
}
}Crear Cita
Agenda una nueva cita para un cliente con un empleado y servicio específico.
{
"employee_id": 1,
"service_id": 1,
"appointment_date": "2026-04-15",
"start_time": "14:30",
"duration_minutes": 45,
"customer_name": "María Rodriguez",
"customer_email": "[email protected]",
"customer_phone": "+57 300 555 6666",
"notes": "Primera visita",
"price": 25000
}curl -X POST "https://api.multitiendas.shop/public/appointments" \
-H "Authorization: Bearer TU_TOKEN" \
-H "X-Tenant: mi-empresa" \
-H "Content-Type: application/json" \
-d '{
"employee_id": 1, "service_id": 1,
"appointment_date": "2026-04-15", "start_time": "14:30",
"customer_name": "María Rodriguez",
"customer_email": "[email protected]"
}'Consultar Citas por Email
Obtiene todas las citas de un cliente usando su dirección de email.
| Parámetro | Tipo | Descripción |
|---|---|---|
status | string | Filtrar por estado: pending, confirmed, cancelled, completed |
from_date | date | Fecha desde (YYYY-MM-DD) |
to_date | date | Fecha hasta (YYYY-MM-DD) |
curl -H "Authorization: Bearer TU_TOKEN" \
-H "X-Tenant: mi-empresa" \
"https://api.multitiendas.shop/public/appointments/customer/[email protected]?status=confirmed"Editar Cita
Modifica una cita existente.
{
"employee_id": 2,
"service_id": 3,
"appointment_date": "2026-04-20",
"start_time": "16:00",
"duration_minutes": 60,
"notes": "Cambio de horario solicitado por cliente",
"price": 30000
}curl -X PUT "https://api.multitiendas.shop/public/appointments/15" \
-H "Authorization: Bearer TU_TOKEN" \
-H "X-Tenant: mi-empresa" \
-H "Content-Type: application/json" \
-d '{"appointment_date": "2026-04-20", "start_time": "16:00"}'Confirmar Cita
Cambia el estado de una cita pendiente a confirmada. Ideal para flujos con aprobación manual.
curl -X POST "https://api.multitiendas.shop/public/appointments/15/confirm" \ -H "Authorization: Bearer TU_TOKEN" \ -H "X-Tenant: mi-empresa"
{
"success": true,
"message": "Cita confirmada exitosamente",
"data": { "appointment": { "id": 15, "status": "confirmed" } }
}Cancelar Cita
Cancela una cita existente. Requiere motivo de cancelación.
{ "reason": "Cliente solicitó cancelación" }curl -X POST "https://api.multitiendas.shop/public/appointments/15/cancel" \
-H "Authorization: Bearer TU_TOKEN" \
-H "X-Tenant: mi-empresa" \
-H "Content-Type: application/json" \
-d '{"reason": "Cliente solicitó cancelación"}'Ver Cita
Obtiene el detalle completo de una cita por su ID.
curl -H "Authorization: Bearer TU_TOKEN" \
-H "X-Tenant: mi-empresa" \
"https://api.multitiendas.shop/public/appointments/15"{
"success": true,
"data": {
"appointment": {
"id": 15,
"status": "confirmed",
"appointment_date": "2026-04-15",
"start_time": "14:30",
"end_time": "15:15",
"customer_name": "María Rodriguez",
"customer_email": "[email protected]",
"employee": { "id": 1, "nombre": "Ana García" },
"service": { "id": 1, "nombre": "Corte Clásico", "precio": 25000 }
}
}
}Slots Disponibles
Retorna los horarios disponibles de un empleado para una fecha y servicio específicos.
| Parámetro | Tipo | Descripción |
|---|---|---|
employee_id | integer | *ID del empleado |
service_id | integer | *ID del servicio (para calcular duración) |
date | date | *Fecha a consultar (YYYY-MM-DD) |
curl -H "Authorization: Bearer TU_TOKEN" \
-H "X-Tenant: mi-empresa" \
"https://api.multitiendas.shop/public/appointments/slots?employee_id=1&service_id=1&date=2026-04-15"{
"success": true,
"data": {
"date": "2026-04-15",
"employee_id": 1,
"slots": [
{ "start_time": "08:00", "end_time": "08:45", "available": true },
{ "start_time": "08:45", "end_time": "09:30", "available": false },
{ "start_time": "09:30", "end_time": "10:15", "available": true },
{ "start_time": "10:15", "end_time": "11:00", "available": true }
]
}
}¿Listo para integrar?
Solicita tu API Token y empieza a construir en minutos. Nuestro equipo te acompaña en la integración.