TransferMoney

Переводит средства между кампаниями.

Примечание. Для метода существует версия TransferMoney (Live).

При вызове метода указывают одну или несколько кампаний, с которых списываются средства, и одну или несколько кампаний, на которые зачисляются средства. Общая сумма списываемых средств и общая сумма зачисляемых средств должны совпадать. При несовпадении возникает ошибка с кодом 353.

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

Ограничения

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

  • один пользователь может вызвать метод 1000 раз в сутки;
  • на одну кампанию можно зачислять средства не более 30 раз в сутки. Это ограничение не относится к списанию средств.

Превышение указанных лимитов вызывает ошибку с кодом 56.

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

Одним из ограничений является невозможность выводить с кампаний суммы, поступившие по некоторым маркетинговым программам Яндекса, например по купонам или в результате предоставленных скидок. В таких случаях списываемая сумма автоматически уменьшается до величины, которая может быть выведена с кампании, и уже эта уменьшенная сумма зачисляется на другую кампанию. Если указано несколько кампаний для зачисления средств, суммы по ним уменьшаются так, чтобы между зачисляемыми суммами сохранилась та же пропорция, как между первоначально указанными суммами.

Входные данные

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

Внимание. В запрос необходимо включать параметры finance_token и operation_num. Подробнее см. Доступ к финансовым методам.
{
   "method": "TransferMoney",
   "finance_token": (string),
   "operation_num": (int),
   "param": {
      /* TransferMoneyInfo */
      "FromCampaigns": [
         {  /* PayCampElement */
            "CampaignID": (int),
            "Sum": (float)
         }
         ...
      ],
      "ToCampaigns": [
         {  /* PayCampElement */
            "CampaignID": (int),
            "Sum": (float)
         }
         ...
      ]
   }
}

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

Параметр Описание Требуется
Объект TransferMoneyInfo
FromCampaigns

Массив объектов PayCampElement. Каждый объект указывает кампанию, с которой списываются средства, и сумму списания.

Да
ToCampaigns

Массив объектов PayCampElement. Каждый объект указывает кампанию, на которую зачисляются средства, и сумму зачисления.

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

Сумма в условных единицах, списываемая с кампании или зачисляемая на кампанию (в зависимости от того, находится объект в массиве FromCampaigns или ToCampaigns).

Доступную для перевода сумму можно узнать с помощью метода GetCampaignsParams (параметр SumAvailableForTransfer).

Да

Результирующие данные

При успешном переводе средств возвращается значение 1, как показано ниже. В противном случае возвращается сообщение об ошибке.

{ "data": 1 }

Примеры входных данных

Python

{
   'FromCampaigns': [
      {'CampaignID': 1327837, 'Sum': 2500}
   ],
   'ToCampaigns': [
      {'CampaignID': 1327944, 'Sum': 2000},
      {'CampaignID': 1327953, 'Sum': 500}
   ]
}

PHP

array(
   'FromCampaigns' => array(
      array('CampaignID' => 1327837, 'Sum' => 2500)
   ),
   'ToCampaigns' => array(
      array('CampaignID' => 1327944, 'Sum' => 2000),
      array('CampaignID' => 1327953, 'Sum' => 500)
   )
)

Perl

{
   'FromCampaigns' => [
      {'CampaignID' => 1327837, 'Sum' => 2500}
   ],
   'ToCampaigns' => [
      {'CampaignID' => 1327944, 'Sum' => 2000},
      {'CampaignID' => 1327953, 'Sum' => 500}
   ]
}