Каталог
REST-доступ к позициям, категориям и остаткам. Пагинация, фильтры, ETag.
OAuth2 (client_credentials), REST-ресурсы каталога и заказов, подписанные Webhooks и SDK на TypeScript.
REST-доступ к позициям, категориям и остаткам. Пагинация, фильтры, ETag.
Создание, отмена, статусы сделок. Эскроу-статусы и закрывающие документы.
HMAC-подписи, ретраи с backoff, события логистики, финансирования и взаиморасчётов.
SDK в подготовке. Начните с живой OpenAPI-спецификации и Postman-коллекции — квикстарт ниже.
$ curl -H "Authorization: Bearer ${TOKEN}" \
"https://api.restok.pro/api/partner/v1/catalog/search?q=задвижка"
{
"success": true,
"data": [
{ "id": "SKU-10234", "title": "Задвижка стальная 30с41нж DN100", "region": "RU-MSK" },
{ "id": "SKU-10891", "title": "Задвижка чугунная 30ч6бр DN80", "region": "RU-SPE" }
],
"meta": { "page": 1, "total": 248 }
}Платформа доставляет события (логистика, финансирование, взаиморасчёты) POST-запросом на ваш https-endpoint. Каждая доставка подписана HMAC-SHA256: заголовок X-Restok-Signature = sha256=HMAC(secret, `${timestamp}.${body}`), где timestamp — из X-Restok-Timestamp. Ответ 2xx — доставлено; иначе до 5 попыток с экспоненциальным backoff (5с → 40с), после — dead-letter. Секрет подписи выдаётся один раз при создании подписки.
import crypto from 'node:crypto';
// Заголовки доставки: X-Restok-Signature ("sha256=<hex>"),
// X-Restok-Timestamp (unix-секунды), X-Restok-Event, X-Restok-Delivery.
function verifyRestokWebhook(headers, rawBody, secret) {
const ts = headers['x-restok-timestamp'];
const expected = 'sha256=' + crypto
.createHmac('sha256', secret) // secret — whsec_… из ответа на создание подписки
.update(`${ts}.${rawBody}`) // timestamp связан подписью (анти-replay)
.digest('hex');
const given = Buffer.from(headers['x-restok-signature'] ?? '');
return given.length === Buffer.byteLength(expected)
&& crypto.timingSafeEqual(given, Buffer.from(expected))
&& Math.abs(Date.now() / 1000 - Number(ts)) < 300; // окно 5 минут
}Укажите e-mail и компанию — свяжемся и вышлем client_id, client_secret и ссылку на sandbox.