API reference · Catalogue

Read a subcategory

GET/v1/wallets/{walletId}/catalog/subcategories/{subcategoryId}

One subcategory.

Permissioncatalogue:read
AuthenticationSigned read
Anis’s answerNot signed
Staff-set limits it counts towardAll requests
.NET SDKanis.Catalogue.GetSubcategoryAsync(walletId, subcategoryId)

Parameters

NameInTypeNotes
walletIdrequiredpathUUIDA UUID, lower-case with hyphens.
subcategoryIdrequiredpathUUIDA 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

StatusMeaningBody
200Success.CatalogueObject
400Refused: the signed request is badly built.Problem
401Refused: not authenticated.Problem
403Refused: not allowed.Problem
404Refused: not found, or not yours.Problem
429Refused: a limit was reached.Problem
503No decision: a dependency was unavailable.Problem

The answers of this call are not signed — no Signature or Signature-Input header, success or refusal. There is nothing to verify; TLS protects them. Content-Digest and X-Request-Id are still present.

Refusals

A refusal of this call is a problem without a signature. Branch on its code; each links to what it means and what to do.

ErrorCodeStatus
Invalid credentialsinvalid_credentials401
Malformed signed requestmalformed_signed_request400
Insufficient scopeinsufficient_scope403
Source address not allowedsource_ip_not_allowed403
Rate limitedrate_limited429
Account not authorisedbinding_not_authorized403
Account inactiveaccount_inactive403
Wallet not grantedwallet_not_granted404
Not foundresource_not_found404
Service unavailabledependency_unavailable503
Request timeoutrequest_timeout504
Internal errorinternal_error500

Types

CatalogueObject

One of: CatalogueCategory, CatalogueSubcategory, CatalogueCard — each route answers with exactly one of them.

CatalogueCategory

FieldTypeNotes
idalways presentUUIDThe category’s id.
nameLocalizedTextThe category’s name, in Arabic and English.
descriptionLocalizedTextA description, in Arabic and English.
logostringThe address of the category’s logo image.
typestringWhether the category is local or international. Values: local, international
inStockalways presentbooleanWhether anything in it can be bought now.
displayOrderalways presentintegerThe order to show categories in — lower first.

LocalizedText

FieldTypeNotes
arstringThe Arabic text; omitted when empty.
enstringThe English text; omitted when empty.

CatalogueSubcategory

FieldTypeNotes
idalways presentUUIDThe subcategory’s id.
categoryIdalways presentUUIDThe category it belongs to.
categoryTypestringWhether the category it belongs to is local or international. Absent if Anis has not set it. Values: local, international
nameLocalizedTextThe subcategory’s name, in Arabic and English.
descriptionLocalizedTextA description, in Arabic and English.
disclaimeranyAnis’s current note for buyers of this subcategory’s cards, in Arabic and English. Show it to your end customer before they buy. Absent when there is no note.
logostringThe address of the subcategory’s logo image.
isBestSellingalways presentbooleanMarked by Anis as a best seller.
displayOrderalways presentintegerThe order to show subcategories in — lower first.
availablealways presentbooleanWhether it can be bought from now.

CatalogueCard

FieldTypeNotes
idalways presentUUIDThe card’s id — the cardId an order carries.
subcategoryIdalways presentUUIDThe subcategory it belongs to.
nameLocalizedTextThe card’s name, in Arabic and English.
faceValuestringThe value printed on the card, when it has one.
unitPriceMoneyThe price THIS wallet pays. Send it unchanged as the order’s expectedUnitPrice. A card without it cannot be sold to this wallet.
businessPriceMoneyFor display. An order at this price can be refused as price_changed.
personalPriceMoneyThe retail price, shown only while it is above the business price. For display.
hasSpecialOfferalways presentbooleanWhether a special offer applies.
specialOfferPriceMoneyThe offer price, shown only with a special offer. For display.
availablealways presentbooleanWhether the card can be bought now.
minimumQuantityalways presentintegerAlways 1: the platform minimum for an order.
maximumQuantityalways presentintegerThe platform order limit: 100. Stock and availability are checked separately.
logostringAbsolute URL of the subcategory logo; omitted when empty.
categoryobjectThe category, with id and localized name.
category.idUUIDThe category’s id.
category.nameLocalizedTextThe category’s name in Arabic and English.
category.typestringWhether the category is local or international. Absent if Anis has not set it. Values: local, international

Money

FieldTypeNotes
amountalways presentstringA decimal string, never a JSON number. Wallet balances may be negative while allowed debt is used. Prices and totals follow each route's amount rules.
currencyalways presentstringAn uppercase three-letter currency code, such as LYD. Read a wallet’s currency from balance.currency.
asOfstring (date-time)When this price or balance was read.