API reference · Catalogue
Read a subcategory
GET
/v1/wallets/{walletId}/catalog/subcategories/{subcategoryId}One subcategory.
Permission
catalogue:readAuthenticationSigned read
Staff-set limits it counts towardAll requests
.NET SDK
anis.Catalogue.GetSubcategoryAsync(walletId, subcategoryId)Parameters
| Name | In | Type | Notes |
|---|---|---|---|
walletIdrequired | path | UUID | A UUID, lower-case with hyphens. |
subcategoryIdrequired | path | UUID | A UUID, lower-case with hyphens. |
Request
Signed with your key. No body, no nonce.
Headers: Signature-Input, Signature, X-Anis-Date, Accept-Language (optional). The SDKs set all of them for you.
Body: none.
Responses
| Status | Meaning | Body |
|---|---|---|
| 200 | Success. | CatalogueObject |
| 401 | Refused: not authenticated. | Problem |
| 403 | Refused: not allowed. | Problem |
| 404 | Refused: not found, or not yours. | Problem |
| 429 | Refused: a limit was reached. | Problem |
| 503 | No decision: a dependency was unavailable. | Problem |
Every answer is signed by Anis; the SDKs check it before you see it.
Refusals
Every refusal is a signed problem. Branch on its code; each links to what it means and what to do.
| Error | Code | Status |
|---|---|---|
| Invalid credentials | invalid_credentials | 401 |
| Insufficient scope | insufficient_scope | 403 |
| Source address not allowed | source_ip_not_allowed | 403 |
| Rate limited | rate_limited | 429 |
| Account not authorised | binding_not_authorized | 403 |
| Account inactive | account_inactive | 403 |
| Wallet not granted | wallet_not_granted | 404 |
| Not found | resource_not_found | 404 |
| Service unavailable | dependency_unavailable | 503 |
| Request timeout | request_timeout | 504 |
| Internal error | internal_error | 500 |
Types
CatalogueObject
One of: CatalogueCategory, CatalogueSubcategory, CatalogueCard — each route answers with exactly one of them.
CatalogueCategory
| Field | Type | Notes |
|---|---|---|
idalways present | UUID | The category’s id. |
name | LocalizedText | The category’s name, in Arabic and English. |
description | LocalizedText | A description, in Arabic and English. |
logo | string | The address of the category’s logo image. |
type | string | Whether the category is local or international. Values: local, international |
inStockalways present | boolean | Whether anything in it can be bought now. |
displayOrderalways present | integer | The order to show categories in — lower first. |
LocalizedText
| Field | Type | Notes |
|---|---|---|
ar | string | The Arabic text. |
en | string | The English text. |
CatalogueSubcategory
| Field | Type | Notes |
|---|---|---|
idalways present | UUID | The subcategory’s id. |
categoryIdalways present | UUID | The category it belongs to. |
name | LocalizedText | The subcategory’s name, in Arabic and English. |
description | LocalizedText | A description, in Arabic and English. |
logo | string | The address of the subcategory’s logo image. |
isBestSellingalways present | boolean | Marked by Anis as a best seller. |
displayOrderalways present | integer | The order to show subcategories in — lower first. |
availablealways present | boolean | Whether it can be bought from now. |
CatalogueCard
| Field | Type | Notes |
|---|---|---|
idalways present | UUID | The card’s id — the cardId an order carries. |
subcategoryIdalways present | UUID | The subcategory it belongs to. |
name | LocalizedText | The card’s name, in Arabic and English. |
faceValue | string | The value printed on the card, when it has one. |
unitPrice | Money | The price THIS wallet pays. Send it unchanged as the order’s expectedUnitPrice. A card without it cannot be sold to this wallet. |
businessPrice | Money | For display. An order at this price can be refused as price_changed. |
personalPrice | Money | The retail price, shown only while it is above the business price. For display. |
hasSpecialOfferalways present | boolean | Whether a special offer applies. |
specialOfferPrice | Money | The offer price, shown only with a special offer. For display. |
availablealways present | boolean | Whether the card can be bought now. |
Money
| Field | Type | Notes |
|---|---|---|
amountalways present | string | A decimal string with exactly three decimals, such as "10.500" — never a JSON number. |
currencyalways present | string | The currency code, such as LYD: always the wallet’s currency. |
asOf | string (date-time) | When this price or balance was read. |