API REST

Documentación de endpoints, autenticación y ejemplos de uso.

https://peddaleo.com.mx/api/

https://peddaleo.com.mx/api/ping  →  Health check

JWT Bearer Token

POST/auth

Login - Obtener token JWT

{
  "usuario": "peddaleo",
  "password": "tu_contraseña",
  "app": "ventas"
}

Respuesta:

{
  "ok": true,
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "taller": {
    "id": 1,
    "nombre": "Peddaleo Bikestore",
    "plan": "pro",
    "trial_days_remaining": 25
  }
}

Notas y Trabajos

GET/ping

Health check - no requiere autenticación

{"app":"Peddaleo API","version":"1.7","status":"ok"}
GET/notas?pendientes&app=kiosco

Obtener notas pendientes (polling Kiosco/Pizarrón)

GET/notas?activas&app=kiosco

Obtener todas las notas activas (carga inicial)

POST/notas

Crear o actualizar nota

{
  "folio": "PED-ABR-001",
  "cliente_nombre": "Juan Pérez",
  "cliente_telefono": "5512345678",
  "bicicleta": "Trek Marlin 5",
  "servicios": [{"nombre":"Afinación","cantidad":1,"precio":350}],
  "total": 350,
  "estado": "activa"
}
GET/sync?app=ventas

Sincronización completa por app (badges, conteos)

GET/clientes

Listar clientes del taller (con puntos fidelidad)

GET/empleados

Listar empleados/mecánicos del taller

GET/inventario

Listar inventario de refacciones

GET/servicios

Listar servicios predefinidos del taller

Autenticación

Authorization: Bearer <tu_token_jwt>
Content-Type: application/json
CódigoSignificado
200OK - Petición exitosa
201Created - Recurso creado
400Bad Request - Parámetros inválidos
401Unauthorized - Token inválido o expirado
403Forbidden - Sin permisos
404Not Found - Endpoint no existe
500Internal Server Error - Error del servidor

Petición completa

# Obtener token
TOKEN=$(curl -s -X POST https://peddaleo.com.mx/api/auth \
  -H "Content-Type: application/json" \
  -d '{"usuario":"peddaleo","password":"tu_pass"}' \
  | grep -o '"token":"[^"]*"' | cut -d'"' -f4)

# Usar token para obtener notas
curl -X GET "https://peddaleo.com.mx/api/notas?activas&app=kiosco" \
  -H "Authorization: Bearer $TOKEN"