---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.com/dev/direct/doc/dg-v4/en/live/PayCampaigns.md
  - https://yandex.com/dev/direct/doc/dg-v4/ru/live/PayCampaigns.md
  - href: ru/live/PayCampaigns.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/direct/doc/dg-v4/ru/llms.txt

# PayCampaigns (Live)
Оплата кампании из кредитного лимита рекламного агентства или из овердрафта рекламодателя.
Метод позволяет рекламным агентствам и прямым рекламодателям пополнять баланс с отсрочкой платежа.


{% note alert %}

Прямые рекламодатели могут оплачивать кампанию, только если она одобрена модератором (см. параметр кампании StatusModerate).

{% endnote %}


## Рекомендации и ограничения

<!-- source: ru/_includes/reference/CreateInvoice/id-CreateInvoice/campaign-types-pay.md -->
{% note alert %}

Все кампании, указанные в одном вызове метода, должны быть одного типа. [Подробнее о типах кампаний...](https://yandex.ru/dev/direct/doc/dg/objects/campaign.md)

{% endnote %}
<!-- endsource: ru/_includes/reference/CreateInvoice/id-CreateInvoice/campaign-types-pay.md -->


Рекомендуется оплачивать кампании как можно меньшим количеством вызовов метода `PayCampaign` в сутки. Данная рекомендация нацелена на повышение производительности API Яндекс Директа. С точки зрения производительности, лучше оплатить несколько кампаний за один вызов метода, чем использовать его несколько раз для оплаты по одной кампании.

Ниже перечислены ограничения на вызов метода:

- один пользователь может вызвать метод 1000 раз в сутки;
- для одной кампании возможно не более 30 финансовых операций в сутки, включая формирование счетов на оплату ([CreateInvoice](https://yandex.com/dev/direct/doc/dg-v4/ru/reference/CreateInvoice.md)), перевод средств ([TransferMoney](https://yandex.com/dev/direct/doc/dg-v4/ru/reference/TransferMoney.md)), оплату с отсрочкой ([PayCampaigns](https://yandex.com/dev/direct/doc/dg-v4/ru/live/PayCampaigns.md));

Превышение указанных лимитов вызывает ошибку с кодом [56](https://yandex.com/dev/direct/doc/dg-v4/ru/reference/ErrorCodes.md#ErrorCode56).

## Валютные ограничения


{% note alert %}

Оплата нескольких кампаний в разных валютах с помощью одного вызова метода не предусмотрена.

{% endnote %}


Все кампании, указанные в одном вызове метода, должны быть в одной валюте.

Суммы оплаты (параметр Sum) можно указывать в валюте кампаний (задав соответствующее значение параметра Currency). Все суммы должны быть указаны в одной валюте.

## Новое в версии Live 4

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

Добавлен метод оплаты “Overdraft” (параметр PayMethod).

Добавлен входной параметр Currency.


## Входные данные {#input}

Ниже показана структура входных данных в формате JSON.


{% note alert %}

В запрос необходимо включать параметры `finance_token` и `operation_num`.

{% endnote %}


```javascript
{
   "method": "PayCampaigns",
   "finance_token": (string),
   "operation_num": (int),
   "param": {
      /* PayCampaignsInfo */
      "Payments": [
         {  /* PayCampElement */
            "CampaignID": (int),
            "Sum": (float),
            "Currency": (string)
         }
         ...
      ],
      "ContractID": (string),
      "PayMethod": (string)
   }
}
```

Ниже приведено описание параметров.


#|
||
**Параметр**
|
**Описание**
|
**Требуется**
||

||
**Объект PayCampaignsInfo**
||
||
`Payments`
|
Массив объектов `PayCampElement`. Каждый объект указывает кампанию и сумму оплаты.
|
Да
||
||
`ContractID`
|
Номер договора, по которому предоставлен кредит.
|
Для рекламных агентств
||
||
`PayMethod`
|
Метод оплаты кампании:

- Bank — оплата за счет кредита (для рекламных агентств);
- Overdraft — оплата за счет овердрафта (для прямых рекламодателей).
|
Да
||

||
**Объект PayCampElement**
||
||
`CampaignID`
|
Идентификатор кампании.
|
Да
||
||
`Sum`
|
Сумма оплаты в валюте, указанной в параметре `Currency`. При выставлении счета сумма округляется по математическим правилам с точностью до второго знака после запятой (для всех валют, в том числе тенге).

Значение в реальной валюте должно включать НДС клиента.

Минимальное допустимое значение можно получить с помощью метода [Dictionaries](https://yandex.ru/dev/direct/doc/ref-v5/dictionaries/dictionaries.html).[get](https://yandex.ru/dev/direct/doc/ref-v5/dictionaries/get.html) API версии 5, указав в запросе имя справочника `Currencies`.
|
Да
||
||
`Currency`
|
Валюта, в которой указана сумма.

Возможные значения: RUB, CHF, EUR, KZT, TRY, UAH, USD, BYN. Значение должно совпадать с валютой кампании, в противном случае возвращается ошибка с кодом [245](https://yandex.com/dev/direct/doc/dg-v4/ru/reference/ErrorCodes.md#BadCurrency).
|
Да
||
|#


## Результирующие данные {#output}

В случае успеха возвращается значение 1, как показано в следующем примере.

```javascript
{
   "data": 1
}
```

При неверном запросе возможны ошибки с кодами [245](https://yandex.com/dev/direct/doc/dg-v4/ru/reference/ErrorCodes.md#BadCurrency), [355](https://yandex.com/dev/direct/doc/dg-v4/ru/reference/ErrorCodes.md#errorCode355), [356](https://yandex.com/dev/direct/doc/dg-v4/ru/reference/ErrorCodes.md#errorCode355), [357](https://yandex.com/dev/direct/doc/dg-v4/ru/reference/ErrorCodes.md#errorCode357), [363](https://yandex.com/dev/direct/doc/dg-v4/ru/reference/ErrorCodes.md#errorCode363), [364](https://yandex.com/dev/direct/doc/dg-v4/ru/reference/ErrorCodes.md#errorCode364).


## Примеры входных данных {#examples}

## Python

```python
{
   'Payments': [
      {'CampaignID': 3193279, 'Sum': 50000.0, 'Currency': 'RUB'},
      {'CampaignID': 3193244, 'Sum': 1200.0, 'Currency': 'RUB'}
   ],
   'ContractID': '23452345/67',
   'PayMethod': 'Bank'
}
```

## PHP

```php
array(
   'Payments' => array(
      array('CampaignID' => 3193279, 'Sum' => 50000.0, 'Currency' => 'RUB'),
      array('CampaignID' => 3193244, 'Sum' => 1200.0, 'Currency' ='RUB')
   ),
   'ContractID' => '23452345/67',
   'PayMethod' ='Bank'
)
```

## Perl

```perl
{
   'Payments' => [
      {'CampaignID' => 3193279, 'Sum' => 50000.0, 'Currency' => 'RUB'},
      {'CampaignID' => 3193279, 'Sum' => 1200.0, 'Currency' ='RUB'}
   ],
   'ContractID' => '23452345/67',
   'PayMethod' ='Bank'
}
```
