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:
- Submit transactions. You receive a
jobId. - Poll the job until it reaches
CompletedorCompletedWithErrors. The transactions are now enriched. - Start a refresh with
POST /v1/customer/{customerId}/reports/refresh. It returns202 Acceptedwith a newjobId, and recomputes every Insight over the customer's full transaction history. - Poll the refresh job until it finishes. Refresh jobs don't send a
job.completedwebhook, so polling is the way to track them. - 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:riskscoreto start a refresh,customer:reportsto read the bundle
Endpoint
GET https://api.walkerstdata.com.au/v1/customer/{customerId}/reports
| Parameter | Location | Required | Description |
|---|---|---|---|
customerId | path | Yes | Unique 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": {}
}
| Field | Description |
|---|---|
status | pending, ready or stale (see below) |
failed | true if the most recent refresh of this Insight errored |
generatedAt | When data was computed. Present whenever data is |
data | The 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
status | Meaning | Has data? |
|---|---|---|
pending | Not computed yet: no refresh has succeeded | No |
ready | Reflects all of the customer's transactions, and the latest refresh succeeded | Yes |
stale | New transactions have arrived since it was computed, or its latest refresh failed | Yes (last good) |
Failed flag
failed is a flag alongside status, not a status of its own.
status | failed | Meaning |
|---|---|---|
ready | false | The Insight refreshed successfully. A ready Insight is never failed. |
pending | true | No refresh has succeeded yet, so there is still no data. |
stale | true | The latest refresh failed, and data is the last good result, even if no new transactions arrived. |
Handling the bundle
- Check each Insight's
statusbefore reading itsdata. - A
staleInsight is safe to use, but may leave out transactions submitted since it was computed. Start a refresh if you need them included. - Treat
failedas a signal to retry the refresh or escalate.
Common errors
| Status | Endpoint | Cause |
|---|---|---|
403 | Both | Missing API scope (customer:riskscore or customer:reports) |
404 | Both | Customer not found |
409 | Refresh | A job is already in progress for this customer |
422 | Refresh | The 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