Invoice

Формирует счета на оплату в формате HTML.

При вызове операции указывают общие счета и суммы к оплате. Операция возвращает URL счета на оплату. Получить счет может пользователь, от лица которого вызван метод (пользователю необходимо авторизоваться на Яндексе).

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

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

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

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

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

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

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

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

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

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

Да
Currency

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

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

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

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

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

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

Да
Currency

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

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

Да

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

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

Внимание. Ошибка при формировании одного из счетов на оплату не влечет отмену всей операции и не влияет на успешность формирования остальных счетов.
{
   "data": {
      /* AccountManagementResponse */
      "ActionsResult": [
         {  /* AccountActionResult */
            "URL": (string),
            "Errors": [
               {  /* Error */
                  "FaultCode": (int),
                  "FaultString": (string),
                  "FaultDetail": (string)
               }
               ...
            ]
         }
         ...
      ]
   }
}

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

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

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

  • в случае успешного выставления счета на оплату — URL счета на оплату;
  • в случае ошибки — массив Errors.

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

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

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

  • в случае успешного выставления счета на оплату — URL счета на оплату;
  • в случае ошибки — массив Errors.

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

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

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

Python

{
   'Action': 'Invoice',
   'Payments': [
      {
         'AccountID': 3193244,
         'Amount': 5000.0,
         'Currency': 'RUB'
      }
   ]
}

PHP

array(
   'Action' => 'Invoice',
   'Payments' => array(
      array(
         'AccountID' => 3193244,
         'Amount' => 5000.0,
         'Currency' => 'RUB'
      )
   )
)

Perl

{
   'Action' => 'Invoice',
   'Payments' => [
      {
         'AccountID' => 3193244,
         'Amount' => 5000.0,
         'Currency' => 'RUB'
      }
   ]
}