Reports
Reports are the insight metrics Walker Street Data derives from a customer's enriched transactions. A single endpoint returns all of them together as a report bundle:
- 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
Each report is customer-wide: it always reflects all of the customer's enriched transactions, not a single submission. You retrieve the whole bundle in one call rather than requesting each report separately.
How reports are produced
Reports are not computed automatically. Submitting transactions enriches them; computing the reports is a separate call:
- Submit transactions (or a PDF). 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 report 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 reports endpoint.
Submitting more transactions later marks the existing reports stale. They stay stale, and keep returning the previous report, until you start another refresh.
Prerequisites
- Valid
customerId- see Create a customer - Enriched transactions available for that customer - see Upload banking data
- API scopes:
customer:riskscoreto start a refresh,customer:reportsto read the bundle
Endpoint
GET https://api.walkerstdata.com.au/v1/customer/{customerId}/reports
Request parameters
| Parameter | Location | Required | Description |
|---|---|---|---|
customerId | path | Yes | Unique customer identifier |
Report status
Every report in the bundle carries a status and a failed flag so you can tell what the
report reflects and whether the latest refresh succeeded.
status | Meaning | Carries data? |
|---|---|---|
pending | No report of this kind has been computed yet (no refresh has finished). | No |
ready | The report reflects all available transactions. | Yes |
stale | A report exists, but new transactions have arrived since it was computed. | Yes (last good) |
failed is a flag, not a status. It is true when the most recent compute/refresh attempt
errored:
- on a
pendingreport - the first computation failed and there is still no data - on a
stalereport - a refresh failed, and the last good report is still returned
A ready report is never failed. When data is present it is accompanied by generatedAt,
the timestamp the report was computed.
Response shape
The bundle has one envelope per report kind. Each envelope has status, failed,
generatedAt, and data. See the linked pages for the fields inside each data payload -
Completeness, Risk Score, and Aggregate.
Handling the bundle
- Check each report's
statusbefore reading itsdata. Apendingreport has nodata. - A
stalereport is safe to use, but it leaves out transactions submitted since it was computed. Start a refresh if you need them included. - Treat
failedas a signal to retry or escalate; the accompanyingdata(if any) is the last successfully computed report.
Common errors
| Status | Cause |
|---|---|
403 | Missing API scope customer:reports |
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