Docs · Reference
Transactions
Posted and pending transactions, ledger and card, newest first.
List posted transactions
GET/v1/transactions
Ledger and card transactions, ordered by date, newest first, then a unique tiebreaker. Category ids can change during the closed beta, so don't store them as keys.
Authentication
Bearer token whose client has the scope transactions:read
Parameters
cursorThe next_cursor from the previous page. Opaque: don't build or edit it
limitRows per page
fromEarliest date, inclusive
toLatest date
directionOnly credits or only debits
mediumOnly one payment medium, such as ach, card, check or wire
card_idOnly transactions on this card
category_idOnly transactions in this category
qSearch text: letters, digits, spaces and periods only. Anything else is a 400
Response · a list of Transaction
dataThe page of results
next_cursorPass it as cursor to get the next page. null on the last page
Each item in data:
idrequiredThe transaction's id
daterequiredTransaction date
amountrequiredAmount moved
amountrequiredDecimal string with two places, never negative. The direction field says which way it moved
currencyrequiredAlways USD
directionrequiredMoney in (credit) or out (debit)
mediumrequiredPayment medium, such as ach, card, check or wire
statusrequiredTransaction status
descriptionrequireduntrusted textDescription from the merchant, payer or bank
counterpartyWho was on the other side
nameuntrusted textMerchant or payee name
categoryCategory of the transaction
idThe category's id. May change during the closed beta
nameuntrusted textThe category's name. Untrusted when the owner created the category
notesuntrusted textNote added in Novo
reference_numberReference number
check_numberCheck number, for checks
cardThe card used, for card transactions
idThe card's id
last_fourLast 4 digits of the card
Responses
200OK401The token is missing, expired or unknown, or the client was revoked or switched off403The client lacks the scope, the owner's standing changed, or the API isn't enabled for this business429Too many requests. Wait for Retry-After500Something failed unexpectedly on Novo's side. Not retryable: quote request_id to support503Something the answer depends on is unavailable. Retry after Retry-After
curl "https://$NOVO_API_HOST/v1/transactions" \
-H "Authorization: Bearer $ACCESS_TOKEN"{
"data": [
{
"id": "txn_example_01",
"date": "2026-10-01",
"amount": {
"amount": "84.20",
"currency": "USD"
},
"direction": "debit",
"medium": "card",
"status": "EXAMPLE_STATUS",
"description": "EXAMPLE MERCHANT",
"counterparty": {
"name": "Example Merchant"
},
"category": {
"id": "cat_example_01",
"name": "Supplies"
},
"card": {
"id": "00000000-0000-4000-8000-000000000001",
"last_four": "4321"
}
}
],
"next_cursor": null
}List pending transactions
GET/v1/transactions/pending
Transactions that haven't posted yet. Pages hold at most 100 rows. The counterparty is a name only. If part of the list can't be loaded, you get a 503 with Retry-After, never an incomplete page. A page is a snapshot; a walk through many pages is not.
Authentication
Bearer token whose client has the scope transactions:read
Parameters
cursorThe next_cursor from the previous page. Opaque: don't build or edit it
limitRows per page
Response · a list of PendingTransaction
dataThe page of results
next_cursorPass it as cursor to get the next page. null on the last page
Each item in data:
idrequiredThe pending transaction's id
amountrequiredAmount
amountrequiredDecimal string with two places, never negative. The direction field says which way it moved
currencyrequiredAlways USD
directionrequiredMoney in (credit) or out (debit)
mediumrequiredPayment medium
descriptionrequireduntrusted textDescription from the merchant, payer or bank
counterpartyWho is on the other side
nameuntrusted textMerchant or payee name
expected_onDate it's expected to arrive
check_numberCheck number, for checks
Responses
200OK401The token is missing, expired or unknown, or the client was revoked or switched off403The client lacks the scope, the owner's standing changed, or the API isn't enabled for this business429Too many requests. Wait for Retry-After500Something failed unexpectedly on Novo's side. Not retryable: quote request_id to support503Something the answer depends on is unavailable. Retry after Retry-After
curl "https://$NOVO_API_HOST/v1/transactions/pending" \
-H "Authorization: Bearer $ACCESS_TOKEN"{
"data": [
{
"id": "ptx_example_01",
"amount": {
"amount": "400.00",
"currency": "USD"
},
"direction": "credit",
"medium": "ach",
"description": "EXAMPLE PAYER PAYMENT",
"counterparty": {
"name": "Example Payer"
},
"expected_on": "2026-10-03"
}
],
"next_cursor": null
}Get one posted transaction
GET/v1/transactions/{transaction_id}
The same transaction object as in the list.
Authentication
Bearer token whose client has the scope transactions:read
Parameters
transaction_idrequiredThe transaction's id
Response · Transaction
idrequiredThe transaction's id
daterequiredTransaction date
amountrequiredAmount moved
amountrequiredDecimal string with two places, never negative. The direction field says which way it moved
currencyrequiredAlways USD
directionrequiredMoney in (credit) or out (debit)
mediumrequiredPayment medium, such as ach, card, check or wire
statusrequiredTransaction status
descriptionrequireduntrusted textDescription from the merchant, payer or bank
counterpartyWho was on the other side
nameuntrusted textMerchant or payee name
categoryCategory of the transaction
idThe category's id. May change during the closed beta
nameuntrusted textThe category's name. Untrusted when the owner created the category
notesuntrusted textNote added in Novo
reference_numberReference number
check_numberCheck number, for checks
cardThe card used, for card transactions
idThe card's id
last_fourLast 4 digits of the card
Responses
200OK401The token is missing, expired or unknown, or the client was revoked or switched off403The client lacks the scope, the owner's standing changed, or the API isn't enabled for this business404Nothing with that id in the bound business429Too many requests. Wait for Retry-After500Something failed unexpectedly on Novo's side. Not retryable: quote request_id to support503Something the answer depends on is unavailable. Retry after Retry-After
curl "https://$NOVO_API_HOST/v1/transactions/txn_example_01" \
-H "Authorization: Bearer $ACCESS_TOKEN"{
"id": "txn_example_01",
"date": "2026-10-01",
"amount": {
"amount": "84.20",
"currency": "USD"
},
"direction": "debit",
"medium": "card",
"status": "EXAMPLE_STATUS",
"description": "EXAMPLE MERCHANT",
"counterparty": {
"name": "Example Merchant"
},
"category": {
"id": "cat_example_01",
"name": "Supplies"
},
"card": {
"id": "00000000-0000-4000-8000-000000000001",
"last_four": "4321"
}
}Planned for transactions
- Add notes and categories
Not available yet, and no endpoints are published for it. They’ll appear here once the contract defines them. Anything marked “needs your approval” waits for the account owner to approve it on their phone, every time. Tell us what you need first when you ask for a seat.