📋
Asana Logger

Подключение оставшихся функций Fstata к внутреннему АПИ Екардс

Заплановано

⏱️ Время в статусах:

active 00:00 (1x)
Backlog 01:00 (1x)
Заплановано 00:00 (1x)
Asana ID: 1218685079460026
👤 Исполнитель: Dmytri_Ta
Проект: DEV
Создано: 2026-09-21 08:42:39
Обновлено: 2026-09-21 07:04:41
Описание:

Ваше імя та посада:
Саша фин

Оберіть предмет роботи в вашій задачі::
10 - Операционные задачи

Reach (Охоплення):
4

Impact (Вплив):
3

Confidence (Впевненість):
1

1. Бізнес-задача:
Подключение оставшихся функций Fstata к внутреннему АПИ Екардс.
ИНСТРУКЦИЯ
Нужны email и пароль от личного кабинета ecardsnew.cab (обычный логин, которым заходят на сайт в браузере). API-токен для этого не подходит — внутренний API работает только через такой логин.

Шаг 2. Получить токен (залогиниться через API)

Отправить POST-запрос:

POST https://ecardsnew.cab/user/v1/guest/auth/sign-in
Content-Type: application/json

{
"email": "почта@example.com",
"password": "пароль"
}
Пример на Python:
import requests

resp = requests.post(
"https://ecardsnew.cab/user/v1/guest/auth/sign-in",
json={"email": "почта@example.com", "password": "пароль"}
)
data = resp.json()["data"]
access_token = data["accessToken"]
refresh_token = data["refreshToken"]
В ответе придут два токена:
- accessToken — им пользоваться для запросов. Живёт 15 минут.
- refreshToken — нужен только чтобы обновить accessToken без повторного ввода пароля. Живёт 1 час.

Шаг 3. Пользоваться API

Каждый запрос к внутреннему API (эндпоинты вида /api/modern/account/v1/...) должен содержать заголовок с токеном:

Authorization: Bearer <accessToken>
Пример — получить список карт:
headers = {"Authorization": f"Bearer {access_token}"}

resp = requests.get(
"https://ecardsnew.cab/api/modern/account/v1/user/card?limit=100&offset=0",
headers=headers
)
print(resp.json())
Шаг 4. Когда accessToken истёк (прошло больше 15 минут)

Не логиниться заново email+паролем, а обновить токен через refreshToken:

resp = requests.post(
"https://ecardsnew.cab/user/v1/guest/auth/refresh",
json={"refreshToken": refresh_token}
)
data = resp.json()["data"]
access_token = data["accessToken"]
refresh_token = data["refreshToken"] # тоже обновится
Так можно продлевать сессию, пока refreshToken не истёк (1 час). Если истёк и он — нужно заново выполнить Шаг 2 (полный логин email+паролем).

1. Зайти в кабинет ecardsnew.cab в браузере, открыть DevTools → вкладку Network.
2. Выполнить руками через интерфейс ровно то действие, которое нужно повторить через API:
- изменить лимит карты — найти в кабинете, где это делается вручную, и сохранить;
- убрать карту из группы — сделать это через интерфейс кабинета.
3. В списке Network найти появившийся запрос (set-limits или set-groups), открыть вкладку Payload — там будет точное тело запроса, которое реально ожидает сервер.
4. Скопировать этот формат один в один (те же названия полей, те же типы — строка/число/массив) и уже с ним делать запрос из кода, подставляя нужные значения.

ЧТО НЕОБХОДИМО СДЕЛАТЬ
1. Раздел работа с картами - Ecards - Выпустить карты
тут нужно убрать лимит на 100 долларов при создании карты, что бы была возможность выпустить карту с лимитом более 100 долларов за счет изменения лимита в процессе выпуска карты
2. Раздел работа с картами - Ecards - Изменить лимиты
тут сделать аналогично подразделу закрыть карты, с таким же интерфейсом возможностью поиска карты, но добавить окошко с вводом нового лимита карты (вставляем список карт - вводим сумму нового лимита - новый лимит применяется ко всем картам из списка)
3. Раздел работа с картами - Ecards - Сменить группу
Так же само окно поиска карт списком + окошко выбора новой группы, при подтверждении новой группы, текущая убирается с карты
4. Раздел работа с картами - Ecards - Передать карты
добавить стирание текущей группы при передаче карты (не удаление группы в целом, а именно с выбранных карт с поля группа)
5. Раздел работа с картами
вверху между названием "работа с картами" и выбором вариантов работы с картами добавить два вида оповещений
слева в желтом стиле (по аналогии с как сделаны предупреждения о расхождениях в аналитике ПП) - карты у которых есть несколько групп на екардс, карты у которых нет групп - выводить только активные карты
Справа в красной рамке - если есть ошибка при выполнении какой-то задачи ее тут высветить, например не закрылась карта из-за того что бин не рабочий и не дает закрыть или произошла ошибка в апи или другая ошибка, что бы было видно причины ошибок + добавить в это красное меню кнопку "Ознакомлен" или что то такое рядом с каждой ошибкой, что бы можно было убрать, если ознакомился с ней.


2. Проблема:
Реализовать оставшийся функционал работы с картами на Fstata

3. Результат:
Повышение эффективности работы с карточными сервисами

———————————————
This task was submitted through Задача для команди розробників
https://form.asana.com/?k=fobW-bIMbYRVunZ8OITdZQ&d=1213085580025651

История изменений

changed 2026-09-21 09:42:48
Изменение: 🏷️ Статус
Значение: Заплановано
changed 2026-09-21 09:42:46
Изменение: 👤 Исполнитель
Значение: Dmytri_Ta
changed 2026-09-21 08:42:45
Изменение: 🏷️ Статус
Значение: Backlog
added 2026-09-21 08:42:39
Изменение: 🏷️ Статус
Значение: active