Subscribe to the transaction.created webhook event so your system is notified when Modern Treasury ingests new bank transactions from connected accounts
On each webhook, fetch the transaction details via GET /api/transactions/{id} and inspect the reconciliation_status field ('unreconciled', 'reconciled', or 'partially_reconciled')
For automatically matched transactions, review the linked expected_payment and ledger_transaction via the embedded _links or by querying GET /api/expected_payments/{id}
For unreconciled transactions, use POST /api/transactions/{id}/reconcile or manually link to an expected payment via PATCH /api/expected_payments/{id} with the matched transaction reference
Use the Ledger API (POST /api/ledger_transactions) to record double-entry accounting entries for each settled payment, ensuring ledger_account balances remain consistent with bank balances
Known gotchas
Modern Treasury's auto-reconciliation uses amount, date, and remittance data to match; loose or missing remittance information (e.g. no memo or reference) significantly reduces match rates
Ledger entries are immutable once posted; reversals require creating a new offsetting ledger transaction rather than editing the original
Bank statement transactions may arrive hours after the actual settlement; do not assume real-time bank balance from the API — use the available_balance from connected account balance endpoints
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp