# Brand profiles

Source: https://parasend.com/docs/api/brand-profiles

Eight plan-gated theme knobs, WCAG contrast validated at save. Trust chrome and "Powered by Parasend · by Justikal" are outside customer control on every tier.

## Endpoints

- [Create a brand profile](https://parasend.com/docs/api/brand-profiles/create.md): `POST /v1/brand_profiles`
- [List brand profiles](https://parasend.com/docs/api/brand-profiles/list.md): `GET /v1/brand_profiles`
- [Retrieve a brand profile](https://parasend.com/docs/api/brand-profiles/retrieve.md): `GET /v1/brand_profiles/{id}`
- [Update a brand profile](https://parasend.com/docs/api/brand-profiles/update.md): `PATCH /v1/brand_profiles/{id}`
- [Delete a brand profile](https://parasend.com/docs/api/brand-profiles/delete.md): `DELETE /v1/brand_profiles/{id}`
- [List a brand profile's versions](https://parasend.com/docs/api/brand-profiles/versions.md): `GET /v1/brand_profiles/{id}/versions`
- [Preview a brand profile](https://parasend.com/docs/api/brand-profiles/preview.md): `POST /v1/brand_profiles/preview`

## The BrandProfileV1 object

- `sender_display_name` (string, required): Your name as recipients see it, in the notice ("Delivery from …") and on the recipient page.
- `sender_display_name_dative` (string · nullable, required): Your name in the Icelandic dative case, for Icelandic notices ("Sending frá …"). null when not set; the notice then says "Sending frá:" followed by `sender_display_name`.
- `logo` (object · nullable, required): The logo: its asset ID (`bas_…`), the path of its PNG, the PNG's SHA-256, and its size in CSS pixels. null when there is no logo; the monogram is shown instead.
- `monogram` (string, required): 1–3 upper-case letters or digits shown where there is no logo. Unless you set it, the first letters of the first two words of `sender_display_name`, leaving out company forms such as hf. and ehf.
- `primary_color` (string, required): Your brand colour, `#RRGGBB` in upper case: the header band, links, and the buttons unless `theme.colors.button_background` sets their own.
- `contrast_ratio` (number, required): The button text (white unless theme.colors.button_text) on primary_color, two decimals, rounded down.
- `header_style` (string, required): The header of the recipient page and the notice e-mail: `band`, your `primary_color` across the top with the logo on it; `letterhead`, a plain header with a rule in your colour along its top; `minimal`, a plain header with your logo or name. One of: `band`, `letterhead`, `minimal`.
- `support` (object, required): Your own contact for recipients, in the support line of the recipient page: `email`, `phone` and `url`, each null when not set.
  - `support.email` (string · nullable, optional)
  - `support.phone` (string · nullable, optional)
  - `support.url` (string · nullable, optional)
- `expired_message` (object, required): Your own words on the page a recipient sees when their link has expired, in Icelandic (`is`) and English (`en`). Plain text; each null when not set.
  - `expired_message.is` (string · nullable, optional)
  - `expired_message.en` (string · nullable, optional)
- `reply_to` (string · nullable, required): The Reply-To address of the e-mails sent to recipients (the notice and reminders), so replies come to you. null: no Reply-To.
- `id` (string, required): The brand profile's ID, starting `bp_`.
- `object` (string, required): Always `brand_profile`.
- `name` (string, required): Your name for the profile, 1–100 characters. Recipients never see it.
- `is_default` (boolean, required): Whether this is your organisation's default profile, used for any delivery that names none (directly or through its batch). Only one profile is the default.
- `version` (integer, required): The current version's number.
- `version_id` (string, required): `bpv_…`: the version a delivery created now would use.
- `used_by` (object, required): How much the profile is used: `deliveries`, the number of deliveries sent with one of its versions.
  - `used_by.deliveries` (integer, required): Deliveries that froze one of its versions (a count; names none).
- `created_at` (string · date-time, required): When the profile was created, in ISO 8601 (UTC).
- `updated_at` (string · date-time, required): When the profile last changed (renamed, made or no longer the default, given a new version, or archived), in ISO 8601 (UTC).
- `archived_at` (string · date-time · nullable, required): When the profile was archived with `DELETE /brand_profiles/{id}`, in ISO 8601 (UTC); null while it is in use. Deliveries already sent with it keep its look.
- `sms_sender_name` (object · nullable, optional): The SMS sender name and Parasend's answer to it, or null (PARASEND).
  - `sms_sender_name.name` (string, required)
  - `sms_sender_name.state` (string, required): One of: `pending`, `approved`, `rejected`.
  - `sms_sender_name.ready` (boolean, required): Approved and set up: SMS to Icelandic numbers show it.
  - `sms_sender_name.reason` (string · nullable, required): Why Parasend did not approve it.
- `icon` (object · nullable, optional): The tab icon, or null.
  - `icon.asset_id` (string, optional): The brand asset's ID, starting `bas_`.
  - `icon.url` (string, optional): The 180 px PNG (/brand_assets/{id}/content).
  - `icon.small_url` (string, optional): The 32 px PNG (?size=small).
  - `icon.sha256` (string, optional): Of the 180 px PNG.
- `recipient_domain_id` (string · nullable, optional): The link domain (`cdm_…`), or null.
- `email_sender_id` (string · nullable, optional): The e-mail sender (`es_…`), or null.
- `theme` (object, optional): The look a version sets. Every field may be null (Parasend's own) and, in a PATCH, left out (unchanged); `theme: null` resets every field. Checked when saved: every text and background pair must reach a contrast of 4.5:1. No CSS.
  - `theme.colors` (object · nullable, optional): Colours of the recipient page, each `#RRGGBB` or null for Parasend's default; `button_background` and `button_text` colour the e-mail's button too. In an update, `colors: null` resets them all.
    - `theme.colors.page_background` (string · nullable, optional): Default #F5F6FA.
    - `theme.colors.card_background` (string · nullable, optional): Default #FFFFFF.
    - `theme.colors.text` (string · nullable, optional): Default #0E1526.
    - `theme.colors.secondary_text` (string · nullable, optional): Default #5B6472.
    - `theme.colors.button_background` (string · nullable, optional): The buttons' colour, on the page and in the e-mail. Default `primary_color`.
    - `theme.colors.button_text` (string · nullable, optional): Default #FFFFFF.
    - `theme.colors.header_background` (string · nullable, optional)
    - `theme.colors.header_text` (string · nullable, optional)
    - `theme.colors.divider` (string · nullable, optional): Default #E6E9F2.
  - `theme.button_radius` (integer · nullable, optional): Default 12.
  - `theme.card_radius` (integer · nullable, optional): Default 14.
  - `theme.card_shadow` (boolean · nullable, optional): Default true.
  - `theme.font` (string · nullable, optional): The font, served by the recipient page. Default `inter`. One of: `inter`, `system`, `source_sans`, `source_serif`.
  - `theme.logo_height` (integer · nullable, optional): CSS px. Default the header style's own.
  - `theme.header_align` (string · nullable, optional): Default left. One of: `left`, `center`.
  - `theme.show_safety_note` (boolean · nullable, optional): The note “Er þetta öruggt?” (Is this safe?) on the page and in the e-mail. Default true.
  - `theme.show_support_line` (boolean · nullable, optional): Default true.
  - `theme.show_sender_line` (boolean · nullable, optional): The “Sendandi:” (Sender:) line. The page leaves it out only where the header names the sender in words; false always leaves it out of the e-mail's footer. Default true.
  - `theme.card_footer` (string · nullable, optional): default: the date; custom: the sender's words and the date; hidden: none. custom needs card_footer_text. One of: `default`, `custom`, `hidden`.
  - `theme.card_footer_text` (object · nullable, optional): Your own words for the card's footer when `card_footer` is `custom`, in Icelandic (`is`) and English (`en`): plain text, up to 200 characters each. `custom` needs at least one of them.
    - `theme.card_footer_text.is` (string · nullable, optional)
    - `theme.card_footer_text.en` (string · nullable, optional)
  - `theme.layout` (string · nullable, optional): The page layout. Default `card`; every other layout needs `page_image_asset_id`. One of: `card`, `split`, `banner`, `backdrop`.
  - `theme.page_image_asset_id` (string · nullable, optional): `bas_…` of a photo uploaded with POST /brand_assets?kind=image.
  - `theme.logo_background` (string · nullable, optional): The header's logo on a white tile (`tile`, or null) or straight on the colour (`none`). Not set with a new logo: `none` for a transparent logo, `tile` otherwise. One of: `tile`, `none`.
  - `theme.show_service_label` (boolean · nullable, optional): The label above the e-mail's headline that names the service (“Electronic registered delivery” in English). null is on. The e-mail only.
  - `theme.show_name_with_logo` (boolean · nullable, optional): The sender's name beside the logo in the header, in every header style. null is off.
- `contrasts` (object, optional): The contrast ratio of every colour pair when saved, rounded down to two decimals: `button_text_on_primary` (the button text on the button's colour), `links_on_card`, `text_on_card`, `secondary_text_on_card`, `header_text_on_header`, and `logo_on_header` for a logo straight on the band (a warning below 3, never a refusal).

```json
{
  "id": "bp_01M6R27T817SW9MENZEV3KSZZX",
  "object": "brand_profile",
  "name": "Fyrirtæki ehf.",
  "is_default": false,
  "version": 1,
  "version_id": "bpv_01M6R27T82QZMJ98K4RGVQBRF0",
  "sender_display_name": "Fyrirtæki ehf.",
  "sender_display_name_dative": null,
  "logo": {
    "asset_id": "bas_01M6R27T7R9RDBHE6X72ZRW3YC",
    "url": "/v1/brand_assets/bas_01M6R27T7R9RDBHE6X72ZRW3YC/content",
    "sha256": "f72bdd36e6ce104c53c8f21bd9e618e113a66f4d6729d43a4cb07b3f1373addb",
    "width": 200,
    "height": 48
  },
  "monogram": "F",
  "sms_sender_name": null,
  "icon": null,
  "primary_color": "#1E5BB8",
  "contrast_ratio": 6.47,
  "header_style": "band",
  "support": {
    "email": null,
    "phone": null,
    "url": null
  },
  "expired_message": {
    "is": null,
    "en": null
  },
  "reply_to": null,
  "recipient_domain_id": null,
  "email_sender_id": null,
  "theme": {
    "colors": {
      "page_background": null,
      "card_background": null,
      "text": null,
      "secondary_text": null,
      "button_background": null,
      "button_text": null,
      "header_background": null,
      "header_text": null,
      "divider": null
    },
    "button_radius": null,
    "card_radius": null,
    "card_shadow": null,
    "font": null,
    "logo_height": null,
    "header_align": null,
    "show_safety_note": null,
    "show_support_line": null,
    "show_sender_line": null,
    "card_footer": null,
    "card_footer_text": {
      "is": null,
      "en": null
    },
    "layout": null,
    "page_image_asset_id": null,
    "logo_background": "tile",
    "show_name_with_logo": null,
    "show_service_label": null
  },
  "contrasts": {
    "text_on_card": 18.19,
    "links_on_card": 6.47,
    "header_text_on_header": 6.47,
    "button_text_on_primary": 6.47,
    "secondary_text_on_card": 5.98
  },
  "used_by": {
    "deliveries": 0
  },
  "created_at": "2026-11-06T09:15:05.856Z",
  "updated_at": "2026-11-06T09:15:05.856Z",
  "archived_at": null
}
```
