Skip to main content

UDA endpoints — accounts

How to call the accounts routes. The formal schema is the OpenAPI specification (openapi/source/connector/accounts/); this page is the call contract. Internal processing is in the architecture reference; caveats in the implementation notes.

All routes require a bearer token and party context (partyId), which the connector uses to resolve the customer in ULTRACS. accountId in the path is the Ark account id.

MethodPathCodePurpose
GET/v1/accounts200List the party's accounts
GET/v1/accounts/{accountId}200Account detail
POST/v1/accounts201Open a savings account
PUT/v1/accounts/{accountId}/alias204Set the 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

Notes for callers

  • Create (POST /v1/accounts) takes productKey + productVersion (resolved against the local product catalogue), optional requiredSignaturesForPayment (default 1) and callerIsSignatory (default true). It opens a savings account; funding source and share type are fixed by the connector.
  • transactionId values are opaque encrypted handles returned by the transactions list — pass them back verbatim to the detail route. A handle for a PENDING transaction changes once the transaction posts (see the implementation notes).
  • Add signatory takes the target partyId, a relationshipCode (AUTHORISED_SIGNATORY / POWER_OF_ATTORNEY / TRUSTEE / OFFICE_HOLDER are supported; others are rejected), optional signatory (default true) and statementMethod (default ELECTRONIC). See the relationship map in the architecture reference.
  • Remove signatory refuses to remove the last active signatory of an account (409).

Errors

HTTPCodeWhen
400GEN000000request body/params fail schema validation
401ACC001001the account isn't owned by the caller's client (via AccountsRepository.getClientKey)
404PAR004001no party mapping for the caller (ClientAuthManager.getClientKeyPARTY_NOT_FOUND)
404ACC004001no account mapping for accountId
404ACC004003POST create: product not found in the catalogue
409ACC009001alias: ULTRACS reports the alternative name cannot be edited
409ACC009002delete signatory: would remove the last active signatory
500ACC100004/5/6/7invalid account details / missing ULTRACS number / unknown transaction code / unsupported relationship type
500GEN100001an ULTRACS fault with no mapping (handleUltracsError falls back to DOWNSTREAM_CONNECTOR_ERROR; esp. all signatory faults — see the implementation notes)