Метод operation-history
Метод позволяет просматривать историю операций (полностью или частично) в постраничном режиме. Записи истории выдаются в обратном хронологическом порядке: от последних к более ранним.
Требуемые права токена: operation-history.
Запрос
ПараметрТипОписание
type
string
Перечень типов операций, которые требуется отобразить. Возможные значения:
  • deposition — пополнение счета (приход);
  • payment — платежи со счета (расход).
Типы операций перечисляются через пробел. Если параметр отсутствует, выводятся все операции.
labelstringОтбор платежей по значению метки. Выбираются платежи, у которых указано заданное значение параметра label вызова request-payment.
fromdatetimeВывести операции от момента времени (операции, равные from, или более поздние). Если параметр отсутствует, выводятся все операции.
tilldatetimeВывести операции до момента времени (операции более ранние, чем till). Если параметр отсутствует, выводятся все операции.
start_recordstringЕсли параметр присутствует, то будут отображены операции, начиная с номера start_record. Операции нумеруются с 0. Подробнее про постраничный вывод списка
recordsintКоличество запрашиваемых записей истории операций. Допустимые значения: от 1 до 100, по умолчанию — 30.
detailsbooleanПоказывать подробные детали операции. По умолчанию false. Для отображения деталей операции требуется наличие права operation-details.
Пример запроса полной истории
POST /api/operation-history HTTP/1.1
Host: yoomoney.ru
Authorization: Bearer 410012345678901.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123
Content-Type: application/x-www-form-urlencoded
Content-Length: 9

records=3
Логика отбора записей истории
Отбор записей истории осуществляется по условиям:
  • тип операции;
  • метка платежа;
  • интервал времени.
Все условия аддитивны, каждое условие вносит дополнительное ограничение.
Правила выборки данных по интервалу времени:
  1. Если заданы оба условия from и till, то отбор записей осуществляется за интервал времени равный from (или больше) и меньше till.
  2. Если задано только условие from, осуществляется отбор всех записей со временем больше или равно from.
  3. Если задано только условие till, осуществляется отбор всех записей со временем меньше till.
  4. Если оба условия условия from и till отсутствуют, записи выбираются без ограничения по времени.
Если история содержит большое количество операций, список операций выдается постранично. По умолчанию выдается первая страница истории. Если есть хотя бы одна последующая страница, то в ответе присутствует параметр next_record, определяющий порядковый номер ее первой записи. Чтобы получить следующую страницу, повторите запрос с теми же параметрами, добавив параметр start_record и указав в нем порядковый номер первой записи следующей страницы, полученный ранее из параметра next_record.
Пример запроса последующих страниц истории платежей
POST /api/operation-history HTTP/1.1
Host: yoomoney.ru
Authorization: Bearer 410012345678901.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123
Content-Type: application/x-www-form-urlencoded
Content-Length: 40

type=payment&records=20&start_record=120
Чтобы получить большую выборку записей в интервале времени необходимо сформировать запрос с условиями from и till, получить первую страницу истории, затем формировать запросы последующих страниц истории с теми же значениями параметров from и till, а также параметром start_record, значение которого было получено из параметра next_record ответа предыдущей страницы истории.
Ответ
Метод возвращает следующие параметры:
ПараметрТипОписание
errorstringКод ошибки. Присутствует при ошибке выполнения запроса.
next_recordstringПорядковый номер первой записи на следующей странице истории операций. Присутствует в случае наличия следующей страницы истории. Подробнее про постраничный вывод списка
operations
array
Список операций.
Параметры операции
ПараметрТипОписание
operation_idstringИдентификатор операции.
status
string
Статус платежа (перевода). Может принимать следующие значения:
  • success — платеж завершен успешно;
  • refused — платеж отвергнут получателем или отменен отправителем;
  • in_progress — платеж не завершен или перевод не принят получателем.
datetimedatetimeДата и время совершения операции.
titlestringКраткое описание операции (название магазина или источник пополнения).
pattern_idstringИдентификатор шаблона, по которому совершен платеж. Присутствует только для платежей.
direction
string
Направление движения средств. Может принимать значения:
  • in (приход);
  • out (расход).
amountamountСумма операции.
labelstringМетка платежа. Присутствует для входящих и исходящих переводов другим пользователям ЮMoney, у которых был указан параметр label вызова request-payment.
type
string
Тип операции. Возможные значения:
  • payment-shop — исходящий платеж в магазин;
  • outgoing-transfer — исходящий P2P-перевод любого типа;
  • deposition — зачисление;
  • incoming-transfer — входящий перевод.

Если значение входного параметра details установлено в true, в ответе будут также присутствовать выходные параметры операции operation-details.

Пример ответа полной истории
JSON
{
  "next_record": "4",
  "operations": [
    {
      "operation_id": "1234567",
      "status": "success",
      "pattern_id": "2904",
      "direction": "out",
      "amount": 500.00,
      "datetime": "2011-07-11T20:43:00.000+03:00",
      "title": "Оплата ADSL-доступа компании XXX",
      "type": "payment-shop"
    },
    {
      "operation_id": "1234568",
      "status": "success",
      "pattern_id": "2901",
      "direction": "out",
      "amount": 300.00,
      "datetime": "2011-07-10T20:43:00.000+03:00",
      "title": "Прямое пополнение счета телефона YYY",
      "type": "payment-shop"
    },
    {
      "operation_id": "1234569",
      "status": "success",
      "direction": "in",
      "amount": 1000.00,
      "datetime": "2011-07-10T20:40:00.000+03:00",
      "title": "Банк ZZZ, пополнение",
      "type": "deposit"
    }
  ]
}
Пример ответа с подробными деталями операции при платеже в магазин
JSON
{
  "next_record": "2",
  "operations": [
    {
      "operation_id": "1234567",
      "status": "success",
      "pattern_id": "2904",
      "direction": "out",
      "amount": 500.00,
      "datetime": "2011-07-11T20:43:00.000+04:00",
      "title": "Оплата ADSL-доступа компании XXX",
      "details": "Предоплата услуг ADSL доступа в интернет компании XXX\nНомер лицевого счета абонента: \n1234567/89\nЗачисленная сумма: 500.00\nНомер транзакции: 2000002967767",
      "type": "payment-shop"
    }
  ]
}
Пример ответа с подробными деталями операции для исходящего перевода другому пользователю
JSON
{
  "next_record": "2",
  "operations": [
    {
      "operation_id": "1234567",
      "status": "success",
      "pattern_id": "p2p",
      "direction": "out",
      "amount": 50.25,
      "datetime": "2011-07-11T20:43:00.000+04:00",
      "title": "Перевод на счет 4100123456789",
      "recipient": "4100123456789",
      "recipient_type": "account",
      "message": "Купите бублики",
      "comment": "Перевод пользователю ЮMoney",
      "codepro": false,
      "details": "Счет получателя:\n4100123456789\nСумма к получению: 50,00 руб.",
      "type": "outgoing-transfer"
    }
  ]
}
Коды ошибок
В случае ошибки выполнения операции возвращается ее код:
КодОписание
illegal_param_typeНеверное значение параметра type
illegal_param_start_recordНеверное значение параметра start_record
illegal_param_recordsНеверное значение параметра records
illegal_param_labelНеверное значение параметра label
illegal_param_fromНеверное значение параметра from
illegal_param_tillНеверное значение параметра till
Все прочие значенияТехническая ошибка, повторите вызов операции позднее
Пример ответа при неверно заданном параметре
JSON
{
   "error": "illegal_param_type"
}