TransferMoney (Live)

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

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

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

Ограничения

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

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

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

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

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

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

Внимание. Перенос средств между кампаниями в разных валютах не предусмотрен.

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

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

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

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

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

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

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

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

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

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

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

Да
ToCampaigns

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

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

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

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

Если значение выражено в реальной валюте, оно не включает НДС.

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

Да
Currency

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

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

Да

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

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

{ "data": 1 }

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

Python

{
   'FromCampaigns': [
      {'CampaignID': 1327837, 'Sum': 25000, 'Currency': 'RUB'}
   ],
   'ToCampaigns': [
      {'CampaignID': 1327944, 'Sum': 20000, 'Currency': 'RUB'},
      {'CampaignID': 1327953, 'Sum': 5000, 'Currency': 'RUB'}
   ]
}

PHP

array(
   'FromCampaigns' => array(
      array('CampaignID' => 1327837, 'Sum' => 25000, 'Currency' => 'RUB')
   ),
   'ToCampaigns' => array(
      array('CampaignID' => 1327944, 'Sum' => 20000, 'Currency' => 'RUB'),
      array('CampaignID' => 1327953, 'Sum' => 5000, 'Currency' => 'RUB')
   )
)

Perl

{
   'FromCampaigns' => [
      {'CampaignID' => 1327837, 'Sum' => 25000, 'Currency' => 'RUB'}
   ],
   'ToCampaigns' => [
      {'CampaignID' => 1327944, 'Sum' => 20000, 'Currency' => 'RUB'},
      {'CampaignID' => 1327953, 'Sum' => 5000, 'Currency' => 'RUB'}
   ]
}