Skip to content

bank ​

33 endpoints at a glance
MethodPathSummary
GET/bank/accountsList Bank Accounts
POST/bank/accountsCreate Bank Account
DELETE/bank/accounts/{account_id}Delete Bank Account
PATCH/bank/accounts/{account_id}Update Bank Account
POST/bank/accounts/{account_id}/set-defaultSet Default Bank Account
POST/bank/accounts/{account_id}/syncSync Account Now
GET/bank/budget-summaryBudget Summary
GET/bank/categoriesList Categories
POST/bank/categoriesCreate Category
DELETE/bank/categories/{category_id}Delete Category
PATCH/bank/categories/{category_id}Update Category
GET/bank/connectionsList Connections
POST/bank/connectionsCreate Connection
DELETE/bank/connections/{connection_id}Delete Connection
POST/bank/connections/{connection_id}/finalizeFinalize Connection
POST/bank/importImport Bank Statement
GET/bank/institutionsList Institutions
GET/bank/rulesList Rules
POST/bank/rulesCreate Rule
DELETE/bank/rules/{rule_id}Delete Rule
PATCH/bank/rules/{rule_id}Update Rule
POST/bank/rules/applyApply Rules
POST/bank/rules/from-transactionRule From Transaction
POST/bank/rules/previewPreview Rule
POST/bank/rules/reorderReorder Rules
GET/bank/targetsList Targets
POST/bank/targetsSet Target
DELETE/bank/targets/{target_id}Delete Target
PATCH/bank/targets/{target_id}Update Target
GET/bank/transactionsList Transactions
PATCH/bank/transactions/{txn_id}Patch Transaction
POST/bank/transactions/{txn_id}/matchMatch Transaction
POST/bank/transactions/{txn_id}/unmatchUnmatch Transaction

bank​


Import Bank Statement​

POST
/bank/import

Upload a CAMT.053 (XML) or bank CSV statement → deduped bank transactions on
the matching account (created by IBAN on first sight).

Parameters​

Header Parameters

authorization

Request Body​

multipart/form-data

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Body

Samples​


List Bank Accounts​

GET
/bank/accounts

Parameters​

Header Parameters

authorization

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


Create Bank Account​

POST
/bank/accounts

Parameters​

Header Parameters

authorization

Request Body​

application/json
JSON
{
  
"iban": "string",
  
"account_name": "string",
  
"bank_name": "string",
  
"kind": "business"
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Body

Samples​


Delete Bank Account​

DELETE
/bank/accounts/{account_id}

Parameters​

Header Parameters

authorization

Path Parameters

account_id*
Type
string
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Update Bank Account​

PATCH
/bank/accounts/{account_id}

Parameters​

Header Parameters

authorization

Path Parameters

account_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"kind": "string",
  
"ledger_account_id": "string",
  
"account_name": "string",
  
"bank_name": "string"
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value
Body

Samples​


Set Default Bank Account​

POST
/bank/accounts/{account_id}/set-default

Parameters​

Header Parameters

authorization

Path Parameters

account_id*
Type
string
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


List Transactions​

GET
/bank/transactions

Parameters​

Header Parameters

authorization

Query Parameters

account
status
q
page
Type
integer
Default
1
limit
Type
integer
Default
100

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Match Transaction​

POST
/bank/transactions/{txn_id}/match

Parameters​

Header Parameters

authorization

Path Parameters

txn_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"kind": "string",
  
"target_id": "string",
  
"ledger_account_id": "string",
  
"amount_cents": 0,
  
"date": "string"
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value
Body

Samples​


Unmatch Transaction​

POST
/bank/transactions/{txn_id}/unmatch

Parameters​

Header Parameters

authorization

Path Parameters

txn_id*
Type
string
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Budget Summary​

GET
/bank/budget-summary

Income/expense rollup for the Budget view. from is inclusive, to
exclusive. kind (business|personal) scopes to every account of that kind;
account scopes to one. Excluded rows (incl. detected transfers) are omitted.

Parameters​

Header Parameters

authorization

Query Parameters

from
to
account
kind

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Patch Transaction​

PATCH
/bank/transactions/{txn_id}

Set the budgeting dimension on a transaction (category / exclude / note).
Independent of reconciliation — never touches match/status.

Parameters​

Header Parameters

authorization

Path Parameters

txn_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"category_id": "string",
  
"excluded": true,
  
"note": "string"
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value
Body

Samples​


List Categories​

GET
/bank/categories

Parameters​

Header Parameters

authorization

Query Parameters

include_archived
Type
boolean
Default
false

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Create Category​

POST
/bank/categories

Parameters​

Header Parameters

authorization

Request Body​

application/json
JSON
{
  
"name": "string",
  
"kind": "expense",
  
"color": "string",
  
"parent_id": "string"
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Body

Samples​


Delete Category​

DELETE
/bank/categories/{category_id}

Parameters​

Header Parameters

authorization

Path Parameters

category_id*
Type
string
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Update Category​

PATCH
/bank/categories/{category_id}

Parameters​

Header Parameters

authorization

Path Parameters

category_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"name": "string",
  
"kind": "string",
  
"color": "string",
  
"parent_id": "string",
  
"archived": true,
  
"order": 0
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value
Body

Samples​


Preview Rule​

POST
/bank/rules/preview

Count how many existing transactions a rule with these conditions would
match — powers the live "past op N transacties" hint before saving.

Parameters​

Header Parameters

authorization

Request Body​

application/json
JSON
{
  
"counterparty_contains": "string",
  
"counterparty_iban": "string",
  
"description_contains": "string"
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Body

Samples​


List Rules​

GET
/bank/rules

Parameters​

Header Parameters

authorization

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


Create Rule​

POST
/bank/rules

Parameters​

Header Parameters

authorization

Request Body​

application/json
JSON
{
  
"counterparty_contains": "string",
  
"counterparty_iban": "string",
  
"description_contains": "string",
  
"category_id": "string",
  
"set_excluded": false
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Body

Samples​


Delete Rule​

DELETE
/bank/rules/{rule_id}

Parameters​

Header Parameters

authorization

Path Parameters

rule_id*
Type
string
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Update Rule​

PATCH
/bank/rules/{rule_id}

Parameters​

Header Parameters

authorization

Path Parameters

rule_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"counterparty_contains": "string",
  
"counterparty_iban": "string",
  
"description_contains": "string",
  
"category_id": "string",
  
"set_excluded": true,
  
"enabled": true
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value
Body

Samples​


Reorder Rules​

POST
/bank/rules/reorder

Parameters​

Header Parameters

authorization

Request Body​

application/json
JSON
{
  
"ordered_ids": [
  
  
"string"
  
]
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Body

Samples​


Apply Rules​

POST
/bank/rules/apply

Retroactively run transfer detection + rules over every account's
still-uncategorised rows.

Parameters​

Header Parameters

authorization

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


Rule From Transaction​

POST
/bank/rules/from-transaction

'Categorize like this…' — build a rule from a transaction's counterparty /
IBAN / description, then apply it across all accounts.

Parameters​

Header Parameters

authorization

Request Body​

application/json
JSON
{
  
"txn_id": "string",
  
"category_id": "string",
  
"set_excluded": false,
  
"field": "counterparty"
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Body

Samples​


List Targets​

GET
/bank/targets

Parameters​

Header Parameters

authorization

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


Set Target​

POST
/bank/targets

Set the monthly target for a category (upsert — one target per category).

Parameters​

Header Parameters

authorization

Request Body​

application/json
JSON
{
  
"category_id": "string",
  
"amount_cents": 0
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Body

Samples​


Delete Target​

DELETE
/bank/targets/{target_id}

Parameters​

Header Parameters

authorization

Path Parameters

target_id*
Type
string
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Update Target​

PATCH
/bank/targets/{target_id}

Parameters​

Header Parameters

authorization

Path Parameters

target_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"amount_cents": 0
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value
Body

Samples​


List Institutions​

GET
/bank/institutions

Parameters​

Header Parameters

authorization

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


List Connections​

GET
/bank/connections

Parameters​

Header Parameters

authorization

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


Create Connection​

POST
/bank/connections

Parameters​

Header Parameters

authorization

Request Body​

application/json
JSON
{
  
"institution_id": "string",
  
"institution_name": "string"
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Body

Samples​


Finalize Connection​

POST
/bank/connections/{connection_id}/finalize

Called after the user returns from bank consent: read the granted accounts
and create a bank_account (business by default) for each.

Parameters​

Header Parameters

authorization

Path Parameters

connection_id*
Type
string
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Delete Connection​

DELETE
/bank/connections/{connection_id}

Parameters​

Header Parameters

authorization

Path Parameters

connection_id*
Type
string
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Sync Account Now​

POST
/bank/accounts/{account_id}/sync

Parameters​

Header Parameters

authorization

Path Parameters

account_id*
Type
string
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Kancil — one workspace for contacts, work and money.