Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
109 changes: 109 additions & 0 deletions blog/260814-link-consent-section-headers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
---
title: "Customize the consent screen section headers in Link"
date: "2026-08-14"
tags: ["Product", "Update", "Link"]
authors: pmckinney
---

You can now change the wording of every section header on the Link consent screen, so the language your customers see matches the terminology they already use in your product.

<!--truncate-->

## What's new?

The consent screen is the final step before a user connects their platform. It groups what they're agreeing to into five expandable sections: _Purpose_, _Access_, _Account information_, _Platform data_, and _Retention_.

Previously, the body content of each section was customizable, but the headers were fixed. Clients told us the default wording didn't always match what their users expect, which risked confusion at the most sensitive point in the flow.

You can now customize all five headers, for each of the accounting, banking, and commerce integration categories independently.

<div
style={{
display: "flex",
gap: "1rem",
justifyContent: "center",
alignItems: "flex-start",
flexWrap: "wrap",
margin: "1.5rem 0",
}}
>
<figure style={{ margin: 0, textAlign: "center" }}>
<img
src="/img/updates/260814-consent-section-headers.png"
alt="The Link consent screen showing the Purpose, Access, Account information, Platform data, and Retention sections"
style={{
height: "440px",
width: "auto",
maxWidth: "100%",
border: "1px solid var(--ifm-color-emphasis-200)",
borderRadius: "12px",
boxShadow: "0 2px 8px rgba(0, 0, 0, 0.08)",
}}
/>
<figcaption
style={{
width: 0,
minWidth: "100%",
marginTop: "0.75rem",
fontSize: "0.85rem",
color: "var(--ifm-color-emphasis-600)",
}}
>
The five customizable sections on the consent screen
</figcaption>
</figure>
<figure style={{ margin: 0, textAlign: "center" }}>
<img
src="/img/updates/260814-consent-header-settings.png"
alt="The consent section of the Link editor in the Codat Portal, showing a header field alongside the body content field for each consent section"
style={{
height: "440px",
width: "auto",
maxWidth: "100%",
border: "1px solid var(--ifm-color-emphasis-200)",
borderRadius: "12px",
boxShadow: "0 2px 8px rgba(0, 0, 0, 0.08)",
}}
/>
<figcaption
style={{
width: 0,
minWidth: "100%",
marginTop: "0.75rem",
fontSize: "0.85rem",
color: "var(--ifm-color-emphasis-600)",
}}
>
Header fields in the Codat Portal, alongside the existing content fields
</figcaption>
</figure>
</div>

Each header accepts up to 50 characters of plain text. Leave a field empty and Link falls back to the default wording, so nothing changes visually until you set a header yourself.

## Who is this relevant for?

This update is relevant for all clients using [Link](/auth-flow/overview) to connect their customers' financial data, whether through [Hosted Link](/auth-flow/authorize-hosted-link) or the [Link SDK](/auth-flow/authorize-embedded-link).

It's especially useful if your product or your regulatory environment uses specific terminology for data sharing, and you want the consent screen to speak the same language as the rest of your onboarding.

## How to get started?

No action is required. Your consent screen keeps its current wording unless you choose to change it.

To customize a header in the [Codat Portal](https://app.codat.io):

1. Navigate to **[Settings > Auth flow > Link > Onboarding](https://app.codat.io/settings/link-settings/onboarding)**.
2. Find the **Data access consent** section for the relevant integration category.
3. Enter your wording in the header field that sits alongside each section's content field, then save.

If you're using the Link SDK, you can also set the headers in code using the `text` option:

```javascript
text: {
"accounting.consents.headers.purpose": "Why we need your data",
"accounting.consents.headers.retention": "How long we keep it",
}
```

For more detail, see [Link settings in Portal](/auth-flow/customize/customize-link#data-access-consent) and the [custom text options](/auth-flow/customize/sdk-customize-code#custom-text) reference.
14 changes: 14 additions & 0 deletions docs/auth-flow/customize/customize-link.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,20 @@ This is a mandatory field where you need to specify the message you want to disp

Optionally, you can add a message and a URL for terms and conditions you'd like your clients to read before they share their data with you.

The consent screen groups this messaging into five expandable sections. Each section has a header and a body of content, both of which you can customize for the accounting, banking, and commerce integration categories independently:

| Section | Default header |
| ------------------- | --------------------- |
| Purpose | `Purpose` |
| Access | `Access` |
| Account information | `Account information` |
| Platform data | `Platform data` |
| Retention | `Retention` |

Headers are plain text and limited to 50 characters. Leave a header field empty to use the default wording.

The Link settings in the Portal apply to the `en-US` locale. To set headers for other locales, or to override them at runtime, use the [custom text options](/auth-flow/customize/sdk-customize-code#custom-text) in the Link SDK.

#### Data type information

List the data you're going to collect for each of the integration categories (accounting, banking, or commerce). This informs the user which data types Codat will use after linking the data source.
Expand Down
7 changes: 6 additions & 1 deletion docs/auth-flow/customize/sdk-customize-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,13 @@ The property accepts Markdown, meaning you can add links, lists, tables, and mor
| `accounting.consents.termsAndConditions`<br/>`banking.consents.termsAndConditions`<br/>`commerce.consents.termsAndConditions` | `string` _(accepts Markdown)_ <br/><br/>Text displayed on the final flow page before connecting an accounting, banking or commerce platform, underneath the list of data types. Use this to display terms and conditions links using Markdown. |
| `accounting.consents.purpose`<br/>`banking.consents.purpose`<br/>`commerce.consents.purpose` | `string` _(accepts Markdown)_ <br/><br/>Specifies the purpose of the data access. Accepts `{companyName}` and `{platformName}` replacements, such as `Allow {companyName} to access {platformName} data.` |
| `accounting.consents.access`<br/>`banking.consents.access`<br/>`commerce.consents.access` | `string` _(accepts Markdown)_ <br/><br/>Specifies the type of access to the data that's required (e.g., read and write). Accepts `{companyName}` and `{platformName}` replacements, such as `Allow {companyName} to access {platformName} data.` |
| `accounting.consents.accountInfo`<br/>`banking.consents.accountInfo`<br/>`commerce.consents.accountInfo` | `string` _(accepts Markdown)_ <br/><br/>Specifies the account information the user will be sharing with your company. Accepts `{companyName}` and `{platformName}` replacements, such as `Allow {companyName} to access {platformName} data.` |
| `accounting.consents.accountInformation`<br/>`banking.consents.accountInformation`<br/>`commerce.consents.accountInformation` | `string` _(accepts Markdown)_ <br/><br/>Specifies the account information the user will be sharing with your company. Accepts `{companyName}` and `{platformName}` replacements, such as `Allow {companyName} to access {platformName} data.` |
Comment thread
pmckinney-codat marked this conversation as resolved.
| `accounting.consents.retention`<br/>`banking.consents.retention`<br/>`commerce.consents.retention` | `string` _(accepts Markdown)_ <br/><br/>Specifies the conditions for data retention. Accepts `{companyName}` and `{platformName}` replacements, such as `Allow {companyName} to access {platformName} data.` |
| `accounting.consents.headers.purpose`<br/>`banking.consents.headers.purpose`<br/>`commerce.consents.headers.purpose` | `string` <br/><br/>Header of the purpose section on the consent screen. Plain text, up to 50 characters. Defaults to `Purpose`. |
| `accounting.consents.headers.access`<br/>`banking.consents.headers.access`<br/>`commerce.consents.headers.access` | `string` <br/><br/>Header of the access section on the consent screen. Plain text, up to 50 characters. Defaults to `Access`. |
| `accounting.consents.headers.accountInformation`<br/>`banking.consents.headers.accountInformation`<br/>`commerce.consents.headers.accountInformation` | `string` <br/><br/>Header of the account information section on the consent screen. Plain text, up to 50 characters. Defaults to `Account information`. |
| `accounting.consents.headers.platformData`<br/>`banking.consents.headers.platformData`<br/>`commerce.consents.headers.platformData` | `string` <br/><br/>Header of the platform data section on the consent screen. Plain text, up to 50 characters. Defaults to `Platform data`. This section is only displayed if data types are configured for the source type. |
Comment thread
pmckinney-codat marked this conversation as resolved.
| `accounting.consents.headers.retention`<br/>`banking.consents.headers.retention`<br/>`commerce.consents.headers.retention` | `string` <br/><br/>Header of the retention section on the consent screen. Plain text, up to 50 characters. Defaults to `Retention`. |
| `accounting.dataAccess.nextButton`<br/>`banking.dataAccess.nextButton`<br/>`commerce.dataAccess.nextButton` | ⚠️ **Deprecated**: Use `accounting.consents.nextButton`, `banking.consents.nextButton`, or `commerce.consents.nextButton` instead. <br/><br/> `string` <br/><br/> Text displayed on the primary (continuation) button of the final flow page before connecting an accounting, banking or commerce platform. By default, this option is set to `Next`. |
| `accounting.consents.nextButton`<br/>`banking.consents.nextButton`<br/>`commerce.consents.nextButton` | `string` <br/><br/>Text displayed on the primary (continuation) button of the final flow page before connecting an accounting, banking or commerce platform. By default, this option is set to `Next`. |
| `accounting.dataAccess.dataTypes`<br/>`banking.dataAccess.dataTypes`<br/>`commerce.dataAccess.dataTypes` | ⚠️ **Deprecated**: Use the `dataTypes` property in the <a href="https://docs.codat.io/auth-flow/customize/sdk-customize-code#source-types">Source types</a> configuration instead. <br/><br/> `array[string]` _(accepts Markdown)_ <br/><br/> List of requested data types displayed on the final flow page before connecting an accounting, banking or commerce software. |
Expand Down
3 changes: 3 additions & 0 deletions static/img/updates/260814-consent-header-settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions static/img/updates/260814-consent-section-headers.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading