PayCampaigns (Live)
Оплата кампании из кредитного лимита рекламного агентства или из овердрафта рекламодателя.
Метод позволяет рекламным агентствам и прямым рекламодателям пополнять баланс с отсрочкой платежа.
Внимание
Прямые рекламодатели могут оплачивать кампанию, только если она одобрена модератором (см. параметр кампании StatusModerate).
Рекомендации и ограничения
Внимание
Все кампании, указанные в одном вызове метода, должны быть одного типа. Подробнее о типах кампаний...
Рекомендуется оплачивать кампании как можно меньшим количеством вызовов метода PayCampaign в сутки. Данная рекомендация нацелена на повышение производительности API Яндекс Директа. С точки зрения производительности, лучше оплатить несколько кампаний за один вызов метода, чем использовать его несколько раз для оплаты по одной кампании.
Ниже перечислены ограничения на вызов метода:
- один пользователь может вызвать метод 1000 раз в сутки;
- для одной кампании возможно не более 30 финансовых операций в сутки, включая формирование счетов на оплату (CreateInvoice), перевод средств (TransferMoney), оплату с отсрочкой (PayCampaigns);
Превышение указанных лимитов вызывает ошибку с кодом 56.
Валютные ограничения
Внимание
Оплата нескольких кампаний в разных валютах с помощью одного вызова метода не предусмотрена.
Все кампании, указанные в одном вызове метода, должны быть в одной валюте.
Суммы оплаты (параметр Sum) можно указывать в валюте кампаний (задав соответствующее значение параметра Currency). Все суммы должны быть указаны в одной валюте.
Новое в версии Live 4
Входной параметр Currency стал обязательным.
Добавлен метод оплаты “Overdraft” (параметр PayMethod).
Добавлен входной параметр Currency.
Входные данные
Ниже показана структура входных данных в формате JSON.
Внимание
В запрос необходимо включать параметры finance_token и operation_num.
{
"method": "PayCampaigns",
"finance_token": (string),
"operation_num": (int),
"param": {
/* PayCampaignsInfo */
"Payments": [
{ /* PayCampElement */
"CampaignID": (int),
"Sum": (float),
"Currency": (string)
}
...
],
"ContractID": (string),
"PayMethod": (string)
}
}
Ниже приведено описание параметров.
|
Параметр |
Описание |
Требуется |
|
Объект PayCampaignsInfo |
||
|
|
Массив объектов |
Да |
|
|
Номер договора, по которому предоставлен кредит. |
Для рекламных агентств |
|
|
Метод оплаты кампании:
|
Да |
|
Объект PayCampElement |
||
|
|
Идентификатор кампании. |
Да |
|
|
Сумма оплаты в валюте, указанной в параметре Значение в реальной валюте должно включать НДС клиента. Минимальное допустимое значение можно получить с помощью метода Dictionaries.get API версии 5, указав в запросе имя справочника |
Да |
|
|
Валюта, в которой указана сумма. Возможные значения: RUB, CHF, EUR, KZT, TRY, UAH, USD, BYN. Значение должно совпадать с валютой кампании, в противном случае возвращается ошибка с кодом 245. |
Да |
Результирующие данные
В случае успеха возвращается значение 1, как показано в следующем примере.
{
"data": 1
}
При неверном запросе возможны ошибки с кодами 245, 355, 356, 357, 363, 364.
Примеры входных данных
Python
{
'Payments': [
{'CampaignID': 3193279, 'Sum': 50000.0, 'Currency': 'RUB'},
{'CampaignID': 3193244, 'Sum': 1200.0, 'Currency': 'RUB'}
],
'ContractID': '23452345/67',
'PayMethod': 'Bank'
}
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
{
'Payments' => [
{'CampaignID' => 3193279, 'Sum' => 50000.0, 'Currency' => 'RUB'},
{'CampaignID' => 3193279, 'Sum' => 1200.0, 'Currency' ='RUB'}
],
'ContractID' => '23452345/67',
'PayMethod' ='Bank'
}