API Reference

API Reference

Transactions

GETRequires a Bearer token/api/ext/v1/transactions

List transactions

Parameters

NameInTypeDescription
directionquerystringFilter by 'inflow' or 'outflow'. Default: both.
fromquerystringOnly transactions on or after this date (YYYY-MM-DD).
toquerystringOnly transactions on or before this date (YYYY-MM-DD).
keywordquerystringFree-text match on counterparty name, memo, or reference.
limitqueryintegerPage size (default 100, max 200).
cursorquerystringKeyset cursor from a previous page's next_cursor. Omit for the first page.

Responses

200Your organization's money ledger, newest first, keyset-paginated. Amounts are integer cents, each paired with a *_known flag (render '—' when false, not $0); internal ids are never included. The summary totals the full filtered set.
FieldTypeDescription
datarequiredPublicTransaction[]One page of transactions, newest first.
next_cursoroptionalstringOpaque cursor for the next page (keyset). Empty when this is the last page.
summaryrequiredPublicTransactionsSummary
200 example
{
  "data": [
    {
      "amount_cents": 150000,
      "amount_known": true,
      "amount_usd_cents": 150000,
      "counterparty_name": "Acme Corp",
      "currency": "USD",
      "date": "2026-02-14",
      "direction": "outflow",
      "has_receipt": true,
      "id": "a1b2c3d4-0000-4000-8000-000000000001",
      "logo_url": "https://logo.example.com/acme.png",
      "memo": "February retainer",
      "method": "ach",
      "reference": "INV-1042",
      "source": "bob",
      "source_label": "BOB",
      "usd_known": true
    }
  ],
  "next_cursor": "2026-02-14/a1b2c3d4-0000-4000-8000-000000000001",
  "summary": {
    "count": 42,
    "inflow_usd_cents": 500000,
    "net_usd_cents": 180000,
    "outflow_usd_cents": 320000,
    "unconverted_count": 0
  }
}

Errors

400Invalid direction, date, limit, or cursor
401Missing or invalid API token
403Token lacks the required scope or credential class
429Rate limit exceeded

All errors return { "error": string }.

Example request

curl https://api.bankofbots.ai/api/ext/v1/transactions \
  -H "Authorization: Bearer $BOB_API_TOKEN"
GETRequires a Bearer token/api/ext/v1/transactions/{transactionId}

Get a transaction

Parameters

NameInTypeDescription
transactionIdrequiredpathstringThe transaction's id (from the transactions list).

Responses

200The transaction. Amounts in integer cents; internal ids are never included.
FieldTypeDescription
amount_centsrequiredint64Amount in the transaction's native currency, integer cents, unsigned magnitude.
amount_knownrequiredbooleanWhen false, amount_cents is a placeholder (0) to render as '—', not money.
amount_usd_centsrequiredint64Amount converted to USD, integer cents.
counterparty_namerequiredstringResolved counterparty name, or '(unknown)'.
currencyrequiredstringISO currency code of amount_cents.
daterequiredstringValue date (YYYY-MM-DD).
directionrequiredstring'inflow' (money in) or 'outflow' (money out) — carries the sign.
has_receiptrequiredbooleanTrue when this payment is matched to an invoice or bill.
idrequiredstringThe transaction id.
logo_urloptionalstringCounterparty logo URL, if known.
memooptionalstringFree-text memo, if any.
methodoptionalstringPayment method, if known.
referenceoptionalstringExternal reference, if any.
sourcerequiredstringMoney feed: 'bob' (BOB-native) or 'plaid' (linked bank).
source_labelrequiredstringHuman-readable feed label ('BOB' or 'Plaid').
usd_knownrequiredbooleanWhen false, amount_usd_cents is a placeholder and is excluded from USD totals.
200 example
{
  "amount_cents": 150000,
  "amount_known": true,
  "amount_usd_cents": 150000,
  "counterparty_name": "Acme Corp",
  "currency": "USD",
  "date": "2026-02-14",
  "direction": "outflow",
  "has_receipt": true,
  "id": "a1b2c3d4-0000-4000-8000-000000000001",
  "logo_url": "https://logo.example.com/acme.png",
  "memo": "February retainer",
  "method": "ach",
  "reference": "INV-1042",
  "source": "bob",
  "source_label": "BOB",
  "usd_known": true
}

Errors

401Missing or invalid API token
403Token lacks the required scope or credential class
404No such transaction in your organization
429Rate limit exceeded

All errors return { "error": string }.

Example request

curl https://api.bankofbots.ai/api/ext/v1/transactions/{transactionId} \
  -H "Authorization: Bearer $BOB_API_TOKEN"
Was this page helpful?