Реестры принятых и возвращенных переводов
Раз в сутки ЮMoney формируют реестры зачисленных и возвращенных переводов. Реестры формируются в виде файлов формата CSV (Comma Separated Values) и отправляются во вложении к письмам на электронную почту контрагента. Письма подписываются сертификатом ЮMoney (S/MIME подпись).
В реестре зачисленных переводов содержатся все переводы за указанную дату.
В реестре возвращенных переводов содержатся все возвращенные (полностью и частично) переводы за указанную дату.
Формат реестра
Формат файла реестра соответствует рекомендации IETF RFC4180. Разделитель полей — точка с запятой «;». Кодировка символов — UTF‑8.
Текстовый формат CSV представляет собой набор строк, разделенных символом переноса строки (LF или CRLF). Каждая строка содержит поля, разделенные точкой с запятой «;». Если в значении параметра встречаются символы двойные кавычки «"», точки с запятой «;» или переносы строк, то такие параметры должны заключаться в кавычки «"».
Допустимо помещать в кавычки все поля, вне зависимости от присутствующего в них набора символов. Если поле не помещено в кавычки, то все «соседние» пробелы (до точек с запятой или до начала или конца строки) игнорируются.
Формат письма
Тема (subject) электронного письма формируется по шаблону:
РЕЕСТР ДЛЯ <Название контрагента> ЗА <Дата переводов (yyyy-mm-dd)>. № <номер>
Формат имени файла реестра принятых переводов
settlement_file_<agentId><em><yyyy-mm-dd></em><номер>.csv
Формат имени файла реестра возвращенных переводов
refund_file_<agentId><em><yyyy-mm-dd></em><номер>.csv
Структура реестра
Содержимое файла реестра состоит из следующих элементов:
  • заголовок реестра, содержащий данные о номере и дате реестра (HD-строка);
  • переводы за указанную дату (D-строки);
  • контрольная строка или маркер отсутствия переводов в конце реестра (TD-строка).
Заголовок (HD-строка)
Заголовок реестра содержит идентификатор магазина в ЮMoney, номер реестра (идентификатор реестра) и отчетный период, за который сформирован реестр.
Формат заголовка реестра
HD;agentId;registerId;from;till
Параметры заголовка реестра
ПараметрТипОписание
registerIdxs:longИдентификатор сформированного реестра, уникальный на протяжении всей истории операций.
agentIdxs:longИдентификатор контрагента.
from
xs:dateTime
Начало отчетного периода, за который сформирован реестр, включительно («от» включая).
Дата и время в формате ГГГГ-ММ-ДДТчч:мм:сс.ссс±чч:мм (ISO 8601).
till
xs:dateTime
Конец отчетного периода, за который сформирован реестр, исключительно («до» не включая).
Дата и время в формате ГГГГ-ММ-ДДТчч:мм:сс.ссс±чч:мм (ISO 8601).
Пример заголовка реестра
HD;123456;2277;2015-07-01T00:00:00.000+03:00;2015-07-02T00:00:00.000+03:00
Информация переводе (D-строка)
Для каждого перевода, проведенного за отчетный период, формируется отдельная D-строка.

Временем совершения перевода считается время, возвращенное в поле processedDT в ответе на запрос makeDeposition.

Формат строки с информацией переводе
D;clientOrderId;amount;currency;dstAccount;processedDT
Параметры строки перевода
ПараметрТипОписание
dstAccountYMAccountИдентификатор получателя перевода.
clientOrderIdClientTransactionNumberИдентификатор операции.
processedDTxs:dateTimeВремя зачисления средств на счет получателя (по часам сервера ЮMoney, МСК). Приходит в ответе на запрос операции зачисления (makeDeposition). В случае возврата — время возврата средств со счета получателя.
amountCurrencyAmountСумма перевода или возврата.
currencyCurrencyCodeКод валюты перевода.
Пример строки
D;123;1000.00;643;410010000400;2015-07-01T10:52:01.000+03:00
Контрольная строка (TD-строка)
Контрольная строка представляет собой сумму всех переводов по текущему реестру. Если переводов в указанный период не было, то реестр считается пустым и контрольная строка отсутствует.
Пустой реестр содержит только строку заголовка и нулевую строку (Z-строку).
Формат строки
TD;count;sum;currency
Параметры контрольной строки
ПараметрТипОписание
countxs:intКоличество переводов за указанный период.
sumCurrencyAmountОбщая сумма переводов за указанный период.
currencyCurrencyCodeКод валюты общей суммы.
Пример строки
TD;10;10547.25;643
Примеры реестров
Пример реестра
HD;123456;2277;2015-07-01T00:00:00.000+03:00;2015-07-02T00:00:00.000+03:00
D;123;1000.00;643;41001000040;2015-07-01T10:52:01.000+03:00
D;124;25000.00;643;41001000040;2015-07-01T10:52:02.000+03:00
TD;2;26000.00;643
Пример пустого реестра
HD;123456;2277;2015-07-01T00:00:00.000+03:00;2015-07-02T00:00:00.000+03:00
Z
Что почитать еще
Зачисление переводов Типы данных