Skip to main content

Get started

Follow these steps to go from zero to decision-ready insights. Each step links out to a detailed guide.

  1. Get an API key. Contact us to request your API key and discuss your use case. See Authentication for how keys, scopes, and environments work.

  2. Create a customer. Create your customer with their 11-digit ABN to obtain a customerId, which most API operations require. → Create a customer

  3. Submit transactions. Submit transactions by classifying structured data you already have, or by extracting them from a PDF bank statement. Submitting is asynchronous - you get a jobId and processing continues in the background (see Jobs). Both paths return enriched, categorised transactions.

  4. Retrieve enriched transactions. Once the job completes, pull back the enriched, categorised transactions for the customer.

  5. Refresh reports. Reports aren't computed automatically when transactions arrive. Once the submission job has finished, start a report refresh to compute them over all of the customer's enriched transactions. The refresh is asynchronous too: it returns a jobId to poll.

  6. Get reports. When the refresh job finishes, retrieve the customer's decision-ready signals - Completeness, Risk Score, and Aggregate - together in a single call from the reports endpoint.

The flow end to end​

The whole integration is five calls, plus polling for the two jobs. The base URL below is the production host; swap in the sandbox host from Authentication while you build and test.

# 1. Create the customer (returns customerId)
curl -X POST "https://api.walkerstdata.com.au/v1/customer" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"abn": "12345678901"}'

# 2. Submit their transactions (returns jobId)
curl -X POST "https://api.walkerstdata.com.au/v1/customer/{customerId}/transactions" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{ "transactions": [ /* ... */ ], "accountName": "ACME Pty Ltd", "bsb": "062001", "accountNumber": "12345678", "bankName": "Commonwealth Bank of Australia", "accountType": "Business Transaction Account" }'

# 3. Wait for the job to finish - poll its status, or subscribe to a webhook
curl -X GET "https://api.walkerstdata.com.au/v1/jobs/{jobId}/status" \
-H "x-api-key: YOUR_API_KEY"

# 4. Retrieve enriched transactions
curl -X GET "https://api.walkerstdata.com.au/v1/customer/{customerId}/transactions?jobId={jobId}" \
-H "x-api-key: YOUR_API_KEY"

# 5. Refresh the customer's reports (returns a new jobId)
curl -X POST "https://api.walkerstdata.com.au/v1/customer/{customerId}/reports/refresh" \
-H "x-api-key: YOUR_API_KEY"

# 6. Wait for the refresh job to finish - poll its status (refresh jobs don't send webhooks)
curl -X GET "https://api.walkerstdata.com.au/v1/jobs/{refreshJobId}/status" \
-H "x-api-key: YOUR_API_KEY"

# 7. Retrieve the customer's reports (completeness, risk, aggregate)
curl -X GET "https://api.walkerstdata.com.au/v1/customer/{customerId}/reports" \
-H "x-api-key: YOUR_API_KEY"
Prefer webhooks to polling

Step 3 can be push instead of pull - register a webhook and we'll notify your endpoint when the submission job completes. Report refresh jobs (step 6) don't send webhooks, so poll those.


Need a hand? Reach out to contact@walkerstdata.com.au and we'll help you get set up.