FreeAgent integration reference

Things to know when synchronizing data with FreeAgent.

Note the following information when building your application using Codat's FreeAgent integration.

Direct incomes

Direct incomes are mapped from Bank Transaction Explanations in FreeAgent. This object does not support multiple lines, so Direct incomes pulled from FreeAgent only include a single object in the lineItems array.

The currencyRate field is not populated when pulling Direct incomes in foreign currencies due to limitations of the provider's API.

These notes also apply when pulling Direct costs from FreeAgent.


Transfers are mapped from Bank transactions in FreeAgent.

FreeAgent provides a unique transfer ID for each side of the transfer. Codat's data model requires a single unique ID to identify the transfer. In Codat, the transfer id identifies the Transfer to Another Account side of the to/from Bank Transaction Explanation objects in FreeAgent. The transfer id is derived from the url property of the Transfer to object.

FreeAgent does not support transferring funds between a bank account and a nominal account.


Negative amounts in FreeAgent transfers

When pushing a transfer transaction via the FreeAgent API, you can enter gross_value as a negative value, in effect changing the direction of the transfer. Codat's data model does not support pushing negative to/from transfer amounts.

You can achieve the same result by swapping the to and from bank accounts when pushing the data from Codat.

When pulling and pushing Transfers from FreeAgent, the following fields are not available:

  • contactRef.datatype
  • from.currency
  • to.currency

Therefore, when pushing Transfer currency fields to FreeAgent, Codat checks that the specified currency is the same as the associated bank account's currency.

Additionally, any values pushed in descriptionand trackingCategoryRefs are ignored and auto-populated by FreeAgent.