{
"idempotency_key": "waste-2026-08-07-001",
"external_user_id": "user_kitchen",
"store_id": "str_main_01...",
"waste_reason_id": "wr_expired_01...",
"notes": "Found during morning prep",
"lines": [
{
"consume_by": "ITEM",
"item_id": "itm_tomato_01...",
"qty": 2,
"qty_base": 2000,
"base_unit_id": "unit_g_01...",
"unit_id": "unit_kg_01...",
"unit_label": "kg",
"unit_to_base_factor": 1000
}
]
}
{
"tracking_id": "trk_01j5k...",
"inventory_transaction_id": "txn_01j5k...",
"waste_event_id": "wst_01j5k...",
"idempotent": false
}
Waste Events
Create waste event
Records inventory discarded or consumed outside a normal sale. Lines can reference items, item tags, or subrecipe snapshots. Returns HTTP 202.
POST
/
api
/
v1
/
public
/
vendors
/
{vendorId}
/
operations
/
waste-events
{
"idempotency_key": "waste-2026-08-07-001",
"external_user_id": "user_kitchen",
"store_id": "str_main_01...",
"waste_reason_id": "wr_expired_01...",
"notes": "Found during morning prep",
"lines": [
{
"consume_by": "ITEM",
"item_id": "itm_tomato_01...",
"qty": 2,
"qty_base": 2000,
"base_unit_id": "unit_g_01...",
"unit_id": "unit_kg_01...",
"unit_label": "kg",
"unit_to_base_factor": 1000
}
]
}
{
"tracking_id": "trk_01j5k...",
"inventory_transaction_id": "txn_01j5k...",
"waste_event_id": "wst_01j5k...",
"idempotent": false
}
string
required
API key with
inventory:write scope.string
required
Vendor UUID.
string
required
Idempotency key (1–128 chars).
string
required
Actor for audit trail.
string
required
UUID of the store where waste occurred.
string
required
UUID of the waste reason (configured in Catalog → Waste reasons).
string
Optional notes.
object[]
required
Waste lines (at least 1). Each line has a
consume_by discriminator:Show Item line (consume_by: ITEM)
Show Item line (consume_by: ITEM)
Show Item tag line (consume_by: ITEM_TAG)
Show Item tag line (consume_by: ITEM_TAG)
string
Polling token.
string
Transaction UUID.
string
Created waste event UUID.
boolean
true if duplicate.{
"idempotency_key": "waste-2026-08-07-001",
"external_user_id": "user_kitchen",
"store_id": "str_main_01...",
"waste_reason_id": "wr_expired_01...",
"notes": "Found during morning prep",
"lines": [
{
"consume_by": "ITEM",
"item_id": "itm_tomato_01...",
"qty": 2,
"qty_base": 2000,
"base_unit_id": "unit_g_01...",
"unit_id": "unit_kg_01...",
"unit_label": "kg",
"unit_to_base_factor": 1000
}
]
}
{
"tracking_id": "trk_01j5k...",
"inventory_transaction_id": "txn_01j5k...",
"waste_event_id": "wst_01j5k...",
"idempotent": false
}

