A similar post was locked a month ago, but I’m not entirely sure why. I’d like to start up the conversation again.
My gripe with the current integration is:
The resulting transaction description is really bad. It’s a mash together of the “type”, “description”, “notes” and “amount”. Why on Earth would you have the amount in the description, when the transaction has the amount as a dedicated field? I also have no use for the “type” in my accounting. The money came in, and it matters very little how it came from when I send my accounts to HMRC. Preferably, I’d need the following in the description, like every other bank integration with Freeagent: “Name”, “Description”, “Notes”.
Does anyone else have preferences other than mine?
I’m pretty sure this is a FreeAgent problem. I have the issue with Starling’s integration and I’m pretty sure I had it with my custom integration too. It seems like FA just mashes all the fields together even if they’re submitted separately.
Back when I was doing it I was submitting an OFX file (the JSON option was added after the Starling official integration was released, so I suspect they built it specifically for them) the default FreeAgent description was concatenating all the fields separated by slashes.
Even with the official Starling integration, if I go on the transaction detail screen on FreeAgent, I can see the original transaction description as something like Andre Borie (Faster Payments Out)/Salary/PAYMENT/£123.45. The first part is the payee name (as set in my Starling account), the “Faster Payments Out” is a description automatically added by Starling, the “Salary” is the payment reference manually set in the Starling account, the “PAYMENT” is some kind of category field (it changes to “POS” for card transactions).
It seems to me like all JSON and CSV imports are internally converted to OFX on FreeAgent’s side before being inserted (the “PAYMENT”, “POS”, “DIRECTDEBIT” transaction types are defined in the OFX spec) and all of them end up joined with slashes in the initial description displayed by FreeAgent (before it tries to match it to previous payments in which case it’ll display that description instead).
Yes, you’re absolutely right, but this concatenation must happen if the CSV provided to Freeagent is not in the required format (date,amount,description). It’s impossible to expect Freeagent to tell which column is which if banks provide them with their own CSV layout, especially if the CSV does not have headers (a specific requirement from the Freeagent docs). This appears to be something pretty trivial to solve, yet as it is it’s completely wrecking my transaction logs in my accounts.
In fact, I remember contacting support at Monzo about a slightly different issue with the integration, and the person I spoke to actually said they thing this integration needs a lot more work
You can experiment with the FreeAgent developer sandbox and submit CSVs or even use the JSON API and see how it behaves. When it comes to CSVs I’m pretty sure it will outright reject anything that’s not formatted properly, and when it is formatted right it it will still concatenate fields together and add a generic “PAYMENT” type (presumably a side-effect of the internal OFX conversion).
From my experience back when I was developing my own system (before Starling built their own which I now use), FreeAgent is doing weird things with transactions and always concatenates fields with slashes regardless of how the incoming data is structured.
I’ll definitely have a play - but I am still not convinced, since there is data that is neither description nor date that is getting mashed into the resulting description on Freeagent, suggesting that the incoming CSV does not comply with the Freeagent requirements.