write key.
1. Create the accounts
One call per institution, up to 20 accounts at a time. Re-posting the same institution updates it in place — this call is safe to repeat.externalId is your identifier for the account — you’ll reference it when pushing transactions. The opening balance is posted to the ledger at its declared date, once.
2. Push transactions
Up to 1,000 per request, 5 MB max body.Sign convention: positive is money out, negative is money in. A $2,000 customer payment received is
-2000.00.Idempotency
Give each transaction a stableid from your system and re-sends become no-ops. If you omit id, Cherry derives one from date, amount, and description — identical rows still dedupe, but two genuinely distinct transactions with identical date, amount, and description would collapse, so supplying your own id is better.
3. Cherry does the accounting
Categorization and journal-entry booking run asynchronously, usually within minutes. You’ll see results appear on the pushed rows:GET /v1/accounts (see the API Reference tab), plus "transfer" for internal transfers between your own accounts.