API reference · Direct recharge
Read a direct recharge product
GET
/v1/wallets/{walletId}/direct-recharge-products/{productId}Read the product and the recipient fields you must collect before requesting a direct recharge. Billing products (billing) are not available yet.
Permission
direct_recharges:readAuthenticationSigned read
Anis’s answerNot signed
Staff-set limits it counts towardAll requests
.NET SDK
anis.DirectRechargeProducts.GetAsync(walletId, productId)Parameters
| Name | In | Type | Notes |
|---|---|---|---|
walletIdrequired | path | UUID | A UUID, lower-case with hyphens. |
productIdrequired | 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. | DirectRechargeProduct |
| 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.
| 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 |
| Validation failed | validation_failed | 422 |
| Service unavailable | dependency_unavailable | 503 |
| Request timeout | request_timeout | 504 |
| Internal error | internal_error | 500 |
| 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 |
| Currency not supported | currency_not_supported | 422 |
Types
DirectRechargeProduct
| Field | Type | Notes |
|---|---|---|
idalways present | UUID | The identifier of this product, category or location. |
titlealways present | string | The direct recharge product's display text. |
description | string | The direct recharge product's display text. |
typealways present | string | external or billing, as returned. Billing products (billing) are not available yet. Values: external, billing |
category | DirectRechargeCategory | The direct recharge product's category. |
payoutCurrencyalways present | DirectRechargeCurrency | The named payout currency; it has no invented ISO code. |
availablealways present | boolean | Whether this wallet can buy the product. A missing tier or Fazaa-only price is unavailable. |
limits | DirectRechargeLimits | This wallet tier's amount limits, when a matching tier exists. |
recipientFieldsalways present | list of DirectRechargeRecipientField | Ordered dynamic fields to show and validate for this product. |
DirectRechargeCategory
| Field | Type | Notes |
|---|---|---|
idalways present | UUID | The identifier of this product, category or location. |
namealways present | string | The display name supplied for this item. |
icon | string | The category image URL, when supplied. |
DirectRechargeCurrency
| Field | Type | Notes |
|---|---|---|
namealways present | string | The display name supplied for this item. |
DirectRechargeLimits
| Field | Type | Notes |
|---|---|---|
minimumTotal | Money | The allowed lower or upper LYD wallet total. |
maximumTotal | Money | The allowed lower or upper LYD wallet total. |
minimumPayout | string | The lower or upper payout amount string in the product's named currency. |
maximumPayout | string | The lower or upper payout amount string in the product's named currency. |
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. |
DirectRechargeRecipientField
| Field | Type | Notes |
|---|---|---|
keyalways present | string | The exact field key supplied by the direct recharge product definition. |
name | LocalizedText | The Arabic and English display labels, omitting empty languages. |
kindalways present | string | text, list or note; show the appropriate input or guidance. Values: text, list, note |
foralways present | string | recipient or sender, as supplied by the product. Values: recipient, sender |
orderalways present | integer | The display order of the field. |
validation | string | The validation expression, when supplied. |
validationMessage | LocalizedText | The localized validation message, when supplied. |
LocalizedText
| Field | Type | Notes |
|---|---|---|
ar | string | The Arabic text; omitted when empty. |
en | string | The English text; omitted when empty. |