Classify transactions
Already have structured transaction data? Submit your customer's bank transactions for classification and enrichment.
What You Need
- Customer ID see Create a Customer
- Structured transaction data with date, amount, description, and balance
- Account details: Account name, number, BSB, bank name, account type
- At least one transaction to process
Submit Your Transactions
- cURL
- JavaScript
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": [
{
"transactionDate": "2025-04-09",
"amount": 13167,
"description": "Direct Credit 158824 ARNOTT'S BISCUIT",
"balance": 33155.05
},
{
"transactionDate": "2025-04-09",
"amount": -98675.26,
"description": "Multiple Transfer NetBank Batch Payment",
"balance": 19479.79
}
],
"accountName": "ACME Business Pty Ltd",
"accountNumber": "12345678",
"accountType": "Business Transaction Account",
"bsb": "062001",
"bankName": "Commonwealth Bank of Australia"
}'
const customerId = 'your-customer-id';
const transactionData = {
transactions: [
{
transactionDate: "2025-04-09",
amount: 13167,
description: "Direct Credit 158824 ARNOTT'S BISCUIT",
balance: 33155.05
},
{
transactionDate: "2025-04-09",
amount: -98675.26,
description: "Multiple Transfer NetBank Batch Payment",
balance: 19479.79
}
],
accountName: "ACME Business Pty Ltd",
accountNumber: "12345678",
accountType: "Business Transaction Account",
bsb: "062001",
bankName: "Commonwealth Bank of Australia"
};
const response = await fetch(`https://api.walkerstdata.com.au/v1/customer/${customerId}/transactions`, {
method: 'POST',
headers: {
'x-api-key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify(transactionData)
});
const result = await response.json();
console.log('Classification started, job ID:', result.data.jobId);
You'll get back a jobId to track the classification progress.
What Happens Next
Walker Street Data automatically:
- Identifies the bank and account
- Enriches the transactions by adding further detail and classifications
Check Classification Status
- cURL
- JavaScript
curl -X GET "https://api.walkerstdata.com.au/v1/jobs/{jobId}/status" \
-H "x-api-key: YOUR_API_KEY"
const jobId = 'your-job-id';
const response = await fetch(`https://api.walkerstdata.com.au/v1/jobs/${jobId}/status`, {
method: 'GET',
headers: {
'x-api-key': 'YOUR_API_KEY',
}
});
const result = await response.json();
console.log('Status:', result.data.status);
Wait for status to show Completed.
Get Your Classified Transaction Data
Once classification is complete, retrieve your classified transactions:
- cURL
- JavaScript
curl -X GET "https://api.walkerstdata.com.au/v1/customer/{customerId}/transactions?jobId={jobId}" \
-H "x-api-key: YOUR_API_KEY"
const customerId = 'your-customer-id';
const jobId = 'your-job-id';
const response = await fetch(`https://api.walkerstdata.com.au/v1/customer/${customerId}/transactions?jobId=${jobId}`, {
method: 'GET',
headers: {
'x-api-key': 'YOUR_API_KEY',
}
});
const result = await response.json();
console.log('Classified transactions:', result.data.transactions);
What You Get
Each enriched transaction includes:
- Original data: Date, amount, description, balance (preserved exactly)
- Unique identifiers: Transaction ID, job ID, customer ID
- Account context: Bank name, BSB, account number, account type, account name
- Business identifiers: ABN (Australian Business Number) when available
- Hierarchical categorization: 3-level classification system
- Level 1: Broad categories (e.g., "expenses", "sales")
- Level 2: Specific categories (e.g., "office_expenses", "credit_sales_eftpos")
- Level 3: The receiving or originating entity involved in the transaction
- Confidence scores: Probability scores for each classification level
- ML predictions: Detailed model predictions and probabilities for all categories
- Enrichment status: Whether full enrichment was attempted
Example Response
{
"data": {
"transactions": [
{
"transactionDate": "2025-01-15",
"amount": -125.5,
"description": "WOOLWORTHS 1234",
"balance": 1500.0,
"transactionId": "262b22a7-e9ea-4093-8f46-ce33b9101ca2",
"jobId": "34e1bbd4-36be-4d95-9351-a047eed5bf97",
"abn": "43008496928",
"customerId": "524ba9bc-06e7-417e-bd54-b99785f5194a",
"clientId": "a0ced7e1-da3a-40ea-a18f-4c829f816c6a",
"level1": "expenses",
"level1_probability": "0.99",
"level2": "office_expenses",
"level2_probability": "0.87",
"level3": "groceries",
"level3_probability": "0.92",
"predictions": "[{\"Level\":\"level1\",\"ModelId\":\"cr\",\"OverrideId\":null,\"Prediction\":\"expenses\",\"Probability\":0.9934567890123456,\"Probabilities\":{\"misc\":0.000234567890123456,\"other\":0.002345678901234567,\"sales\":0.001234567890123456,\"expenses\":0.9934567890123456,\"capital\":0.000123456789012345,\"personal\":0.000012345678901234}},{\"Level\":\"level2\",\"ModelId\":\"exp_office\",\"OverrideId\":null,\"Prediction\":\"office_expenses\",\"Probability\":0.8765432109876543,\"Probabilities\":{\"groceries\":0.8765432109876543,\"supplies\":0.1123456789012345,\"other_office\":0.0111111101111111}}]",
"fullEnrichmentAttempted": true,
"bankName": "Commonwealth Bank",
"bsb": "062-000",
"accountNumber": "123456789",
"accountType": "Business Account",
"accountName": "Demo Business Pty Ltd"
}
]
}
}