Update a bank account within the company

Replaces the editable fields of a bank account.

This is a full replace, not a partial update: every editable field is overwritten with what you send, and any field you omit is set to null. Read the account with GET /bank-accounts/{id} first and send back the complete set of values you want to keep, changing only what you intend to change. Sending only nickname will clear the account holder name, the address and all four behaviour flags.

Some fields are restricted. Changing status, nameMatchingEnabled or referenceCheckingEnabled requires additional roles most integrations do not hold. Because omitting a flag counts as changing it, an account that already has nameMatchingEnabled or referenceCheckingEnabled set cannot be updated at all without those roles unless you send the same values back. The bsb, accountNumber and payId of a deposit virtual account cannot be changed, and neither can the payment details of an automatically created remitter account.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required

The account id. An id that does not exist, a value that is not an id, and a deleted account all return 404.

Body Params

Full replacement of a bank account's editable fields. Every field you omit is set to null.

Full replacement of a bank account's editable fields. Every field you omit is set to null.

string
required
length ≤ 255

Friendly name for the account. Required on every update, even one that changes nothing else, because this endpoint replaces rather than patches.

string
^[0-9]{3}-[0-9]{3}$

Australian BSB, hyphenated. Mutually exclusive with swiftCode. Cannot be changed on a deposit virtual account.

string
^[0-9]+$

Account number, digits only. Cannot be changed on a deposit virtual account.

string
length ≤ 255

SWIFT/BIC for an international account. Mutually exclusive with bsb. Setting it clears bsb.

string
length ≤ 255

IBAN for an international account, used with swiftCode.

string

PayID for the account. Must be unique. Cannot be changed on a deposit virtual account.

string
length ≤ 255

Full account holder name. Cleared if omitted.

string
length ≤ 255

Account holder given name. Cleared if omitted. On a deposit virtual account the customer-detail rules from POST /bank-accounts apply.

string
length ≤ 255

Account holder family name. Cleared if omitted.

string
length ≤ 255

Street address. Cleared if omitted.

string
length ≤ 255

City and postcode. Cleared if omitted.

string

Country as an ISO 3166-1 alpha-2 code, uppercase. Cleared if omitted.

string
enum

Account status. Changing it requires a role most integrations do not hold; a change without it is rejected. Suspending a deposit account also stops it accepting deposits.

Allowed:
boolean

Whether a cleared deposit into this account mints automatically. Cleared if omitted.

boolean

Whether this account receives the AUD when a burn settles automatically. Cleared if omitted.

boolean

Whether an incoming deposit's sender name is checked against the registered holder names. Changing this requires the compliance role, and omitting it when it is currently set counts as a change.

boolean

Whether an incoming deposit's description is screened against the blocked-term list. Changing this requires the compliance role, and omitting it when it is currently set counts as a change.

Headers
string
required

Bearer JWT obtained from POST /mfa/login. Send as "Bearer ". Expires after 5 minutes.

Responses

400

Invalid input, with a messageKey identifying the rule that failed: bank_account.nickname_required (nickname is required on every update, including one that changes nothing else), bank_account.bank_account_already_exist (another account of the same type and sub type in your company already uses this bsb and accountNumber), bank_account.pay_id_already_exists, bank_account.bsb_and_swift_mutually_exclusive, bank_account.invalid_bsb_format, bank_account.invalid_account_number, bank_account.invalid_swift_code and bank_account.invalid_iban. A deposit virtual account also revalidates its customer details, returning the same per-field errors array as POST /bank-accounts.

401

Unauthorized. The bearer token is missing, expired or invalid.

403

Forbidden. bank_account.status_change_access_denied for a status change without the status role; bank_account.flags_change_access_denied for a change to nameMatchingEnabled or referenceCheckingEnabled without the compliance role, which includes omitting a flag that is currently set; bank_account.deposit_bank_account_access_denied for changing the bsb, accountNumber or payId of a deposit virtual account; and bank_account.access_denied for the payment details of a remitter account or any account belonging to another company.

404

Bank account not found, with messageKey bank_account.bank_account_not_found.

500

Internal server error

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json