# Setting Tracking Group labels on bank transaction explanations via the API: is tracking\_group\_labels supported?

**URL:** <https://api-discuss.freeagent.com/t/setting-tracking-group-labels-on-bank-transaction-explanations-via-the-api-is-tracking-group-labels-supported/6892>\
**Category:** Documentation\
**Created:** [29 October 2026 15:02 UTC](https://api-discuss.freeagent.com/t/setting-tracking-group-labels-on-bank-transaction-explanations-via-the-api-is-tracking-group-labels-supported/6892 "2026-10-29T15:02:23Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![LW77](https://api-discuss.freeagent.com/user_avatar/api-discuss.freeagent.com/lw77/32/1307_2.png) [@LW77](https://api-discuss.freeagent.com/u/LW77)\
**Post date:** [29 October 2026 15:02 UTC](https://api-discuss.freeagent.com/t/setting-tracking-group-labels-on-bank-transaction-explanations-via-the-api-is-tracking-group-labels-supported/6892/1 "2026-10-29T15:02:23Z")

</div>

Hi all,

We have a custom integration that imports daily totals from a payment processor’s CSV export into a FreeAgent bank account and then explains each transaction. It works like this:

1. Upload the transactions with POST /v2/bank\_transactions/statement?bank\_account=xxx.
2. List the account’s transactions for that date range with GET /v2/bank\_transactions, and match each upload to what came back by date, amount and description.
3. Explain each unexplained match against a chosen category with POST /v2/bank\_transaction\_explanations.

We’d now like to tag each explanation with a Tracking Group label, so the imported income shows up in the Tracking Groups report. The API docs don’t mention Tracking Groups. We’ve found an approach that seems to work, but we’d like to check that it’s correct and supported before relying on it.

1. Listing tracking groups: GET /v2/tracking\_groups seems to return the company’s groups, each with its labels nested inside.

2. Reading tracking from an explanation: When an explanation has been tagged in the web app, GET /v2/bank\_transaction\_explanations/ includes this:

```auto
"tracking_groups": [
    {
      "name": "Example Group",
      "status": "active",
      "url": "https://api.freeagent.com/v2/tracking_groups/111",
      "labels": [
        {
          "name": "Example Label",
          "status": "active",
          "url": "https://api.freeagent.com/v2/tracking_group_labels/222"
        }
      ]
    }
  ]

```

1. Writing tracking with tracking\_group\_labels: Sending a flat array of label URLs as tracking\_group\_labels seems to work when creating the explanations, e.g.

```auto
POST /v2/bank_transaction_explanations
  {
    "bank_transaction_explanation": {
      "bank_transaction": "https://api.freeagent.com/v2/bank_transactions/333",
      "dated_on": "2026-10-28",
      "description": "Example fees 28/10/2026",
      "gross_value": "0.45",
      "category": "https://api.freeagent.com/v2/categories/001",
      "tracking_group_labels": [
        "https://api.freeagent.com/v2/tracking_group_labels/222"
      ]
    }
  }

```

Questions

1. Is tracking\_group\_labels the intended, supported way to set tracking on bank transaction explanations? Can we rely on it staying stable?
2. Are there plans to document the Tracking Groups endpoints and attributes, and to add them to the changelog?
3. If we update (PUT) the explanation, does tracking\_group\_labels replace all of an explanation’s labels, or add to them? Does sending an empty array clear them?

Thanks
