Documentación de API
Introducción
Éste documento explicativo define y muestra la manera de integrar aplicaciones
externas con la API de [Link].
Todas las peticiones deben incluir en el encabezado (header) el campo apiKey, cuyo
valor será generado desde el módulo de "Integraciones" en
[Link]
Tabla de contenido
1. Recetas
Listar recetas
Crear receta
Agregar ingrediente
2. Ordenes
Listar ordenes
Obtener orden por ID
3. Movimientos de materia prima
Listar movimientos
Obtener movimiento por ID
Crear Movimiento de materia prima
Recetas
URL: [Link]
Métodos:
1. Listar recetas:
Descripción Éste endpoint no recibe parámetros, responde con un listado de
todas las recetas asociadas al usuario.
Endpoint: /list
Método: GET
Respuesta:
{
"items": [{
"id": "integer",
"sku": "string",
"name": "string",
"createdAt": "string",
"pva": "float",
"vat": "float",
"wholesalePva": "float",
"quantityType": "integer",
"quantityTypeText": "string",
"estimatedProductionTime": "integer",
"holded": "boolean",
"holdedId": "integer",
"nutritionalFacts": [{
"portion": "float",
"energeticValue": "float",
"fats": "float",
"saturatedFats": "float",
"monounsaturatedFats": "float",
"polyunsaturatedFats": "float",
"transFats": "float",
"omegaFats": "float",
"sugar": "float",
"carbohydrates": "float",
"salt": "float",
"protein": "float",
"extraFields": "json"
}]
}],
"count": "integer"
}
2. Crear receta:
Descripción Responde con el ID de la receta creada.
Endpoint: /
Método: POST
Parámetros admitidos en la petición
Enviar
Parámetro Tipo Descripción Requer
en
name string body Nombre de la receta SI
sku string body SKU Único de la receta SI
Precio Por (1:
quantityType integer body SI
Kilogramos;2:Unidades)
Tiempo de producción
estimatedProductionTime integer body SI
de receta en minutos
expirationDays string body Días de vida útil SI
Porcentaje de
pvp integer body SI
beneficio estimado
vat float body IVA SI
pva float body Precio SI
Determina si la receta
isPublic boolean body SI
es pública o no
piecesObtained integer body Cantidad de pizas NO
obtenidas (solo
recetas en unidades)
Indicaciones de
indications string body NO
elaboración
criticalStock string body Stock crítico NO
ID de ubicación por
location integer body NO
defecto
destino stock por
defecto(0:
stockDefault integer body NO
Ingredientes ; 1:
Producto terminado)
wholesalePrice float body Precio mayorista NO
energeticValue float body Valor energético en kJ NO
fats float body Grasas NO
saturatedFats float body Grasas saturadas NO
monounsaturatedFats float body Grasas monosaturadas NO
polyunsaturatedFats float body Grasas Polisaturadas NO
transFats float body Grasas trans NO
omegaFats float body Grasas omega NO
salt float body Sal NO
sugars float body Azúcar NO
carbohydrates float body Carbohidratos NO
protein float body Proteína NO
portion float body Porción NO
portionName string body Nombre de porción NO
Etiquetas asociadas a
tags array body NO
receta
Respuestas: Response - 201 OK
{
"id": "integer"
}
Response - 422 Error en validación de SKU
{
"message": "SKU cannot be duplicated"
}
Response - 422 Error en validación de formulario
{
"message": "Validation errors"
}
3. Agregar ingrediente a receta:
Descripción
Responde con el ID de la relación Ingrediente Receta.
Endpoint: /add-ingredient
Método: POST
Parámetros admitidos en la petición
Enviar
Parámetro Tipo Descripción Requerido
en
ID de la
recipeId integer body SI
receta
ID del
ingredientId integer body SI
ingrediente
Cantidad del
ingredientQuantity float body ingrediente en SI
gramos
Peso del
ingredientWeight float body ingrediete en SI
gramos
Uso o destino
del
ingDestination string body NO
ingrediente en
la receta
Respuestas:
Response - 201 OK
{
"id": "integer"
}
Response - 401 Receta no pertenece a compañía
{
"message": "Receta no pertenece a compañía"
}
Response - 401 Ingrediente no pertenece a compañía
{
"message": "Ingrediente no pertenece a compañía"
}
Response - 422 Error en validación de formulario
{
"message": "Validation errors"
}
Órdenes
URL: [Link]
Métodos:
1. Listar órdenes:
Descripción Éste endpoint responde con un listado de todos los pedidos
asociadas al usuario, activos e inactivos.
Endpoint: /list
Método: GET
Parámetros admitidos en la petición
Enviar
Parámetro Tipo Descripción
en
Nombre de cliente, número de pedido,
search string query
prefijo de tienda
id string query ID de pedido
Respuesta: Response - 200 OK
{
"items": [{
"id": "integer",
"customerId": "integer",
"customerName": "string",
"orderNumber": "integer",
"prefix": "string",
"createdAt": "string",
"deliveredAt": "string",
"observations": "string",
"status": "integer",
"statusText": "string",
"responsible": "string",
"products": [{
"id": "integer",
"recipeId": "integer",
"recipeName": "string",
"recipeSku": "string",
"holded": "boolean",
"holdedId": "string"
}]
}],
"count": "integer"
}
2. Obtener orden por ID:
Descripción
Responde con el objeto Orden.
Endpoint: /{id}
Método: GET
Parámetros admitidos en la petición
Parámetro Tipo Enviar en Descripción Requerido
id integer query ID de la orden SI
Respuestas:
Response - 200 OK
{
"items": {
"id": "integer",
"customerId": "integer",
"customerName": "string",
"orderNumber": "integer",
"prefix": "string",
"createdAt": "string",
"deliveredAt": "string",
"observations": "string",
"status": "integer",
"statusText": "string",
"responsible": "string",
"products": [
{
"id":"integer",
"recipeId":"integer",
"recipeName":"string",
"recipeSku":"integer",
"holded":"boolean",
"holdedId":"string"
},
{...},
{...}
]
}
}
Response - 401 Orden no pertenece a compañía
{
"message": "Orden no pertenece a compañía"
}
Movimientos de materia prima
URL: [Link]
Métodos:
1. Listar movimientos:
Descripción Éste endpoint responde con un listado de todos los pedidos
asociadas al usuario, activos e inactivos.
Endpoint: /list
Método: GET
Parámetros admitidos en la petición
Enviar
Parámetro Tipo Descripción
en
Nombre de cliente, número de pedido,
search string query
prefijo de tienda
id string query ID de Movimientop
Respuesta: Response - 200 OK
{
"items": [{
"id": "integer",
"lotNumber": "integer",
"createdAt": "string",
"inputType": "integer",
"totalNet": "float",
"total": "float",
"supplier": "string",
"user": "string",
"materials": [{
"id": "integer",
"ingredientId": "integer",
"ingredientName": "string",
"unit": "string",
"quantity": "float",
"price": "float",
"locationId": "integer",
"locationName": "string",
"expiryDate": "string",
"originLotNumber": "string",
"decrease": "float",
"temperature": "integer",
"observations": "string"
}]
}],
"count": "integer"
}
2. Obtener movimiento por ID:
Descripción
Responde con el objeto movimiento de materia prima.
Endpoint: /{id}
Método: GET
Parámetros admitidos en la petición
Parámetro Tipo Enviar en Descripción Requerido
id integer query ID del movimiento SI
Respuestas:
Response - 200 OK
{
"items": {
"id": "integer",
"lotNumber": "integer",
"createdAt": "string",
"inputType": "integer",
"totalNet": "float",
"total": "float",
"supplier": "string",
"user": "string",
"materials": [{
"id": "integer",
"ingredientId": "integer",
"ingredientName": "string",
"unit": "string",
"quantity": "float",
"price": "float",
"locationId": "integer",
"locationName": "string",
"expiryDate": "string",
"originLotNumber": "string",
"decrease": "float",
"temperature": "integer",
"observations": "string"
}]
}
}
Response - 401 Movimiento no pertenece a compañía
{
"message": "Movimiento no pertenece a compañía"
}
2. Crear movimiento de materia prima:
Descripción Responde con el ID del movimiento creado.
Endpoint: /
Método: POST
Parámetros admitidos en la petición
Enviar
Parámetro Tipo Descripción Requerido
en
lotNumber string body Número de lote origen SI
inputType integer body Admite 0(entrada) o 1(salida) SI
supplier integer body ID de proveedor NO
Contiene todos los elementos
materials array body SI
de materia prima
** Parámetros que conforman el objeto "material" enviando en "materials" **
Enviar
Parámetro Tipo Descripción Requerido
en
ingredientId integer body ID de ingrediente SI
price float body Precio unitario SI
originLotNumber string body Número de lote origen SI
grossWeight float body Peso bruto SI
netWeight float body Peso neto SI
Número de lote
internalLotNumber string body SI
interno
location integer body ID de ubicación SI
decrease float body Merma NO
Temperatura de
inletTemperature integer body NO
entrada
observations string body Observaciones NO
expiryDate string body Fecha de expíración NO
(Y-m-d)
Respuestas:
Response - 201 OK
{
"id": "integer"
}
Response - 422 Error en validación de formulario
{
"message": "Validation errors"
}