Skip to main content
PATCH
Change your brand draft

Authorizations

X-Auth-Token
string
header
required

FlowPayroll JWT (raw token, no Bearer prefix)

Headers

If-Match
string
required

The draft's ETag as you last read it, such as "4" (the same as version in quotes). 412 concurrent_change when somebody saved since; 428 precondition_required without it.

Body

A JSON Merge Patch (RFC 7396) of the branding draft: a field left out stays as it is, a field sent as null is removed, anything else replaces it. Field names match settings on the draft. Flow-controlled fields (white label on, Powered by Flow, allowances) are not here and cannot be sent. Which version it changes is the request's If-Match, never a body field.

productName
string

Required to publish. 2 to 40 characters.

primaryColour
string

Required to publish. Hex colour, #RRGGBB.

primaryForegroundColour
string | null

null derives it from the primary colour.

accentColour
string | null
fontSource
enum<string>
Available options:
Curated,
Uploaded
fontCuratedKey
string | null
fontFamily
string | null
fontRegularAssetId
string | null
fontMediumAssetId
string | null
fontBoldAssetId
string | null
fontLicenceConfirmed
boolean | null

true records the caller and the time as the licence confirmation. Required before an uploaded font can be published.

logoAssetId
string | null
iconAssetId
string | null
logoDarkAssetId
string | null

The logo on a dark background (an asset id from a Logo upload). Null uses the light one.

iconDarkAssetId
string | null

The icon on a dark background (an asset id from an IconMark upload). Null uses the light one.

loadingStyle
enum<string>
Available options:
Spinner,
Icon,
Animation
loadingAnimationAssetId
string | null

From a LoadingAnimation upload.

loadingAnimationDarkAssetId
string | null

From a LoadingAnimation upload. Null uses the light one.

emailButtonShape
enum<string>

The corners of the buttons in emails.

Available options:
Rounded,
Square,
Pill
emailHeaderStyle
enum<string>

How the top of each email looks.

Available options:
Plain,
BrandBar
supportEmail
string | null
supportUrl
string | null

https only.

privacyUrl
string | null

https only.

termsUrl
string | null

https only.

Available options:
Hide,
FlowGuides
emailFromName
string | null
emailFromAddress
string | null

The address every email comes from, such as payroll@acme.example, on one of the account's email domains (GET /customer/branding/sender-options). Used while that domain is verified; removed, emails come from noreply@ the account's first verified domain, or Flow's standard address when it has none.

emailSenderOverrides
object | null

Per kind of email, keyed by email type (PayslipGeneratedEvent, P60GeneratedEvent, ...), the name, address or reply-to it uses instead of the default. Merged key by key: an object changes the fields it names, null puts that email back on the default, and keys left out are unchanged, so one request edits any number of emails. null for the whole field puts every email back on the default.

emailReplyTo
string | null

Up to 300 characters.

documentsUseBrandColour
boolean
appShowsProductName
boolean

Show the product name beside the logo in the app. With no logo the name always shows.

signInShowsProductName
boolean

Show the product name beside the logo on the sign-in page. With no logo the name always shows.

emailsShowProductName
boolean

Show the product name beside the logo in emails. With no logo the name always shows.

documentsShowProductName
boolean

Show the product name beside the logo on payslips and letters. With no logo the name always shows.

Response

OK

message
object
content
object
validationIssues
object[] | null