Restofy Docs
Recetas de productos POST

Crear varias recetas de una vez

POST /api/recipes/create-recipes

Descripción

Registra hasta 100 recetas nuevas en una sola llamada, cada una con sus ingredientes y sub-recetas.

Detalles

Valida todo el lote antes de guardar: si una sola receta o uno de sus componentes tiene un problema no se crea nada y la respuesta indica la posición y el campo de cada error. Cada receta lleva al menos un ingrediente o una sub-receta, y cada ingrediente usa una unidad de su misma medida base. Las recetas nacen activas y permite una prueba previa que valida sin guardar nada.

Permisos requeridos

catalog.module recipes.module

El usuario solo necesita uno de los permisos listados.

Request

Nombre Tipo Requerido Reglas
dryRun bool No
default:0
items array Sí —
items[].ref string No
max:60
items[].name string Sí
min:1 max:150
items[].internalName string No
max:150
items[].description string No
max:2000
items[].quantity string Sí
decimal min_value:0
items[].unitId int Sí
min_value:1
items[].lines array Sí —
items[].lines[].inventoryItemId int Sí
min_value:1
items[].lines[].quantity string Sí
decimal min_value:0
items[].lines[].unitId int Sí
min_value:1
items[].subRecipes array No —
items[].subRecipes[].subRecipeId int Sí
min_value:1
items[].subRecipes[].quantity string Sí
decimal min_value:0

Ejemplo de request

curl -X POST https://restofy.pro/api/recipes/create-recipes \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <accessToken>" \
  -d '{
    "items": [
        {
            "name": "string",
            "quantity": "string",
            "unitId": 1,
            "lines": [
                {
                    "inventoryItemId": 1,
                    "quantity": "string",
                    "unitId": 1
                }
            ]
        }
    ]
}'

Los valores son demo: reemplázalos por datos reales del negocio.

Ejemplo de respuesta

Actualizado: 2026-11-02T19:00:57Z
HTTP 200

Request

{
    "items": [
        {
            "name": "Hamburguesa clásica 6ae8dda932641",
            "quantity": 1,
            "unitId": 3,
            "lines": [
                {
                    "inventoryItemId": 24,
                    "quantity": 0.2,
                    "unitId": 3
                }
            ],
            "ref": "hamburguesa"
        },
        {
            "name": "Hamburguesa clásica 6ae8dda932646",
            "quantity": 1,
            "unitId": 3,
            "lines": [
                {
                    "inventoryItemId": 24,
                    "quantity": 0.2,
                    "unitId": 3
                }
            ],
            "ref": "lasana",
            "subRecipes": [
                {
                    "subRecipeId": 1,
                    "quantity": 0.25
                }
            ]
        }
    ]
}

Response

{
    "success": true,
    "message": "Recetas creadas",
    "data": {
        "dryRun": false,
        "items": [
            {
                "index": 0,
                "ref": "hamburguesa",
                "recipeId": 6,
                "recipeUuid": "2f29ca3b-7f9e-4d48-a0b2-a56a327ed633"
            },
            {
                "index": 1,
                "ref": "lasana",
                "recipeId": 7,
                "recipeUuid": "62717051-fdf1-473a-b8f8-dbb6d4205786"
            }
        ]
    }
}