# Партнерская программа

## GET /api/v3/private/account/partner

Этот эндпоинт возвращает сводную информацию о вашей партнёрской программе: текущий процент, реферальную ссылку, валюту начислений, баланс, общую статистику по рефералам и бонусам.

Используется для отображения партнёрского блока в личном кабинете и в внешних интеграциях.

### Требуемый доступ (ability)

{% hint style="warning" %}
Чтобы этот метод работал, вашему API-ключу должен быть выдан доступ:

* Нужно разрешение: **partner**
  {% endhint %}

Если у ключа нет этого разрешения, сервер вернёт ошибку доступа (403) с указанием, какого именно разрешения не хватает:

```json
{
  "status": 1,
  "message": "You do not have access to this route",
  "missing_ability": "partner"
}
```

Если вы получили такой ответ — обратитесь к администратору обменника, чтобы он выдал вашему ключу нужное разрешение.

### Пример запроса (cURL)

```
curl -X GET "https://app.{ваш_домен}/api/v3/private/account/partner" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json; charset=utf-8" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

### Пример запроса (Laravel HTTP Client)

```php
use Illuminate\Support\Facades\Http;

$apiKey  = 'YOUR_API_KEY';

$client = Http::baseUrl('https://app.{ваш_домен}/api/v3/private')
    ->withToken($apiKey)
    ->acceptJson()
    ->asJson();

$response = $client->get('account/partner');

if ($response->successful()) {
    $data = $response->json();
    dd($data);
} else {
    dd('ERROR', $response->status(), $response->body());
}
```

### Пример успешного ответа

```json
{
  "type": "referral",
  "attributes": {
    "percent_referral": 5,
    "count_referral": 12,
    "iso_code": "USD",
    "referral_hash": "abcd1234",
    "balance": 120.5,
    "totals": {
      "balance": 350.75,
      "withdrawal": 230.25
    },
    "currency": {
      "name": "USD"
    },
    "program": {
      "name": "default",
      "title": "Стандартная партнёрская программа",
      "description": "Описание условий партнёрской программы",
      "percent": 5
    },
    "stats": {
      "referrals": {
        "total": 12,
        "with_completed_orders": 7,
        "active_last_30_days": 4
      },
      "orders": {
        "completed_total": 25,
        "last_completed_at": "2025-12-01T12:30:00"
      },
      "earnings": {
        "total_profit": 350.75,
        "total_withdrawal": 230.25,
        "available_balance": 120.5,
        "avg_per_referral": 29.22916667
      },
      "timeline": {
        "first_completed_order_at": "2025-01-15T10:00:00",
        "last_completed_order_at": "2025-12-01T12:30:00"
      }
    }
  }
}
```

***

## GET /api/v3/private/account/partner/exchanges

Этот эндпоинт возвращает историю начислений партнёрских бонусов по заявкам ваших рефералов (партнёрские обмены).

Поддерживает фильтрацию по дате, сумме бонуса и пагинацию, а также возвращает краткую статистику.

### Требуемый доступ (ability)

{% hint style="warning" %}
Чтобы этот метод работал, вашему API-ключу должен быть выдан доступ:

* Нужно разрешение: **partner**
  {% endhint %}

Если у ключа нет этого разрешения, сервер вернёт ошибку доступа (403) с указанием, какого именно разрешения не хватает:

```json
{
  "status": 1,
  "message": "You do not have access to this route",
  "missing_ability": "partner"
}
```

Если вы получили такой ответ — обратитесь к администратору обменника, чтобы он выдал вашему ключу нужное разрешение.

### Параметры запроса (query)

* **page —** номер страницы (по умолчанию 1).
* **per\_page —** количество записей на странице (по умолчанию 20, максимум 100).
* **from —** нижняя граница даты начисления (формат YYYY-MM-DD).
* **to —** верхняя граница даты начисления (формат YYYY-MM-DD).
* **min\_bonus —** минимальный размер бонуса.
* **max\_bonus —** максимальный размер бонуса.

Все параметры необязательные.

### Пример запроса (cURL)

```
curl -X GET "https://app.{ваш_домен}/api/v3/private/account/partner/exchanges?per_page=20&from=2025-01-01&to=2025-12-31" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json; charset=utf-8" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

### Пример запроса (Laravel HTTP Client)

```php
$response = $client->get('account/partner/exchanges', [
    'per_page'  => 20,
    'from'      => '2025-01-01',
    'to'        => '2025-12-31',
    'min_bonus' => 0.01,
]);

if ($response->successful()) {
    $data = $response->json();
    dd($data);
} else {
    dd('ERROR', $response->status(), $response->body());
}
```

### Пример успешного ответа

```json
{
  "data": [
    {
      "id": 101,
      "type": "referral_charge",
      "attributes": {
        "status": "referral",
        "created_at": "2 hours ago",
        "amount": 5.5,
        "currency": "USD",
        "order_id": "EX-2025-000123"
      }
    },
    {
      "id": 100,
      "type": "referral_charge",
      "attributes": {
        "status": "referral",
        "created_at": "1 day ago",
        "amount": 3.25,
        "currency": "USD",
        "order_id": "EX-2025-000122"
      }
    }
  ],
  "meta": {
    "summary": {
      "total_exchanges": 25,
      "total_bonus": 120.75,
      "avg_bonus": 4.83,
      "first_exchange_at": "2025-01-10T12:00:00",
      "last_exchange_at": "2025-12-01T13:20:00",
      "unique_referrals": 10,
      "user": {
        "id": 15,
        "name": "API Client",
        "email": "client@example.com"
      }
    },
    "filters": {
      "from": "2025-01-01",
      "to": "2025-12-31",
      "min_bonus": "0.01",
      "max_bonus": null,
      "per_page": 20
    }
  }
}
```

***

## GET /api/v3/private/account/partner/payouts

Эндпоинт возвращает историю заявок на вывод партнёрских вознаграждений: даты, статусы и суммы.

### Требуемый доступ (ability)

{% hint style="warning" %}
Чтобы этот метод работал, вашему API-ключу должен быть выдан доступ:

* Нужно разрешение: **partner**
  {% endhint %}

Если у ключа нет этого разрешения, сервер вернёт ошибку доступа (403) с указанием, какого именно разрешения не хватает:

```json
{
  "status": 1,
  "message": "You do not have access to this route",
  "missing_ability": "partner"
}
```

Если вы получили такой ответ — обратитесь к администратору обменника, чтобы он выдал вашему ключу нужное разрешение.

### Параметры запроса (query)

* **page —** номер страницы (по умолчанию 1).
* **per\_page —** количество записей на странице (по умолчанию 20, максимум 100).
* **from —** нижняя граница даты создания заявки (YYYY-MM-DD).
* **to —** верхняя граница даты создания заявки (YYYY-MM-DD).
* **status —** фильтр по статусу:
  * paid — только выплаченные;
  * unpaid — только невыплаченные;
  * all — все (по умолчанию).
* **min\_amount —** минимальная сумма заявки.
* **max\_amount —** максимальная сумма заявки.

### Пример запроса (cURL)

```
curl -X GET "https://app.{ваш_домен}/api/v3/private/account/partner/payouts?status=paid&per_page=20" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json; charset=utf-8" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

### Пример запроса (Laravel HTTP Client)

```php
$response = $client->get('account/partner/payouts', [
    'status'    => 'paid',
    'per_page'  => 20,
    'from'      => '2025-01-01',
    'to'        => '2025-12-31',
    'min_amount'=> 10,
]);

if ($response->successful()) {
    $data = $response->json();
    dd($data);
} else {
    dd('ERROR', $response->status(), $response->body());
}
```

### Пример успешного ответа

```json
{
  "data": [
    {
      "id": 10,
      "type": "referral_charge",
      "attributes": {
        "created_at": "01 Dec 2025 15:30",
        "payout_status": "paid",
        "charged_amount": {
          "amount": "150.00",
          "currency": "USD",
          "name": "Perfect Money USD"
        }
      }
    },
    {
      "id": 9,
      "type": "referral_charge",
      "attributes": {
        "created_at": "15 Nov 2025 11:10",
        "payout_status": "unpaid",
        "charged_amount": {
          "amount": "75.50",
          "currency": "USD",
          "name": "Perfect Money USD"
        }
      }
    }
  ],
  "meta": {
    "summary": {
      "total_requests": 5,
      "total_paid": 3,
      "total_unpaid": 2,
      "sum_paid": 420.5,
      "sum_unpaid": 125.5,
      "first_request_at": "2025-01-20T10:00:00",
      "last_request_at": "2025-12-01T15:30:00",
      "user": {
        "id": 15,
        "name": "API Client",
        "email": "client@example.com"
      }
    },
    "filters": {
      "from": "2025-01-01",
      "to": "2025-12-31",
      "status": "paid",
      "min_amount": "10",
      "max_amount": null,
      "per_page": 20
    }
  }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.iexexchanger.com/front-api/private-api/partnerskaya-programma.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
