The Wexl Grupp API provides a straightforward RESTful (JSON-only) interface over HTTPS, allowing third-party applications to access the features of the Wexl Grupp e-commerce platform. Designed according to RESTful principles, the API is stateless and leverages standard HTTP methods and response codes wherever possible.
This document is intended for customers who want to integrate Wexl Grupp functionality into their own applications.
Base URL for all requests: https://api.b2b.wexlgrupp.ee/
| Date | Change |
|---|---|
| 2025-12-20 | Initial version of API |
All API requests require an API key included in the request headers. This key identifies your application and allows you to access the API securely.
X-API-Key: <your-api-key>
You can obtain your API key from your Wexl Grupp B2B My account section. Keep your key secret and do not share it publicly.
curl -H "X-API-Key: YOUR_API_KEY" https://api.b2b.wexlgrupp.ee/v1/products
The API uses standard HTTP status codes to indicate errors. Error responses follow the format {"error": "message"}.
You can filter GET endpoints using query parameters. Example for /products:
?lang=en&categories=32,42&brands=23,24
POST requests accept a JSON body. Example for creating an order:
{
"products": [
{ "id": "12345678", "quantity": 2 },
{ "id": "87654321", "quantity": 1 }
]
}
GET /v1/brands
Returns all available brands.
curl -X GET "https://api.b2b.wexlgrupp.ee/v1/brands" -H "X-API-Key: YOUR_KEY"
{
"brands": [
{ "id": 1, "name": "Apple" },
{ "id": 2, "name": "Samsung" }
]
}
{
"error": "No brands found"
}
GET /v1/categories
Returns all available categories with names in all supported languages.
curl -X GET "https://api.b2b.wexlgrupp.ee/v1/categories" -H "X-API-Key: YOUR_KEY"
{
"categories": [
{
"id": 1,
"name": {
"en": "Phones",
"et": "Telefonid",
"ru": "Телефоны"
}
},
{
"id": 2,
"name": {
"en": "Laptops",
"et": "Sülearvutid",
"ru": "Ноутбуки"
}
}
]
}
{
"error": "No categories found"
}
{
"error": "No languages found"
}
GET /v1/products
Returns a list of products. Results can be filtered based on query parameters.
price - purchase price for B2B customer without VAT
retail_price - Recommended Retail Price(RRP) that includes the value-added tax (VAT), representing the final price a consumer pays
23,2432,42curl -X GET "https://api.b2b.wexlgrupp.ee/v1/products?brands=1,2&lang=en" -H "X-API-Key: YOUR_KEY"
{
"products": [
{
"id": "12345678",
"ean": "0123456789123",
"name": { "en": "iPhone 15" },
"brand": { "id": 1, "name": "Apple" },
"category": { "id": 3, "name": "Phones" },
"short_desc": { "en": "The newest iPhone." },
"full_desc": { "en": "..." },
"images": [ "https://b2b.wexlgrupp.ee/img/p/1/2/3/123.jpg" ],
"price": 999.00,
"retail_price": 1099.00,
"stock": 50,
"features": [
{ "id": 1, "name": "Color", "value": "Black" }
]
}
]
}
{
"error": "Language missing - xyz"
}
{
"error": "No products found"
}
GET /v1/products/<id>
Returns details for a specific product by its ID.
price - purchase price for B2B customer without VAT
retail_price - Recommended Retail Price(RRP) that includes the value-added tax (VAT), representing the final price a consumer pays
curl -X GET "https://api.b2b.wexlgrupp.ee/v1/products/42" -H "X-API-Key: YOUR_KEY"
{
"products": {
"id": "12345678",
"ean": "0123456789123",
"name": { "en": "iPhone 15" },
"brand": { "id": 1, "name": "Apple" },
"category": { "id": 3, "name": "Phones" },
"short_desc": { "en": "The newest iPhone." },
"full_desc": { "en": "..." },
"images": [ "https://b2b.wexlgrupp.ee/img/p/1/2/3/123.jpg" ],
"price": 999.00,
"retail_price": 1099.00,
"stock": 50,
"features": [
{ "id": 1, "name": "Color", "value": "Black" }
]
}
}
{
"error": "Product not found"
}
POST /v1/orders
Creates a new order for the customer. Products are identified by their ID.
{
"products": [
{ "id": "12345678", "quantity": 2 },
{ "id": "87654321", "quantity": 1 }
]
}
curl -X POST "https://api.b2b.wexlgrupp.ee/v1/orders" -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" -d '{"products": [{"id": "12345678", "quantity": 2}]}'
{
"id": "AZERTY",
"status": "created"
}
{
"error": "Missing products"
}
/* OR */
{
"error": "Missing required field: id"
}
/* OR */
{
"error": "Could not find pricelist"
}
/* OR */
{
"error": "Non-existing id"
}
{
"error": "Customer does not have addresses"
}
/* OR */
{
"error": "Payment module disabled"
}
/* OR */
{
"error": "PrestaShop general exception message"
}