Can I post a single bank transaction?

According to the Bank Transactions page of the docs, the only way of posting a bank transaction is to upload the statement - is there any way of adding a single transaction to the API?

Reason I’m asking - I want to move my business account to Starling Bank which Yodlee don’t support, but which does have a very comprehensive API/webhook system.

Hi Simon,

Thanks for your message and I’m sure I can help you out.

Our API doesn’t currently have an end-point that allows creation of a single (unexplained) bank transaction.
Many integrations use the bank_transaction_explanations end-point to create an explanation (which creates a related transaction under the hood), though if you’re building an automated tool to keep FreeAgent and Starling in sync, this probably isn’t appropriate.

The easiest option would likely be to synthesise a CSV file with a single transaction and to POST it to the statement end-point, as you’ve already alluded to :thumbsup:

I hope this helps!
Dave J

Thanks @David_Jones

Is there any additional detail on the CSV format - the docs just says that some formats are support, but doesn’t add any further detail.


Hi Simon,

Sure thing, FreeAgent supports a myriad of CSV files, but the simplest is a three column format with date, amount and description. There’s more information about this over in our Knowledge Base article:

Thanks for flagging that this information is missing from the API docs, I’ll pull together an update to link to the above article for future knowledge-seekers :ok_hand:

Hope this helps!
Dave J

1 Like

In case you’re using PHP, our API wrapper will let you create simple, single unexplained bank transactions,
It uses the CSV upload api in the background to achieve it.

You’d be looking at: Entities/BankTransactions/Create

I’ll take a look at that. I’ve got an OpenFAAS stack running on some Raspberry Pis that do various things and have built a similar thing to yours, but in JS

Hi Simon,

We have updated this endpoint to allow you to create one or more (unexplained) transactions in JSON or XML.

You can give the statement parameter as an array of transaction objects, each with a date, description and amount.

This update will not affect your existing CSV based integration, but rather just provides another way to upload transactions. However, this update should remove the need to to synthesise a CSV file for singular transactions.

Link to the announcement: Improvements to uploading statements

Link to the updated docs: