Send bank transactions from an automation
The import API takes bank transactions from n8n, Zapier or your own script instead of a file. It runs the same import as a statement upload: the lines land in Bank transactions and a line already sent is skipped.
Instead of uploading a file, let n8n, Zapier or a script send bank transactions straight to your books with a token.
Before you start
Steps
-
Open Settings, Import API, and create a token named after the automation.
-
Copy the token now: it is shown once. Your automation sends it as a Bearer token.
-
Post the account ID and its transactions to the endpoint. Lines already sent are skipped.
-
Review the new lines in Bank transactions and post each to an account.
What to send
Post JSON to the endpoint shown on the Import API page, with the header
Authorization: Bearer <token>. The body names one bank or credit-card account by its ID and lists
its transactions:
{
"account_id": 12,
"transactions": [
{ "date": "2026-09-01", "description": "Stripe payout", "amount": "1250.40", "reference": "po_1" },
{ "date": "2026-09-02", "description": "Coffee", "amount": "-4.50" }
]
}
Dates are YYYY-MM-DD. Amounts are signed decimals in your base currency: money in is positive,
money out negative. reference is optional. One request takes up to 5,000 transactions.
Check it worked
A successful request answers 202 with the import run's ID, and the lines appear in Bank
transactions once the run finishes. A malformed line is named in a 422 answer, for example
transactions.3.amount, and nothing from that request is imported. A revoked or unknown token
gets 401. More than 60 requests a minute from one token gets 429; wait and send again.