Saltar a contenido
v26.3

REST API

DiKAS ofrece una amplia REST API con más de 340 endpoints públicos en 34 áreas. Con ella puede integrar DiKAS en su infraestructura existente. (Los endpoints internos y los /rest/ heredados se ocultan deliberadamente en la referencia pública.)

Autenticación

La API utiliza tokens JWT Bearer para la autenticación.

Solicitar token

POST /api/v1/auth/login
Content-Type: application/json

{
  "username": "admin",
  "password": "admin"
}

Respuesta:

{
  "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIs...",
    "refreshToken": "dGhpcyBpcyBhIH...",
    "expiresIn": 3600
  },
  "isSuccess": true
}

Usar el token

Establezca el token en el encabezado Authorization:

GET /api/v1/articles
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

Renovar el token

POST /api/v1/auth/refresh
Content-Type: application/json

{
  "accessToken": "eyJhbGciOiJI...",
  "refreshToken": "dGhpcyBpcyBh..."
}

Formato de la API

Todas las respuestas siguen el esquema:

{
  "data": { ... },
  "isSuccess": true,
  "message": null,
  "errors": null
}

En caso de error:

{
  "data": null,
  "isSuccess": false,
  "message": "Artikel nicht gefunden",
  "errors": ["Artikel mit ID 'art_123' existiert nicht"]
}

Resumen de endpoints

Artículos

Método Endpoint Descripción
GET /api/v1/articles Obtener todos los artículos
GET /api/v1/articles/{id} Obtener un solo artículo
POST /api/v1/articles Crear artículo
PUT /api/v1/articles/{id} Actualizar artículo
DELETE /api/v1/articles/{id} Eliminar artículo
GET /api/v1/article-groups Obtener todos los grupos
POST /api/v1/article-groups Crear grupo

Ejemplo: crear artículo

POST /api/v1/articles
Authorization: Bearer eyJ...
Content-Type: application/json

{
  "name": "Cola 0,3l",
  "price": 3.50,
  "taxClass": 0,
  "groupId": "artgrp_abc123"
}

Respuesta (201 Created):

{
  "data": {
    "id": "art_def456",
    "name": "Cola 0,3l",
    "price": 3.50,
    "taxClass": 0,
    "groupId": "artgrp_abc123",
    "isActive": true,
    "createdDate": "2026-03-05T18:30:00Z",
    "changedDate": "2026-03-05T18:30:00Z"
  },
  "isSuccess": true
}

Clientes

Método Endpoint Descripción
GET /api/v1/customers Todos los clientes
GET /api/v1/customers/{id} Un solo cliente
POST /api/v1/customers Crear cliente
PUT /api/v1/customers/{id} Actualizar cliente
DELETE /api/v1/customers/{id} Eliminar cliente
POST /api/v1/customers/{id}/credit Recargar saldo del cliente
POST /api/v1/customers/{id}/payout Pagar saldo del cliente
GET /api/v1/customers/{id}/transactions Historial del saldo del cliente

Mesas

Método Endpoint Descripción
GET /api/v1/tables Todas las mesas
GET /api/v1/tables/{id} Una sola mesa
POST /api/v1/tables Crear mesa
POST /api/v1/tables/{id}/gang Cambiar de tiempo / curso
POST /api/v1/tables/{id}/cleaned Marcar como limpia

Pedidos y pagos

Método Endpoint Descripción
POST /api/v1/open-bons Realizar pedido
POST /api/v1/open-bons/batch Varios pedidos
POST /api/v1/payments/direct-sale Venta directa
POST /api/v1/payments/table Pago de mesa
GET /api/v1/receipts Obtener recibos
POST /api/v1/receipts/{id}/void Anular recibo

Personal

Método Endpoint Descripción
GET /api/v1/staff Todos los empleados
POST /api/v1/staff Crear empleado
POST /api/v1/staff/switch Cambio de camarero

Cierre de caja

Método Endpoint Descripción
POST /api/v1/day-close Realizar cierre de caja
GET /api/v1/day-close Todos los cierres de caja
GET /api/v1/day-close/{id} Un solo cierre de caja

Informes

Método Endpoint Descripción
GET /api/v1/reports/revenue Informe de ventas
GET /api/v1/reports/top-articles Más y menos vendidos
GET /api/v1/reports/wgr Grupos de mercancías
GET /api/v1/reports/weekly Análisis semanal

Otros endpoints

Área Prefijo Endpoints
Vales / cupones /api/v1/vouchers CRUD, canje
Banca /api/v1/bank-transfers CRUD, importación
FinTS /api/v1/fints Consulta, TAN
DATEV /api/v1/datev Exportación, envío
Facturas /api/v1/invoices CRUD, PDF
Suscripciones /api/v1/subscriptions CRUD, facturación
Recordatorios de pago /api/v1/dunning Crear, enviar
Gastos /api/v1/spendings CRUD, adjuntos
Control de horario /api/v1/time-tracking Fichaje, informes
Taller /api/v1/work-orders CRUD, estado
Copia de seguridad /api/v1/restore Subir
Config /api/v1/config Leer, escribir

API heredada (Legacy)

Para compatibilidad con integraciones existentes hay endpoints heredados bajo /rest/:

Endpoint Descripción
/rest/cp/add/{key}/{plu} Registrar artículo
/rest/extern/customer/{key}/... CRUD de clientes
/rest/extern/voucher/{key}/... CRUD de vales
/rest/online/{key}/... Pedidos en línea

Los endpoints heredados utilizan claves de API en lugar de tokens JWT.

SignalR (tiempo real)

Para actualizaciones en tiempo real (Monitor de cocina, taller, estado de mesas):

const connection = new signalR.HubConnectionBuilder()
  .withUrl("/hubs/dikas", {
    accessTokenFactory: () => jwtToken
  })
  .build();

connection.on("OrderCreated", (data) => {
  console.log("Neue Bestellung:", data);
});

connection.on("TableStatusChanged", (data) => {
  console.log("Tisch-Status:", data);
});

await connection.start();

Swagger / OpenAPI

La referencia completa de la API con todos los 341 endpoints públicos (34 áreas) y esquemas:

Referencia de la API (Swagger) — Documentación interactiva con función de búsqueda

En una instancia de DiKAS en ejecución, Swagger también es accesible directamente en https://<server>/swagger.


Siguiente paso

Copia de seguridad y restauración — Respaldo de datos