Skip to main content

Insights

Walker Street Data derives three Insights from a customer's enriched transactions:

  • Completeness - whether the available data is complete enough to decide on
  • Risk Score - a probability-of-default signal for underwriting
  • Aggregate - cashflow and behavioural summaries for affordability analysis

One call returns all three together as an Insights bundle. Each Insight covers all of the customer's enriched transactions, not a single submission.

How Insights are produced​

Submitting transactions enriches them but doesn't compute Insights. That takes a separate refresh:

  1. Submit transactions. You receive a jobId.
  2. Poll the job until it reaches Completed or CompletedWithErrors. The transactions are now enriched.
  3. Start a refresh with POST /v1/customer/{customerId}/reports/refresh. It returns 202 Accepted with a new jobId, and recomputes every Insight over the customer's full transaction history.
  4. Poll the refresh job until it finishes. Refresh jobs don't send a job.completed webhook, so polling is the way to track them.
  5. Retrieve the bundle from the endpoint below.

Submitting more transactions later marks the existing Insights stale. They keep returning their previous results until you start another refresh.

Prerequisites​

  • A valid customerId - see Create a customer
  • A finished refresh for that customer (see above)
  • API scopes: customer:riskscore to start a refresh, customer:reports to read the bundle

Endpoint​

GET https://api.walkerstdata.com.au/v1/customer/{customerId}/reports
ParameterLocationRequiredDescription
customerIdpathYesUnique customer identifier

Response shape​

The bundle has one entry per Insight: completeness, risk and aggregate. Each entry has the same four fields:

{
"status": "ready",
"failed": false,
"generatedAt": "2026-09-25T02:18:07Z",
"data": {}
}
FieldDescription
statuspending, ready or stale (see below)
failedtrue if the most recent refresh of this Insight errored
generatedAtWhen data was computed. Present whenever data is
dataThe Insight itself. See Completeness, Risk Score and Aggregate for its fields

For the full response schema and an example response, see Get customer reports in the API reference.

Insight status​

statusMeaningHas data?
pendingNot computed yet: no refresh has succeededNo
readyReflects all of the customer's transactions, and the latest refresh succeededYes
staleNew transactions have arrived since it was computed, or its latest refresh failedYes (last good)

Failed flag​

failed is a flag alongside status, not a status of its own.

statusfailedMeaning
readyfalseThe Insight refreshed successfully. A ready Insight is never failed.
pendingtrueNo refresh has succeeded yet, so there is still no data.
staletrueThe latest refresh failed, and data is the last good result, even if no new transactions arrived.

Handling the bundle​

  • Check each Insight's status before reading its data.
  • A stale Insight is safe to use, but may leave out transactions submitted since it was computed. Start a refresh if you need them included.
  • Treat failed as a signal to retry the refresh or escalate.

Common errors​

StatusEndpointCause
403BothMissing API scope (customer:riskscore or customer:reports)
404BothCustomer not found
409RefreshA job is already in progress for this customer
422RefreshThe customer has no enriched transactions yet

Next steps​

  • Completeness - Confirm the data is complete enough to decide on
  • Aggregate - Review cashflow and affordability summaries
  • Risk Score - Read the probability-of-default signal
  • API Reference - Full endpoint schema and parameter details