You launch sales on Wildberries and face an unstable API. Documentation becomes outdated, methods change without warning. Each failure takes an average of 2 hours to debug. An error in nmID mapping leads to duplicate cards. Statistics show that 60% of integration failures are due to incorrect authentication or outdated documentation. According to the marketplace, 80% of sellers encounter problems in the first month.
We have been integrating with marketplaces for 5 years and have developed an approach that minimizes risks across 20+ projects. Instead of rewriting code for new API versions, we created an adaptive layer. It automatically handles changes, reducing errors by 3 times compared to direct API calls. We guarantee stable operation after launch.
How We Bypass Wildberries API Instability
The adaptive integration layer intercepts responses, checks the structure, and transforms data if necessary. If Wildberries changes the field nmID to nmId, the integration does not break—it adapts. This reduces maintenance costs by up to 30%.
Authentication requires tokens issued in the personal account. Different domains need separate tokens: main (content, prices), statistics (statistics), marketplace (marketplace). Example client class:
class WildberriesClient
{
private string $apiToken;
private string $statsToken;
public function request(string $method, string $url, array $data = []): array
{
return Http::withHeaders([
'Authorization' => $this->apiToken,
'Content-Type' => 'application/json',
])->{strtolower($method)}($url, $data)->json();
}
}
Why Correct nmID Mapping Matters
Wildberries uses an internal numeric identifier nmID for each product. It differs from vendorCode (SKU). Mapping errors lead to duplicate cards or inability to update. We automatically match nmID with your SKUs during the first upload. For example, for SKU SKU-123, the system remembers nmID 456789 and uses it in subsequent requests. This reduces debugging time by an average of 2 hours per error.
How Integration Is Configured: Step-by-Step Plan
- Audit of your current accounting system—determine data for synchronization.
- Token and access rights configuration—obtain keys for each API domain.
- Development of nmID mapping module—link SKUs with internal Wildberries IDs.
- Implementation of product, price, stock, and order loading—write code with adaptive layer.
- Testing and launch—verify synchronization, train your manager. After launch, one month of free support.
What Is Included in the Work
- Integration documentation: description of all endpoints and mappings.
- Access rights and token setup for all API domains.
- Implementation of adaptive layer to handle API changes.
- Training your manager to work with synchronization.
- One month of free support after launch.
- Stable operation guarantee: if something breaks, we fix it within a day.
Wildberries API Domain Comparison
| API | Base URL | Purpose |
|---|---|---|
| Content API | https://content-api.wildberries.ru |
Upload and update product cards |
| Prices & Discounts API | https://discounts-prices-api.wildberries.ru |
Manage prices and discounts |
| Marketplace API | https://marketplace-api.wildberries.ru |
Stocks, orders, deliveries |
| Statistics API | https://statistics-api.wildberries.ru |
Analytics and reports |
Typical Errors and Their Solutions
| Error | Cause | Solution |
|---|---|---|
Invalid subjectID |
Wrong product category | Automatic subjectID selection by category |
| Wrong token | Using token for wrong domain | Token validation before request |
Invalid dateFrom |
Date format not matching API | Automatic conversion to Unix timestamp |
| Duplicate cards | nmID mapping error | Automatic mapping during first upload |
More on typical errors
Invalid subjectID error occurs when an item identifier does not match the product category. We automatically determine subjectID by category from your system. Wrong token blocks stock or order updates—we validate token and its domain binding before each request. Invalid dateFrom causes orders not to arrive—we use Unix timestamp and check it before sending.Product Upload: How to Avoid Errors
Product cards have a specific structure: subjects (subjectID), characteristics, sizes. We automatically select subjectID by category. Example upload code:
public function createCard(Product $product): void
{
$payload = [[
'subjectID' => $this->getSubjectId($product->category),
'variants' => [[
'vendorCode' => $product->sku,
'title' => $product->name,
'description'=> $product->description,
'brand' => $product->brand,
'dimensions' => [
'length' => $product->length_cm,
'width' => $product->width_cm,
'height' => $product->height_cm,
'isValid'=> true,
],
'characteristics' => $this->mapCharacteristics($product),
]],
]];
$this->request('POST', 'https://content-api.wildberries.ru/content/v2/cards/upload', $payload);
}
Updating Prices and Stocks
How to Quickly Update Prices and Discounts?
WB separates base price and discount. An error in one request can block all updates. We use batch processing with retries:
public function setPriceAndDiscount(string $sku, int $basePrice, int $discountPercent): void
{
$this->request('POST', 'https://discounts-prices-api.wildberries.ru/api/v2/upload/task', [
'data' => [[
'nmID' => $this->getNmId($sku),
'price' => $basePrice,
]]
]);
$this->request('POST', 'https://discounts-prices-api.wildberries.ru/api/v2/upload/task', [
'data' => [[
'nm' => $this->getNmId($sku),
'discount' => $discountPercent,
]]
]);
}
Updating Stocks (FBS)
public function updateStocks(array $items): void
{
$this->request('PUT', 'https://marketplace-api.wildberries.ru/api/v3/stocks/{warehouseId}', [
'stocks' => array_map(fn($item) => [
'sku' => $item['sku'],
'amount' => $item['amount'],
], $items)
]);
}
Retrieving FBS Orders
public function getOrders(string $since): array
{
return $this->request('GET', 'https://marketplace-api.wildberries.ru/api/v3/orders', [
'limit' => 1000,
'next' => 0,
'dateFrom' => strtotime($since),
])['orders'] ?? [];
}
Results and Timelines
Integration with Wildberries (products + prices + stocks + orders) takes 14–20 business days. Thanks to the adaptive layer, you save up to 40% of time on order processing compared to manual management. In 95% of cases, integration is completed on time. Contact us for a consultation—we will assess the scope of work and offer the optimal solution. Order integration and get stable synchronization with a post-launch performance guarantee.







