Search documentation...

API Methods

Complete reference for the Milta Distributor Platform Partner API. All endpoints require Basic Authentication — use your API Key ID as the username and API Key Secret as the password.

Inventory API

Browse available product categories, brands, and products. Use these endpoints to populate your catalogue and filter products by country, brand, or category.


GET/inventories/categories

Get Product Categories

Retrieve all available product categories in our catalog. Use these categories to filter products or organize your product listings. Categories include Mobile Top-Up, Gift Cards, Gaming, and more.

Request Example

curl -u "API_KEY_ID:API_KEY_SECRET" \
  "https://api.dev.wallet.milta.be/api/v1/partner/inventories/categories"

Response

Body — application/jsonProduct categories retrieved successfully
messagestringrequired

Confirmation message that the categories were retrieved successfully

Example:Categories fetched successfully
dataobjectrequired

Authentication Required

All requests require HTTP Basic Auth — your API Key ID as username and API Key Secret as password.


GET/inventories/brands

Get Brands

Retrieve all available brands with pagination support. Use category to filter brands by specific product categories. Use 'shorten=true' to get minimal brand information (id, name only) for better performance. Full response includes brand logo URLs and human-readable unique identifiers.

Request Parameters

NameInTypeRequiredDescription
pagequerynumberOptionalPage number for pagination (starts from 1). Use this to navigate through multiple pages of results.
limitquerynumberOptionalNumber of items to return per page (maximum 200). Smaller values provide faster response times for better user experience.
categoryquerystringOptionalFilter brands by category. Use this to find brands within a specific category. Refer to /categories endpoint for valid category values.
shortenquerystringOptionalGet minimal brand data for better performance. true = Only id and name (faster loading). false = Full brand data including logo URLs and UIDs.

Request Example

curl -u "API_KEY_ID:API_KEY_SECRET" \
  "https://api.dev.wallet.milta.be/api/v1/partner/inventories/brands?page=1&limit=10&category=Mobile Top-Up&shorten=false"

Response

Body — application/jsonBrands retrieved successfully with pagination information
messagestringrequired

Confirmation message that your request was processed successfully

Example:Brands fetched successfully
dataobjectrequired

Authentication Required

All requests require HTTP Basic Auth — your API Key ID as username and API Key Secret as password.


GET/inventories/products

Get Products

Retrieve products assigned to your company with advanced filtering and pagination. **Filtering Options:** - **brandId**: Filter products by specific brand ID - **category**: Filter by product category (e.g., 'Mobile Top-Up', 'Gift Cards') - **countryCode**: Filter products available in a specific country (ISO 3166-1 alpha-2 code) - **inStock**: Filter products based on stock availability (true/false) **Pagination:** - **page**: Page number (starts from 1) - **limit**: Number of products per page (max 50) **Response includes:** - Product details (name, SKU, price, margin) - Brand information (name) - Stock availability - Product specifications and redemption instructions

Request Parameters

NameInTypeRequiredDescription
pagequerynumberOptionalPage number for pagination (starts from 1). Use this to navigate through multiple pages of results.
limitquerynumberOptionalNumber of items to return per page (maximum 200). Smaller values provide faster response times for better user experience.
brandIdquerystringOptionalFilter products by brand id. Use this to find products associated with a specific brand.
categoryquerystringOptionalFilter products by category. Use this to find products within a specific category. Refer to /categories endpoint for valid category values.
countryCodequerystringOptionalFilter products by country code (ISO 3166-1 alpha-2 format). Use this to find products available in specific countries. Example: 'BE' for Belgium, 'FR' for France.
inStockquerystringOptionalFilter products based on stock availability. Set to true to get only products that are currently in stock (available). Set to false to get products that are out of stock.
shortenquerystringOptionalWhether to return shortened product data /nSet to true to receive a simplified product list with only essential information. Set to false (or omit) to receive full product details. /nSupported filters: brandId, category, countryCode. /nShortened product data is ideal for displaying large product lists with faster response times, while full product details are suitable for detailed views and when you need all product information.

Request Example

curl -u "API_KEY_ID:API_KEY_SECRET" \
  "https://api.dev.wallet.milta.be/api/v1/partner/inventories/products?page=1&limit=10&brandId=66db7d66c8de6a4f3a34ee21&category=Mobile Top-Up&countryCode=BE&inStock=true&shorten=false"

Response

Body — application/jsonProducts retrieved successfully with pagination and filtering applied
messagestringrequired

Confirmation message that your request was processed successfully

Example:Products fetched successfully
dataobjectrequired

Authentication Required

All requests require HTTP Basic Auth — your API Key ID as username and API Key Secret as password.


GET/inventories/products/{skuCode}

Get Product By SKU Code

Retrieve one specific product by SKU code. Response includes stock status and commission details based on your assigned scheme. Access is allowed only if the product is assigned to your wholesaler company.

Request Parameters

NameInTypeRequiredDescription
skuCodepathstringRequiredProduct SKU code. This is the unique identifier for the product. It only contains letters, numbers, hyphens, or underscores.

Request Example

curl -u "API_KEY_ID:API_KEY_SECRET" \
  "https://api.dev.wallet.milta.be/api/v1/partner/inventories/products/SKU-LYCA-10"

Response

Body — application/jsonProduct detail fetched successfully
messagestringrequired
Example:Product detail fetched successfully
dataobjectrequired

Authentication Required

All requests require HTTP Basic Auth — your API Key ID as username and API Key Secret as password.

International API

Retrieve international top-up providers and products. Filter by country ISO code or destination mobile number to show relevant options.


GET/inventories/international/providers

Get International Providers

Retrieve all available international providers. Use countryIso to filter providers by specific countries. Use mobileNumber to get providers that support the given mobile number's country. Full response includes provider logo URLs and human-readable unique identifiers.

Request Parameters

NameInTypeRequiredDescription
countryIsoquerystringOptionalCountry code in ISO 3166-1 alpha-2 format. Optional. If provided, filters providers by the specified country.
mobileNumberquerystringOptionalContact number that you want to check for supported providers. Optional.

Request Example

curl -u "API_KEY_ID:API_KEY_SECRET" \
  "https://api.dev.wallet.milta.be/api/v1/partner/inventories/international/providers?countryIso=BE&mobileNumber=442079460958"

Response

Body — application/jsonInternational providers retrieved successfully
messagestringrequired

Response message indicating the result of the get all international providers operation

Example:International providers fetched successfully
dataarrayrequired

List of international providers

Authentication Required

All requests require HTTP Basic Auth — your API Key ID as username and API Key Secret as password.


GET/inventories/international/products

Get International Products

Retrieve all available international products. Use countryIso to filter products by specific countries. Use mobileNumber to get products that support the given mobile number. Use providerId to filter products for a specific provider.

Request Parameters

NameInTypeRequiredDescription
countryIsoquerystringOptionalCountry code in ISO 3166-1 alpha-2 format. Optional. If provided, filters providers by the specified country.
mobileNumberquerystringOptionalContact number that you want to check for supported providers. Optional.
providerIdquerystringOptionalproviderId to filter international products. Optional.

Request Example

curl -u "API_KEY_ID:API_KEY_SECRET" \
  "https://api.dev.wallet.milta.be/api/v1/partner/inventories/international/products?countryIso=AF&mobileNumber=93712345678&providerId=ETAF"

Response

Body — application/jsonInternational products retrieved successfully
messagestringrequired

Response message indicating the result of the get all international products operation

Example:International products fetched successfully
dataobjectrequired

International providers and products keyed by provider code

Authentication Required

All requests require HTTP Basic Auth — your API Key ID as username and API Key Secret as password.


GET/inventories/international/products/{skuCode}

Get International Product By SKU

Retrieve an international product by SKU code. Returns a single international product in the InternationalProduct shape.

Request Parameters

NameInTypeRequiredDescription
skuCodepathstringRequiredSKU code for the international product. This is the unique identifier for the product. It only contains letters, numbers, hyphens, or underscores.

Request Example

curl -u "API_KEY_ID:API_KEY_SECRET" \
  "https://api.dev.wallet.milta.be/api/v1/partner/inventories/international/products/AF_DG_TopUp"

Response

Body — application/jsonInternational product retrieved successfully
messagestringrequired

Response message indicating the result of fetching an international product by SKU

Example:International product fetched successfully
dataobjectrequired

Authentication Required

All requests require HTTP Basic Auth — your API Key ID as username and API Key Secret as password.

Transaction API

Purchase products and manage transactions. Use validateOnly mode to preview a purchase before committing. All POST requests require a unique transferRef for idempotency.


GET/transactions/{transactionId}

Get transaction by ID

Retrieves a single transaction owned by the authenticated partner API key, including order details and brand information.

Request Parameters

NameInTypeRequiredDescription
transactionIdpathstringRequiredOrder transaction ObjectId

Request Example

curl -u "API_KEY_ID:API_KEY_SECRET" \
  "https://api.dev.wallet.milta.be/api/v1/partner/transactions/67f1815b1fcf77c5a7094b96"

Response

Body — application/jsonTransaction retrieved successfully
messagestringrequired
Example:Transaction retrieved successfully
dataobjectrequired

Authentication Required

All requests require HTTP Basic Auth — your API Key ID as username and API Key Secret as password.


POST/transactions/purchase

Purchase a product

Creates a purchase transaction for the authenticated partner API key. Use Basic Auth where username = API Key ID and password = API Key Secret. The transferRef field is an idempotency key and must be unique per API key. Country code is required for validating product availability and ensuring correct pricing/commission for products. Set validateOnly=true to validate only, or validateOnly=false to place the order.

Request Parameters

NameInTypeRequiredDescription
validateOnlybodynumberRequiredWhen true, only validate the purchase request without placing an order. When false, place the order.
skuCodebodystringRequiredSKU code of the product to purchase. Must be a non-empty string representing the product SKU code. This code is used to identify the specific product you wish to purchase. It only contains letters, numbers, hyphens, or underscores.
quantitybodynumberRequiredQuantity to purchase. Must be an integer between 1 and 5.
transferRefbodystringRequiredPartner idempotency key. Must be unique per API key for each purchase request. Used to prevent duplicate transactions.
countryCodebodystringRequiredCountry code for the destination of the purchased product, Represented as ISO 3166-1 alpha-2 code (2 uppercase letters). This is required for validating product availability and ensuring correct pricing/commission for products.

Request Example

curl -u "API_KEY_ID:API_KEY_SECRET" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"validateOnly":false,"skuCode":"LYCA-EUR-10","quantity":1,"transferRef":"partner-ord-20260327-0001","countryCode":"BE"}' \
  "https://api.dev.wallet.milta.be/api/v1/partner/transactions/purchase"

Response

Body — application/jsonWhen validateOnly=false: product is purchased successfully and includes order summary. When validateOnly=true: request is validated and includes calculated purchase preview data.
messagestringrequired

Message indicating the result of the purchase operation

Example:Product purchased successfully
dataobjectrequired

Authentication Required

All requests require HTTP Basic Auth — your API Key ID as username and API Key Secret as password.


POST/transactions/international/validate-convert-reload-amount

Validate and convert international reload amount

Validates whether sendValue is valid for the given international skuCode and destinationNumber.

Request Parameters

NameInTypeRequiredDescription
skuCodebodystringRequiredSKU code of the international top-up product. Only letters, numbers, hyphens, or underscores are allowed.
sendValuebodynumberRequiredSent amount used for validation.
destinationNumberbodystringRequiredDestination mobile number for international top-up validation.

Request Example

curl -u "API_KEY_ID:API_KEY_SECRET" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"skuCode":"AF_DG_TopUp","sendValue":10,"destinationNumber":"32470000000"}' \
  "https://api.dev.wallet.milta.be/api/v1/partner/transactions/international/validate-convert-reload-amount"

Response

Body — application/jsonInternational reload amount validated successfully
messagestringrequired
Example:International reload amount validated successfully
dataobjectrequired

Authentication Required

All requests require HTTP Basic Auth — your API Key ID as username and API Key Secret as password.


POST/transactions/international-reload

Create international reload order

Creates an international reload order for the authenticated partner API key. The transferRef field is an idempotency key and must be unique per API key.

Request Parameters

NameInTypeRequiredDescription
skuCodebodystringRequiredSKU code of the international top-up product. Only letters, numbers, hyphens, or underscores are allowed.
sentAmountbodynumberRequiredSent amount for the international reload order.
destinationNumberbodystringRequiredDestination mobile number for international reload.
transferRefbodystringRequiredPartner idempotency key. Must be unique per API key for each international reload request.

Request Example

curl -u "API_KEY_ID:API_KEY_SECRET" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"skuCode":"AF_DG_TopUp","sentAmount":10,"destinationNumber":"32470000000","transferRef":"intl-reload-20260405-0001"}' \
  "https://api.dev.wallet.milta.be/api/v1/partner/transactions/international-reload"

Response

Body — application/jsonInternational reload order created successfully
messagestringrequired
Example:International reload order created successfully
dataobjectrequired

Authentication Required

All requests require HTTP Basic Auth — your API Key ID as username and API Key Secret as password.