Platform endpoints — banking products
How to call the banking products route. The formal schema is the OpenAPI specification
(openapi/source/platform/banking-products/banking-products.yml); this page is the
call contract.
Auth
The route requires a bearer token (B2B JWT) with the CLIENT role and an ACTIVE party
context.
| Method | Path | Code | Purpose |
|---|---|---|---|
GET | /v1/banking/products | 200 | CDR-aligned product catalogue for the tenant |
GET /v1/banking/products — list banking products
Returns the tenant's product catalogue. The platform fetches live product data from the
backing provider and filters it to the products mapped to the caller's client and brand.
Response shape follows CDR (Consumer Data Standards Australia) ResponseBankingProductListV4.
| Param | In | Required | Default | Notes |
|---|---|---|---|---|
effective | query | — | CURRENT | ALL, CURRENT, or FUTURE. Filtering is not yet implemented — all products are returned regardless of this value. |
updated-since | query | — | — | ISO 8601 date-time; filters to products updated at or after this instant. |
brand | query | — | — | Case-insensitive substring match against the product brand field. |
product-category | query | — | — | Exact match against CDR productCategory values (e.g. TRANS_AND_SAVINGS_ACCOUNTS). |
page | query | — | 1 | Page number (≥ 1). |
page-size | query | — | 25 | Items per page (≥ 1, ≤ 1000). |
Response — ResponseBankingProductListV4:
{
"data": {
"products": [
{
"productId": "savings-v2",
"lastUpdated": "2024-06-01T00:00:00.000Z",
"productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
"name": "Everyday Savings",
"description": "Everyday Savings - Version 2",
"brand": "Ark Bank",
"brandName": "Ark Digital Bank",
"isTailored": false,
"cardArt": [{ "imageUri": "", "title": "Debit", "cardScheme": "VISA" }],
},
],
},
"links": {
"self": "/v1/banking/products?page=1&page-size=25",
"first": "/v1/banking/products?page=1&page-size=25",
"last": "/v1/banking/products?page=1&page-size=25",
},
"meta": {
"totalRecords": 1,
"totalPages": 1,
},
}
Fixed-value fields — these are currently returned as constants, not sourced from data:
| Field | Value | Note |
|---|---|---|
brand | "Ark Bank" | Not sourced from config or DB |
brandName | "Ark Digital Bank" | Not sourced from config or DB |
isTailored | false | Always |
cardArt[].imageUri | "" | Empty string |
Product detail (name, description, productCategory, lastUpdated, cardArt) all
come from the backing provider. The platform's product mappings act only as an allow-list:
products whose productKey is not mapped for the caller's tenant are dropped from the response.
Errors
| HTTP | Code | When |
|---|---|---|
400 | GEN000000 | Request parameters fail schema validation |
401 | GEN001002 / GEN001004 / GEN001005 / GEN001006 | Invalid/missing token, wrong type, or role not authorised |
403 | GEN003005 / GEN003006 | Client or customer inactive |
500 | — | A backing-provider call failed (the request fails as a whole, never partially) |