From 8a483af68e8737ccc0500a93c711b0066fad9ee0 Mon Sep 17 00:00:00 2001
From: a-diarra <68294452+a-diarra@users.noreply.github.com>
Date: Wed, 1 Apr 2026 17:17:18 +0100
Subject: [PATCH 1/5] sharing a notice on the new otp for sage bank feeds
---
blog/260706-otp-for-sage-bank-feeds | 28 +++
.../sage-bank-feeds/sage-bank-feeds-setup.md | 202 ------------------
2 files changed, 28 insertions(+), 202 deletions(-)
create mode 100644 blog/260706-otp-for-sage-bank-feeds
diff --git a/blog/260706-otp-for-sage-bank-feeds b/blog/260706-otp-for-sage-bank-feeds
new file mode 100644
index 000000000..f74ef2856
--- /dev/null
+++ b/blog/260706-otp-for-sage-bank-feeds
@@ -0,0 +1,28 @@
+---
+title: "2026-07-06: Security enhancement to Sage Bank Feeds connection flow"
+date: "2026-07-06"
+tags: ["Deprecation"]
+authors: a-diarra
+---
+
+On **July 6, 2026**, Codat will introduce a one-time passcode (OTP) step to the Sage Bank Feeds connection flow.
+
+
+
+This change is part of our ongoing programme of security enhancements across the Codat platform. It follows similar updates already applied to QuickBooks Online and Xero.
+
+## What's changing
+
+From **July 6, 2026**, clients using our out-of-the box [Authentication UI](https://docs.codat.io/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-setup#optional-add-a-call-to-action-link) for the [Sage Bank Feeds](/integrations/bank-feeds/sage-bank-feeds/) connection flow will require users to complete a one-time passcode verification step when connecting.
+You must update your user journey to surface the verification code during authentication.
+
+## Action required
+
+Clients using [Sage Bank Feeds](/integrations/bank-feeds/sage-bank-feeds/) must update their integration to use the new OTP generation endpoint before Monday 6th July 2026. See [docs link] for further details of implementing the updated connection flow.
+You may also want to update your internal documentation and client-facing instructions in line with this change.
+Contact [Codat Support](support@codat.io) if you’d like additional help with this change.
+
+
+## Expected impact if no action is taken
+After **July 6, 2026**, the existing out-of-the-box [Sage Bank Feeds](/integrations/bank-feeds/sage-bank-feeds/) flow will always require a valid OTP to establish the connection.
+Clients who haven’t updated their integration won’t be able to establish new Sage Bank Feeds connections until the change is made.
diff --git a/docs/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-setup.md b/docs/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-setup.md
index 5fa62dd5e..8b1378917 100644
--- a/docs/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-setup.md
+++ b/docs/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-setup.md
@@ -1,203 +1 @@
----
-title: "Set up the Sage Bank Feeds integration"
-description: "Set up our integration with Sage Bank Feeds and get your SMB users connected"
-sidebar_label: Set up
----
-Before you can write customer bank transactions to target bank accounts in Sage, you need to set up the integration for testing or production use.
-
-This page explains how to:
-
-- Enable the Sage Bank Feeds integration.
-- Optional: Personalize the default Codat authentication site by adding a call-to-action link and uploading a logo.
-- Create a company and data connection, then add bank accounts.
-- Surface the data connection ID to the user.
-
-When you've completed those tasks, your SMB customers can connect their accounts to Sage using their data connection ID.
-
-You can then update bank account details as needed.
-
-## Prerequisites
-
-Complete the following prerequisites before setting up the Sage Bank Feeds integration.
-
-- You have access to a Testing Client for your Codat instance. Testing Clients are only available on Start-up and Enterprise plans.
-- The Bank accounts and Bank transactions data types are enabled in your [Data type settings](/core-concepts/data-type-settings).
-
-For help with these prerequisites, contact your Solutions Engineer or Codat Support.
-
-## Enable the Sage Bank Feeds integration
-
-1. Go to the **Bank feed integrations** page in the Codat Portal.
-2. Click **Set up** next to **Sage Bank Feeds**.
-3. Use the toggle to set the integration to **Enabled**.
-
-## Optional: Add a call-to-action link
-
-You can add a call-to-action link to a web page containing more information. This might explain where your SMB users can obtain their data connection ID from within your application.
-
-The call-to-action link will appear below the **Connection ID** box in the default Codat authentication site, for example:
-
-
-
-To add a call-to-action-link:
-
-1. Go to the **Bank feed integrations** page in the Codat Portal.
-2. Click **Manage** next to **Sage Bank Feeds**.
-3. Enter the link text in the **Call-to-action text** box.
-4. Enter the link URL in the **Call-to-action URL** box.
-5. Click **Save**.
-
-## Optional: Add your organization's logo
-
-You can customize the appearance of the default Codat authentication site by adding your organization's logo. It will appear to the left of the Sage logo.
-
-To upload a logo, go to the Branding page in the Codat Portal.
-
-## Create a company and data connection, then add bank accounts
-
-1. Using [POST /companies](/platform-api#/operations/create-company), create a Company to represent your SMB user:
-
- ```http
- POST https://api.codat.io/companies
- ```
-
- Request body:
-
- ```json
- {
- "name": "COMPANY_NAME"
- }
- ```
-
- The endpoint returns a JSON response containing the company `id` and the `redirect` URL.
-
-2. Using [`POST /companies/{companyId}/connections`](/platform-api#/operations/create-connection), create a data connection to Sage Bank Feeds for the Company you added. Specify the `companyId` in the URL path:
-
- ```http
- POST https://api.codat.io/companies/{companyId}/connections
- ```
-
- In the request body specify the following `platformKey`:
-
- ```json
- {
- "platformKey": "olpr"
- }
- ```
-
- The endpoint returns a `200` code and a `dataConnection` object in `PendingAuth` status.
-
- ```json
- {
- "id": "4ab3eb02-d787-4ecd-o6e2-62d7fb7c4d32",
- "integrationId": "2ce41026-589a-4330-8bfc-a30672253cd9",
- "integrationKey": "olpr",
- "sourceId": "98432954-a4fa-4640-a685-3af56909002a",
- "platformName": "SageBankFeed",
- "linkUrl": "https://link-api.codat.io/...", // do not use
- "status": "PendingAuth",
- "created": "2023-01-09T09:58:09.6678831Z",
- "sourceType": "BankFeed"
- }
- ```
-
- :::caution Do not send the Link URL
-
- Do _not_ send the `linkUrl` property to the SMB user. Unlike other Codat integrations, company authentication is initiated within Sage as described in "SMB user flow: Connect a source bank account to Sage", below.
- :::
-
-3. Using [POST /bankFeedAccounts](/bank-feeds-api#/operations/create-bank-feed), add one or more source bank accounts to make available to the SMB user.
-
- ```http
- POST /companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts
- ```
-
- In the request body, specify a bank account. For example, to add a credit card account, send the following request (all fields shown are required):
-
- ```json
- {
- "id": "acc-002", // set to desired unique ID
- "accountName": "account-081",
- "sortCode": "123456",
- "accountType": "Credit",
- "accountNumber": "12345670",
- "currency": "GBP",
- "balance": 99.99 // can be 0
- }
- ```
-
-4. The endpoint returns a `200` code and the created bank account.
-
-## Surface the data connection ID to the user
-
-Next, make the data connection ID from step two (above) available to the SMB user by, for example, surfacing the ID in your application. They'll need to enter this ID when connecting a bank account to Sage, as described in the next procedure.
-
-## SMB user flow: Connect a source bank account to Sage
-
-To connect a source bank account to a target bank account in Sage, your SMB user uses the **Connect Bank** functionality in a supported Sage product. The exact steps depend on which Sage product they're using.
-
-:::note
-
-Alternatively, you can [authenticate users through your own web app](/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-authenticate-users-web-app).
-:::
-
-1. On the **Banking** tab, they locate the bank account to which they want to import bank transactions.
-
-2. They click **Connect Bank** on the account and then select your institution from the list of banks and other financial institutions.
-
-3. The default Codat authentication site is loaded in a new browser tab:
-
-
-
-4. They enter their data connection ID in the **Connection ID** box, then click **Submit**.
-
-5. If the SMB user was authenticated with Codat successfully, a dialog listing the available source bank accounts (created using the `POST / bankFeedAccounts` endpoint) is displayed. For example:
-
-
-
-6. The SMB user selects the bank account they want to connect, then clicks **OK**.
-
-7. The SMB user is redirected to the Sage product from which they started the connection flow.
-
-You can now use the [GET /bankFeedAccounts](/bank-feeds-api#/operations/get-bank-feeds) endpoint to retrieve the source bank accounts. The `status` property of a source bank account must have changed to `connected` before you can begin to write bank transactions from the account.
-
-The SMB user flow is now complete.
-
-## Update bank account details
-
-To update the details of one or more source bank accounts in Sage, use the [PATCH /bankFeedAccounts](/bank-feeds-api#/operations/update-bank-feed) endpoint.
-
-```http
-PATCH /companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts/{bankAccountId}
-```
-
-Where `{bankAccountId}` is the `id` of the source bank account you want to update.
-
-Provide the details to update as request parameters. You only need to provide the details you want to update. For example, to update the account name, send the following request body:
-
-```json
-{
- "accountName": "new account name"
-}
-```
-
-The endpoint returns a `200` code and the updated bank account details. For example:
-
-```json
-{
- "id": "acc-003",
- "accountName": "new account name", // updated account name
- "accountType": "Credit",
- "accountNumber": "12345671",
- "sortCode": "123456",
- "currency": "GBP",
- "balance": 100.09,
- "modifiedDate": "2023-01-09T14:14:14.1057478Z",
- "status": "pending"
-}
-```
-
-## Next steps
-
-Next you can [write bank transactions from a source bank account](/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-use).
From f5b1649ccf903990e765bdbe8f035bdee9a55678 Mon Sep 17 00:00:00 2001
From: Polina <112084241+pzaichkina@users.noreply.github.com>
Date: Thu, 2 Apr 2026 00:14:53 +0100
Subject: [PATCH 2/5] Add title and description to Sage Bank Feeds setup doc
Add metadata for Sage Bank Feeds setup documentation.
---
.../bank-feeds/sage-bank-feeds/sage-bank-feeds-setup.md | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/docs/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-setup.md b/docs/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-setup.md
index 3addf1abd..7e2389e54 100644
--- a/docs/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-setup.md
+++ b/docs/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-setup.md
@@ -1,3 +1,8 @@
+---
+title: "Set up the Sage Bank Feeds integration"
+description: "Set up our integration with Sage Bank Feeds and get your SMB users connected"
+sidebar_label: Set up
+---
Before you can write customer bank transactions to target bank accounts in Sage, you need to set up the integration for testing or production use.
From 111b56b62d510be0d3b2195237b7b5a476cb97a2 Mon Sep 17 00:00:00 2001
From: Polina <112084241+pzaichkina@users.noreply.github.com>
Date: Thu, 2 Apr 2026 00:54:00 +0100
Subject: [PATCH 3/5] updates and fixes
---
blog/260706-otp-for-sage-bank-feeds | 28 ----------------
...710-deprecation-otp-for-sage-bank-feeds.md | 32 +++++++++++++++++++
blog/authors.yml | 8 ++++-
3 files changed, 39 insertions(+), 29 deletions(-)
delete mode 100644 blog/260706-otp-for-sage-bank-feeds
create mode 100644 blog/260710-deprecation-otp-for-sage-bank-feeds.md
diff --git a/blog/260706-otp-for-sage-bank-feeds b/blog/260706-otp-for-sage-bank-feeds
deleted file mode 100644
index f74ef2856..000000000
--- a/blog/260706-otp-for-sage-bank-feeds
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: "2026-07-06: Security enhancement to Sage Bank Feeds connection flow"
-date: "2026-07-06"
-tags: ["Deprecation"]
-authors: a-diarra
----
-
-On **July 6, 2026**, Codat will introduce a one-time passcode (OTP) step to the Sage Bank Feeds connection flow.
-
-
-
-This change is part of our ongoing programme of security enhancements across the Codat platform. It follows similar updates already applied to QuickBooks Online and Xero.
-
-## What's changing
-
-From **July 6, 2026**, clients using our out-of-the box [Authentication UI](https://docs.codat.io/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-setup#optional-add-a-call-to-action-link) for the [Sage Bank Feeds](/integrations/bank-feeds/sage-bank-feeds/) connection flow will require users to complete a one-time passcode verification step when connecting.
-You must update your user journey to surface the verification code during authentication.
-
-## Action required
-
-Clients using [Sage Bank Feeds](/integrations/bank-feeds/sage-bank-feeds/) must update their integration to use the new OTP generation endpoint before Monday 6th July 2026. See [docs link] for further details of implementing the updated connection flow.
-You may also want to update your internal documentation and client-facing instructions in line with this change.
-Contact [Codat Support](support@codat.io) if you’d like additional help with this change.
-
-
-## Expected impact if no action is taken
-After **July 6, 2026**, the existing out-of-the-box [Sage Bank Feeds](/integrations/bank-feeds/sage-bank-feeds/) flow will always require a valid OTP to establish the connection.
-Clients who haven’t updated their integration won’t be able to establish new Sage Bank Feeds connections until the change is made.
diff --git a/blog/260710-deprecation-otp-for-sage-bank-feeds.md b/blog/260710-deprecation-otp-for-sage-bank-feeds.md
new file mode 100644
index 000000000..e09436586
--- /dev/null
+++ b/blog/260710-deprecation-otp-for-sage-bank-feeds.md
@@ -0,0 +1,32 @@
+---
+title: "2026-07-10: Security enhancement to Sage Bank Feeds connection flow"
+date: "2026-04-02"
+tags: ["Deprecation"]
+authors: a-diarra
+---
+
+On **July 10, 2026**, Codat will introduce a one-time passcode (OTP) step to the [Sage Bank Feeds](/integrations/bank-feeds/sage-bank-feeds/) connection flow.
+
+
+
+This change is part of our ongoing program of security enhancements across the Codat platform. It follows similar updates already applied to QuickBooks Online and Xero.
+
+## What's changing
+
+From **July 10, 2026**, clients using our out-of-the box [Authentication UI](/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-setup#optional-add-a-call-to-action-link) for the [Sage Bank Feeds](/integrations/bank-feeds/sage-bank-feeds/) connection flow will need their users to complete a one-time passcode verification step when connecting.
+
+You must update your user journey to surface the verification code during authentication.
+
+## Action required
+
+Clients using [Sage Bank Feeds](/integrations/bank-feeds/sage-bank-feeds/) must update their application to include the new OTP generation step before **July 10, 2026**.
+
+See how to [Surface the one-time password (OTP) to the user](/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-setup#surface-the-one-time-password-otp-to-the-user) for implementation instructions.
+
+You may also want to update your internal and client-facing documentation in line with this change. Contact [Codat Support](support@codat.io) if you’d like additional help with this update.
+
+## Expected impact if no action is taken
+
+After **July 10, 2026**, the existing out-of-the-box [Sage Bank Feeds](/integrations/bank-feeds/sage-bank-feeds/) flow will always require a valid OTP to establish the connection.
+
+Clients who haven’t updated their integration won’t be able to establish new Sage Bank Feeds connections until the change is made.
\ No newline at end of file
diff --git a/blog/authors.yml b/blog/authors.yml
index 8d37a10e7..ba1a45520 100644
--- a/blog/authors.yml
+++ b/blog/authors.yml
@@ -146,4 +146,10 @@ tom-binnington-codat:
name: Tom Binnington
title: Senior Software Engineer
url: https://github.com/tom-binnington-codat
- image_url: https://github.com/tom-binnington-codat.png
\ No newline at end of file
+ image_url: https://github.com/tom-binnington-codat.png
+
+a-diarra:
+ name: Aïcha Diarra
+ title: Head of Support
+ url: https://github.com/a-diarra
+ image_url: https://github.com/a-diarra.png
\ No newline at end of file
From e435867ca52e6d9e5e8e217b9b21ac646a85c3d5 Mon Sep 17 00:00:00 2001
From: Polina <112084241+pzaichkina@users.noreply.github.com>
Date: Thu, 2 Apr 2026 00:58:59 +0100
Subject: [PATCH 4/5] update deprecation date
---
...60407-go-sdk-deprecation.md => 260401-go-sdk-deprecation.md} | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
rename blog/{260407-go-sdk-deprecation.md => 260401-go-sdk-deprecation.md} (99%)
diff --git a/blog/260407-go-sdk-deprecation.md b/blog/260401-go-sdk-deprecation.md
similarity index 99%
rename from blog/260407-go-sdk-deprecation.md
rename to blog/260401-go-sdk-deprecation.md
index 741473a67..a38a683c8 100644
--- a/blog/260407-go-sdk-deprecation.md
+++ b/blog/260401-go-sdk-deprecation.md
@@ -1,6 +1,6 @@
---
title: "2026-05-07: Deprecation of Go client SDK"
-date: "2026-04-07"
+date: "2026-04-01"
tags: ["Deprecation"]
authors: vpellcodat
---
From 73fd7b40f39daac0b03b2d876be3b06fc2b4917b Mon Sep 17 00:00:00 2001
From: Polina <112084241+pzaichkina@users.noreply.github.com>
Date: Thu, 2 Apr 2026 00:59:47 +0100
Subject: [PATCH 5/5] formatting
---
blog/260710-deprecation-otp-for-sage-bank-feeds.md | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/blog/260710-deprecation-otp-for-sage-bank-feeds.md b/blog/260710-deprecation-otp-for-sage-bank-feeds.md
index e09436586..51e2e33cd 100644
--- a/blog/260710-deprecation-otp-for-sage-bank-feeds.md
+++ b/blog/260710-deprecation-otp-for-sage-bank-feeds.md
@@ -19,9 +19,7 @@ You must update your user journey to surface the verification code during authen
## Action required
-Clients using [Sage Bank Feeds](/integrations/bank-feeds/sage-bank-feeds/) must update their application to include the new OTP generation step before **July 10, 2026**.
-
-See how to [Surface the one-time password (OTP) to the user](/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-setup#surface-the-one-time-password-otp-to-the-user) for implementation instructions.
+Clients using [Sage Bank Feeds](/integrations/bank-feeds/sage-bank-feeds/) must update their application to include the new OTP generation step before **July 10, 2026**. See how to [Surface the one-time password (OTP) to the user](/integrations/bank-feeds/sage-bank-feeds/sage-bank-feeds-setup#surface-the-one-time-password-otp-to-the-user) for implementation instructions.
You may also want to update your internal and client-facing documentation in line with this change. Contact [Codat Support](support@codat.io) if you’d like additional help with this update.