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
| Method | Path | Code | Purpose |
|---|---|---|---|
GET | /v1/accounts | 200 | List party accounts |
POST | /v1/accounts | 201 | Open a new account |
GET | /v1/accounts/{accountId} | 200 | Account details |
PUT | /v1/accounts/{accountId}/alias | 204 | Set account nickname |
GET | /v1/accounts/{accountId}/transactions | 200 | List transactions |
GET | /v1/accounts/{accountId}/transactions/{transactionId} | 200 | Transaction detail |
GET | /v1/accounts/{accountId}/signatories | 200 | List signatories |
POST | /v1/accounts/{accountId}/signatories | 201 | Add a signatory |
DELETE | /v1/accounts/{accountId}/signatories/{partyId} | 204 | Remove 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:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
productKey | string (enum or UUID) | yes | — | SAVINGS, TRANSACTION, or product UUID |
productVersion | string | yes | — | e.g. 1.0.0 |
requiredSignaturesForPayment | integer (1–10) | no | 1 | Signatories required per payment |
callerIsSignatory | boolean | no | true | Whether 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:
| Name | Type | Description |
|---|---|---|
oldest-time | DateTimeString | Lower bound (inclusive). Defaults to newest-time minus 90 days. |
newest-time | DateTimeString | Upper bound (inclusive). Defaults to today. |
min-amount | AmountString | Filter transactions with amount >= this value. |
max-amount | AmountString | Filter transactions with amount <= this value. |
text | string | Substring match on reference or description. |
page | integer | Page number (default 1). |
page-size | integer | Page 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:
| Field | Type | Required | Default |
|---|---|---|---|
partyId | UUID | yes | — |
relationshipCode | SignatoryRelationship | yes | — |
signatory | boolean | no | true |
statementMethod | StatementMethod | no | ELECTRONIC |
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
| HTTP | Code | When |
|---|---|---|
400 | GEN000000 | Request body or params fail schema validation |
401 | ACC001001 | Party not authorised to access the account |
403 | GEN003005/6 | Client or party inactive |
404 | ACC004001 | Account not found |
404 | ACC004003 | Product not found in catalogue (create) |
404 | ACC004004 | Product not mapped to client/brand (create) |
404 | PAR004001 | Signatory target party not found or inactive |
409 | ACC009002 | Cannot remove the last active signatory |
409 | ACC009001 | The provider reports the alias cannot be edited |
500 | ACC100001+ | Internal / core banking errors |