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
Payments Массив объектов PayCampElement. Каждый объект указывает кампанию и сумму оплаты. Да
ContractID Номер договора, по которому предоставлен кредит. Для рекламных агентств
PayMethod

Метод оплаты кампании:

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

Да
Объект PayCampElement
CampaignID Идентификатор кампании. Да
Sum

Сумма оплаты в валюте, указанной в параметре Currency. При выставлении счета сумма округляется по математическим правилам с точностью до второго знака после запятой (для всех валют, в том числе тенге).

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

Минимальное допустимое значение можно получить с помощью метода Dictionaries.get API версии 5, указав в запросе имя справочника Currencies.

Да
Currency

Валюта, в которой указана сумма.

Возможные значения: RUB, CHF, EUR, KZT, TRY, UAH, USD, BYN. Значение должно совпадать с валютой кампании, в противном случае возвращается ошибка с кодом 245.

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

Метод оплаты кампании:

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

Да
Объект PayCampElement
CampaignID Идентификатор кампании. Да
Sum

Сумма оплаты в валюте, указанной в параметре Currency. При выставлении счета сумма округляется по математическим правилам с точностью до второго знака после запятой (для всех валют, в том числе тенге).

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

Минимальное допустимое значение можно получить с помощью метода Dictionaries.get API версии 5, указав в запросе имя справочника Currencies.

Да
Currency

Валюта, в которой указана сумма.

Возможные значения: 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'
}