1
0
forked from BRT/arc
arc/docs/api/task.md
slava 73e23f437d 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 12:02:37 +07:00

4.5 KiB
Raw Blame History

Task API

← Главная

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


GET /api/v1/task/get_tasks 🔒

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

Ответ:

{
  "success": true,
  "data": [
    {
      "bank_name": "ozon",
      "material_id": "c340cd2e-cefd-48d6-a813-c4be097ae493",
      "type": "FETCH_PROFILE",
      "body": {}
    },
    {
      "bank_name": "birbank",
      "material_id": "a1b2c3d4-0000-0000-0000-000000000001",
      "type": "FETCH_TRANSACTIONS",
      "body": {}
    },
    {
      "bank_name": "ozon",
      "material_id": "a1b2c3d4-0000-0000-0000-000000000002",
      "type": "CREATE_TRANSACTION",
      "body": {
        "amount": 1000,
        "currency": 643,
        "type": "bank",
        "bank_participator_id": "string",
        "extra": {}
      }
    }
  ]
}

material_id — UUID строка. Числовой формат поддерживается для обратной совместимости.


**Типы задач:**

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

**`CreateTransactionBody`:**
```json
{
  "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": "c340cd2e-cefd-48d6-a813-c4be097ae493",
  "bank_name": "ozon",
  "data": {
    "bank_account_id": "string",
    "currency": 643,
    "amount": 15000,
    "extra": {}
  }
}

FETCH_TRANSACTIONS

{
  "type": "FETCH_TRANSACTIONS",
  "material_id": "a1b2c3d4-0000-0000-0000-000000000001",
  "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": "a1b2c3d4-0000-0000-0000-000000000002",
  "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": "c340cd2e-cefd-48d6-a813-c4be097ae493",
  "bank_name": "ozon",
  "data": {
    "status": "error",
    "description": "Account not found for material_id: c340cd2e-cefd-48d6-a813-c4be097ae493"
  }
}

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

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().