Marking bill as 'Paid' via API

Dear FreeAgent support,

Is it possible to mark a bill as paid via the api? I am looking to change the status to ‘Paid’ and also add a ‘paid_on’ date. However, when I send the put request with the necessary json, these attributes do not seem to be editable. This is the json body I am sending over the API:

“bill”: {
“bill_items”: [

Best wishes,


Hi Ollie,

A bill needs a corresponding bank payment to be marked as paid, so normally you would need to link a transaction in the company’s bank accounts to the bill. It can’t be marked as paid without a payment recorded to balance it.

The usual way this happens is that bank transactions are imported into the bank account by the user setting up an Open Banking feed in FreeAgent to import transactions from the bank. These can then be explained by the user either through the web interface or using the API, which links and “pays” the bill.

Assuming the user has set up a bank feed and there’s a transaction for the bill payment, then as an API integrator, you can create bank transaction explanations via the API using the paid_bill attribute set to the URL of the bill. This will explain and link the transaction to the bill, causing it to be marked as paid if the payment equals the bill value. The paid on date will also be filled in from the linked transaction.

Hope that helps.


Ok great thanks, that’s very helpful. I was thinking these steps were only necessary for invoices but clearly not!