Skip to main content

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 as suppliedId if you sent a transactionId when submitting. Use suppliedId to correlate enriched results with your source records
  • Account context - the account each transaction belongs to, returned in a separate accounts array with bank name, BSB, account number, account type, and account name; each transaction references its account via accountId
  • Job history - a jobs array 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 - state tells you whether the transaction has settled on the account. The only value today is Posted - 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:

LevelWhat it describesExamples
Level 1The broad category of the transactionexpenses, sales, debit_finance
Level 2A specific sub-category within Level 1office_expenses, credit_sales_eftpos, debit_finance_asset-finance
Level 3The counterparty - who received or sent the moneyWoolworths 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:

ParameterDescription
jobIdScope results to a single submission
pagePage number (1-indexed). Omit to return all results
countNumber of transactions per page (defaults to 20)
isEnrichedReturn only enriched or unenriched transactions; omit for all
enrichmentSourceFilter by source: Cypher or PreEnriched
transactionTypeFilter by direction: debit or credit
level1Filter by Level 1 classification (e.g. debit_finance)
level2Filter by Level 2 classification (e.g. debit_finance_asset-finance)
level3Filter by counterparty name (e.g. Commonwealth Bank)
sortBySort field: transactionDate, amount, description, balance, level1, level2, counterpartyName, bsb, accountNumber, accountType, or accountName. Defaults to transactionDate
sortDirectionasc 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