Skip to main content

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

FieldRequiredDescription
accountName, accountNumber, accountType, bsb, bankNameYesDetails of the bank account the transactions belong to. All five are required - a request missing any of them is rejected with 400
transactionsYesAt least one transaction. Up to 50,000 transactions per submission
transactions[].transactionDateYesDate of the transaction. Use ISO yyyy-MM-dd - other formats are accepted but can degrade duplicate detection and date filtering
transactions[].amountYesSigned amount in dollars: negative for money out (debits), positive for money in (credits)
transactions[].descriptionYesRaw transaction description, exactly as it appears on the statement or feed. Maximum 1,000 characters
transactions[].balanceYesAccount running balance after the transaction
transactions[].transactionIdNoYour 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
  • transactions is empty or contains null entries
  • any account detail (BSB, bank name, account number, type, name) is missing
  • a transactionId exceeds 100 characters
  • a description exceeds 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 jobId you got back until processing completes
  • Enriched transactions - See how your submitted transactions are classified and how to retrieve the enriched response