Skip to navigation

Change your brand

Partner key only. Changes the fields you send, with the same rules as Brand in LettBestilt Partner; a field you leave out stays as it is, and null clears it. With expectedUpdatedAt (the updatedAt you read), nothing is written if the partner changed in the meantime (409 CHANGED).

The key must be created by an owner or administrator who still has that access (403 KEY_ROLE_FORBIDDEN otherwise). logoUrl and logoLightUrl must be files uploaded with POST /brand/logo and POST /brand/logo-light (the stored value is accepted). showPoweredBy: false and a new themeSidebarColor, themeActionColor or themeFont need white label (403 WHITE_LABEL_REQUIRED); removing them is always allowed. Colours are hex with a contrast of at least 4.5:1. Through LettBestilt MCP, websiteUrl, logoUrl and logoLightUrl give 403 HUMAN_REQUIRED: the website decides which webhook hosts are trusted and is set by a person, and MCP uploads logos as files. Logged with the field names.

Authentication

AuthorizationBearer

The partner key (lbp_test_… or lbp_live_…), sent as Authorization: Bearer lbp_… and created in LettBestilt Partner under Partner key. It belongs to the whole 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, and the key must never be in a browser. A TEST key sees and creates only sandboxes; LIVE keys work once LettBestilt Partner is open. A suspended or archived partner, a revoked key and a restaurant key (lbs_…) here give 401 UNAUTHORIZED; an expired key gives 401 KEY_EXPIRED.

Request

This endpoint expects an object.
logoUrlstring or nullOptionalformat: "uri"<=500 characters

Only a file uploaded to LettBestilt (POST /api/v1/partner/brand/logo); other addresses give 422 LOGO_NOT_ALLOWED. The stored value is accepted. null removes the logo.

logoLightUrlstring or nullOptionalformat: "uri"<=500 characters

Light logo for the dark sidebar of the owners’ dashboard. Only a file uploaded to LettBestilt (POST /api/v1/partner/brand/logo-light); other addresses give 422 LOGO_NOT_ALLOWED. The stored value is accepted. null removes it, and the normal logo is then shown inverted.

themeSidebarColorstring or nullOptional

The sidebar colour of the owners’ dashboard, hex. Must have a contrast of at least 4.5:1 against the light sidebar text (422 VALIDATION_FAILED otherwise). Stored as #rrggbb. A new colour needs white label (403 WHITE_LABEL_REQUIRED); null or an empty string gives LettBestilt’s default and is always allowed.

themeActionColorstring or nullOptional

The main colour (buttons and links) of the owners’ dashboard, hex. Must have a contrast of at least 4.5:1 against the light background (422 VALIDATION_FAILED otherwise). Stored as #rrggbb. A new colour needs white label (403 WHITE_LABEL_REQUIRED); null or an empty string gives the default and is always allowed.

themeFontenumOptional

The font of the owners’ dashboard: dm-sans (DM Sans), plus-jakarta-sans (Plus Jakarta Sans), nunito-sans (Nunito Sans), work-sans (Work Sans), source-sans-3 (Source Sans 3), figtree (Figtree). A new font needs white label (403 WHITE_LABEL_REQUIRED); null or an empty string gives the default and is always allowed.

supportEmailstring or nullOptionalformat: "email"<=160 characters

The support email address restaurant owners see (white label), and the Reply-To of your news.

supportPhonestring or nullOptional<=32 characters
websiteUrlstring or nullOptionalformat: "uri"<=500 characters
https only.
showPoweredBybooleanOptional

Shows “Drevet av LettBestilt” (“Powered by LettBestilt”). false needs white label (403 WHITE_LABEL_REQUIRED).

expectedUpdatedAtdatetimeOptional

updatedAt from GET. If the object has changed since, 409 CHANGED and nothing is written. Without it, nothing is checked.

Response

The brand after the change.
dataobject

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
409
Conflict Error
422
Unprocessable Entity Error
429
Too Many Requests Error