Import the proposal as a new menu
Partner key + restaurant key. Creates a new menu that is turned off (isActive: false) and is not the default menu, with categories, products, sizes and allergens in one transaction. No existing menu is overwritten or changed. Customers do not see it until the restaurant turns it on and makes it the default menu (or gives it a schedule); turning it on is not enough while another menu is the default.
Without proposal the stored proposal is used (with changes made in the dashboard). The name is “Importert DD.MM.YYYY” (Oslo) when menuName is left out. A second commit, also after a lost response, gives 409 MENU_IMPORT_CLOSED with details.menuId, so a retry finds the menu. Imports from before the restaurant came to the partner give 404. At most 10 per hour per restaurant and 30 changes per minute per partner.
Authentication
The partner key, sent as Authorization: Bearer lbp_test_…. Created in LettBestilt Partner under Partner key. It belongs to the partner, not to a restaurant, and only works against /api/v1/partner. Server to server only: a request with an Origin header is rejected with 403 FORBIDDEN. A test key sees and creates only sandboxes; live partner keys are not available yet. A revoked key, a restaurant key (lbs_…) here, or a suspended or archived partner returns 401 UNAUTHORIZED; an expired key returns 401 KEY_EXPIRED.
The restaurant’s own key (lbs_test_… or lbs_live_…), sent in X-LettBestilt-Restaurant-Key together with the partner key for calls about one restaurant. The key must have full access (scope *, otherwise 403 INSUFFICIENT_SCOPE), belong to a restaurant the partner owns, and be in the same environment as the partner key (otherwise 401 UNAUTHORIZED). A slug that does not exist, belongs to another partner or does not match the key always gives the same 404 RESTAURANT_NOT_FOUND. Older keys without an environment in the prefix (lbs_<random>) are not accepted here; rotate them in LettBestilt Partner.
Path parameters
The import’s id.
Request
Det commit leser. Andre felt (confidence, reasons, warnings, stats …) ignoreres, så hele MenuImportProposal kan også sendes. Minst ett produkt, høyst 60 kategorier og 800 produkter.

