---
title: "Updates white label config"
method: PUT
path: "/v2/companies/{companyId}/white-label-config"
tags: ["Companies"]
---

# Updates white label config

`PUT /v2/companies/{companyId}/white-label-config`

## Request

- Base URL: `https://api-ext-sboxmeta.partners.spotnana.com`
- URL: `https://api-ext-sboxmeta.partners.spotnana.com/v2/companies/{companyId}/white-label-config`
- Auth: HTTP bearer

This endpoint stores white label config for the company at different entity levels.

## Query parameters

- `companyRole` 'ORG' | 'TMC' | 'PARTNER_TMC' | 'HR_FEED_CONNECTOR' | 'TRIPS_DATA_CONNECTOR' | 'GLOBAL', required: Role of the company.

## Request body

- WhiteLabelConfig: Whitelabel configuration.
  - `companyName` string
  - `colors` ColorWhiteLabelConfig: Whitelabel configuration related to colours.
    - `primary` string
    - `primaryDark` string
    - `primaryLight` string
    - `primaryPale` string
    - `onPrimary` string
    - `secondary` string
    - `secondaryDark` string
    - `secondaryLight` string
    - `secondaryPale` string
    - `onSecondary` string
    - `error` string
    - `errorDark` string
    - `errorLight` string
    - `errorPale` string
    - `onError` string
  - `webLinks` WebLinksConfig: Weblinks which are parts of WhiteLabelConfig.
    - `logoHeader` string
    - `logoFooter` string
    - `companyWebsiteAddress` string
    - `homePage` string
    - `itineraryPage` string
    - `disclaimerPage` string
    - `privacyPage` string
    - `hardApprovalUrl` string
    - `itineraryFlightStatsUrl` string
    - `appEmbedScriptUrl` string
    - `logoNavigationLink` string
    - `illustration` string
    - `poweredBySpotnana` boolean
    - `logoutRedirectUrl` string
    - `faviconUrl` string: Display logo on the browser title.
    - `appDownloadLinks` AppDownloadLinksConfig: App store or QR links for downloading app.
      - `androidPlayStoreUrl` string
      - `iosAppStoreUrl` string
      - `qrCodeUrl` string
    - `socialMediaLinks` SocialMediaLinksConfig: Social media links.
      - `facebookUrl` string
      - `twitterUrl` string
      - `instagramUrl` string
    - `termsOfUse` string: Terms of service/legal agreement between a service provider and a person who wants to use service.
    - `illustrationActionUrl` string
    - `checkoutCoverImageUrl` string: Cover image to be shown on checkout page.
    - `postCcVerificationCallbackUrl` string: Post credit card verification callback URL.
    - `loyaltyLinkedImageUrl` string: Image URL for loyalty linked page.
    - `onboardingFinalizeImageUrl` string: Image URL for onboarding finalize page.
    - `inviteUserImageUrl` string: Image URL for invite user page.
    - `enrollmentSuccessImageUrl` string: Image URL for enrollment success page.
    - `takeActionPath` string: Email CTA routing override for embedded/white-labeled deployments. "Take action" CTA (Arranger email) destination — a full URL (e.g. a partner-hosted wrapping page that redirects into their embedded iframe), same convention as itineraryPage/hardApprovalUrl, used as-is with no base-URL prefixing. Unset falls back to the existing hardcoded native path.
    - `bookMyTripPath` string: Email CTA routing override for embedded/white-labeled deployments. "Book my trip" CTA (event invite/reminder emails) destination — a full URL, same convention as itineraryPage/hardApprovalUrl, used as-is with no base-URL prefixing. Unset falls back to the existing hardcoded native path.
    - `viewEventDetailsPath` string: Email CTA routing override for embedded/white-labeled deployments. "View event details" CTA (event invite email) destination — a full URL, same convention as itineraryPage/hardApprovalUrl, used as-is with no base-URL prefixing. Unset falls back to the existing hardcoded native path.
    - `downloadPath` string: Partner URL for the "Download file" email CTA. Supports %s for the document id. Unset falls back to the existing document-download link.
  - `fromEmailAddress` string
  - `fontFamily` string
  - `emailFontFamily` string
  - `fontFamilyCss` string
  - `emailClientConfig` EmailClientConfig: Email Client Config
    - `client` 'AWS_SES' | 'SENDGRID', required
    - `credentials` EmailClientCredentials, required: Email client credentials for the company.
      - `emailClientSecretKey` EmailClientSecretKey, required: EmailClientSecretKey
        - `secretKey` string
        - `versionId` string
    - `defaultSenderAddress` string, required: The default sender address to be used for the configured client
    - `defaultSenderName` string: The default sender name to be used for the configured client
  - `clientRoutingBasePath` string: Base path used by Spotnana OBT application to invoke API calls. Default path value is /
  - `routingConfig` RoutingConfig: App routing configuration.
    - `appHomeRoute` string
  - `privacyDisclaimer` PrivacyDisclaimer: Html to shown on the the login page. This will be text with hyper links.
    - `show` boolean
    - `html` string: String containing the html.
  - `visaRequirements` string: Rich text content for visa requirements information
  - `themeConfig` ThemeConfigV2: Theming V2 config — maps 1:1 to the FE TWhiteLabelConfigV2 shape. Additive and opt-in.
    - `fontFamily` string[]: Font stack — first font that loads wins. Empty = use V1 fontFamily.
    - `palette` ThemePalette: Semantic palette split by color mode. Empty token = use the Blocks default.
      - `light` ThemeColorTokens: Semantic-role-based tokens (bg / text / border / icon / appShell) plus per-mode component colours (tabs / link).
        - `bg` ThemeBgTokens: Background tokens. surface is the app/page background.
          - `surface` string
          - `surface02` string
          - `brand` string
          - `brandSubtle` string
          - `brandHover` string
          - `hover` string
        - `text` ThemeTextTokens
          - `primary` string
          - `secondary` string
          - `brand` string
          - `link` string
        - `border` ThemeBorderTokens
          - `light` string
          - `medium` string
          - `dark` string
          - `brand` string
          - `brandSubtle` string
          - `hover` string
        - `icon` ThemeIconTokens
          - `brand` string
        - `appShell` ThemeAppShellTokens: App-shell (top nav / frame) colour tokens. Part of the semantic palette so each is set per color mode, alongside bg / text / border / icon.
          - `bg` string: App-shell background colour (hex).
          - `bgHover` string: App-shell hover/active nav pill background (hex).
          - `text` string: App-shell default nav text + icon colour (hex).
          - `textHover` string: App-shell hover/active nav text + icon colour (hex).
        - `tabs` ThemeTabsColorTokens: Per-mode Tabs colours — active-tab underline and hover. Authored separately for light and dark so a colour set in one mode does not bleed into the other.
          - `underlineColor` string: Active/selected tab underline (indicator) colour as a hex value. Empty = use the Blocks default.
          - `hoverColor` string: Tab hover colour (hover underline + filled tab hover background) as a hex value. Empty = use the Blocks default.
        - `link` ThemeLinkColorTokens: Per-mode Link colour. Authored separately for light and dark so a colour set in one mode does not bleed into the other.
          - `color` string: Link text + underline colour as a hex value. Empty = use the Blocks default (text.link).
      - `dark` ThemeColorTokens: Semantic-role-based tokens (bg / text / border / icon / appShell) plus per-mode component colours (tabs / link).
        - `bg` ThemeBgTokens: Background tokens. surface is the app/page background.
          - `surface` string
          - `surface02` string
          - `brand` string
          - `brandSubtle` string
          - `brandHover` string
          - `hover` string
        - `text` ThemeTextTokens
          - `primary` string
          - `secondary` string
          - `brand` string
          - `link` string
        - `border` ThemeBorderTokens
          - `light` string
          - `medium` string
          - `dark` string
          - `brand` string
          - `brandSubtle` string
          - `hover` string
        - `icon` ThemeIconTokens
          - `brand` string
        - `appShell` ThemeAppShellTokens: App-shell (top nav / frame) colour tokens. Part of the semantic palette so each is set per color mode, alongside bg / text / border / icon.
          - `bg` string: App-shell background colour (hex).
          - `bgHover` string: App-shell hover/active nav pill background (hex).
          - `text` string: App-shell default nav text + icon colour (hex).
          - `textHover` string: App-shell hover/active nav text + icon colour (hex).
        - `tabs` ThemeTabsColorTokens: Per-mode Tabs colours — active-tab underline and hover. Authored separately for light and dark so a colour set in one mode does not bleed into the other.
          - `underlineColor` string: Active/selected tab underline (indicator) colour as a hex value. Empty = use the Blocks default.
          - `hoverColor` string: Tab hover colour (hover underline + filled tab hover background) as a hex value. Empty = use the Blocks default.
        - `link` ThemeLinkColorTokens: Per-mode Link colour. Authored separately for light and dark so a colour set in one mode does not bleed into the other.
          - `color` string: Link text + underline colour as a hex value. Empty = use the Blocks default (text.link).
    - `overrides` ThemeOverrides: Per-component style overrides. Extensible — start with button.
      - `button` ThemeButtonOverride
        - `borderRadius` ThemeButtonRadius: Button corner shape override. Stores only the picked preset id (like ThemeShape) — pixel radii are resolved from the client preset table at runtime, so presets stay tunable in one place.
          - `cornerShapeId` 'DEFAULT' | 'BRUTALIST' | 'SQUARE' | 'SOFT' | 'SEMI' | 'ROUNDED' | 'PILL': Corner shape preset id. Pixel radii are resolved from the client preset table at runtime, so presets stay tunable in one place.
        - `textTransform` 'NONE' | 'UPPERCASE': Label casing. Unset = NONE (shipped default).
      - `ghostButton` ThemeTextCasingOverride: Label casing override for a component slot. Each slot is independent — there is no global casing to inherit.
        - `textTransform` 'NONE' | 'UPPERCASE': Label casing. Unset = NONE (shipped default).
      - `tabs` ThemeTabsOverride: Tabs component overrides — label casing only. Tab corners follow the global corner shape and the active-underline/hover colours are per-mode palette tokens (ThemeTabsColorTokens), so neither is overridden here.
        - `textTransform` 'NONE' | 'UPPERCASE': Label casing. Unset = NONE (shipped default).
      - `link` ThemeLinkOverride: Link component overrides — label casing only. Link colour is a per-mode palette token (ThemeLinkColorTokens), so it is not overridden here.
        - `textTransform` 'NONE' | 'UPPERCASE': Label casing. Unset = NONE (shipped default).
    - `shape` ThemeShape: Global corner shape. Stores only the user-picked preset id — pixel radii are resolved from the client preset table at runtime, so presets stay tunable in one place.
      - `cornerShapeId` 'DEFAULT' | 'BRUTALIST' | 'SQUARE' | 'SOFT' | 'SEMI' | 'ROUNDED' | 'PILL': Corner shape preset id. Pixel radii are resolved from the client preset table at runtime, so presets stay tunable in one place.
  - `brandingVisibility` BrandingVisibility: Per-surface visibility of branding elements. Additive — default shows everything.
    - `headerLogo` SurfaceVisibility: Visibility of one branding element across surfaces. Each surface renderer honors only its own flag (e.g. email ignores hideOnWeb).
      - `hideOnWeb` boolean
    - `poweredBy` SurfaceVisibility: Visibility of one branding element across surfaces. Each surface renderer honors only its own flag (e.g. email ignores hideOnWeb).
      - `hideOnWeb` boolean
  - `emailTemplatesConfig` EmailTemplatesConfig: Email template overrides. Each unset field falls back to the generic template for that email.
    - `onboardingTemplateName` string: Stencil template name used for the onboarding invitation email. Unset or empty falls back to ONBOARDING_INVITATION.

## Response `200`

OK

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: The specified resource was not found.

## Changes

- **2026-09-25** `dd6d68e88955`: 1 info
  - added the new optional request property `emailTemplatesConfig`
- **2026-09-07** `aabdc23a9689`: 1 info
  - added the new optional request property `webLinks/downloadPath`
- **2026-08-18** `fc09f0cd1f4d`: 1 info
  - added the new optional request property `webLinks/enrollmentSuccessImageUrl`
- **2026-08-10** `53157961f1cd`: 3 warning, 14 info
  - removed the request property `themeConfig/overrides/button/borderRadius/large`
  - removed the request property `themeConfig/overrides/button/borderRadius/medium`
  - removed the request property `themeConfig/overrides/button/borderRadius/small`
  - added the new optional request property `themeConfig/overrides/button/borderRadius/cornerShapeId`
  - …13 more

[Operation history](https://skmtc.dev/spotnana/apis/company-api/changes/v2/companies/:companyId/white-label-config/put.md)

---

[API](https://skmtc.dev/spotnana/apis/company-api.md) - [All operations](https://skmtc.dev/spotnana/apis/company-api/llms.txt) - [OpenAPI document](https://skmtc.dev/spotnana/apis/company-api/revisions/184a1b415751?raw)
