Bank Accounts API
List and manage team-scoped bank account records through public API v1.
Bank-account operations use bank-accounts.read or bank-accounts.write.
Endpoints
| Method | Endpoint | Scope | Purpose |
|---|---|---|---|
| GET | /bank-accounts | bank-accounts.read | List bank accounts |
| POST | /bank-accounts | bank-accounts.write | Create a bank account record |
| GET | /bank-accounts/{id} | bank-accounts.read | Retrieve one account |
| PATCH | /bank-accounts/{id} | bank-accounts.write | Update supplied fields |
| DELETE | /bank-accounts/{id} | bank-accounts.write | Delete an account record |
List Accounts
GET /bank-accounts returns all accessible accounts for the authenticated team. Filter with:
- enabled
- manual
This operation does not document cursor pagination. Do not add page or limit parameters that are absent from OpenAPI.
Create a Manual Record
POST /bank-accounts needs name. The documented optional fields are currency and manual.
curl --request POST \
--url https://api.eigenn.io/v1/bank-accounts \
--header "Authorization: Bearer $EIGENN_API_TOKEN" \
--header "Content-Type: application/json" \
--header "Idempotency-Key: bank-account-operating-usd" \
--data '{
"name": "Operating Account",
"currency": "USD",
"manual": true
}'Do not send institution or account-number fields from legacy descriptions only. The current public create schema does not advertise them.
Update an Account
PATCH /bank-accounts/{id} can update documented fields such as:
- name
- enabled
- balance
- currency
- type
- defaultCoding
Account types are depository, credit, other_asset, loan, and other_liability. Omitted fields remain unchanged.
Default coding
defaultCoding sets the category and GL account applied to this account's transactions when no rule claims the field. It accepts categorySlug and glCode, and either may be null. Send null for the whole object to clear it.
{
"defaultCoding": {
"categorySlug": "software",
"glCode": "6350"
}
}Precedence runs in one direction: the account default is the floor, a transaction rule outranks it, and a value that a person set by hand outranks both. See Transaction Coding.
Delete Carefully
DELETE /bank-accounts/{id} removes the team-scoped account record and returns its details. Examine the linked transaction and reporting workflows before you delete the record.
Balances and Cash Flow
Legacy examples used /balances and /cash-flow, which are not public v1 paths.
Use:
- GET /metrics/balances with metrics.read
- GET /metrics/cash-balance with metrics.read
- GET /metrics/cash-flow with metrics.read
These are analytics operations, not bank-account CRUD.