Skip to main content

Platform — accounts endpoints

How to call the platform account routes. The formal schema is the OpenAPI specification (openapi/source/platform/accounts/accounts.yml); this page is the call contract. The consumer journey is in account lifecycle.

All routes require a bearer token (B2B JWT) with the CLIENT role and an ACTIVE party context. The global /v1 prefix applies.

Route summary

MethodPathCodePurpose
GET/v1/accounts200List party accounts
POST/v1/accounts201Open a new account
GET/v1/accounts/{accountId}200Account details
PUT/v1/accounts/{accountId}/alias204Set account nickname
GET/v1/accounts/{accountId}/transactions200List transactions
GET/v1/accounts/{accountId}/transactions/{transactionId}200Transaction detail
GET/v1/accounts/{accountId}/signatories200List signatories
POST/v1/accounts/{accountId}/signatories201Add a signatory
DELETE/v1/accounts/{accountId}/signatories/{partyId}204Remove a signatory

GET /v1/accounts — list accounts

Returns a list of accounts. Each item includes accountId, productName, specificAccountUType, openStatus (provider-reported), currency, bsb, accountNumber, vendorId, isOwned, creationDate, currentBalance, availableBalance, nickname.

openStatus is the value reported by the connected provider. The platform has no account state machine — there is no close endpoint.

POST /v1/accounts — open account

Request body:

FieldTypeRequiredDefaultDescription
productKeystring (enum or UUID)yesSAVINGS, TRANSACTION, or product UUID
productVersionstringyese.g. 1.0.0
requiredSignaturesForPaymentinteger (1–10)no1Signatories required per payment
callerIsSignatorybooleannotrueWhether the caller is recorded as a signatory

The platform validates product mapping for the calling client/brand (404 ACC004004 if unmapped). Response is the created account.

PUT /v1/accounts/{accountId}/alias — set nickname

Body: { "alias": "My savings" }. Returns 204 No Content. Returns 409 ACC009001 if the account does not support alias editing.

GET /v1/accounts/{accountId}/transactions — list transactions

Query parameters:

NameTypeDescription
oldest-timeDateTimeStringLower bound (inclusive). Defaults to newest-time minus 90 days.
newest-timeDateTimeStringUpper bound (inclusive). Defaults to today.
min-amountAmountStringFilter transactions with amount >= this value.
max-amountAmountStringFilter transactions with amount <= this value.
textstringSubstring match on reference or description.
pageintegerPage number (default 1).
page-sizeintegerPage size (default 25).

Transaction status is PENDING or POSTED (provider-reported). transactionId is an opaque handle — pass it back verbatim to the detail route. The handle changes when a PENDING transaction posts.

GET /v1/accounts/{accountId}/transactions/{transactionId} — transaction detail

Returns the same fields as the list item plus extendedData (payer, payee, NPP x2p101Payload, service). transactionId must have been obtained from a prior list call.

GET /v1/accounts/{accountId}/signatories — list signatories

Returns an array of AccountSignatory. Each item includes partyId, relationshipCode, signatory (boolean — whether the party can actually sign), statementMethod.

POST /v1/accounts/{accountId}/signatories — add signatory

Body:

FieldTypeRequiredDefault
partyIdUUIDyes
relationshipCodeSignatoryRelationshipyes
signatorybooleannotrue
statementMethodStatementMethodnoELECTRONIC

The target party must exist and be ACTIVE in the caller's tenant (404 PAR004001 otherwise). Invalid relationship codes are rejected.

DELETE /v1/accounts/{accountId}/signatories/{partyId} — remove signatory

Returns 204 No Content. The target party must be ACTIVE (404 PAR004001 otherwise). Returns 409 ACC009002 if removing the last active signatory. Parties with signatory: false do not count as active signatories for this guard.

Errors

HTTPCodeWhen
400GEN000000Request body or params fail schema validation
401ACC001001Party not authorised to access the account
403GEN003005/6Client or party inactive
404ACC004001Account not found
404ACC004003Product not found in catalogue (create)
404ACC004004Product not mapped to client/brand (create)
404PAR004001Signatory target party not found or inactive
409ACC009002Cannot remove the last active signatory
409ACC009001The provider reports the alias cannot be edited
500ACC100001+Internal / core banking errors