From 1d7e114e5d87873805653db6e0e80ee3a901a3d5 Mon Sep 17 00:00:00 2001 From: Huw Thomas Date: Tue, 23 Jun 2026 10:02:17 +0100 Subject: [PATCH 1/4] FOR-857: add Xero duplicate FeedConnection prevention update Adds /updates post announcing the new validation and filtered mapping options for Xero bank feeds, plus author entry. Co-Authored-By: Claude Opus 4.8 (1M context) --- ...ero-duplicate-feedconnection-prevention.md | 49 +++++++++++++++++++ blog/authors.yml | 6 +++ 2 files changed, 55 insertions(+) create mode 100644 blog/260623-xero-duplicate-feedconnection-prevention.md diff --git a/blog/260623-xero-duplicate-feedconnection-prevention.md b/blog/260623-xero-duplicate-feedconnection-prevention.md new file mode 100644 index 0000000000..f079c27bc0 --- /dev/null +++ b/blog/260623-xero-duplicate-feedconnection-prevention.md @@ -0,0 +1,49 @@ +--- +title: "Improved validation for Xero bank feed account mapping" +date: "2026-06-23" +tags: ["Product", "Update", "Bank feeds", "Xero"] +authors: Huweey +--- + +We are improving how Xero bank feed accounts are mapped to prevent the same Xero bank account being connected under more than one company that shares the same Xero application. + + + +## What's new? + +Today it's possible to create a duplicate mapping where the target Xero bank account is already connected to a different company using the same Xero application. When that happens, multiple source accounts across different companies point to the same Xero bank feed, making it unclear which is the true source of data. + +This update introduces two improvements: + +- **Validation**: when a target Xero bank account is already connected under a different company, the mapping request now returns a clear `400` error with a suggested resolution, instead of silently creating a duplicate. +- **Filtered options**: target Xero bank accounts already connected to a bank feed under any company using the same Xero app are excluded from the available mapping options. + +If a source account is already mapped to a Xero target account, attempting to create the same mapping again still succeeds without errors. That behaviour is unchanged. Existing mappings are not modified. + +### Xero API limitation + +Xero's API only shows feed connections that share the same OAuth application. If a target account is already connected through a *different* Xero OAuth application, it still appears as available. The mapping attempt then fails with an error explaining that the account is already in use. + +## Who is this relevant for? + +This change is relevant for Xero bank feeds clients whose setup meets **all** of the following: + +1. Multiple companies share the same Xero OAuth application. +2. Those companies connect to the same Xero organization. +3. A user tries to map a source account to a Xero target account already used by a different company. + +## How to get started? + +**No changes to your integration are required.** Once the update is live, you will see: + +- Target accounts already connected under another company using the same Xero application no longer appear in the available mapping options. +- Target accounts connected through a different Xero application still appear, but attempts to map them return an error. + +### Remapping a Xero bank account + +If a customer needs to remap a Xero bank account: + +1. Remove the existing bank feed connection that uses the account. This makes the target account available again. +2. Create a new mapping to the required company. + +Contact Codat Support or your Account Manager if you'd like help with this change. diff --git a/blog/authors.yml b/blog/authors.yml index 0c0efeef12..b5581e77b6 100644 --- a/blog/authors.yml +++ b/blog/authors.yml @@ -4,6 +4,12 @@ codat-bot: url: https://github.com/codat-engineering image_url: https://github.com/codat-engineering.png +Huweey: + name: Huw Thomas + title: Engineer + url: https://github.com/Huweey + image_url: https://github.com/Huweey.png + mcclowes: name: Max Clayton Clowes title: Product Director, Client Experience From ec42087ea93cc5781b513e2449a3157fbabda9d7 Mon Sep 17 00:00:00 2001 From: Huw Thomas Date: Tue, 23 Jun 2026 10:31:48 +0100 Subject: [PATCH 2/4] FOR-857: set go-live date to 2026-06-24, fix author title Co-Authored-By: Claude Opus 4.8 (1M context) --- ...d => 260624-xero-duplicate-feedconnection-prevention.md} | 6 +++++- blog/authors.yml | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) rename blog/{260623-xero-duplicate-feedconnection-prevention.md => 260624-xero-duplicate-feedconnection-prevention.md} (96%) diff --git a/blog/260623-xero-duplicate-feedconnection-prevention.md b/blog/260624-xero-duplicate-feedconnection-prevention.md similarity index 96% rename from blog/260623-xero-duplicate-feedconnection-prevention.md rename to blog/260624-xero-duplicate-feedconnection-prevention.md index f079c27bc0..8b3bba5eb5 100644 --- a/blog/260623-xero-duplicate-feedconnection-prevention.md +++ b/blog/260624-xero-duplicate-feedconnection-prevention.md @@ -1,6 +1,6 @@ --- title: "Improved validation for Xero bank feed account mapping" -date: "2026-06-23" +date: "2026-06-24" tags: ["Product", "Update", "Bank feeds", "Xero"] authors: Huweey --- @@ -20,6 +20,10 @@ This update introduces two improvements: If a source account is already mapped to a Xero target account, attempting to create the same mapping again still succeeds without errors. That behaviour is unchanged. Existing mappings are not modified. +### When does this take effect? + +This update takes effect on **24 June 2026**. + ### Xero API limitation Xero's API only shows feed connections that share the same OAuth application. If a target account is already connected through a *different* Xero OAuth application, it still appears as available. The mapping attempt then fails with an error explaining that the account is already in use. diff --git a/blog/authors.yml b/blog/authors.yml index b5581e77b6..8bf3f2e1d5 100644 --- a/blog/authors.yml +++ b/blog/authors.yml @@ -6,7 +6,7 @@ codat-bot: Huweey: name: Huw Thomas - title: Engineer + title: Software Engineer url: https://github.com/Huweey image_url: https://github.com/Huweey.png From f1fc1c2e31df90afb4160756771cfefb45d867d6 Mon Sep 17 00:00:00 2001 From: Huw Thomas Date: Tue, 23 Jun 2026 10:37:08 +0100 Subject: [PATCH 3/4] FOR-857: use underscore emphasis to satisfy Prettier Co-Authored-By: Claude Opus 4.8 (1M context) --- blog/260624-xero-duplicate-feedconnection-prevention.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/260624-xero-duplicate-feedconnection-prevention.md b/blog/260624-xero-duplicate-feedconnection-prevention.md index 8b3bba5eb5..e33f6ed41b 100644 --- a/blog/260624-xero-duplicate-feedconnection-prevention.md +++ b/blog/260624-xero-duplicate-feedconnection-prevention.md @@ -26,7 +26,7 @@ This update takes effect on **24 June 2026**. ### Xero API limitation -Xero's API only shows feed connections that share the same OAuth application. If a target account is already connected through a *different* Xero OAuth application, it still appears as available. The mapping attempt then fails with an error explaining that the account is already in use. +Xero's API only shows feed connections that share the same OAuth application. If a target account is already connected through a _different_ Xero OAuth application, it still appears as available. The mapping attempt then fails with an error explaining that the account is already in use. ## Who is this relevant for? From 3474fa19267c32e423ac638d53ebbb48e78dc865 Mon Sep 17 00:00:00 2001 From: Huw Thomas Date: Tue, 23 Jun 2026 10:46:04 +0100 Subject: [PATCH 4/4] Strip trailing whitespace to fix markdown-format check Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/integrations/accounting/xero/xero-app-partner-program.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/accounting/xero/xero-app-partner-program.md b/docs/integrations/accounting/xero/xero-app-partner-program.md index a23a5ff0fc..2266fa3c35 100644 --- a/docs/integrations/accounting/xero/xero-app-partner-program.md +++ b/docs/integrations/accounting/xero/xero-app-partner-program.md @@ -35,6 +35,6 @@ We recommend working closely with Codat to ensure Xero’s technical requirement #### Xero’s commercial framework -For App Store partners Xero offers a [tiered pricing model based on connections and API usage](https://developer.xero.com/pricing). +For App Store partners Xero offers a [tiered pricing model based on connections and API usage](https://developer.xero.com/pricing). For Financial Services Partners a separate commercial model is in place. For guidance on Xero fees, please speak to your Codat account manager.