Deposit

Пополняет общие счета из кредитного лимита рекламного агентства или из овердрафта рекламодателя.

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

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

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

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

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

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

Внимание. В запрос необходимо включать параметры finance_token и operation_num. Об особенностях формирования токена см. раздел Работа с общим счетом.
{
   "method": "AccountManagement",
   "finance_token": (string),
   "operation_num": (int),
   "param": {
      /* AccountManagementRequest */
      "Action": (string),
      "Payments": [
         {  /* Payment */
            "AccountID": (int),
            "Amount": (float),
            "Origin": (string),
            "Contract": (string),
            "Currency": (string)
         }
         ...
      ]
   }
}

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

Параметр Описание Требуется
Объект AccountManagementRequest
Action Выполняемая операция: Deposit. Да
Payments Массив объектов Payment (не более 50). Каждый объект содержит идентификатор общего счета и сумму оплаты. Да
Объект Payment
AccountID Идентификатор общего счета, который требуется пополнить. Да
Amount

Сумма пополнения в валюте, указанной в параметре Currency. Значение в реальной валюте следует указывать с учетом НДС клиента.

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

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

Да
Origin Метод пополнения: Overdraft — оплата за счет овердрафта. Для оплаты из овердрафта
Contract Номер договора, по которому предоставлен кредит. Для оплаты из кредитного лимита
Currency

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

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

Да
Параметр Описание Требуется
Объект AccountManagementRequest
Action Выполняемая операция: Deposit. Да
Payments Массив объектов Payment (не более 50). Каждый объект содержит идентификатор общего счета и сумму оплаты. Да
Объект Payment
AccountID Идентификатор общего счета, который требуется пополнить. Да
Amount

Сумма пополнения в валюте, указанной в параметре Currency. Значение в реальной валюте следует указывать с учетом НДС клиента.

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

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

Да
Origin Метод пополнения: Overdraft — оплата за счет овердрафта. Для оплаты из овердрафта
Contract Номер договора, по которому предоставлен кредит. Для оплаты из кредитного лимита
Currency

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

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

Да

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

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

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

{
   "data": {
      /* AccountManagementResponse */
      "ActionsResult": [
         {  /* AccountActionResult */
            "AccountID": (int),
            "Errors": [
               {  /* Error */
                  "FaultCode": (int),
                  "FaultString": (string),
                  "FaultDetail": (string)
               }
               ...
            ]
         }
         ...
      ]
   }
}

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

Параметр Описание
Объект AccountManagementResponse
ActionsResult

Массив объектов AccountActionResult. Каждый объект соответствует элементу входного массива Payments и содержит:

  • в случае успешного пополнения общего счета — идентификатор общего счета;
  • в случае ошибки — массив Errors.

Элементы массива следуют в том же порядке, что и объекты входного массива Payments.

Объект AccountActionResult
AccountID Идентификатор общего счета.
Errors Массив объектов Error — ошибок, возникших при пополнении счета.
Объект Error
FaultCode Код ошибки.
FaultString Текст сообщения об ошибке.
FaultDetail Подробное описание причины ошибки.
Параметр Описание
Объект AccountManagementResponse
ActionsResult

Массив объектов AccountActionResult. Каждый объект соответствует элементу входного массива Payments и содержит:

  • в случае успешного пополнения общего счета — идентификатор общего счета;
  • в случае ошибки — массив Errors.

Элементы массива следуют в том же порядке, что и объекты входного массива Payments.

Объект AccountActionResult
AccountID Идентификатор общего счета.
Errors Массив объектов Error — ошибок, возникших при пополнении счета.
Объект Error
FaultCode Код ошибки.
FaultString Текст сообщения об ошибке.
FaultDetail Подробное описание причины ошибки.

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

Python

{
   'Action': 'Deposit',
   'Payments': [
      {
         'AccountID': 3193244,
         'Amount': 5000.0,
         'Origin': 'Overdraft',
         'Currency': 'RUB'
      },
      {
         'AccountID': 3193279,
         'Amount': 1200.0,
         'Contract': '23452345/67',
         'Currency': 'USD'
      }
   ]
}

PHP

array(
   'Action' => 'Deposit',
   'Payments' => array(
      array(
         'AccountID' => 3193244,
         'Amount' => 5000.0,
         'Origin' => 'Overdraft',
         'Currency' => 'RUB'
      ),
      array(
         'AccountID' => 3193279,
         'Amount' => 1200.0,
         'Contract' => '23452345/67',
         'Currency' => 'USD'
      )
   )
)

Perl

{
   'Action' => 'Deposit',
   'Payments' => [
      {
         'AccountID' => 3193244,
         'Amount' => 5000.0,
         'Contract' => 'Overdraft',
         'Currency' => 'RUB'
      },
      {
         'AccountID' => 3193279,
         'Amount' => 1200.0,
         'Contract' => '23452345/67',
         'Currency' => 'RUB'
      }
   ]
}