Enriched transactions
Every transaction that enters Walker Street Data - whether submitted as JSON or extracted from a PDF bank statement - is automatically enriched. Enrichment turns raw transaction lines into structured, categorised data that's ready for reporting and credit decisioning, and is the foundation for the customer's reports - Completeness, Aggregate, and Risk Score.
How enrichment works
Raw transaction descriptions are messy and inconsistent - the same merchant can appear in dozens of formats, and a description alone tells you little about what the money was actually for. Enrichment resolves this by classifying each transaction and attaching structured detail.
Enrichment runs as a background job. When you submit transactions you get back a jobId; once the job reaches Completed or CompletedWithErrors, the enriched results are available to retrieve. See Jobs for the status lifecycle.
For each transaction, enrichment adds:
- Hierarchical categorisation - a three-level classification of what the transaction is (see below)
- Counterparty detail - the party on the other side of the transaction, with name and ABN where available
- Confidence scores - a probability score for each classification level, so you know how certain the model is
The original date, amount, description, and balance are always preserved exactly as received. Alongside the classification, each enriched transaction also carries:
- Unique identifiers - a Walker Street Data
transactionId, plus your own ID echoed back assuppliedIdif you sent atransactionIdwhen submitting. UsesuppliedIdto correlate enriched results with your source records - Account context - the account each transaction belongs to, returned in a separate
accountsarray with bank name, BSB, account number, account type, and account name; each transaction references its account viaaccountId - Job history - a
jobsarray listing every job the transaction was part of. Because resubmitted duplicates attach to the existing transaction, one stored transaction can belong to several submissions - Transaction state -
statetells you whether the transaction has settled on the account. The only value today isPosted- a finalised transaction with a fixed amount and date. Pending (unsettled) transactions are never returned - Enrichment source - where the classification came from: Walker Street Data's classification engine (returned as
Cypher) or a pre-enriched import (PreEnriched)
The categories we use
Walker Street Data classifies each transaction against a hierarchical taxonomy with three levels, moving from broad to specific:
| Level | What it describes | Examples |
|---|---|---|
| Level 1 | The broad category of the transaction | expenses, sales, debit_finance |
| Level 2 | A specific sub-category within Level 1 | office_expenses, credit_sales_eftpos, debit_finance_asset-finance |
| Level 3 | The counterparty - who received or sent the money | Woolworths Group (ABN 12345678901) |
Level 1 and Level 2 together form a fixed dictionary of classification tags. You can retrieve the complete, up-to-date list of Level 1 and Level 2 tags at any time from the GET /v1/configuration/tags endpoint - see the API reference. Level 3 is resolved per-transaction to the specific counterparty rather than drawn from a fixed list.
Retrieve enriched transactions
Retrieve a customer's enriched transactions with GET /v1/customer/{customerId}/transactions. Pass the jobId you received when submitting to scope the results to that submission.
Filtering, sorting, and pagination
The endpoint accepts optional query parameters to narrow and page through results:
| Parameter | Description |
|---|---|
jobId | Scope results to a single submission |
page | Page number (1-indexed). Omit to return all results |
count | Number of transactions per page (defaults to 20) |
isEnriched | Return only enriched or unenriched transactions; omit for all |
enrichmentSource | Filter by source: Cypher or PreEnriched |
transactionType | Filter by direction: debit or credit |
level1 | Filter by Level 1 classification (e.g. debit_finance) |
level2 | Filter by Level 2 classification (e.g. debit_finance_asset-finance) |
level3 | Filter by counterparty name (e.g. Commonwealth Bank) |
sortBy | Sort field: transactionDate, amount, description, balance, level1, level2, counterpartyName, bsb, accountNumber, accountType, or accountName. Defaults to transactionDate |
sortDirection | asc or desc. Defaults to desc |
Pagination follows the standard Pagination rules. For the full parameter and response reference, see the API reference.
You can also export the same data as a file: GET /v1/customer/{customerId}/transactions/download with a required type=json or type=csv parameter, supporting the same filters.
Next steps
With enriched transactions available, you can request reporting for your customer:
- Completeness - Assess data coverage and reliability for the assessment
- Aggregate - Summarise cashflow and financial behaviour patterns
- Risk Score - Get a risk signal for credit decisioning