## Update Merchant Branding

Update the visual branding settings for your merchant account. This includes colors, typography, button styling, and display preferences for your payment interface.

All parameters are optional - you can update individual settings without affecting others. The endpoint returns true if the branding was successfully updated.

**Note:** For uploading logo and sidebar images, use the `generate-branding-upload-url` and `confirm-branding-upload` endpoints.

## Endpoint signature

```http
POST https://api.reservepay.com/merchants/update-branding HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Bearer <token>

{
  primary_color: string?,
  secondary_color: string?,
  sidebar_color: string?,
  sidebar_background_type: string?,
  tile_sidebar_image: boolean?,
  hide_logo: boolean?,
  heading_font_family: string?,
  heading_font_variant: string?,
  body_font_family: string?,
  body_font_variant: string?,
  use_iso_code: boolean?,
  hide_non_significant_zeros: boolean?,
  show_amount_in_button: boolean?,
  symbol_placement: string?,
  default_button_text: string?,
  button_shape: string?,
}
```

Returns: boolean

## Request arguments

### `primary_color` (string)

_Optional_. Primary color used for buttons and main elements (hex format, e.g., #FF0000).

### `secondary_color` (string)

_Optional_. Secondary color used for backgrounds and accents (hex format, e.g., #00FF00).

### `sidebar_color` (string)

_Optional_. Background color for the sidebar (hex format, e.g., #0000FF).

### `sidebar_background_type` (string)

_Optional_. The type of sidebar background to use (color or image).

Allowed values:

- `color`
- `image`

### `tile_sidebar_image` (boolean)

_Optional_. Whether to tile the sidebar image to fill the entire sidebar area.

### `hide_logo` (boolean)

_Optional_. Whether to hide the logo completely from the payment interface.

### `heading_font_family` (string)

_Optional_. Font family for headings. Must be a valid Google Font or default font.

### `heading_font_variant` (string)

_Optional_. Font weight variant for headings.

Allowed values:

- `Thin`
- `ExtraLight`
- `Light`
- `Regular`
- `Medium`
- `SemiBold`
- `Bold`
- `ExtraBold`
- `Black`

### `body_font_family` (string)

_Optional_. Font family for body text. Must be a valid Google Font or default font.

### `body_font_variant` (string)

_Optional_. Font weight variant for body text.

Allowed values:

- `Thin`
- `ExtraLight`
- `Light`
- `Regular`
- `Medium`
- `SemiBold`
- `Bold`
- `ExtraBold`
- `Black`

### `use_iso_code` (boolean)

_Optional_. Whether to use ISO currency codes instead of currency symbols.

### `hide_non_significant_zeros` (boolean)

_Optional_. Whether to hide decimal places when the amount has no subunits (e.g., $10 instead of $10.00).

### `show_amount_in_button` (boolean)

_Optional_. Whether to display the payment amount in the payment button.

### `symbol_placement` (string)

_Optional_. Whether to place currency symbols before or after the amount.

Allowed values:

- `use_default`
- `before_amount`
- `after_amount`

### `default_button_text` (string)

_Optional_. Default text to display on payment buttons.

### `button_shape` (string)

_Optional_. The border radius style for buttons.

Allowed values:

- `rounded_none`
- `rounded_full`
- `rounded_xs`
- `rounded_sm`
- `rounded_md`
- `rounded_lg`
- `rounded_xl`

## Errors specific to this endpoint

### `INVALID_ARGUMENTS`

This error occurs when the request contains invalid parameters.
Common cases include invalid hex color formats, unsupported font families,
or invalid font variants for the specified font family.

## Errors common to all endpoints

### `UNHANDLED_ERROR`

This error occurs when the server encounters an unexpected internal error that
it cannot handle gracefully. This typically happens due to bugs, infrastructure
issues, or edge cases that weren't anticipated during development.

### `INVALID_ARGUMENTS`

This error occurs when the request contains invalid or missing parameters.
Common cases include missing required fields, or values that don't match the
expected format or type.

### `BAD_VERSION`

This error occurs when making requests to an API version that does not exist.
This commonly happens when using an outdated SDK or when the API version
specified in the request URL is incorrect.
