Аккаунты Epic
Вход в аккаунт Epic Games покупателя для выполнения заказа - без логина, пароля и 2FA.
В заказе на товар с полем «Аккаунт Epic» вы получаете одноразовую ссылку входа в аккаунт Epic Games покупателя: без логина, пароля и кода 2FA.
Только для программы проверенных продавцов
Поле epic_account доступно верифицированным магазинам, набравшим нужное
число отзывов. Без программы создание товара с этим полем (или добавление
поля в существующий товар) вернёт 403 EPIC_FIELD_NOT_ALLOWED. Если магазин
потерял верификацию, заказы на такие товары не принимаются и ссылки не выдаются.
Поле в товаре
Добавьте в fields товара поле с типом epic_account - в
создании или
обновлении товара:
{
"type": "epic_account",
"label": "Аккаунт Epic",
"required": true,
"multiple": false,
"options": []
}Для этого типа options, valuePricing, dataRequest и requestAfterPayment
игнорируются, а multiple всегда false: одно поле - один аккаунт.
Если поле уже есть в товаре, полная замена через PUT его сохранит, повторная
проверка программы не нужна.
Поле в заказе
В fieldValues заказа такое поле помечено kind: "epic_account", в value лежит
ник аккаунта Epic (для справки):
{
"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 60const 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 | Код | Что делать |
|---|---|---|
400 | EPIC_FIELD_ID_REQUIRED | В заказе несколько полей Epic - передайте fieldId. |
400 | EPIC_ACCOUNT_REVOKED | Аккаунт больше недоступен - ссылку по нему не выдать. |
403 | EPIC_LOGIN_NOT_ALLOWED | Заказ не в processing: возьмите его в работу или он уже сдан. |
403 | EPIC_FIELD_NOT_ALLOWED | Магазин не в программе проверенных продавцов. |
404 | EPIC_FIELD_NOT_FOUND | В заказе нет поля Epic с таким fieldId. |
404 | EPIC_ACCOUNT_NOT_FOUND | Аккаунт больше недоступен - ссылку по нему не выдать. |
429 | EPIC_LOGIN_TOO_OFTEN | Подождите 30 секунд с прошлой ссылки. |
503 | EPIC_UNAVAILABLE | Epic Games не ответил - повторите позже. |