# 05 Menu Integration Audit Source checked: Uber Eats "Menu Integration" section shared by you. ## Implemented Now - Retrieve menu: - `GET /api/v1/uber/menu` - aligned to upstream `GET /v2/eats/stores/{store_id}/menus` - supports `menu_type` query values for delivery/pick-up/dine-in - applies `Accept-Encoding: gzip` for large payload responses - Full menu upload/replace: - `PUT /api/v1/uber/menu/replace` (primary) - aligned to upstream `PUT /v2/eats/stores/{store_id}/menus` - wrapper uploads gzip-compressed JSON (`Content-Encoding: gzip`) - supports optional `menu.menu_type` (delivery/pick-up/dine-in) - validates known menu_type enum values - Individual item updates: - `POST /api/v1/uber/menu/items` - aligned to upstream `POST /v2/eats/stores/{store_id}/menus/items/{item_id}` - request body is sparse update (only provided fields are changed) - supports `menu_type` enum for split delivery/pickup/dine-in menus - Example payload pack: - Added curated v2 JSON examples under `docs/examples/menus/v2/` - Added index doc `docs/developer-portal/05-menu-example-payloads.md` ## Existing Before - Legacy menu upsert helper route (`POST /api/v1/uber/menu/upsert`) - Store/menu module structure and app-token auth for menu calls ## Pending - Strict typed schemas for full menu payload entities (item, modifier group, category, menu) - Validation rules for image metadata limits and alcoholic item classifications - Dedicated mapper helpers for `core_price` and `bundled_items` enrichment