@get-asset/react

AssetTransactions

Styled transactions table showing each transaction's date, description, account, amount and category. The header carries status and account filter dropdowns, and a “load more” banner at the bottom fetches the next page. Payment-only transactions are excluded by default. Pending rows carry confirm and provide-context actions; the latter reveals an inline form for adding context before submitting.

Preview

Transactions

Date
Transaction
Account
Amount
Status
Category
CARRIER ENTERPRISE PHOENIX
-$56.25
Needs Attention
Cost of Goods Sold - Supplies
JOHNSTONE SUPPLY PHOENIX
-$80.29
Needs Attention
2 categories
GRAINGER INDUSTRIAL
-$214.60
In Review
Cost of Goods Sold - Supplies
STAPLES PHOENIX AZ
-$132.10
Confirmed
Office Supplies

Required scopes

The access token used by AssetProvider must include these scopes for this primitive to fetch data successfully:

  • transaction:read
  • transaction:update
  • external_account:read
  • business:read
  • tag:read
  • journal_entry:read
  • journal_entry:create

API reference

Root props

PropTypeDefaultDescription
yearnumberOverride the AssetProvider's year for the date range.
monthnumber | nullOverride the AssetProvider's month (1-12); null forces the whole year. Omit to inherit the provider's month.
plan"managed" | "diy"Override the business plan — "managed" (Done for you) or "diy" (Do it yourself). Drives the status labels and filter options (see Plan behaviour). Defaults to the fetched plan, or "managed".
startDatetimestringISO datetime overriding the start of the provider-derived year/month period.
endDatetimestringISO datetime overriding the end of the provider-derived year/month period.
accountIdsstring[]Only include transactions for these external account ids.
ledgerTypeLedgerTypeOnly include transactions whose journal entry has a line in a ledger of this type (e.g. "expense"). Always applied to the fetch. Ignored when ledgerSubtype is also set — the subtype is more granular and already implies its type.
ledgerSubtypeLedgerSubTypeOnly include transactions whose journal entry has a line in a ledger of this subtype (e.g. "operating_expense"). Always applied to the fetch. Takes precedence over ledgerType — when both are set only the subtype is sent to the API.
pageSizenumberPage size passed to the API.
entriesTransactionOverride[]Override the rows shown. Skips the API call.
tagFieldsTransactionTagField[]Override the fetched tag fields (name + values), skipping the fetch. Pass [] to hide the Tag column entirely (see Tags).
allowCreateTagbooleantrueAllow creating new tag values from the picker (see Tags).
onTagsChanged(transaction, field, values) => voidNotification fired once per edited field after a successful tag write.
state"loading" | "error" | "empty"Force a specific state for testing.
classNamestringForwarded to the outer container element.

States

Loading

Transactions

Date
Transaction
Account
Amount
Status
Category
Success

Transactions

Date
Transaction
Account
Amount
Status
Category
CARRIER ENTERPRISE PHOENIX
-$56.25
Needs Attention
Cost of Goods Sold - Supplies
JOHNSTONE SUPPLY PHOENIX
-$80.29
Needs Attention
2 categories
GRAINGER INDUSTRIAL
-$214.60
In Review
Cost of Goods Sold - Supplies
STAPLES PHOENIX AZ
-$132.10
Confirmed
Office Supplies
EmptyNo transactions recorded.

Transactions

No transactions to show yet.
Error

Transactions

Tags

Whenever the business defines at least one tag field, a Tag column appears between Transaction and Account (and is hidden entirely otherwise). The closed state shows a quiet [+] when a row is untagged, its first value once tagged, and value +N when it carries more — hover to see the full set. On mobile the same control sits inline next to the category chip instead of its own column.

Clicking the trigger opens a searchable picker grouped by field; typing a value that doesn't exist yet on a field reveals an Add "…" to <Field> row that creates it (disable this with allowCreateTag={false}).

Edits write per field, and when a field ends up with more than one value the transaction's amount is split evenly across them in reports — see the SDK page's Tags section for the full write semantics.

Plan behaviour

Asset businesses are on one of two plans, and some components behave differently on each. On Done for you (the managedplan) a bookkeeper reviews and categorises the business's books for them; on Do it yourself (the diy plan) there is no bookkeeper, so the business keeps its own books. The plan is resolved from the business automatically — override it with the plan prop.

The table shows the same columns on either plan, but the status labels a customer sees, the status filter options, and the result of submitting context all depend on whether a bookkeeper is in the loop:

BehaviourDone for youmanagedDo it yourselfdiy
Status labelsNeeds Attention, In Review (with the bookkeeper) and Confirmed.Needs Attention and Confirmed only — with no bookkeeper, an in-review transaction still reads Needs Attention.
Status filterNeeds Attention / In Review / Confirmed.Needs Attention / Confirmed.
Submitting contextHands the transaction back to the bookkeeper.Advances the transaction into review itself (no bookkeeper to do it).