API REST
Endpoints disponibles para integracion con ODECIS
Todos los endpoints requieren autenticacion JWT. Incluye el header Authorization: Bearer <token> en cada peticion.
Base URL: https://api.odecis.com
Productos
/productsLista todos los productos de tu organizacion
Params: ?page=1&limit=20&search=texto&categoryId=uuid
/products/:idObtiene el detalle de un producto especifico
/productsCrea un nuevo producto
/products/:idActualiza un producto existente
/products/:idElimina un producto (soft delete)
Ejemplo: Crear producto
curl -X POST https://api.odecis.com/products \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Laptop HP ProBook",
"sku": "LAP-HP-001",
"price": 2499.90,
"cost": 1800.00,
"categoryId": "uuid-categoria",
"trackStock": true
}'Inventario
/stockLista el stock actual de todos los productos
Params: ?locationId=uuid&lowStock=true
/stock/:productIdStock de un producto en todas las ubicaciones
/adjustmentsCrea un ajuste de inventario (entrada/salida)
/adjustmentsLista ajustes de inventario
/transfersLista transferencias entre ubicaciones
/transfersCrea una transferencia entre ubicaciones
Ventas
/sales-ordersLista ordenes de venta
Params: ?status=pending&from=2025-01-01&to=2025-12-31
/sales-orders/:idDetalle de una orden de venta
/sales-ordersCrea una nueva orden de venta
/sales-orders/:id/statusActualiza el estado de una orden
Clientes
/customersLista todos los clientes
Params: ?search=nombre&type=natural|juridica
/customers/:idDetalle de un cliente
/customersCrea un nuevo cliente
/customers/:idActualiza un cliente
Facturacion Electronica
/facturacion/comprobantesLista comprobantes electronicos emitidos
Params: ?tipo=01|03|07&from=2025-01-01
/facturacion/comprobantes/:idDetalle de un comprobante con XML/PDF
/facturacion/emitirEmite un nuevo comprobante electronico
Formato de respuesta
Todas las respuestas siguen este formato:
// Exito (200, 201)
{
"id": "uuid",
"name": "...",
// ... datos del recurso
}
// Lista con paginacion
{
"data": [...],
"meta": {
"total": 150,
"page": 1,
"limit": 20,
"totalPages": 8
}
}
// Error (400, 401, 403, 404, 500)
{
"statusCode": 400,
"message": "Descripcion del error",
"error": "Bad Request"
}