API reference · Catalogue
Read a catalogue card
GET
/v1/wallets/{walletId}/catalog/cards/{cardId}GET /v1/wallets/{walletId}/catalog/cards/{cardId} reads one CatalogueCard with this wallet’s price, logo and category. Requires catalogue:read; its answer is unsigned.
Permission
catalogue:readAuthenticationSigned read
Anis’s answerNot signed
Staff-set limits it counts towardAll requests
.NET SDK
client.Catalogue.GetCardAsync(walletId, cardId)Parameters
| Name | In | Type | Notes |
|---|---|---|---|
walletIdrequired | path | UUID | A UUID, lower-case with hyphens. |
cardIdrequired | 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. | CatalogueCard |
| 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 |
| 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.
| Error | Code | Status |
|---|---|---|
| Invalid credentials | invalid_credentials | 401 |
| Malformed signed request | malformed_signed_request | 400 |
| 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
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 |
LocalizedText
| Field | Type | Notes |
|---|---|---|
ar | string | The Arabic text; omitted when empty. |
en | string | The English text; omitted when empty. |
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. |