1
0
forked from BRT/arc
arc/docs/api/task.md
slava afbf3a3afb Add Ozon pay_to_new_number and pay_to_old_number XML assets
Included XML files for the "pay to new number" and "pay to old number" features in the Ozon platform.
2026-03-01 09:30:59 +07:00

4.0 KiB
Raw Blame History

Task API

← Главная

Управление задачами: получение очереди, добавление задач, отправка результатов.


GET /api/v1/task/get_tasks 🔒

Получить список задач в очереди для текущего профиля.

Ответ:

{
  "success": true,
  "data": [
    {
      "bank_name": "ozon",
      "material_id": 42,
      "type": "FETCH_PROFILE",
      "body": {}
    },
    {
      "bank_name": "birbank",
      "material_id": 7,
      "type": "FETCH_TRANSACTIONS",
      "body": {}
    },
    {
      "bank_name": "ozon",
      "material_id": 5,
      "type": "CREATE_TRANSACTION",
      "body": {
        "amount": 1000,
        "currency": 643,
        "type": "bank",
        "bank_participator_id": "string",
        "extra": {}
      }
    }
  ]
}

Типы задач:

type Описание body
FETCH_PROFILE Получить баланс и данные аккаунта пустой {}
FETCH_TRANSACTIONS Получить историю транзакций пустой {}
CREATE_TRANSACTION Выполнить перевод CreateTransactionBody

CreateTransactionBody:

{
  "amount": 1000,
  "currency": 643,
  "type": "bank",
  "bank_participator_id": "string",
  "extra": {}
}
  • currency — ISO 4217 numeric код валюты (643 = RUB, 840 = USD, 944 = AZN, 410 = KRW)
  • type"bank" или "top-up"

POST /api/v1/task/task_result 🔒

Отправить результат выполненной задачи.

Тело запроса зависит от типа задачи (discriminator — поле type).

FETCH_PROFILE

{
  "type": "FETCH_PROFILE",
  "material_id": 42,
  "bank_name": "ozon",
  "data": {
    "bank_account_id": "string",
    "currency": 643,
    "amount": 15000,
    "extra": {}
  }
}

FETCH_TRANSACTIONS

{
  "type": "FETCH_TRANSACTIONS",
  "material_id": 7,
  "bank_name": "birbank",
  "data": [
    {
      "bank_transaction_id": "string",
      "amount": 500,
      "currency": 944,
      "transaction_type": "bank",
      "bank_participator_id": "string",
      "status": "completed",
      "extra": {},
      "created_at": "2024-01-01T12:00:00"
    }
  ]
}

CREATE_TRANSACTION

{
  "type": "CREATE_TRANSACTION",
  "material_id": 5,
  "bank_name": "ozon",
  "data": {
    "bank_transaction_id": "string",
    "amount": 1000,
    "currency": 643,
    "transaction_type": "bank",
    "bank_participator_id": "string",
    "status": "completed",
    "extra": {}
  }
}

TransactionStatusEnum: "progress" | "completed" | "declined"


POST /api/v1/task/add_task

Добавить задачу в очередь (вызывается внешней системой, не клиентом).


POST /api/v1/task/add_bank

Зарегистрировать банк с webhook-URL.

Query параметры:

Параметр Тип Описание
bank_name string Название банка
webhook_url uri URL для уведомлений

Ошибка выполнения задачи

Если задача не может быть выполнена (аккаунт не найден, скрипт упал), в поле data передаётся:

{
  "type": "FETCH_PROFILE",
  "material_id": 42,
  "bank_name": "ozon",
  "data": {
    "status": "error",
    "description": "Account not found for material_id: 42"
  }
}

Связь с кодом проекта

API Метод в коде
GET /api/v1/task/get_tasks NetworkService::getTasks()
POST /api/v1/task/task_result NetworkService::postTaskResult()

Хелпер в EventHandler: sendTaskResult(type, materialId, bankName, data) — создаёт NetworkService в отдельном потоке и вызывает postTaskResult().