Submit transactions as JSON
Submit structured transaction data you already hold. This path needs an API key with the transactions:enrich scope - see Upload banking data for the shared prerequisites.
Submit one account's transactions per request: the account's details plus at least one transaction.
Request fields
| Field | Required | Description |
|---|---|---|
accountName, accountNumber, accountType, bsb, bankName | Yes | Details of the bank account the transactions belong to. All five are required - a request missing any of them is rejected with 400 |
transactions | Yes | At least one transaction. Up to 50,000 transactions per submission |
transactions[].transactionDate | Yes | Date of the transaction. Use ISO yyyy-MM-dd - other formats are accepted but can degrade duplicate detection and date filtering |
transactions[].amount | Yes | Signed amount in dollars: negative for money out (debits), positive for money in (credits) |
transactions[].description | Yes | Raw transaction description, exactly as it appears on the statement or feed. Maximum 1,000 characters |
transactions[].balance | Yes | Account running balance after the transaction |
transactions[].transactionId | No | Your own identifier for the transaction, up to 100 characters. Echoed back as suppliedId on retrieved transactions so you can correlate enriched results with your records |
Send your own IDs
If your system has stable transaction IDs, send them in transactionId. When you retrieve enriched transactions, each one carries your ID back as suppliedId - this is the most reliable way to match results to your source records, since dates, amounts, and descriptions aren't unique.
Validation errors
A 400 response with a descriptive message is returned when:
- the request body can't be parsed
transactionsis empty or contains null entries- any account detail (BSB, bank name, account number, type, name) is missing
- a
transactionIdexceeds 100 characters - a
descriptionexceeds 1,000 characters - the submission exceeds 50,000 transactions
A 403 means your key lacks the transactions:enrich scope.
Next steps
- Check status - Track the
jobIdyou got back until processing completes - Enriched transactions - See how your submitted transactions are classified and how to retrieve the enriched response