SwiftShop API v2: что изменилось
API v2 — это не косметическое обновление старого DEV API v1, а переработанный production-контракт для каталога, покупок, пополнений, webhooks и управления купленными товарами.
Новый URL и назначение API
Раньше DEV API был заточен под несколько задач: баланс, наличие российских аккаунтов, покупка категории «Физический | Новый» и получение Telegram-кода. V2 стал backend API магазина.
https://swift-shop.xyz/api/v1/*
Специализированный API для ограниченного набора сценариев.
https://swift-shop.xyz/api/v2/*
Production API для каталога, заказов, товаров, пополнений и событий.
Во всех запросах используется Authorization: Bearer <api_key>. Ключ создаётся в Telegram-боте в разделе Информация → API.
Каталог аккаунтов полностью переработан
В v2 клиент получает ассортимент динамически: доступные категории, периоды регистрации, страны, остатки и цены возвращаются самим API.
days_7_14, month_1, month_6, year_1…year_7.
month_1, month_6, year_1…year_7.
Код запрашивается по ID аккаунта: POST /accounts/{account_id}/code-requests.
Одноразовая выгрузка Telegram-сессии: POST /accounts/{account_id}/exports.
Добавлены новые товарные разделы
API больше не построен вокруг одной операции покупки аккаунта. Premium, Stars, Proxy и паки теперь живут в общем контракте и сходятся в Orders.
/market/premium/options, quote по username и покупка по quote_id. Сроки: 90, 180, 360 дней.
Та же quote-логика: проверка получателя, актуальная цена и покупка по quote_id.
socks5_ipv4 и http_ipv4, выдача host, port, username, password и статуса ресурса.
Каталог паков, карточка, лимиты продаж и одноразовая ссылка на Telegram-ресурс после покупки.
Появилась единая система заказов
Любая покупка теперь представляется объектом Order: аккаунт, Premium, Stars, Proxy или пак. Клиенту не нужно делать отдельную модель состояния для каждого товара.
Запрос принят.
Worker выполняет выдачу.
Результат доступен.
Выдача не удалась.
Средства возвращены.
Нужна проверка.
Передавайте Idempotency-Key для покупок, пополнений и выгрузок. Ключ хранится 24 часа и защищает от двойной покупки при timeout или retry.
Webhooks стали общей системой событий
В v1 webhook в основном обслуживал Telegram-коды. В v2 он покрывает жизненный цикл заказов и пополнений.
account.code.received, account.code.expired, account.code.failed, webhook.test.
order.processing, order.completed, order.failed, order.refunded, deposit.completed, deposit.expired.
Ответы API стандартизированы
Успешные ответы используют envelope ok + data + request_id. Ошибки возвращают объект error с машинным кодом, сообщением и деталями.
{
"ok": false,
"error": {
"code": "out_of_stock",
"message": "Requested item is unavailable",
"details": {}
},
"request_id": "req_..."
}
MoneyДенежные значения возвращаются строками с двумя знаками: "42.50". Валюта явно указана как USDT.
PaginationСписки используют limit, cursor, next_cursor и has_more. Offset не используется.
Кратко
DEV API v1 был специализированным API для цепочки «баланс → российские аккаунты → покупка → Telegram-код». API v2 стал единым контрактом для всего ассортимента SwiftShop.
Баланс → RU аккаунты → Покупка → Telegram-код
Профиль → Пополнения → Каталог → Orders → Webhooks → История
