AR and AP accounts track promises, and as you point out, bank accounts and cash are also conceptually no different than other AR account. I call these asset and liability accounts State accounts. They track the current state of your promises and expectations. Since a promise can be reneged or an expectation not met, we need accounts that balance changes in State accounts when value is created or destroyed. That’s what income and expense accounts do — which I call Change accounts [1]
> You don't need accounting for barter.
I get what you’re mean, but I think a good way to get your head around multi-currency accounting is to think of it as double-entry bartering. Each currency only has value because it can be swapped with another currency at a certain rate. Which is basically bartering. How many sheep for how much grain? How many USD for how many GBP?
The interesting part is bringing double-entry into this:
- how do you balance a transaction when the two sides are in different currencies?
- How do you track the exchange rate between currencies?
The answer to each question is the other question. You balance entries by adding two more lines that track gain/loss due to exchange rate fluctuations. I did a talk on this at Fintech Devcon [2] and we cover this in our docs [3]
[1] https://news.ycombinator.com/item?id=39994335