Jobs
Transaction enrichment runs asynchronously. When you submit transactions - as JSON or a PDF bank statement - the API immediately returns a jobId, and processing continues in the background.
You then either poll the job for its status or, better, subscribe to a webhook to be notified when it finishes.
Job lifecycle
A job starts at New, moves through Processing, and finishes in one of three terminal states:
| Status | Meaning |
|---|---|
New | Accepted and queued, not yet started |
Processing | Running |
Completed | Finished successfully - results are ready to retrieve |
CompletedWithErrors | Finished and results are available, but some items were skipped or produced warnings |
Failed | Did not complete; no results are available |
CompletedWithErrors as terminal tooDon't poll for Completed alone - a job can legitimately finish as CompletedWithErrors with usable results. Stop polling once the status is any of Completed, CompletedWithErrors, or Failed.
A job also has a type indicating what it does:
| Type | Produced by |
|---|---|
Enrichment | Submitting transactions as JSON |
Extraction | Uploading a PDF bank statement (extract, then enrich) |
Check a job's status
curl -X GET "https://api.walkerstdata.com.au/v1/jobs/{jobId}/status" \
-H "x-api-key: YOUR_API_KEY"
The response reports the current status and processing progress:
{
"data": {
"jobId": "34e1bbd4-36be-4d95-9351-a047eed5bf97",
"status": "Completed",
"type": "Enrichment",
"totalReceivedTransactions": 120,
"totalProcessedTransactions": 118,
"totalDuplicateTransactions": 2,
"warnings": null,
"fileWarnings": []
},
"message": null
}
Wait for status to reach a terminal state (Completed, CompletedWithErrors, or Failed) before retrieving results. A request with an unknown jobId returns 404.
The three transaction counts:
totalReceivedTransactions- how many transactions were submitted (or extracted from the PDF)totalDuplicateTransactions- how many were already known and absorbed as duplicatestotalProcessedTransactions- how many the job processed
A high duplicate count usually just means a batch was resubmitted. That's not a problem - duplicates are linked to this job too, so retrieving transactions by this jobId still returns them.
Extraction warnings (PDF uploads)
Extraction from a PDF can produce warnings even when the job completes - for example a running-balance chain that doesn't reconcile, or account details that couldn't be read. These are returned on the job status response so you can decide whether the data is fit for use.
-
warnings- an object aggregating issues across the job:Field Description warningsGeneral extraction warnings rowDiscrepanciesRows where extracted values didn't reconcile missingAccountDetailsAccount fields that couldn't be determined otherAny other warnings balanceChainMismatchPresent when the running balance doesn't reconcile: { pdf, computed, delta } -
fileWarnings- the same warnings grouped per uploaded file:[{ fileName, warnings: [...] }].
{
"data": {
"jobId": "6b1c2d3e-4f50-6178-9abc-def012345678",
"status": "CompletedWithErrors",
"type": "Extraction",
"totalReceivedTransactions": 210,
"totalProcessedTransactions": 208,
"totalDuplicateTransactions": 0,
"warnings": {
"warnings": [],
"rowDiscrepancies": ["Row 44: amount could not be parsed"],
"missingAccountDetails": [],
"other": [],
"balanceChainMismatch": {
"pdf": 15230.55,
"computed": 15180.55,
"delta": 50.0
}
},
"fileWarnings": [
{
"fileName": "statement.pdf",
"warnings": ["Row 44: amount could not be parsed"]
}
]
},
"message": null
}
List jobs
To retrieve all jobs for your client:
curl -X GET "https://api.walkerstdata.com.au/v1/jobs" \
-H "x-api-key: YOUR_API_KEY"
The list supports the standard page and count parameters - see Pagination.
Instead of repeatedly polling a job, register a webhook subscription and let Walker Street Data notify your endpoint when the job completes.