diff --git a/blog/260814-link-consent-section-headers.md b/blog/260814-link-consent-section-headers.md
new file mode 100644
index 0000000000..821dac9aa4
--- /dev/null
+++ b/blog/260814-link-consent-section-headers.md
@@ -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.
+
+
+
+## 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.
+
+
+
+
+
+ The five customizable sections on the consent screen
+
+
+
+
+
+ Header fields in the Codat Portal, alongside the existing content fields
+
+
+
+
+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.
diff --git a/docs/auth-flow/customize/customize-link.md b/docs/auth-flow/customize/customize-link.md
index fd27b1ea2b..a077108bb7 100644
--- a/docs/auth-flow/customize/customize-link.md
+++ b/docs/auth-flow/customize/customize-link.md
@@ -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.
diff --git a/docs/auth-flow/customize/sdk-customize-code.md b/docs/auth-flow/customize/sdk-customize-code.md
index ea06a4994d..24a766a7f9 100644
--- a/docs/auth-flow/customize/sdk-customize-code.md
+++ b/docs/auth-flow/customize/sdk-customize-code.md
@@ -162,8 +162,13 @@ The property accepts Markdown, meaning you can add links, lists, tables, and mor
| `accounting.consents.termsAndConditions` `banking.consents.termsAndConditions` `commerce.consents.termsAndConditions` | `string` _(accepts Markdown)_
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` `banking.consents.purpose` `commerce.consents.purpose` | `string` _(accepts Markdown)_
Specifies the purpose of the data access. Accepts `{companyName}` and `{platformName}` replacements, such as `Allow {companyName} to access {platformName} data.` |
| `accounting.consents.access` `banking.consents.access` `commerce.consents.access` | `string` _(accepts Markdown)_
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` `banking.consents.accountInfo` `commerce.consents.accountInfo` | `string` _(accepts Markdown)_
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` `banking.consents.accountInformation` `commerce.consents.accountInformation` | `string` _(accepts Markdown)_
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.retention` `banking.consents.retention` `commerce.consents.retention` | `string` _(accepts Markdown)_
Specifies the conditions for data retention. Accepts `{companyName}` and `{platformName}` replacements, such as `Allow {companyName} to access {platformName} data.` |
+| `accounting.consents.headers.purpose` `banking.consents.headers.purpose` `commerce.consents.headers.purpose` | `string`
Header of the purpose section on the consent screen. Plain text, up to 50 characters. Defaults to `Purpose`. |
+| `accounting.consents.headers.access` `banking.consents.headers.access` `commerce.consents.headers.access` | `string`
Header of the access section on the consent screen. Plain text, up to 50 characters. Defaults to `Access`. |
+| `accounting.consents.headers.accountInformation` `banking.consents.headers.accountInformation` `commerce.consents.headers.accountInformation` | `string`
Header of the account information section on the consent screen. Plain text, up to 50 characters. Defaults to `Account information`. |
+| `accounting.consents.headers.platformData` `banking.consents.headers.platformData` `commerce.consents.headers.platformData` | `string`
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. |
+| `accounting.consents.headers.retention` `banking.consents.headers.retention` `commerce.consents.headers.retention` | `string`
Header of the retention section on the consent screen. Plain text, up to 50 characters. Defaults to `Retention`. |
| `accounting.dataAccess.nextButton` `banking.dataAccess.nextButton` `commerce.dataAccess.nextButton` | ⚠️ **Deprecated**: Use `accounting.consents.nextButton`, `banking.consents.nextButton`, or `commerce.consents.nextButton` instead.
`string`
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` `banking.consents.nextButton` `commerce.consents.nextButton` | `string`
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` `banking.dataAccess.dataTypes` `commerce.dataAccess.dataTypes` | ⚠️ **Deprecated**: Use the `dataTypes` property in the Source types configuration instead.
`array[string]` _(accepts Markdown)_
List of requested data types displayed on the final flow page before connecting an accounting, banking or commerce software. |
diff --git a/static/img/updates/260814-consent-header-settings.png b/static/img/updates/260814-consent-header-settings.png
new file mode 100644
index 0000000000..252e6ac7fe
--- /dev/null
+++ b/static/img/updates/260814-consent-header-settings.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e0982eed243d632f8e51d722d605000123b4d2c2165fa9dc807604890ee29afe
+size 136855
diff --git a/static/img/updates/260814-consent-section-headers.png b/static/img/updates/260814-consent-section-headers.png
new file mode 100644
index 0000000000..5c482a17d1
--- /dev/null
+++ b/static/img/updates/260814-consent-section-headers.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:314d2bed4fc7f7e782fd09a9e86fe8650cb18a7b77267f6dd2886a7845e0cd07
+size 57867