docs
/
AppEngine API

Banking

Bank linking for the books — connect accounts through Plaid, read balances and transactions, and reconcile them. Read-only; no money moves.

AppEngine does not run bank accounts, transfers, cards or lending. The banking-as-a-service module that did (/banking/*) was removed; none of its routes exist.

What remains is bank linking for the books, under /business-made/bank: connect a business's accounts through Plaid, read balances and transactions, and reconcile them against the ledger. It is read-only aggregation — no money movement.

A second factor is required. Linking a bank is the most sensitive thing a user can do, so the caller must have two-step verification on (authenticator app, email or SMS code) before Plaid Link is offered. An org can require it for everyone in Security settings.

Connecting

GET/business-made/bank/statusJWT
GET/business-made/bank/mfaJWT
POST/business-made/bank/link-tokenJWT
POST/business-made/bank/exchangeJWT
POST/business-made/bank/sandbox/connectJWT
GET/business-made/bank/connectionsJWT
DELETE/business-made/bank/connections/:idJWT
POST/business-made/bank/connections/:id/syncJWT
POST/business-made/bank/connections/resealJWT
POST/business-made/bank/accounts/mapJWT

link-token starts Plaid Link; exchange turns its public token into a stored connection. sandbox/connect links a test bank without the Link UI. accounts/map gives every connected account that lacks one its own ledger account; connections/reseal encrypts any access token stored before encryption at rest. Both are idempotent.

Balances

GET/business-made/bank/balancesJWT
POST/business-made/bank/refresh-balancesJWT

Balances are live across every connected account, grouped by currency; refresh-balances pulls them from the bank and stores them.

Transactions and reconciliation

GET/business-made/bank/transactionsJWT
GET/business-made/bank/reconcile/summaryJWT
POST/business-made/bank/reconcile/auto-matchJWT
POST/business-made/bank/transactions/:id/confirmJWT
POST/business-made/bank/transactions/:id/unmatchJWT
POST/business-made/bank/transactions/:id/ignoreJWT
POST/business-made/bank/transactions/:id/create-entryJWT

Synced transactions are matched to ledger entries automatically where they agree; the rest wait to be confirmed, unmatched, ignored, or turned into a new entry.

Datatypes: bank_connection, bank_transaction. Other bank_*, loan*, investment and treasury datatypes remain in the SDK enum for stored records only — no routes serve them.

See Business Made for the books these feed, and Finance for payments.