I managed to find a workaround for this, although it's still a bit annoying that the api doesn't support multi-currency transfers.
It's possible to do currency transfers through a regular account listed in your chart of accounts, so just create a new transfer account for the currency pair you are dealing with, then use the api to add regular bank transactions to it and then withdraw the same amount with the correct exchange rate.
e.g.
create GBP_AUD_TRANSFER account
Add "spend money" transaction from AUD account to the transfer account, e.g. A$30
Add "receive money" transaction to GBP account from the transfer account and pass "currencyRate" as one of the fields for the transaction set to the rate you want to get back in GBP to zero out the transfer account, e.g. if you receive £15 the exchange is A$30/£15 meaning it will withdraw the original $A30 from the transfer account leaving it empty.
I managed to find a workaround for this, although it's still a bit annoying that the api doesn't support multi-currency transfers.
It's possible to do currency transfers through a regular account listed in your chart of accounts, so just create a new transfer account for the currency pair you are dealing with, then use the api to add regular bank transactions to it and then withdraw the same amount with the correct exchange rate.
e.g.
create GBP_AUD_TRANSFER account
Add "spend money" transaction from AUD account to the transfer account, e.g. A$30
Add "receive money" transaction to GBP account from the transfer account and pass "currencyRate" as one of the fields for the transaction set to the rate you want to get back in GBP to zero out the transfer account, e.g. if you receive £15 the exchange is A$30/£15 meaning it will withdraw the original $A30 from the transfer account leaving it empty.