Lootly Seller APILootly Seller API

Аккаунты Epic

Вход в аккаунт Epic Games покупателя для выполнения заказа - без логина, пароля и 2FA.

В заказе на товар с полем «Аккаунт Epic» вы получаете одноразовую ссылку входа в аккаунт Epic Games покупателя: без логина, пароля и кода 2FA.

Только для программы проверенных продавцов

Поле epic_account доступно верифицированным магазинам, набравшим нужное число отзывов. Без программы создание товара с этим полем (или добавление поля в существующий товар) вернёт 403 EPIC_FIELD_NOT_ALLOWED. Если магазин потерял верификацию, заказы на такие товары не принимаются и ссылки не выдаются.

Поле в товаре

Добавьте в fields товара поле с типом epic_account - в создании или обновлении товара:

fields[]
{
  "type": "epic_account",
  "label": "Аккаунт Epic",
  "required": true,
  "multiple": false,
  "options": []
}

Для этого типа options, valuePricing, dataRequest и requestAfterPayment игнорируются, а multiple всегда false: одно поле - один аккаунт. Если поле уже есть в товаре, полная замена через PUT его сохранит, повторная проверка программы не нужна.

Поле в заказе

В fieldValues заказа такое поле помечено kind: "epic_account", в value лежит ник аккаунта Epic (для справки):

GET /orders/{id}
{
  "id": "6a3f0c2e9b1d4a7e8c5f2b10",
  "status": "processing",
  "productTitle": "1000 V-Bucks",
  "fieldValues": [
    {
      "fieldId": "6a31c87d269c5f3a935bd483",
      "label": "Аккаунт Epic",
      "value": "NinjaBuyer",
      "kind": "epic_account"
    }
  ]
}

Сценарий выполнения

Найдите заказ

GET /orders?status=new - в fieldValues ищите элементы с kind: "epic_account" и запомните их fieldId.

Возьмите заказ в работу

POST /orders/{id}/take переводит заказ в processing. Ссылку выдаём только в этом статусе.

Получите ссылку входа

POST /orders/{id}/epic-login. Если поле Epic в заказе одно, тело можно не передавать, иначе укажите fieldId.

Ответ
{
  "success": true,
  "data": {
    "fieldId": "6a31c87d269c5f3a935bd483",
    "displayName": "NinjaBuyer",
    "url": "https://www.epicgames.com/id/exchange?exchangeCode=4f1c9a0e2b7d4c18a3e5f6b7c8d9e0a1",
    "exchangeCode": "4f1c9a0e2b7d4c18a3e5f6b7c8d9e0a1",
    "expiresAt": "2026-10-31T12:05:00.000Z"
  }
}

Войдите в аккаунт

  • Браузер - откройте url, вход выполнится сразу.
  • Своя автоматизация - обменяйте exchangeCode на токен своего OAuth-клиента Epic (grant_type=exchange_code).

Сдайте заказ

POST /orders/{id}/deliver - как обычно.

Пример

curl -X POST https://api.seller.lootly.net/v1/orders/6a3f0c2e9b1d4a7e8c5f2b10/epic-login \
  -H "Authorization: Bearer $LOOTLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "fieldId": "6a31c87d269c5f3a935bd483" }' \
  --max-time 60
const API = 'https://api.seller.lootly.net/v1';

async function epicLogin(orderId: string, fieldId?: string) {
  const res = await fetch(`${API}/orders/${orderId}/epic-login`, {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${process.env.LOOTLY_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify(fieldId ? { fieldId } : {}),
    // Ответ может занять до минуты.
    signal: AbortSignal.timeout(60_000),
  });
  const body = await res.json();
  if (!body.success) throw new Error(body.error.code);
  return body.data as { url: string; exchangeCode: string; expiresAt: string };
}

Правила

ПравилоЗначение
Статус заказаТолько processing: сначала возьмите заказ в работу.
Срок жизниКод одноразовый, действует 5 минут (expiresAt).
ЧастотаНе чаще раза в 30 секунд на поле заказа, иначе 429 EPIC_LOGIN_TOO_OFTEN.
Время ответаОбычно несколько секунд, в худшем случае до ~60 с. HTTP-таймаут ставьте не меньше 60 с.

Обращайтесь с кодом как с паролем

Пока код не использован и не истёк, он даёт полный вход в аккаунт покупателя. Не пишите его в логи, не храните и используйте только для этого заказа. Истёк - просто запросите новый.

Ошибки

HTTPКодЧто делать
400EPIC_FIELD_ID_REQUIREDВ заказе несколько полей Epic - передайте fieldId.
400EPIC_ACCOUNT_REVOKEDАккаунт больше недоступен - ссылку по нему не выдать.
403EPIC_LOGIN_NOT_ALLOWEDЗаказ не в processing: возьмите его в работу или он уже сдан.
403EPIC_FIELD_NOT_ALLOWEDМагазин не в программе проверенных продавцов.
404EPIC_FIELD_NOT_FOUNDВ заказе нет поля Epic с таким fieldId.
404EPIC_ACCOUNT_NOT_FOUNDАккаунт больше недоступен - ссылку по нему не выдать.
429EPIC_LOGIN_TOO_OFTENПодождите 30 секунд с прошлой ссылки.
503EPIC_UNAVAILABLEEpic Games не ответил - повторите позже.

На этой странице