API reference · Catalogue
List cards for sale
GET/v1/wallets/{walletId}/catalog/subcategories/{subcategoryId}/cards
Cards listed for this wallet in a subcategory, with the price this wallet pays. A listed card may still be refused at sale time. Pages with a cursor.
Permissioncatalogue:read
AuthenticationSigned read
Anis’s answerNot signed
Staff-set limits it counts towardAll requests
.NET SDKanis.Catalogue.ListCardsAsync(walletId, subcategoryId)
- Send a card’s
unitPrice as the order’s expectedUnitPrice. The other prices are for display. - Check
minimumQuantity and maximumQuantity before you order: a quantity outside them is refused as quantity_unavailable.
Parameters
| Name | In | Type | Notes |
|---|
walletIdrequired | path | UUID | A UUID, lower-case with hyphens. |
subcategoryIdrequired | path | UUID | A UUID, lower-case with hyphens. |
cursoroptional | query | string | The nextCursor of the previous page, passed back exactly as received. Leave it out for the first page. |
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. | CatalogueCollection |
| 400 | Refused: the signed request is badly built. | Problem |
| 401 | Refused: not authenticated. | Problem |
| 403 | Refused: not allowed. | Problem |
| 404 | Refused: not found, or not yours. | Problem |
| 422 | Refused: the request breaks a rule. | Problem |
| 429 | Refused: a limit was reached. | Problem |
| 503 | No 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.
Types
CatalogueCollection
| Field | Type | Notes |
|---|
itemsalways present | list of CatalogueObject | The categories, subcategories or cards on this page — each list route returns one kind. |
nextCursor | string | Pass it as cursor to get the next page. Absent on the last page. |
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; omitted when empty. |
en | string | The English text; omitted when empty. |
CatalogueSubcategory
| Field | Type | Notes |
|---|
idalways present | UUID | The subcategory’s id. |
categoryIdalways present | UUID | The category it belongs to. |
categoryType | string | Whether the category it belongs to is local or international. Absent if Anis has not set it. Values: local, international |
name | LocalizedText | The subcategory’s name, in Arabic and English. |
description | LocalizedText | A description, in Arabic and English. |
disclaimer | any | Anis’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. |
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. |
minimumQuantityalways present | integer | Always 1: the platform minimum for an order. |
maximumQuantityalways present | integer | The platform order limit: 100. Stock and availability are checked separately. |
logo | string | Absolute URL of the subcategory logo; omitted when empty. |
category | object | The category, with id and localized name. |
category.id | UUID | The category’s id. |
category.name | LocalizedText | The category’s name in Arabic and English. |
category.type | string | Whether the category is local or international. Absent if Anis has not set it. Values: local, international |
Money
| Field | Type | Notes |
|---|
amountalways present | string | A 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 present | string | An uppercase three-letter currency code, such as LYD. Read a wallet’s currency from balance.currency. |
asOf | string (date-time) | When this price or balance was read. |