API para Desarrolladores

API REST de Multitiendas

Integra tu aplicación con el sistema POS completo. Productos, cotizaciones, citas y más — directamente desde tu código.

Autenticación BearerJSON responsesRate limitingWebhooksSDKs
URL base:https://api.multitiendas.shop/public
Autenticación:Bearer Token
Formato:JSON (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

Para obtener tu API Token: Ve a Configuración → Acceso API dentro de la plataforma, o contáctanos por WhatsApp al 3102859780 para una clave de prueba.

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.

Headers requeridos en cada petición
Authorization: Bearer TU_API_TOKEN
X-Tenant: mi-empresa
HeaderRequeridoDescripción
AuthorizationToken de acceso en formato Bearer TU_TOKEN. Obtenido desde Configuración → Acceso API.
X-TenantIdentificador único de tu empresa en Multitiendas (tu subdominio o slug). Ejemplo: mi-tienda.
AcceptRecomendadoUsa siempre application/json para recibir respuestas en JSON.
Nunca expongas tu API Token en el frontend o en repositorios públicos. Úsalo siempre desde tu servidor backend o variables de entorno.

Errores HTTP

CódigoSignificadoCausa común
200OKSolicitud exitosa
201CreatedRecurso creado exitosamente
400Bad RequestParámetros inválidos o faltantes
401UnauthorizedToken inválido, expirado o faltante
403ForbiddenEl token no tiene permiso para este endpoint
404Not FoundEl recurso no existe
409ConflictYa existe un recurso con los mismos datos
422Unprocessable EntityError de validación de datos
429Too Many RequestsRate limit alcanzado — espera y reintenta
500Server ErrorError interno del servidor
Endpoints de Productos

Listar Productos

Obtiene el catálogo completo de productos con filtros y paginación.

GEThttps://api.multitiendas.shop/public/productsproducts:read
Parámetros
ParámetroTipoDescripción
limitintegerCantidad de productos por página (máx. 100). Default: 20
offsetintegerNúmero de productos a omitir. Default: 0
categoryintegerID de categoría para filtrar
statusstringEstado: active, inactive. Default: active
Ejemplos de código
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"
Respuesta
200 OK — Respuesta de ejemplo
{
  "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
    }
  }
}
Endpoints de Cotizaciones

Crear Cotización

Genera una cotización con los productos seleccionados. Retorna URL de PDF descargable.

POSThttps://api.multitiendas.shop/public/quotationsquotations:create
Cuerpo de la petición (JSON)
{
  "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
}
Ejemplos de código
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 }]
  }'
Respuesta
200 OK — Respuesta de ejemplo
{
  "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.

GEThttps://api.multitiendas.shop/public/quotations/{id}/pdfquotations:read
Ejemplos de código
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"
Endpoints de Citas

Empleados Disponibles

Lista empleados con horarios y servicios que ofrecen. Usa esta información para mostrar disponibilidad en tu UI.

GEThttps://api.multitiendas.shop/public/appointments/employeesappointments:read
Ejemplos de código
curl -H "Authorization: Bearer TU_TOKEN" \
     -H "X-Tenant: mi-empresa" \
     "https://api.multitiendas.shop/public/appointments/employees"
Respuesta
200 OK — Respuesta de ejemplo
{
  "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.

POSThttps://api.multitiendas.shop/public/appointmentsappointments:create
Cuerpo de la petición (JSON)
{
  "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
}
Ejemplos de código
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.

GEThttps://api.multitiendas.shop/public/appointments/customer/{email}appointments:read
Parámetros
ParámetroTipoDescripción
statusstringFiltrar por estado: pending, confirmed, cancelled, completed
from_datedateFecha desde (YYYY-MM-DD)
to_datedateFecha hasta (YYYY-MM-DD)
Ejemplos de código
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.

PUThttps://api.multitiendas.shop/public/appointments/{id}appointments:update
Solo se pueden editar citas que están al menos 30 minutos en el futuro y no han sido canceladas.
Cuerpo de la petición (JSON)
{
  "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
}
Ejemplos de código
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.

POSThttps://api.multitiendas.shop/public/appointments/{id}/confirmappointments:update
Ejemplos de código
curl -X POST "https://api.multitiendas.shop/public/appointments/15/confirm" \
  -H "Authorization: Bearer TU_TOKEN" \
  -H "X-Tenant: mi-empresa"
Respuesta
200 OK — Respuesta de ejemplo
{
  "success": true,
  "message": "Cita confirmada exitosamente",
  "data": { "appointment": { "id": 15, "status": "confirmed" } }
}

Cancelar Cita

Cancela una cita existente. Requiere motivo de cancelación.

POSThttps://api.multitiendas.shop/public/appointments/{id}/cancelappointments:update
Cuerpo de la petición (JSON)
{ "reason": "Cliente solicitó cancelación" }
Ejemplos de código
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.

GEThttps://api.multitiendas.shop/public/appointments/{id}appointments:read
Ejemplos de código
curl -H "Authorization: Bearer TU_TOKEN" \
     -H "X-Tenant: mi-empresa" \
     "https://api.multitiendas.shop/public/appointments/15"
Respuesta
200 OK — Respuesta de ejemplo
{
  "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.

GEThttps://api.multitiendas.shop/public/appointments/slotsappointments:read
Parámetros
ParámetroTipoDescripción
employee_idinteger*ID del empleado
service_idinteger*ID del servicio (para calcular duración)
datedate*Fecha a consultar (YYYY-MM-DD)
Ejemplos de código
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"
Respuesta
200 OK — Respuesta de ejemplo
{
  "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.