NAV
WSDL

Request Structs

Proxy server interface

В данном разделе описан интерфейс, который должен быть предоставлен Proxy-сервером для Pro компоненты iDa Mobile. В качестве базового типа веб-сервиса, который должен предоставлять Proxy выбран Axis2 Web Service. При необходимости в Pro может быть реализована работа с сервисами других типов. Для удобства понимания в данном разделе протокол описывается в терминах Java-кода, на основе которого было сгенерировано wsdl описание Proxy web service.

Каждый запрос передает на сервер один объект RequestDTO и получает ответ в виде объекта ResponseDTO. Ниже описаны семантика каждого из методов, а также структура параметров и результатов запросов.

Requests description

Запросы, принимающие bankClientId должны производить проверку допустимости доступа клиента с данным идентификатором к запрашиваемым сущностям. Например, при запросе транзакций счета с идентификатором productId необходимо проверить, является ли пользователь с данным идентификатором productId владельцем счета. При нарушении условий безопасности выполнение может завершаться ошибкой – данная ситуация невозможна при использовании поставляемого клиентского приложения и какая-то осмысленная обработка на клиенте не является необходимой.

blockCard

Запрос на блокировку карты

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
cardId string 1..1 идентификатор карты для блокировки
Response:
result string 1..1 результат операции {OK, ERROR}
faultMessage string 0..1 сообщение об ошибке
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует
CardNotExistsException string 0..1 карта с запрошенным cardId не существует

changePassword

www.websequencediagrams.com

participant Bank proxy as b
participant iDa Pro as p
participant Mobile as m

note over p,m,b: --- var 1 ---

m->p:
p->b: login { login, password }
b->p: loginResult { bankClientId, PASSWORD_CHANGING_REQUIRED }
m->p:
p->b: changePassword { newPassword }
b->p: ok
p->m: ok


note over p,m,b: --- var 1 ---

m->p:
p->b: login { login, password }
b->p: loginResult { bankClientId, VALIDATION_REQUIRED }
p->m:
b->m: send SMS
m->p:
p->b: login { login, password, validationCode }
b->p: loginResult { bankClientId, PASSWORD_CHANGING_REQUIRED }
p->b: changePassword { newPassword }
b->p: ok
p->m: ok

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

image

Варианты использования

  1. Смена пароля без 2х факторного подтверждения смс
  2. Смена пароля с 2х факторной процедурой
key type status comment
Request:
newPassword string 1..1 новый пароль в открытом виде
Response:
result string 1..1 результат выполнения команды {OK, ERROR}
message string 0..1 расширенное сообщение об ошибке

changeProductName

Запрос на изменения наименования продукта

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
productId string 1..1 id продукта, для которого изменяется наименование
newProductName string 1..1 новое наименование продукта
Response:
result string 1..1 результат выполнения команды {OK, ERROR}
message string 0..1 сообщение об ошибке или иное сообщение
needConfirmation bool 1..1 признак необходимости подтверждения
transferCode string 0..1 код операции
confirmCodeLifetime int 0..1 время действия кода подтверждения
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

checkClient

www.websequencediagrams.com

participant Bank proxy as b
participant iDa Pro as p
participant Mobile as m

note over p,m,b: use PIN code first time

m->p: loginWithPassword { login, password, deviceInfo }
p->b: login { login, password, deviceInfo }
b->p: bankClientId
p->m: sessionId
m->p: isPinEstablished { deviceInfo, login }

alt NO PIN

    m->+p: establishPin { pin }
    p-->>p: PostgreSQL [ login, pin, sessionId ]
    p->-m: OK

end

note over p,m,b: use PIN code second time

m->p: loginWithPin { pin, login, deviceInfo }
p->b: checkClient { bankClientId }

Запрос на проверку валидности клиента во время авторизации по ПИН-коду

image

Краткое описание схемы

  1. Отправляется запрос IsPinEstablishedRequest с текущим логином и кодом из ответа на запрос GetDeviceVerificationCodeRequest.
  2. В случае не 2xx HTTP ответа от сервера установка пина прерывается, пользователь переходит в pro-часть приложения.
  3. Если в ответе на IsPinEstablishedRequest вернулось, что пин уже установлен, то пользователю показывается сообщение об этом, в настройках приложения сохраняется маркер, что для пользователя с таким логином пин установлен. Пользователь переходит в pro-часть приложения.
  4. Если пин до этого не был установлен, пользователю показывается интерфейс для ввода пина. После того, как он нажмет на кнопку “Установить”, на сервер отправится запрос EstablishSecurityKeyRequest с ключами из алгоритма Диффи- Хеллмана.
  5. В случае, если запрос вернул ошибку, пользователю покажется сообщение об ошибке, и он остается на экране установки пина.
  6. В случае успешного ответа, пин шифруется с помощью алгоритма Диффи-Хеллмана с полученным из ответа на EstablishSecurityKeyRequest публичным ключем от сервера. Зашифрованный пин отправляется на сервер запросом EstablishPinRequest.
  7. В случае, если запрос вернул ошибку, пользователю показывается сообщение. Он остается на экране установки пина.
  8. Успешный ответ означает, что пин установлен на сервере. В настройках приложения сохраняется маркер, что для пользователя с таким логином пин установлен. Пользователь переходит в pro-часть приложения.
key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
login string 1..1 логин клиента
deviceInfo DeviceInfoDTO 1..1 дополнительная информация об устройстве
Response:
result resultcheckClientKey 1..1 результат проверки
correctClient bool 0..1 флаг, отвечающий за разрешение или запрет авторизации по корректному ПИН-коду в текущий момент
faultMessage string 0..1 расширенное сообщение об ошибке
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

resultcheckClientKey

key comment
OK все в порядке и можно продолжать
ERROR показывается сообщение из faultMessage
PASSWORD_CHANGING_REQUIRED необходимо обязательно сменить пароль changePassword

confirmTransfer

Запрос на подтверждение платежа. Должен делаться если подтверждение платежа необходимо. Использует transferCode, полученный в ходе makeTransfer

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
transferCode string 1..1 код перевода
confirmCode string 1..1 код подтверждения
filledForm FilledFormDTO 1..1 заполненная форма с данными
Response:
result resultConfirmTransferType 1..1 результат операции
message string 0..1 сообщение об ошибке или иное сообщение
additionalButtonText string 0..1 текст для дополнительной кнопки на экране завершения операции
additionalButtonAction string 0..1 действие для дополнительной кнопки на экране завершения операции
redirectUrl string 0..1 url, по которому надо перейти после завершения операции (только для операций СБП)
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

deprecated:

faultMessage string 0..1 сообщение об ошибке или иное сообщение

resultConfirmTransferType

key comment
OK все в порядке и можно продолжать
INVALID_CONFIRM_CODE не верные код, повторить ввод
ERROR ошибка проверке, закрываем возможность повторить запрос

establishPin

participant Mobile as m
participant iDa Pro as p
participant Bank proxy as b

note over p,m,b: Установка ПИН-кода

m->p: loginWithPassword { login, password, deviceInfo }
p->b: login { login, password, deviceInfo }
b->p: bankClientId
p->m: sessionId
m->p: isPinEstablished { deviceInfo, login }

alt NO PIN

    m->+p: establishPin { pin }
    p-->>p: PostgreSQL [ login, pin, sessionId ]
    p->b: establishPin { login, bankClientId, establishPinSuccess }
    b->p: OK
    p->-m: OK

end

note over p,m,b: Успешная авторизация по ПИН-коду

m->p: loginWithPin { pin, login, deviceInfo }
p->b: checkClient { bankClientId }
b-->>b: isNeedLoginWithPassword = false
b->p: OK
p->-m: OK

note over p,m,b: Требуется авторизация по логину/паролю

m->p: loginWithPin { pin, login, deviceInfo }
p->b: checkClient { bankClientId }
b-->>b: isNeedLoginWithPassword = true
b->p: LOGIN_WITH_PASSWORD_REQUIRED
p->-m: LOGIN_WITH_PASSWORD_REQUIRED

Запрос, указывающий, что установка ПИН-кода для клиента прошла успешно

image

key type status comment
Request:
login string 1..1 логин клиента
bankClientId string 1..1 идентификатор клиента
establishPinSuccess bool 1..1 флаг, указывающий, что установка пин-кода прошла успешно
Response:
result resultEstablishPinKey 1..1 результат проверки

resultEstablishPinKey

key comment
OK все в порядке и можно продолжать

getAccountRequisites

<getAccountRequisitesResponse>
   <return>
      <account>40729849234823</account>
      <bank>АКБ "БТА - КАЗАНЬ" (ОАО)</bank>
      <bankAccount>12312312313</bankAccount>
      <beneficaryName>Котов К.К.</beneficaryName>
      <bic>04929384</bic>
      <details>Для перевода используйте подручные средства</details>
      <taxpayerId>16612828282</taxpayerId>
   </return>
</getAccountRequisitesResponse>

Запрос на получение дополнительной информации о продукте при отправке на почту или смс

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
productId string 1..1 идентификатор продукта
cardId string 0..1 идентификатор карты
Response:
bank string 0..1 Наименование банка
bankAccount string 0..1 Идентификатор банковского счета
bic string 0..1 БИК
beneficaryName string 0..1 Наименование бенифициара
taxpayerId string 0..1 ИНН
account string 0..1 Идентификатор счёта
bankswift string 0..1 СВИФТ банка
corbank string 0..1 Банк-корреспондент
corswift string 0..1 СВИФТ Банк-корреспондента
details string 0..1 Дополнительная информация
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getAdditonalProductDetails

<getAdditonalProductDetailsResponse>
   <return>
      <sections type="DetailsSectionDTO">
         <fields type="DetailsFieldDTO">
            <key>Карти №1</key>
            <value>3245</value>
         </fields>
         <fields type="DetailsFieldDTO">
            <key>Карти №2</key>
            <value>4358</value>
         </fields>
         <name>Информация по картам</name>
      </sections>
      <sections type="DetailsSectionDTO">
         <fields type="DetailsFieldDTO">
            <key>Дневной</key>
            <value>25 000 руб.</value>
         </fields>
         <name>Лимиты</name>
      </sections>
   </return>
</getAdditonalProductDetailsResponse>

Запрос на получение дополнительной информации о продукте

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
productId string 1..1 идентификатор продукта
cardId string 0..1 идентификатор карты
Response:
sections DetailsSectionDTO 0..1 детали по продукту по секциям
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

DetailsSectionDTO

key type status comment
name string 0..1 имя раздела
fields DetailsFieldDTO 0..1 данные в разделе

DetailsFieldDTO

key type status comment
key string 0..1 название строки
value string 0..1 данные в строке

getAvailableContacts

Request:

<getAvailableContacts>
   <request>
      <bankClientId>bank_client_id</bankClientId>
      <contacts>79178842393</contacts>
      <contacts>79160369523</contacts>
      <lastUpdateTime xsi:nil="true" />
   </request>
</getAvailableContacts>

Response:

<getAvailableContactsResponse>
   <return>
      <contacts>79600568810</contacts>
      <contacts>79162616444</contacts>
      <contacts>79035678752</contacts>
      <contacts>79163218216</contacts>
      <lastUpdateTime>2016-11-03T12:00:00.000+03:00</lastUpdateTime>
   </return>
</getAvailableContactsResponse>

Запрос на получение списка контактов, доступных для перевода

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
contacts string 1..1 массив номеров телефонов из телефонной книжки клиента
lastUpdateTime Date ISO 8601 1..1 время последнего обновления данных на клиенте
Response:
contacts string 0..1 массив номеров телефонов, представляющий из себя пересечение имеющихся контактов клиентов банка и телефонной книжки клиента
lastUpdateTime Date ISO 8601 1..1 время последнего обновления данных на клиенте
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getBeneficiaryCategories

Запрос возвращает список категорий платежей для пользователя с идентификатором bankClientId

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
hash string 1..1 хеш категорий, хранимых на клиенте
Response:
beneficiaryCategories BeneficiaryCategoryDTO 0..1 список категорий получателей, каждая категория содержит список получателей
hash string 0..1 хеш текущего состояния списка
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getBills

Запрос возвращает список выставленны счетов для пользователя с идентификатором bankClientId

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
Response:
BillDTO BillDTO 0..1 список объектов с информацией о счетах
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getClientInfo

Получение общей информации о клиенте для отображения в приложении

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
Response:
bankClient BankClientDTO 0..1 информация о клиенте
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getCurrencyRates

Запрос возвращает список курсов валют

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
rateProvider RateProvider 0..1 источник курса валют
rateType RateType 1..1 тип курса валют
Response:
result string 1..1 результат операции {OK, ERROR}
faultMessage string 0..1 сообщение об ошибке
receivedTime Date ISO 8601 1..1 время получения курсов
updateInNextSeconds int 1.1 время рбновления биржевых курсов
currencyRates CurrencyRateDTO 1..1 курсы валют
formName string 0..1 наименование формы, возможные значения: “Персональный курс”, “Стандартный курс”, “Курс Центрального банка”
blockMessage1 string 0..1 текст информационного поля под таблицей биржевых курсов, например: “Курс обновляется каждые 40 секунд. Биржевой курс работает только для долларов США и евро в рабочие дни с 10:00 до 17:00”
blockMessage2 string 0..1 текст информационного поля под таблицей курсов, например: “Биржевой курс работает только для долларов США и евро в рабочие дни с 10:00 до 17:00”
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getCurrentForm

Запрос на получение текущей формы. Принимает заполненную пользователем форму и выдаёт её с предзаполненными данными для нее

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
filledForm FilledFormDTO 1..1 заполненная форма с данными
Response:
formDTO FormDTO 1..1 форма следующего шага
filledForm FilledFormDTO 1..1 заполненная форма с данными для formDTO
faultMessage string 0..1 сообщение об ошибке
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getDynamicFieldValues

Запрос на получение отфильтрованных значений по заданному филду

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
fieldId string 1..1 идентификатор поля, по которому нужно вернуть список значений
formId string 1..1 идентификатор формы, на которой расположен данный филд
name string 1..1 фильтр по введенной пользователем строке
value string 0..1 фильтр по значению (должен вернуть один единственный элемент, у которого значение совпадает со значением в запросе)
dependentFieldId string 0..1 идентификатор зависимого поля, по которому нужно вернуть список значений
dependentFieldValue string 0..1 фильтр по значению зависимого поля, по которому нужно вернуть список значений

Response: | | | values | ComboBoxValueDTO | 0..1 | набор значений для поля, отфильтрованные на основании фильров в запросе needReload | bool | 0..1 | признак того, что текущая форма должна быть перезагружена Exception: | | | BankClientNotExistsException | string | 0..1 | клиент с запрошенным bankClientId не существует

getEvents

Запрос на получение фидов. Лента, поддерживающая все ключи транзакции, но не сортируется самостоятельно и отображается в зависимости от ключа

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
feedId string 1..1 идентификатор ленты
fromIndex int 0..1 индекс начального элемента в общем списке
toIndex int 0..1 индекс элемента до которого надо прислать элементы в общем списке
Response:
feedEvents FeedEventDTO 0..1 массив событий по запрошенному feed
lastUpdateTime Date ISO 8601 1..1 время последнего обновления данных на клиенте
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getNextForm

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

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
filledFormDTO FilledFormDTO 1..1 заполненная форма с данными
Response:
formDTO FormDTO 1..1 форма следующего шага
filledFormDTO FilledFormDTO 1..1 заполненная форма с данными для formDTO
faultMessage string 0..1 сообщение об ошибке
additionalButtonText string 0..1 текст для дополнительной кнопки на экране завершения операции
additionalButtonAction string 0..1 действие для дополнительной кнопки на экране завершения операции
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getNextQuestion

Запрос на получение следующего вопроса по цепочке. Принимает идентификатор предыдущего вопроса и код ответа на предыдущий вопрос, выдает следующий вопрос, результат операции и сообщение.

key type status comment
Request:
bankClientId string 1..1
previousQuestionId string 1..1
previousQuestionAnswerCode string 1..1
Response:
question QuestionDTO 1..1
result string 1..1 результат операции {OK, ERROR}
message string 1..1
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getPaymentForm

Возвращает форму оплаты для получателя с идентификатором beneficiaryId

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
beneficiaryId string 1..1 идентификатор получателя, для которого нужно получить форму
Response:
form FormDTO 0..1 форма данного получателя
filledForm FilledFormDTO 0..1 заполненные поля формы
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует
BeneficiaryNotExistsException string 0..1 получатель с запрошенным beneficiaryId не существует

getPersonalNews

Запрос на получение личных уведомлений и новостей для пользователя. Физически попадает в отдельный раздел меню. Наличие раздела управляется через ключ PERSONAL_NEWS в BANKCLIENTDTO

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
lastUpdateTime Date ISO 8601 1..1 время последнего обновления данных на клиенте
Response:
news PersonalNewsDTO 0..1 список объектов с информацией о счетах
lastUpdateTime Date ISO 8601 1..1 время последнего обновления данных на клиенте
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getProducts

Получение информации о банковских продуктах, которыми пользуется пользователь с запрошенным идентификатором

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
Response:
deposits DepositDTO 0..1 массив объектов с информацией о депозитах
creditAccounts CreditAccountDTO 0..1 массив объектов с информацией о счетах кредитных карт
currentAccounts CurrentAccountDTO 0..1 массив объектов с информацией о текущих счетах
loans LoanDTO 0..1 массив объектов с информацией о кредитах
cardAccounts CardAccountDTO 0..1 массив объектов с информацией о карточных счетах
bonusPoints BonusPointsDTO 0..1 массив объектов с информацией о бонусных счетах
multiCurrencyAccounts MultiCurrencyAccountsDTO 0..1 массив объектов с информацией о мультивалютном счете
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getProductInfoBlocks

Запрос на получение информационных блоков продукта

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
productId string 1..1 идентификатор продукта
cardId string 0..1 идентификатор карты
Response:
infoBlocks MarkerDTO 0..1 информационные блоки продукта
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getStandardForms

Запрос возвращает список форм переводов для пользователя с идентификатором bankClientId

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
hash string 1..1 хеш категорий, хранимых на клиенте
Response:
standartForms FormDTO 0..1 список стандартных форм
hash string 0..1 хеш текущего состояния списка
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getStatement

Запрос возвращает ссылку на PDF документ выписки

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
productId string 1..1 идентификатор продукта
startDate Date ISO 8601 1..1 дата начала периода выписки
endDate Date ISO 8601 1..1 дата конца периода выписки
Response:
result string 1..1 результат операции {OK, ERROR}
message string 0..1 сообщение
pdfUrl string 0..1 ссылка на PDF документ выписки
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getTemplates

Запрос возвращает транзакцию пользователя с идентификатором bankClientId

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
Response:
TemplateDTO TemplateDTO 0..1 список форм с предзаполненной информацией для удобства пользователя
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getTransactionDetails

Запрос возвращает список шаблонов пользоватея, принимает идентификатор транзакции, возвращает информацию о транзакции

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
transactionId string 1..1 идентификатор транзакции
Response:
transaction TransactionDTO 1..1
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getTransactionsByDateRange

Request:

<getTransactionsByDateRange>
    <request>
        <bankClientId>bank_client_id</bankClientId>
        <productId>product_id</productId>
        <fromIndex>0</fromIndex>
        <since>2016-08-02T13:50:00+03:00</since>
        <to>2016-08-30T13:50:00+03:00</to>
    </request>
</getTransactionsByDateRange>

Response:

<getTransactionsByDateRangeResponse>
    <return>
        <balanceOnSinceDate type="AmountDTO">
            <currency>RUB</currency>
            <fxAmount>17600</fxAmount>
        </balanceOnSinceDate>
        <balanceOnToDate type="AmountDTO">
            <currency>RUB</currency>
            <fxAmount>-1054122</fxAmount>
        </balanceOnToDate>
        <receipts type="AmountDTO">
            <currency>RUB</currency>
            <fxAmount>123423000</fxAmount>
        </receipts>
        <costs type="AmountDTO">
            <currency>RUB</currency>
            <fxAmount>-87323000</fxAmount>
        </costs>
        <percents type="AmountDTO">
            <currency>RUB</currency>
            <fxAmount>15200</fxAmount>
        </percents>
        <cashback type="AmountDTO">
            <currency>RUB</currency>
            <fxAmount>149800</fxAmount>
        </cashback>
        <lastUpdateTime>2015-08-25T21:13:08.000+03:00</lastUpdateTime>
        <transactions type="TransactionDTO">
            #
            # transaction
            #
        </transactions>
        <transactions type="TransactionDTO">
            #
            # transaction
            #
        </transactions>
    </return>
</getTransactionsByDateRangeResponse>

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

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
productId string 1..1 идентификатор продукта
cardId string 0..1 идентификатор карты
fromIndex int 1..1 начиная с какой позиции нужно передать транзакции (при первом запросе - 0)
count int 0..1 максимальное количество транзакций на странице
since Date ISO 8601 1..1 дата начала периода
to Date ISO 8601 1..1 дата конца периода
filter string 0..1 тип фильтрации для транзакций
Response:
transactions TransactionDTO 0..1 список объектов с информацией о транзакциях
lastUpdateTime Date ISO 8601 1..1 дата последней по времени транзакции по продукту из запрашиваемого периода
balanceOnSinceDate AmountDTO 0..1 баланс на начало периода
balanceOnToDate AmountDTO 0..1 баланс на конец периода
receipts AmountDTO 0..1 сумма поступлений
costs AmountDTO 0..1 сумма расходов
percents AmountDTO 0..1 сумма процентов
cashback AmountDTO 0..1 сумма кэшбека
periodMessage string 0..1 сообщение о периоде
Exception:
CardNotExistsException string 0..1 карта с запрошенным cardId не существует
AccountNotExistsException string 0..1 счет с запрошенным productId не существует
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getTransactionsByFilter

<getTransactionsByFilterResponse>
    <return>
        <lastUpdateTime>2015-05-25T21:13:08.000+03:00</lastUpdateTime>
        <transactions type="TransactionDTO">
            #
            # transaction
            #
        </transactions>
        <transactions type="TransactionDTO">
            #
            # transaction
            #
        </transactions>
    </return>
</getTransactionsByFilterResponse>

Результатом является список транзакций, отсортированный на мобильном в порядке убывания даты их выполнения

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
productId string 1..1 идентификатор продукта
cardId string 0..1 идентификатор карты
fromIndex int 0..1 начиная с какой позиции нужно передать транзакции (при первом запросе - 0)
count int 0..1 максимальное количество транзакций на странице
transactionId string 0..1 начиная с какой транзакции нужно передать транзакции
filter string 0..1 тип фильтрации для транзакций
operationType string 0..1 тип операции (зачисление, списание)
transactionsType string 0..1 тип платежей и переводов (С карты на карту, Покупки и т.д.)
sinceDate Date ISO 8601 0..1 дата начала периода фильтрации
toDate Date ISO 8601 0..1 дата окончания периода фильтрации
fromAmount int 0..1 сумма “От” фильтрации для транзакций
toAmount int 0..1 сумма “До” фильтрации для транзакций
feedId string 0..1 идентификатор ленты
Response:
transactions TransactionDTO 0..1 список объектов с информацией о транзакциях
lastUpdateTime Date ISO 8601 1..1 дата последней по времени транзакции по продукту из запрашиваемого периода
Exception:
CardNotExistsException string 0..1 карта с запрошенным cardId не существует
AccountNotExistsException string 0..1 счет с запрошенным productId не существует
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

getVersion

Запрос без параметров, возвращающий версию серверной апликации

haveUpdates

Проверяет, есть ли обновления списков (есть, если текущее состояние не совпадает с передаваемым)

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
lastUpdateTime Date ISO 8601 1..1 дата последнего обновления
type ObjectType 1..1 тип для проверки
id string 0..1 идентификатор обьекта из поля type (если не указан, то проверяется то обновляется весь список)
Response:
haveUpdates bool 1..1 нужно ли обновлять

ObjectType

key comment
BENEFICIARY_CATEGORIES раздел платежей
STANDARD_FORMS список стандартных форм
PAYMENT_FORM форма и наследник формы

login

Запрос проверяет корректность пары login/password, если пара верна – возвращает идентификатор клиента bankClientId, соответствующий логину на стороне бэка

key type status comment
Request:
login string 1..1 логин
password string 1..1 пароль
validationCode string 0..1 код из SMS, который передаётся только в случае ответа на команду логин с результатом VALIDATION_REQUIRED
deviceInfo DeviceInfoDTO 1..1 дополнительная информация об устройстве
Response:
result resultLoginKey 1..1 результат проверки
bankClientId string 1..1 идентификатор клиента
faultMessage string 0..1 расширенное сообщение об ошибке авторизации

resultLoginKey

key comment
OK все в порядке и можно продолжать
ERROR показывается сообщение из faultMessage
INVALID_CREDENTIALS не верные данные логина/пароля
PASSWORD_CHANGING_REQUIRED необходимо обязательно сменить пароль changePassword
VALIDATION_REQUIRED двухфакторная аутентификация с ожиданием кода из СМС

makeTransfer

www.websequencediagrams.com

participant Bank proxy as b
participant iDa Pro as p
participant Mobile as m
participant PiGeon as pi

p->+b: query form
b->-p: form ( hasNext = false )
p->m:
m->p:
p->b: makeTransfer

alt needConfirmation = true, transferCode = tcode

    b->p:
    b->pi: send confirmCode = ccode
    pi->m:
    m->p:
    p->b: confirmTransfer ( transferCode = tcode, confirmCode = ccode)
    b->p: ok
    p->m:

else needConfirmation = false

    b->p: ok
    p->m:

end

Запрос на совершение платежа, поддерживает два режима – с подтверждением и без. Если необходимо подтверждение платежа, признак needConfirmation должен быть выставлен в true и присутствовать код перевода в transferCode, данный код используется в confirmTransfer для обозначения того, какой перевод мы подтверждаем

image

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
filledForm FilledFormDTO 1..1 заполненная форма с данными
requestId string 1..1 уникальный идентификатор запроса в виде UUID
action string 1..1 действие (customAction) кнопки, по нажатию на которую посылается запрос
deviceInfo DeviceInfoDTO 1..1 дополнительная информация об устройстве
Response:
result string 1..1 результат операции {OK, ERROR}
needConfirmation bool 0..1 признак необходимости подтверждения
transferCode string 0..1 код операции
message string 0..1 сообщение об ошибке или иное сообщение
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

deprecated:

faultMessage string 0..1 сообщение об ошибке или иное сообщение
confirmationMessage string 0..1 сообщение об ошибке или иное сообщение

markPersonalNewsRead

Запрос на отметку новостей как прочитанных

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
entityIds string 1..1 список идентификаторов уведомлений (персональных новостей), которые нужно пометить как прочитанные
Response:
result string 0..1 статус выполнения запроса {OK, ERROR}
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

removeTemplate

Удаление шаблона

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
templateId string 1..1 идентификатор шаблона
Response:
result string 1..1 результат выполнения команды {OK, ERROR}
message string 0..1 сообщение об ошибке или иное сообщение
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

Удаление шаблонов и автоплатежей

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
templateIds string 1..1 идентификатор шаблона/список идентификаторов автоплатежей
Response:
result string 1..1 результат выполнения команды {OK, ERROR}
message string 0..1 сообщение об ошибке или иное сообщение
needConfirmation bool 0..1 признак необходимости подтверждения
transferCode string 0..1 код операции
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

requestCommission

Запрос на расчет комиссии по платежу – отправляется заполненная форма с информацией о платеже, результатом работы является ответ, содержащий размер комиссии и валюту

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
filledForm FilledFormDTO 1..1 заполненная форма с данными
Response:
commission int 1..1 размер комиссии
currencyCode string 1..1 текстовый код валюты по ISO 4217
message string 0..1 сообщение об ошибке или иное сообщение
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

requestHashedPassword

Запрос проверяет наличие пользователя, если пользователь присутствует – возвращает информацию, необходимую для проверки пароля. Метод используется при построении банком облачной системы, когда проксирующий сервер iDaPro вынесен за периметр банка и необходимо не передавать пароль. В обычной ситуации применяется метод login

key type status comment
Request:
login string 1..1 логин
Response:
result resultHashedPasswordKey 1..1 результат проверки пары логин-пароль
bankClientId string 1..1 идентификатор клиента
method hashMethodKey 1..1 алгоритм генерации hash-кода
salt string 0..1 соль, используемая для хеширования пароля в зависимости от метода шифрования
hash string 1..1 текст, захешированный с солью в зависимости от метода шифрования
faultMessage string 0..1 расширенное сообщение об ошибке

resultHashedPasswordKey

key comment
OK все в порядке и можно продолжать
UNKNOWN_USER не верные данные логина/пароля, показывается сообщение из faultMessage

hashMethodKey

key comment
PLAIN hash-функция не используется, пароль передан в открытом виде
BCRYPT aдаптивная криптографическая функция BCRYPT
SHA2 от пароля взят hash по алгоритму SHA2 (без использования salt)

saveFavoriteSection

Сохраняет состояние (вкл./выкл.) мини-раздела

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
type Type 1..1 тип сохраняемого элемента
objectId string 1..1 идентификатор перевода, бенефициара или продукта
optionId string 1..1 идентификатор доп. опции
enabled bool 0..1 признак включения или выключения мини-раздела
Response:
result string 1..1 результат выполнения команды {OK, ERROR}
faultMessage string 0..1 сообщение об ошибке или иное сообщение
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

Type

key comment
TRANSFER перевод
PAYMENT платеж
PRODUCT продукт

usePoints

Запрос для включения/выключения использования баллов кредитной карты

key type status comment
Request:
bankClientId string 1..1 идентификатор клиента
cardId string 1..1 идентификатор карты
customerChoice bool 1..1 флаг, отвечающий за передачу значения включения/выключения баллов для карты
Response:
result string 1..1 результат операции {OK, ERROR}
message string 0..1 сообщение
Exception:
BankClientNotExistsException string 0..1 клиент с запрошенным bankClientId не существует

Data Structs

Используются в общении iDa Pro сервера и Proxy банка

Все платежи, переводы, шаблоны в iDa архитектуре представлены с помощью «ФОРМ». Все данные, которые пользователь может вводить для совершения операций описываются в виде форм, а конкретные введенные пользователем данные – в виде заполненных форм.

Ниже излагается универсальная структура описания форм в системе iDa Mobile. Каждая форма (например, форма денежного перевода) задается кортежем, на который ссылается набор полей формы formField. На кортеж formField может ссылаться некоторое количество кортежей comboBoxValue, которые задают допустимые значение поля формы в случае, если formField.fieldClass = COMBO_BOX.

Следует обратить внимание, что данная структура описывает и хранит не конкретные значения полей форм, а описание структуры формы и типов полей. Конкретные значения хранятся в паре filledForm – formValue.

С помощью форм также можно создавать элемент обратной связи, заявки на продукты и другие распоряжения килента банку

AmountDTO

key type status comment
currency string 1..1 текстовый код валюты по ISO 4217
fxAmount int 1..1 сумма помноженная на 100 для отображения копеек

AnswerDTO

key type status comment
id string 1..1 уникальный идентификатор
text string 1..1 текст ответа
action string 0..1 код действия
code string 1..1 код ответа
order int 0..1 порядок отображения ответов

BankClientDTO

key type status comment
id string 1..1 уникальный идентификатор
firstName string 1..1 имя клиента, например: Иван
lastName string 1..1 фамилия клиента, например: Петров
middleName string 0..1 отчество клиента, например: Андреевич
phoneNumber string 0..1 телефон в международном формате, например 79151234567
email string 0..1 электронная почта клиента
tags MarkerDTO 0..1 дополнительные свойства или настройки

BannerDTO

key type status comment
id string 1..1 уникальный идентификатор
order int 1..1 порядок отображения
title string 0..1 заголовок
text string 0..1 текст
target string 0..1 ссылка для перехода по клику на баннер
placement string 1..1 место размещения
imageURL string 0..1 адрес изображения
type string 0..1 тип баннера

BeneficiaryCategoryDTO

key type status comment
id string 1..1 уникальный идентификатор
name string 1..1 название категории бенефициара
beneficiaries BeneficiaryDTO 1..1 список бенефициаров, входящих в категорию
logoResource LogoResource 0..1 url для доступа к логотипу

BeneficiaryDTO

key type status comment
id string 1..1 уникальный идентификатор
name string 1..1 название бенефициара
formId string 1..1 идентификатор формы платежа, соответствующей бенефициару
logoResource LogoResource 0..1 url для доступа к логотипу
favoriteSection bool 0..1 отображать в разделе “Переводы” на экране “Добавить сервис”
favoriteSectionEnabled bool 0..1 признак отображения мини-раздела на главном экране
popularService bool 0..1 отображать в разделе “Популярные сервисы” на экране поиска
popularServiceOrder int 0..1 порядок сортировки в разделе “Популярные сервисы” на экране поиска

BillDTO

key type status comment
id string 1..1 уникальный идентификатор
name string 1..1 название счета
form FormDTO 1..1 соответствующая счету форма
filledForm FilledFormDTO 1..1 заполненные поля формы
logoResource LogoResource 0..1 url для доступа к логотипу
description string 0..1 описание счета

BonusPointsDTO

key type status comment
id string 1..1 уникальный идентификатор
accountNumber string 1..1 номер продукта в банке
currency string 1..1 текстовый код валюты по ISO 4217
productName string 1..1 название продукта
fxRunningBalance int 1..1 средства на продукте
textMessage string 1..1 описание продукта
tags MarkerDTO 0..1 дополнительные поля
hasRequisites bool 0..1 наличие реквизитов для отправки по смс или почте
commonNotificationText string 1..1 текст уведомления баннера на вкладке “Общее”
commonNotificationStyle string 1..1 цвет фона баннера на вкладке “Общее”
commonNotificationIconLeftUrl string 1..1 ссылка на иконку слева баннера на вкладке “Общее”
commonNotificationIconRightUrl string 1..1 ссылка на иконку справа баннера на вкладке “Общее”
commonNotificationUrl string 1..1 ссылка для баннера на вкладке “Общее”, открывающаяся при нажатии на баннер (может содержать как внешние ссылки http:// так и внутренние в виде form://[form_id])
additionalNotificationText string 1..1 текст уведомления баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationStyle string 1..1 цвет фона баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationIconLeftUrl string 1..1 ссылка на иконку слева баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationIconRightUrl string 1..1 ссылка на иконку справа баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationUrl string 1..1 ссылка для баннера на всех вкладках, кроме вкладки “Общее”, открывающаяся при нажатии на баннер (может содержать как внешние ссылки http:// так и внутренние в виде form://[form_id])

CardAccountDTO

key type status comment
id string 1..1 уникальный идентификатор
currency string 1..1 текстовый код валюты по ISO 4217
runningBalance AmountDTO 1..1 доступные средства продукта
feeds FeedDTO 0..1 элементы ленты событий, например графика платежей по кредиту или затраченные поездки на общественном транспорте
tags MarkerDTO 0..1 дополнительные поля
card CardDTO 1..1 карта, привязанных к счету
hasRequisites bool 0..1 наличие реквизитов для отправки по смс или почте
filterFormId string 0..1 id формы расширенного фильтра
customName string 0..1 пользовательское название продукта
copyAccountNumberAllowed bool 0..1 признак наличия у продукта кнопки копирования номера счета
sendStatementEnabled bool 0..1 признак отображения кнопки “Отправить выписку” на экране аналитики по продукту
commonNotificationText string 1..1 текст уведомления баннера на вкладке “Общее”
commonNotificationStyle string 1..1 цвет фона баннера на вкладке “Общее”
commonNotificationIconLeftUrl string 1..1 ссылка на иконку слева баннера на вкладке “Общее”
commonNotificationIconRightUrl string 1..1 ссылка на иконку справа баннера на вкладке “Общее”
commonNotificationUrl string 1..1 ссылка для баннера на вкладке “Общее”, открывающаяся при нажатии на баннер (может содержать как внешние ссылки http:// так и внутренние в виде form://[form_id])
additionalNotificationText string 1..1 текст уведомления баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationStyle string 1..1 цвет фона баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationIconLeftUrl string 1..1 ссылка на иконку слева баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationIconRightUrl string 1..1 ссылка на иконку справа баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationUrl string 1..1 ссылка для баннера на всех вкладках, кроме вкладки “Общее”, открывающаяся при нажатии на баннер (может содержать как внешние ссылки http:// так и внутренние в виде form://[form_id])

CardDTO

<allCards type="CardDTO">
   <id>card_id</id>
   <blockAllowed>true</blockAllowed>
   <blocked>false</blocked>
   <cardHolder>IVAN IVANOV</cardHolder>
   <cardOwner>Иван Иванов</cardOwner>
   <cardStatus>ACTIVE</cardStatus>
   <cardType>Maestro</cardType>
   <expirationMonth>9</expirationMonth>
   <expirationYear>2015</expirationYear>
   <fxRunningBalance>30000</fxRunningBalance>
   <logoResource>http://static.idamob.ru/pro/cards/${image.type}/ic_card_bg.png</logoResource>
   <maskedCardNumber>**** **** 9633 ****</maskedCardNumber>
</allCards>
key type status comment
id string 1..1 уникальный идентификатор
maskedCardNumber string 1..1 частично маскированный номер карты, например 1111 1111 **** 1111
expirationMonth int 1..1 месяц истечения срока
expirationYear int 1..1 год истечения срока
fxRunningBalance int 0..1 сумма на карте умноженное на 100, при отсутствии берется из счета к которому привязана карты
cardHolder string 0..1 имя держателя карты (как на карте)
logoResource LogoResource 0..1 url для доступа к логотипу
blockAllowed bool 0..1 признак разрешена ли блокировка карты из приложения
blocked bool 0..1 признак состояния блокировки карты
cardType string 1..1 тип карты или название (например Visa Gold, MasterCard)
cardOwner string 0..1 владелец карты
cardStatus string 0..1 статус карты
bonusPointsAmount AmountDTO 0..1 сумма бонусов
customName string 0..1 пользовательское название карты(Например, моя зарплатная карта)
cvv string 0..1 svv код
filterFormId string 0..1 id формы расширенного фильтра
textColor string 0..1 цвет текста на макете карты
requisitesFormId string 0..1 id формы с полями для показа реквизитов карты
mirPayAllowed bool 0..1 признак привязки карты к MirPay
usePointsEnabled bool 0..1 признак положения свитча “Использовать баллы” вкл/выкл
isDigital bool 0..1 признак того, что карта имееет тип digital
sendStatementEnabled bool 0..1 признак отображения кнопки “Отправить выписку” на экране аналитики по продукту
feeds FeedDTO 0..1 элементы ленты событий, например графика платежей по кредиту или затраченные поездки на общественном транспорте
tags MarkerDTO 0..1 дополнительные обьекты действий

CategoryDTO

key type status comment
name string 0..1 название категории
iconURL string 0..1 адрес изображения
color int 0..1 цвет категории
isAccountCategory bool 0..1 категория счетов
isIncomesCategory bool 0..1 категория поступлений

ComboBoxValueDTO

<comboBoxValues>
  <id>val_id</id>
  <name>Некая надпись для удобства пользователя</name>
  <order>1</order>
  <value>id_for_server</value>
</comboBoxValues>
key type status comment
id string 1..1 уникальный идентификатор поля внутри системы, может быть равен value
name string 1..1 строка или accountNamber или cardId, отображаемая в списке
order int 1..1 порядковый номер значения поля в списке
value string 1..1 значение, которое будет отправляться в прокси в ответе апликации
tags MarkerDTO 0..1 тэги
logoResource LogoResource 0..1 url для доступа к логотипу

CreditAccountDTO

key type status comment
id string 1..1 уникальный идентификатор
accountNumber string 1..1 номер продукта в банке
currency string 1..1 текстовый код валюты по ISO 4217
productName string 1..1 название продукта
runningBalance AmountDTO 1..1 доступные средства продукта
feeds FeedDTO 0..1 элементы ленты событий, например графика платежей по кредиту или затраченные поездки на общественном транспорте
tags MarkerDTO 0..1 дополнительные поля
mainCardId string 0..1 основная карта, привязанная к счету
allCards CardDTO 0..1 список всех карт, привязанных к счету
hasRequisites bool 0..1 наличие реквизитов для отправки по смс или почте
filterFormId string 0..1 id формы расширенного фильтра
customName string 0..1 пользовательское название продукта
copyAccountNumberAllowed bool 0..1 признак наличия у продукта кнопки копирования номера счета
sendStatementEnabled bool 0..1 признак отображения кнопки “Отправить выписку” на экране аналитики по продукту
commonNotificationText string 1..1 текст уведомления баннера на вкладке “Общее”
commonNotificationStyle string 1..1 цвет фона баннера на вкладке “Общее”
commonNotificationIconLeftUrl string 1..1 ссылка на иконку слева баннера на вкладке “Общее”
commonNotificationIconRightUrl string 1..1 ссылка на иконку справа баннера на вкладке “Общее”
commonNotificationUrl string 1..1 ссылка для баннера на вкладке “Общее”, открывающаяся при нажатии на баннер (может содержать как внешние ссылки http:// так и внутренние в виде form://[form_id])
additionalNotificationText string 1..1 текст уведомления баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationStyle string 1..1 цвет фона баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationIconLeftUrl string 1..1 ссылка на иконку слева баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationIconRightUrl string 1..1 ссылка на иконку справа баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationUrl string 1..1 ссылка для баннера на всех вкладках, кроме вкладки “Общее”, открывающаяся при нажатии на баннер (может содержать как внешние ссылки http:// так и внутренние в виде form://[form_id])

deprecated:

openingDate Date ISO 8601 0..1
creditLimit AmountDTO 1..1
blockedAmount AmountDTO 0..1
penaltyAmount AmountDTO 0..1
contractNumber string 0..1
contractStatus string 0..1
status string 0..1

CreditPlanDTO

key type status comment
id string 1..1 идентификатор кредитного плана
amount AmountDTO 1..1 сумма с указанием валюты
paymentDate Date ISO 8601 1..1 дата платежа
status [CreditPlanStatus] 1..1 состояние платежа (PENDING, COMPLETED, OVERDUE)
rateAmount Amount 0..1 сумма процентов по платежу

CurrencyRateDTO

key type status comment
firstLogoResource string 0..1 ссылка на иконку валюты, для которой указывается курс
secondLogoResource string 0..1 ссылка на иконку валюты, относительно которой указывается курс
firstCurrency string 1..1 код валюты, для которой указывается курс
secondCurrency string 1..1 код валюты, относительно которой указывается курс
buyDirection string 1..1 направление повышения/понижения курса покупки, возможные значения: UP, DOWN, NEUTRAL
buy string 1..1 курс покупки первой в списке валюты (firstCurrency) относительно второй (secondCurrency)
sellDirection string 1..1 направление повышения/понижения курса продажи, возможные значения: UP, DOWN, NEUTRAL
sell string 1..1 курс продажи первой в списке валюты (firstCurrency) относительно второй (secondCurrency)
rateProvider RateProvider 1..1 источник курса валют
rateType RateType 1..1 тип курса валют
sortOrder int 0..1 порядковый номер строки в таблице для сортировки
receivedTime Date ISO 8601 0..1 время получения курса

RateProvider

key comment
MOEX_RATE биржевой курс
ANY_RATE курс банка

RateType

key comment
PERSONAL_RATE персональный курс валют
CROSS_RATE кросс-курс валют
CENTRAL_BANK_RATE курс валют ЦБ

CurrentAccountDTO

<currentAccounts type="CurrentAccountDTO">
   <id>current_accounts_id</id>
   <accountNumber>78595893712734543353</accountNumber>
    <additionalNotificationIconLeftUrl>https://img.icons8.com/ios/50/000000/bank-building.png</additionalNotificationIconLeftUrl>
    <additionalNotificationIconRightUrl>https://img.icons8.com/ios/50/000000/bank-building.png</additionalNotificationIconRightUrl>
    <additionalNotificationStyle>#03AC13</additionalNotificationStyle>
    <additionalNotificationText>Текст для баннера</additionalNotificationText>
    <additionalNotificationUrl>https://idamob.ru</additionalNotificationUrl>
    <commonNotificationIconLeftUrl>https://img.icons8.com/ios/50/000000/bank-building.png</commonNotificationIconLeftUrl>
    <commonNotificationIconRightUrl>https://img.icons8.com/ios/50/000000/bank-building.png</commonNotificationIconRightUrl>
    <commonNotificationStyle>#98BF64</commonNotificationStyle>
    <commonNotificationText>Только сегодня! Очередное разводилово!</commonNotificationText>
    <commonNotificationUrl>https://idamob.ru</commonNotificationUrl>
   <allCards type="CardDTO">
      #
      # CardDTO
      #
   </allCards>
   <allCards type="CardDTO">
      #
      # CardDTO
      #
   </allCards>
   <blockedAmount type="AmountDTO">
      <currency>EUR</currency>
      <fxAmount>50000</fxAmount>
   </blockedAmount>
   <currency>EUR</currency>
   <hasRequisites>false</hasRequisites>
   <mainCardId>card_id</mainCardId>
   <productName>Credit account</productName>
   <runningBalance type="AmountDTO">
      <currency>EUR</currency>
      <fxAmount>123456</fxAmount>
   </runningBalance>
</currentAccounts>
key type status comment
id string 1..1 уникальный идентификатор
accountNumber string 1..1 номер продукта в банке
currency string 1..1 текстовый код валюты по ISO 4217
productName string 1..1 название продукта
runningBalance AmountDTO 1..1 доступные средства продукта
feeds FeedDTO 0..1 элементы ленты событий, например графика платежей по кредиту или затраченные поездки на общественном транспорте
tags MarkerDTO 0..1 дополнительные поля
mainCardId string 0..1 основная карта, привязанная к счету
allCards CardDTO 0..1 список всех карт, привязанных к счету
hasRequisites bool 0..1 наличие реквизитов для отправки по смс или почте
filterFormId string 0..1 id формы расширенного фильтра
customName string 0..1 пользовательское название продукта
copyAccountNumberAllowed bool 0..1 признак наличия у продукта кнопки копирования номера счета
sendStatementEnabled bool 0..1 признак отображения кнопки “Отправить выписку” на экране аналитики по продукту
commonNotificationText string 1..1 текст уведомления баннера на вкладке “Общее”
commonNotificationStyle string 1..1 цвет фона баннера на вкладке “Общее”
commonNotificationIconLeftUrl string 1..1 ссылка на иконку слева баннера на вкладке “Общее”
commonNotificationIconRightUrl string 1..1 ссылка на иконку справа баннера на вкладке “Общее”
commonNotificationUrl string 1..1 ссылка для баннера на вкладке “Общее”, открывающаяся при нажатии на баннер (может содержать как внешние ссылки http:// так и внутренние в виде form://[form_id])
additionalNotificationText string 1..1 текст уведомления баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationStyle string 1..1 цвет фона баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationIconLeftUrl string 1..1 ссылка на иконку слева баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationIconRightUrl string 1..1 ссылка на иконку справа баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationUrl string 1..1 ссылка для баннера на всех вкладках, кроме вкладки “Общее”, открывающаяся при нажатии на баннер (может содержать как внешние ссылки http:// так и внутренние в виде form://[form_id])

deprecated:

openingDate Date ISO 8601 0..1
balance AmountDTO 0..1
overdraftLimit AmountDTO 0..1
blockedAmount AmountDTO 0..1
contractNumber string 0..1
contractStatus string 0..1
status string 0..1

DepositDTO

<deposits type="DepositDTO">
    <id>deposit_id</id>
    <accountNumber>78595893712734543344</accountNumber>
    <autoRenewal>true</autoRenewal>
    <capitalization>true</capitalization>
    <capitalizationTerm nil="true"/>
    <currency>EUR</currency>
    <fxInterestRate>102342</fxInterestRate>
    <hasRequisites>false</hasRequisites>
    <additionalNotificationIconLeftUrl>https://img.icons8.com/ios/50/000000/bank-building.png</additionalNotificationIconLeftUrl>
    <additionalNotificationIconRightUrl>https://img.icons8.com/ios/50/000000/bank-building.png</additionalNotificationIconRightUrl>
    <additionalNotificationStyle>#03AC13</additionalNotificationStyle>
    <additionalNotificationText>Текст для баннера</additionalNotificationText>
    <additionalNotificationUrl>https://idamob.ru</additionalNotificationUrl>
    <commonNotificationIconLeftUrl>https://img.icons8.com/ios/50/000000/bank-building.png</commonNotificationIconLeftUrl>
    <commonNotificationIconRightUrl>https://img.icons8.com/ios/50/000000/bank-building.png</commonNotificationIconRightUrl>
    <commonNotificationStyle>#98BF64</commonNotificationStyle>
    <commonNotificationText>Только сегодня! Очередное разводилово!</commonNotificationText>
    <commonNotificationUrl>https://idamob.ru</commonNotificationUrl>
    <initialAmount type="AmountDTO">
        <currency>EUR</currency>
        <fxAmount>100000</fxAmount>
    </initialAmount>
    <mainCardId nil="true"/>
    <maturityDate>2013-05-24T00:00:00.000+03:00</maturityDate>
    <openingDate>2012-05-24T00:00:00.000+03:00</openingDate>
    <period>180</period>
    <productName>deposit_name</productName>
    <runningBalance type="AmountDTO">
        <currency>EUR</currency>
        <fxAmount>920723</fxAmount>
    </runningBalance>
    <status>ACTIVE</status>
</deposits>
key type status comment
id string 1..1 уникальный идентификатор
accountNumber string 1..1 номер продукта в банке
currency string 1..1 текстовый код валюты по ISO 4217
productName string 1..1 название продукта
runningBalance AmountDTO 1..1 средства на продукте
feeds FeedDTO 0..1 элементы ленты событий, например графика платежей по кредиту или затраченные поездки на общественном транспорте
tags MarkerDTO 0..1 дополнительные поля
mainCardId string 0..1 основная карта, привязанная к счету
allCards CardDTO 0..1 список всех карт, привязанных к счету
hasRequisites bool 0..1 наличие реквизитов для отправки по смс или почте
openingDate Date ISO 8601 1..1 дата открытия
period int 1..1 период начисления процентов в месяцах
filterFormId string 0..1 id формы расширенного фильтра
customName string 0..1 пользовательское название продукта
depositInterestRate string 0..1 процентная ставка по вкладу, которая отображается в списке продуктов на главной странице приложения (только редизайн)
commonNotificationText string 1..1 текст уведомления баннера на вкладке “Общее”
commonNotificationStyle string 1..1 цвет фона баннера на вкладке “Общее”
commonNotificationIconLeftUrl string 1..1 ссылка на иконку слева баннера на вкладке “Общее”
commonNotificationIconRightUrl string 1..1 ссылка на иконку справа баннера на вкладке “Общее”
commonNotificationUrl string 1..1 ссылка для баннера на вкладке “Общее”, открывающаяся при нажатии на баннер (может содержать как внешние ссылки http:// так и внутренние в виде form://[form_id])
additionalNotificationText string 1..1 текст уведомления баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationStyle string 1..1 цвет фона баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationIconLeftUrl string 1..1 ссылка на иконку слева баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationIconRightUrl string 1..1 ссылка на иконку справа баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationUrl string 1..1 ссылка для баннера на всех вкладках, кроме вкладки “Общее”, открывающаяся при нажатии на баннер (может содержать как внешние ссылки http:// так и внутренние в виде form://[form_id])

deprecated:

fxInterestRate int 1..1
maturityDate int 0..1
contractNumber string 0..1
contractStatus string 0..1
initialAmount AmountDTO 0..1
accruedInterest AmountDTO 0..1
autoRenewal bool 0..1
capitalization bool 0..1
capitalizationTerm string 0..1
status string 0..1

DetailsSectionDTO

key type status comment
name string 0..1 название
fields DetailsFieldDTO 1..1 дополнительные поля

DeviceInfoDTO

iPhone

<deviceInfo>
    IP=10.7.17.104;
    OS=IOS;
    APP_VERSION=1.0.23;
    VENDOR_ID=EDC2C767-31DC-4095-82B1-71890EE2778B;
    LOCALE=ru-RU;
    OS_VERSION=10.3
</deviceInfo>

Android

<deviceInfo>
    IP=10.40.116.222;
    OS=ANDROID;
    APP_VERSION=3.1.943;
    VENDOR_ID=353490066235256;
    MAC=BE:BD:61:2B:F3:B9;
    LOCALE=RU;
    OS_VERSION=5.1.1
</deviceInfo>

Дополнительная информация о девайсе пользователя

key type status comment
IP string 1..1 IP адрес устройства в случае его доступности или 0.0.0.0
APP_VERSION string 1..1 версия приложения, например 1.2.3
OS string 1..1 операционная система { IOS, ANDROID }
VENDOR_ID string 1..1 уникальный идентификатор устройства
LOCALE string 0..1 локаль телефона
MAC string 0..1 приходит если доступно получение значения от устройства
EXTERNAL_IP string 0..1 IP адрес устройства в случае его доступности или 0.0.0.0
OS_VERSION string 0..1 версия операционной системы, например 1.2.3

Уточнение по получению данных параметров:

key ios android
VENDOR_ID identifierForVendor getDeviceId or ANDROID_ID
IP NSHost getInetAddresses
MAC 02:00:00:00:00:00 getHardwareAddress

FeedDTO

<feeds type="FeedDTO">
  <id>amount_id</id>
  <title>% по депозиту</title>
  <type>DEPOSIT_PRODUCT</type>
</feeds>

Список фидов не сортируется на мобильных клиентах, а отображается в том порядке, в котором приходит с сервера

key type status comment
title string 1..1 наименование фида
type FeedType 1..1 тип ячейки в ленте
transactional bool 1..1 признак того, что лента содержит транзакции
sortOrder int 0..1 порядок сортировки

FeedType

key comment
LOAN_PRODUCT график погашения кредита
DEPOSIT_PRODUCT график начисления процентов по депозиту
TRANSPORT_CARD транспортаня карта
CREDIT_PLAN рассрочка
ACTIONS действия
INFORMATION информация
ADDITIONAL дополнительный фид

FeedEventDTO

<feedEvents type="FeedEventDTO">
    <fields>
        <key>name</key>
        <value>Очередной платеж</value>
    </fields>
    <fields>
        <key>fxAmount</key>
        <value>10003401</value>
    </fields>
    <fields>
        <key>postDate</key>
        <value>1398470400000</value>
    </fields>
    <fields>
        <key>currency</key>
        <value>USD</value>
    </fields>
    <id>feed_event_id</id>
</feedEvents>

Элемент ленты

key type status comment
id string 1..1 идентификатор
fields FeedField 0..1 массив, содержащая расширяемый список параметров для конкретного события, мапится ключами на TransactionDTO

FeedField

key type status comment
key string 1..1 ключ
value string 1..1 значение

FilledFormDTO

Универсальный механизм используется и для многошаговой формы и для одношаговой с заполненными значениями с нуля

key type status comment
id string 1..1 идентификатор заполненной формы
formId string 1..1 идентификатор соответствующей формы
values FieldValueDTO 1..1 набор сохраненных значений полей в данной заполненной форме

FieldValueDTO

key type status comment
id string 1..1 идентификатор заполненного поля
formFieldId string 1..1 идентификатор соответствующего поля FormFieldDTO формы FormDTO
value string 1..1 сохраненное значение поля. Формат содержимого зависит от значения fieldClass соответствующего поля формы

FormDTO

<form type="FormDTO">
  <id>form_id</id>
  <beneficiaryId nil="true">
    <fields>
      #
      # fields
      #
    </fields>
    <fields>
      #
      # fields
      #
    </fields>
  <hasNext>true</hasNext>
  <logoResource>http://idamob.ru/ic.png</logoResource>
  <name>Form name</name>
  <position nil="true"/>
  <requiresCommission>false</requiresCommission>
  <type>PAYMENT</type>
  <formUrl>
    <openUrl>https://doc.idamob.ru</openUrl>
    <closeUrl>https://doc.idamob.ru/pro</closeUrl>
  </formUrl>
</form>
key type status comment
id string 1..1 идентификатор формы
name string 1..1 название формы
beneficiaryId string 0..1 идентификатор получателя, соответствующий форме
fields FormFieldDTO 1..1 список всех полей на форме
type FormType 1..1 тип формы для переходов или идентификатор (может быть не уникальный)
hasNext bool 1..1 признак наличия следующей формы. Если значение поля равно TRUE, то при заполнении данной формы клиент запросит с сервера следующую форму вместо запроса на осуществление платежа
requiresCommission bool 0..1 признак необходимости запроса комиссии с сервера с помощью метода requestCommission
logoResource LogoResource 0..1 url для доступа к логотипу
position FormPosition 0..1 расположение формы для ряда уникальных кейсов
showConfirmation bool 0..1 показ экрана подтверждения
formUrl FormURL 0..1 параметры webView
group string 0..1 группа
tags MarkerDTO 0..1 тэги
withoutContinue bool 0..1 без продолжения
style string 0..1 стиль
sortOrder int 0..1 порядок сортировки
continueLabel string 0..1 надпись на кнопке “Продолжить”
autoContinueAfter int 0..1 количество секунд, после которых будет нажата кнопка “Продолжить”
continueAction string 0..1 действие, выполняемое по нажатии на кнопку “Продолжить” (SUBMIT - отправка данных на сервер, CLOSE - закрытие формы)
extendedError bool 0..1 выводить расширенную ошибку
favoriteSection bool 0..1 отображать в разделе “Переводы” на экране “Добавить сервис”
favoriteSectionEnabled bool 0..1 признак отображения мини-раздела на главном экране
popularService bool 0..1 отображать в разделе “Популярные сервисы” на экране поиска
popularServiceOrder int 0..1 порядок сортировки в разделе “Популярные сервисы” на экране поиска
description string 0..1 краткое описание назначения формы
listDescription bool 0..1 признак отображения краткого описания формы
customButtons bool 0..1 признак наличия у формы кастомных кнопок
redirectUrl string 0..1 url, по которому надо перейти в случае отказа от операции (только для операций СБП)

FormType

key comment
id любое значение, может быть не уникальное, например TRANSFER, PAYMENT
TRANSFER_CURRENCY_EXCHANGE форма для обмена валют через раздел курсы банка
TRANSFER_BY_PHONE форма для раздела оплаты по номеру телефона (всегда HIDDEN), при ее наличии появляется раздел перевода по номеру телефона
TRANSFER_FROM_MENU форма отобразится в боковом меню
FILTER форма расширенного фильтра

FormPosition

key comment
HIDDEN форма не видна в списках, но на нее возможен переход через таргет продукта или пуш сообщения
PRODUCT_ORDER форма попадает в отдельный раздел бокового меню с поддержкой расширенного вида строки из LogoResource

FormURL

key status comment
openUrl 1..1 Url, который требуется открыть на клиенте
closeUrl 0..1 Url финальной страницы

FormFieldDTO

<fields type="FormFieldDTO">
  <id>field_id</id>
  <comboBoxValues>
    <id>val_1_id</id>
    <name>product_1</name>
    <order>1</order>
    <value>40817810200005239000</value>
  </comboBoxValues>
  <comboBoxValues>
    <id>val_2_id</id>
    <name>product_2</name>
    <order>2</order>
    <value>40817810500005239001</value>
  </comboBoxValues>
  <defaultValue nil="true" />
  <errorMessage nil="true" />
  <fieldClass>SOURCE_ACCOUNT</fieldClass>
  <formOrder>1</formOrder>
  <groupName nil="true" />
  <hint nil="true" />
  <mandatory>true</mandatory>
  <maxLimit nil="true" />
  <minLimit nil="true" />
  <name>Счет списания</name>
  <readOnly>false</readOnly>
  <regExp nil="true" />
  <horizontalView>false</horizontalView>
  <visible>true</visible>
</fields>
<fields type="FormFieldDTO">
  <id>field_id</id>
  <defaultValue nil="true" />
  <errorMessage nil="true" />
  <fieldClass>AMOUNT</fieldClass>
  <formOrder>1</formOrder>
  <groupName nil="true" />
  <hint nil="true" />
  <mandatory>true</mandatory>
  <maxLimit>922337203685477</maxLimit>
  <minLimit>0</minLimit>
  <name>Сумма списания</name>
  <readOnly>false</readOnly>
  <regExp nil="true" />
</fields>
key type status comment
id string 1..1 идентификатор поля
fieldClass FieldClass 1..1 тип поля формы, определяющий формат данных
mandatory bool 1..1 обязательность поле формы
formOrder int 1..1 порядковый номер поля в форме
name string 1..1 название поля
minLimit int 0..1 в зависимости от типа поля это ограничения на значение поля формы
maxLimit int 0..1 в зависимости от типа поля это ограничения на значение поля формы
regExp string 0..1 регулярное выражение, которому должно соответствовать значение поля и в случае несоответствия показывается errorMessage
defaultValue string 0..1 значение поля по умолчанию
errorMessage string 0..1 сообщение в случае, если значение поля формы не проходит валидацию
hint string 0..1 отображаемая подсказка к полю
placeholder string 0..1 отображаемое внутри поля
comboBoxValues ComboBoxValueDTO 0..1 список значений
readOnly bool 0..1 признак редактируемости
mask string 0..1 маска вида *** **-** применимо для полей класса NUMERIC, SINGLE_LINE_TEXT, позволяет вводить символы только в области *
additionalFields MarkerDTO 0..1 список маркеров
customAction string 0..1 кастомное действие CustomAction для элемента формы
horizontalView bool 0..1 признак горизонтального расположения дочерних элементов поля
visible bool 0..1 признак видимости поля
searchEnabled bool 0..1 признак наличия у списка строки поиска. Применимо для полей класса ACTION_LIST
basicFilter bool 0..1 признак того, что поле также является
dropDownList bool 0..1 признак того, что список является выпадающим. Применимо для полей класса ACTION_LIST
copyValueAllowed bool 0..1 признак наличия у поля кнопки копирования значения поля

FieldClass

key type comment
SOURCE_ACCOUNT string список идентификаторов продуктов в виде ComboBoxValueDTO выбора 1..*
TARGET_ACCOUNT string список идентификаторов продуктов в виде ComboBoxValueDTO выбора 1..*
SINGLE_LINE_TEXT string однострочный текст
MULTI_LINE_TEXT string многострочный текст
CHECK_BOX bool чекбокс {true, false} (поддерживает в name ссылку в формате <a href="http://www.idamob.ru">iDa Mobile</a>)
PASSWORD string однострочный текст маскированный при вводе
MONTH_YEAR string UNIXTIME в милисекундах
DATE int UNIXTIME в милисекундах (например 1394582400000)
COMBO_BOX string список строк для comboBoxValues выбора 1..*
AMOUNT int ddddd (умноженное на 100) с валютой и проверкой на остаток средств из SOURCE_ACCOUNT
MONEY int ddddd (умноженное на 100) с валютой из SOURCE_ACCOUNT
PHONE int номер телефона (например 71231231212)
PRINTED_TEXT string текст пояснение без возможности редактирования пользователем
PHOTO_CARD string ввода номера карты с элементом фотографирования карты библиотекой card.io и маской **** **** **** ****, так же в дополнение для поля используется проверка алгоритмом Луна
PHOTO_QRCODE string информация, зашифрованную в QR-коде
IMAGE LogoResource картинка
HIDDEN string скрытое поле для технического применения
NUMERIC int чесло без дроби (например 13945824)
DECIMAL string число с любой дробной частью (например 1382432.93342)
DYNAMIC string поле при вводе 2х символов делает запрос getDynamicFieldValues и в случае признака необходимости обновления текущей формы делает запрос getCurrentForm
QRCODE_GENERATOR string поле сенерирует QR-коде из значения value
STORED_FILE base64 string файл, хранимый в Resource Server
SWITCH bool двухпозиционный переключатель (тумблер)
RADIO_BUTTON string радио-кнопка, работающая по принципу COMBO_BOX
TRACK_BAR int ползунок, позволяющий выбрать значение из диапазона minLimit и maxLimit
CARD_VIEW string представление карты для отображения на форме
PIN_CODE string компонент для ввода цифрового пин-кода
LIST_BOX string открытый список, работающий по принципу COMBO_BOX
SEARCH_BOX string список, фильтрующийся по мере ввода текста пользователем
ACTION_BUTTON string кнопка, позволяющая осуществить переход по какой то URL или к заданной форме
FILE string компонент для асинхронной загрузки пользовательского файла
DOCUMENT_FILE string компонент для асинхронной загрузки пользовательского файла, а так же автоматизированного распознавания полей документа (паспорт, снилс) с использованием библиотеки SmartEngines
SOURCE_CARD string компонент для ввода источника - номера карты или выбора своей карты
TARGET_CARD string компонент для ввода получателя - номера карты или выбора своей карты
CREDIT_HEADER string представление кредита для отображения на форме
DIAGRAM string горизонтальная диаграмма - несколько наложенных друг на друга шкал (максимум 4 штуки)
INFO_PANEL string компонент панели, на которой выводятся показатели в виде ключ (слева) — значение (справа). Содержимое панели можно свернуть (по умолчанию — блок свернут)
TABLE_VIEW string компонент для представления данных в табличном виде
BUTTON string компонент кнопки
ACTION_LIST string список, в котором при нажатии на каждый элемент осуществляется переход на следующую или заданную форму
FILTER_CHIPS_GROUP string компонент группы чипов на форме расширенного фильтра
FILTER_AMOUNT_GROUP string компонент группы полей сумм на форме расширенного фильтра
FILTER_PERIOD_GROUP string компонент группы полей периода фильрации на форме расширенного фильтра
BUTTON string компонент кнопки
LABEL_BUTTON string компонент кнопки в виде простого лейбла
PAGER string компонент с постраничной выдачей информации с переключателем

CustomAction

key type comment
SUBMIT string отправка данных на сервер
CLOSE string закрытие формы
MAIN_SCREEN string переход на главный экран приложения
PUSH_NOTIFICATION_TRIGGER string включение/отключение подписки на push-уведомления
SBP_LINK string передача tokenIntent на сервер банка (функционал СБП)
DELETE_TSP string отключение счета от оплаты по требованию ТСП
SEND_LOCATION string передача местоположения на сервер банка

LoanDTO

key type status comment
id string 1..1 идентификатор продукта
accountNumber string 1..1 номер продукта в банке
currency string 1..1 текстовый код валюты по ISO 4217
productName string 1..1 название продукта
remainderAmount AmountDTO 1..1 остаток задолженности по кредиту
initialAmount AmountDTO 0..1 первоначальная сумма кредита
feeds FeedDTO 0..1 элементы ленты событий, например графика платежей по кредиту или затраченные поездки на общественном транспорте
tags MarkerDTO 0..1 дополнительные поля
mainCardId string 0..1 основная карта, привязанная к счету
allCards CardDTO 0..1 список всех карт, привязанных к счету
hasRequisites bool 0..1 наличие реквизитов для отправки по смс или почте
filterFormId string 0..1 id формы расширенного фильтра
hasLoanRepaymentSchedule bool 0..1 признак отображения графика погашения кредита
loanRepaymentSchedulePercent int 0..1 процент заполнения графика погашения кредита
customName string 0..1 пользовательское название продукта
commonNotificationText string 1..1 текст уведомления баннера на вкладке “Общее”
commonNotificationStyle string 1..1 цвет фона баннера на вкладке “Общее”
commonNotificationIconLeftUrl string 1..1 ссылка на иконку слева баннера на вкладке “Общее”
commonNotificationIconRightUrl string 1..1 ссылка на иконку справа баннера на вкладке “Общее”
commonNotificationUrl string 1..1 ссылка для баннера на вкладке “Общее”, открывающаяся при нажатии на баннер (может содержать как внешние ссылки http:// так и внутренние в виде form://[form_id])
additionalNotificationText string 1..1 текст уведомления баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationStyle string 1..1 цвет фона баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationIconLeftUrl string 1..1 ссылка на иконку слева баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationIconRightUrl string 1..1 ссылка на иконку справа баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationUrl string 1..1 ссылка для баннера на всех вкладках, кроме вкладки “Общее”, открывающаяся при нажатии на баннер (может содержать как внешние ссылки http:// так и внутренние в виде form://[form_id])

deprecated:

openingDate Date ISO 8601 0..1
contractNumber string 0..1
contractStatus string 0..1
penaltyAmount AmountDTO 0..1
nextPaymentAmount AmountDTO 0..1
advancedRepaymentMoratorium int 0..1
accruedInterest AmountDTO 0..1
overallArrearsAmount AmountDTO 0..1
status string 0..1
fxRemainderAmount int 1..1

LogoResource

URL для доступа к логотипу распознает параметр для удобства расположения на сервере и оптимизации размеров - http://…/${image.type}/name.png и будет автоматически в зависимости от платформы подменять его на ios-small или android-small

size .type comment
64х64 small картинка для списка форм
90х60 small картинка логотипа карты (VISA, MasterCard…) отображаемая на карте и в списке продуктов
640х380 big картинка фона пластиковой карты
640х320 big картинка баннера в форме
640х320 small картинка баннера в новостях
640х128 big картинка фона формы (используется в SPECIAL_ORDERS) для большей наглядности
comment size url
proxy response http://static.idamob.ru/pro/cards/${image.type}/ic_visa.png
iPhone convert 90х60 http://static.idamob.ru/pro/cards/ios-small/ic_visa.png
640х380 http://static.idamob.ru/pro/cards/ios-big/ic_visa.png
Android convert 90х60 http://static.idamob.ru/pro/cards/android-small/ic_visa.png
640х380 http://static.idamob.ru/pro/cards/android-big/ic_visa.png

MarkerDTO

key type status comment
key string 1..1 идентификатор маркера
value string 0..1 информация, привязанная к маркеру
sortOrder int 0..1 порядок сортировки
type string 1..1 тип
group string 0..1 группа
logoResource LogoResource 0..1 url для доступа к логотипу
favoriteSectionEnabled bool 0..1 признак отображения мини-раздела на главном экране
favoriteSectionGroup string 0..1 группа для мини-раздела
label string 0..1 название кнопки для элементов с type ACTION, ACTION_BUTTON
periodStartDate Date ISO 8601 0..1 дата начала периода аналитики
periodEndDate Date ISO 8601 0..1 дата окончания периода аналитики

BankClientDTO support MarkerDTO:

<tags type="MarkerDTO">
  <key>FINANCIAL_REPORTS</key>
  <value>Financial reports</value>
</tags>
key type comment
SPECIAL_ORDERS string наличие раздела в боковом меню с именем String, в который собираются формы с признаком PRODUCT_ORDER
FINANCIAL_REPORTS string наличие в меню раздела финансовой аналитики, запрос на аналитику идет через getTransactionsByDateRange с полем id продукта FINANCIAL_REPORTS
PERSONAL_NEWS string наличие в меню раздела персональных новостей или уведомлений о событиях
QR_CODE_SCANNER_FORM_ID string id формы сканирования QR кодов, отвечает за наличие в платежном разделе иконки быстрого перехода на форму сканирования QR кодов
IS_MERGE_PROFILE_AVAILABLE bool активизирует кликабельность зоны с ФИО пользователя и открывает форму редактирования данных клиента
AUTO_PAYMENTS string наличие функционала “Автоплатежи”
ADD_ACCOUNT_TO_SBPAY_FORM_ID string id формы привязки счета к СБПэй
READ_ONLY string id формы настройки доступа клиента
DISPLAY_EXCHANGE_RATES bool отображение курсов валют на главной странице (только в версии с редизайном)
CURRENCY_RATES_EXCHANGE string группа для форм курсов обмена валют (только для функционала обмена валют)
CURRENCY_RATE_TEMPLATE_SAVE string наличие функции “Сохранить как шаблон” на форме обмена валюты (только для функционала обмена валют)
CURRENCY_RATE_NO_ACCOUNTS_MSG string сообщение, которое отображается пользователю при отсутствии счетов в выбранной валюте (только для функционала обмена валют)
IS_CHAT_EDNA_AVAILABLE bool наличие иконки чата Edna в нижнем баре после авторизации
CURRENCY_RATE_FROM_MENU string отображения пункта “Обмен валюты” в боеовом меню приложения (только для функционала обмена валют, только для старого дизайна приложения)
APP_UPDATE_ANDROID_VERSION string версия обновления для Android
APP_UPDATE_IOS_VERSION string версия обновления для iOS
APP_UPDATE_TYPE string режим обновления приложения. Возможные значения: SOFT, HARD, null (пусто)
APP_UPDATE_MESSAGE string текст сообщения об обновлении приложения
FAVORITE_SECTION_ADDITIONAL string группа для блока “Дополнительные опции” на экране настройки мини разделов “Добавить сервис” (только в версии с редизайном)
FAVORITE_SECTION_TRANSFER_OTHER_BANK string группа для раздела “Перевод в другой банк” блока “Переводы” на экране настройки мини разделов “Добавить сервис” (только в версии с редизайном)
FAVORITE_SECTION_POINTS string группа для раздела “Использовать баллы” блока “Дополнительные опции” на экране настройки мини разделов “Добавить сервис” (только в версии с редизайном)
SETTINGS_ADVANCED string группа для блока “Дополнительные опции” на экране “Настройки” (только в версии с редизайном)
SETTINGS_SYSTEM string группа для блока “Системные настройки” на экране “Настройки” (только в версии с редизайном)
SERVICES string группа для блока “Сервисы” на главном экране приожения (только в версии с редизайном)
PAYMENTS_PAY string группа для блока “Оплатить” на экране “Платежи” (только в версии с редизайном)
PAYMENTS_TRANSFER string группа для блока “Перевести” на экране “Платежи” (только в версии с редизайном)
CONTACT_WITH_BANK string группа для раздела “Связь с банком” блока “Сервисы” на главном экране приложения (только в версии с редизайном)
INVESTMENTS.SHOW bool наличие раздела “Инвестиции”
INVESTMENTS.LOGO_URL string URL иконки для кнопки “Инвестиции” на главной странице приложения (только редизайн)
ANALYTICS.MAX_PERIOD int максимальный период построения аналитики для круговой диаграммы, в месяцах
ANALYTICS.SHOW_WIDGET bool настройка отображения виджета аналитики на главной странице приложения
ANALYTICS.ACCOUNT_AVAILABLE bool настройка доступности функционала аналитики для счетов
ANALYTICS.CARD_ANALYTICS4CARD_ACCOUNT bool настройка отображения аналитики по карте для карточного счета
ANALYTICS.SETTINGS_AVAILABLE bool отображение настроек аналитики на экране “Настройки”

AccountDTO, CardDTO, DepositDTO, LoanDTO support MarkerDTO:

<tags type="MarkerDTO">
  <key>BUTTON_1_TEXT</key>
  <value>Payments</value>
</tags>
<tags type="MarkerDTO">
  <key>BUTTON_1_TARGET</key>
  <value>payment_short</value>
</tags>
<tags type="MarkerDTO">
  <key>BUTTON_2_TEXT</key>
  <value>Transfer by phone</value>
</tags>
<tags type="MarkerDTO">
  <key>BUTTON_2_TARGET</key>
  <value>form</value>
</tags>
key type status comment
BUTTON_1_TEXT string 1..1 текст подсказки на кнопке
BUTTON_1_TARGET TargetType 1..1 переход по нажатию кнопки
ANALYTICS string 0..1 наличие на продукте кнопки перехода на экран аналитики

TargetType

key comment
payment_full раздел платежей полностью
payment_short платежный раздел короткий
form открытие формы

MerchantDTO

key type status comment
logoURL string 0..1 ссылка на логотип продавца
name string 0..1 наименование продавца

MultiCurrencyAccountsDTO

<multiCurrencyAccounts type="MultiCurrencyCurrentAccountDTO">
   <id>multiCurrencyAccount_id</id>
   <accountNumber>73732929394</accountNumber>
   <additionalNotificationIconLeftUrl>https://img.icons8.com/ios/50/000000/bank-building.png</additionalNotificationIconLeftUrl>
   <additionalNotificationIconRightUrl>https://img.icons8.com/ios/50/000000/bank-building.png</additionalNotificationIconRightUrl>
   <additionalNotificationStyle>#03AC13</additionalNotificationStyle>
   <additionalNotificationText>Текст для баннера</additionalNotificationText>
   <additionalNotificationUrl>https://idamob.ru</additionalNotificationUrl>
   <commonNotificationIconLeftUrl>https://img.icons8.com/ios/50/000000/bank-building.png</commonNotificationIconLeftUrl>
   <commonNotificationIconRightUrl>https://img.icons8.com/ios/50/000000/bank-building.png</commonNotificationIconRightUrl>
   <commonNotificationStyle>#98BF64</commonNotificationStyle>
   <commonNotificationText>Только сегодня! Очередное разводилово!</commonNotificationText>
   <commonNotificationUrl>https://idamob.ru</commonNotificationUrl>
   <currency>RUB</currency>
   <fxConsolidateBalance>100000</fxConsolidateBalance>
   <openingDate>2014-09-23T00:00:00.000+03:00</openingDate>
   <productName>Multi currency account</productName>
   <subAccounts type="CurrentAccountDTO">
      <id>subAccounts_id</id>
      <accountNumber>324234234234</accountNumber>
      <currency>RUB</currency>
      <productName>MultiCurrency-RUB</productName>
      <runningBalance type="AmountDTO">
         <currency>RUB</currency>
         <fxAmount>34567</fxAmount>
      </runningBalance>
   </subAccounts>
   <subAccounts type="CurrentAccountDTO">
      <id>subAccounts_id</id>
      <accountNumber>345435345435</accountNumber>
      <currency>USD</currency>
      <productName>MultiCurrency-USD</productName>
      <runningBalance type="AmountDTO">
         <currency>USD</currency>
         <fxAmount>11432</fxAmount>
      </runningBalance>
   </subAccounts>
</multiCurrencyAccounts>
key type status comment
id string 1..1 уникальный идентификатор
accountNumber string 1..1 номер продукта в банке
currency string 1..1 текстовый код валюты по ISO 4217
productName string 1..1 название продукта
subAccounts CurrentAccountDTO 0..1 набор подсчетов в разных валютах
fxConsolidateBalance int 0..1 средства на продукте
feeds FeedDTO 0..1 элементы ленты событий, например графика платежей по кредиту или затраченные поездки на общественном транспорте
tags MarkerDTO 0..1 дополнительные поля
mainCardId string 0..1 основная карта, привязанная к счету
allCards CardDTO 0..1 список всех карт, привязанных к счету
hasRequisites bool 0..1 наличие реквизитов для отправки по смс или почте
commonNotificationText string 1..1 текст уведомления баннера на вкладке “Общее”
commonNotificationStyle string 1..1 цвет фона баннера на вкладке “Общее”
commonNotificationIconLeftUrl string 1..1 ссылка на иконку слева баннера на вкладке “Общее”
commonNotificationIconRightUrl string 1..1 ссылка на иконку справа баннера на вкладке “Общее”
commonNotificationUrl string 1..1 ссылка для баннера на вкладке “Общее”, открывающаяся при нажатии на баннер (может содержать как внешние ссылки http:// так и внутренние в виде form://[form_id])
additionalNotificationText string 1..1 текст уведомления баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationStyle string 1..1 цвет фона баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationIconLeftUrl string 1..1 ссылка на иконку слева баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationIconRightUrl string 1..1 ссылка на иконку справа баннера на всех вкладках, кроме вкладки “Общее”
additionalNotificationUrl string 1..1 ссылка для баннера на всех вкладках, кроме вкладки “Общее”, открывающаяся при нажатии на баннер (может содержать как внешние ссылки http:// так и внутренние в виде form://[form_id])

deprecated:

openingDate Date ISO 8601 0..1
contractNumber string 0..1
contractStatus string 0..1
status string 0..1

PersonalNewsActionDTO

key type status comment
code string 1..1 код действия
place string 1..1 место размещения
url string 0..1 ссылка, которая должна быть открыта при выборе данного действия

PersonalNewsDTO

<details>
   <entry>
     <key>logo_url</key>
     <value>http://www.idamob.ru/ic.png</value>
   </entry>
   <entry>
     <key>push_description</key>
     <value>Текстовый блок с некоторым описанием</value>
   </entry>
   <entry>
     <key>name</key>
     <value>Заголовок сообщения</value>
   </entry>
   <entry>
     <key>currency</key>
     <value>100000000</value>
   </entry>
   <entry>
     <key>fxAmount</key>
     <value>RUR</value>
   </entry>
   <entry>
     <key>Период</key>
     <value>3 года</value>
   </entry>
   <entry>
     <key>Процент</key>
     <value>3%</value>
   </entry>
</details>
key type status comment
entityId string 1..1 уникальный идентификатор новости
title string 1..1 заголовок новости
creationDate Date ISO 8601 1..1 дата публикации новости
preview string 0..1 укороченная версия новости
isRead bool 0..1 признак прочитанности
url string 0..1 ссылка на новость в интернет
details string 0..1 тело сообщения после открытия, функционал аналогичен ключами и структурой pushDetails
type string 0..1 тип (принимает знаечние null или MARKETING)
place string 0..1 место размещения маркетингового сообщения
contentType string 0..1 тип контента (TEXT или IMAGE)
content string 0..1 контент (либо текст для отображения, либо ссылка на картинку)
sortOrder int 0..1 порядок отображения
bgColor string 0..1 цвет фона
textColor string 0..1 цвет текста
actions PersonalNewsActionDTO 0..1 список действий
logoLeftUrl string 0..1 ссылка на иконку в левой части баннера (квадратная иконка 128x128)
logoRightUrl string 0..1 ссылка на иконку в правой части баннера (квадратная иконка 128x128)
closeable bool 0..1 признак наличия закрывающего крестика на баннере (работает только для новых баннеров)

QuestionDTO

key type status comment
id string 1..1 уникальный идентификатор
text string 1..1 текст вопроса
answers AnswerDTO 1..1 ответы на вопрос
canHide bool 0..1 возможность свернуть вопрос
title string 0..1 заголовок

TagDTO

key type status comment
key string 1..1 ключ
value string 1..1 значение

TemplateDTO

<templates type="TemplateDTO">
  <id>template</id>
  <filledForm type="FilledFormDTO">
    <id>filled_form_1</id>
    <formId>form_1</formId>
    <values type="FieldValueDTO">
      <id>form_1_2_val</id>
      <formFieldId>form_1_2</formFieldId>
      <value>1000000</value>
    </values>
  </filledForm>
  <form type="FormDTO">
    <id>form_1</id>
    <fields type="FormFieldDTO">
      <id>form_1_2</id>
      <fieldClass>MONEY</fieldClass>
      <formOrder>2</formOrder>
      <name>Amount</name>
    </fields>
    <hasNext>false</hasNext>
    <name>Transfer</name>
    <requiresCommission>false</requiresCommission>
    <showConfirmation>false</showConfirmation>
    <type>TRANSFER</type>
  </form>
  <logoResource nil="true"/>
  <name>To Credit</name>
</templates>
key type status comment
id string 1..1 идентификатор шаблона
name string 1..1 название шаблона
form FormDTO 1..1 соответствующая шаблону форма
filledForm FilledFormDTO 1..1 заполненные поля формы
logoResource LogoResource 0..1 url для доступа к логотипу
favoriteSectionEnabled bool 0..1 признак отображения мини-раздела на экране переводов и платежей

TransactionDTO

<transactions type="TransactionDTO">
    <id>f0dd6cd9-6b38-4a3c-b7b7-9826d3fe4f79</id>
    <authorization>false</authorization>
    <billingAmount type="AmountDTO">
        <currency>RUB</currency>
        <fxAmount>-84900</fxAmount>
    </billingAmount>
    <name>Оплата BEELINE для телефона +7(910)123-45-67</name>
    <description>BEELINE SOTOVAYA SVYAZ MOSKVA</description>
    <filledFormId>filled_form_id</filledFormId>
    <executionDate>2015-05-25T21:13:08.000+03:00</executionDate>
    <postDate>2015-05-25T21:13:08.000+03:00</postDate>
    <status>ACCEPTED</status>
    <sic>4814</sic>
    <tags nil="true"/>
    <transactionAmount type="AmountDTO">
        <currency>RUB</currency>
        <fxAmount>-84000</fxAmount>
    </transactionAmount>
</transactions>
key type status comment
id string 1..1 идентификатор операции
name string 0..1 наименование операции
transactionAmount AmountDTO 1..1 сумма в валюте операции
billingAmount AmountDTO 1..1 сумма в валюте счета
postDate Date ISO 8601 1..1 дата создания заявки на проведение операции
executionDate Date ISO 8601 0..1 дата исполнения операции
description string 1..1 детали операции
status TransactionStatus 1..1 текущий статус транзакции
isOutgoing bool 0..1 операция переводит деньги СО счета
filledFormId string 0..1 идентификатор соответствующей заполненной формы возвращаемый на запрос getPaymentForm
tags MarkerDTO 0..1 дополнительные поля
isAuthorization bool 1..1 операция авторизации
cardId string 0..1 ID карты, с которой связана данная транзакция
sic int 0..1 mcc код из процессинга для SmartTransaction
bonusPointsAmount AmountDTO 0..1 сумма бонусов
usedBonusPointsAmount AmountDTO 0..1 сумма использованных бонусов
creditPlans CreditPlanDTO 0..1 список платежей по кредиту
creditPlansFormId string 0..1 идентификатор соответствующей оформлению кредита заполненной формы возвращаемый на запрос getPaymentForm
transactionCurrency string 0..1 валюта операции
merchant MerchantDTO 0..1 продавец
category CategoryDTO 0..1 категория оплаченного товара
needLoadCreditPlans bool 0..1 необходимость в отдельной загрузке графика платежа(для функционала рассрочки)
receiptUrl string 0..1 URL для загрузки чека по операции
installmentStatus string 0..1 статус рассрочки по транзакции
place string 0..1 местоположение продавца
debitTransactionsAmount AmountDTO 0..1 сумма расходных операций за день
autoPaymentFormId string 0..1 идентификатор соответствующей созданию автоплатежа заполненной формы возвращаемый на запрос getPaymentForm
cashbackAmount AmountDTO 0..1 сумма кэшбэка

TransactionStatus

key comment
POSTED нет
ACCEPTED серый
HOLD желтый
REJECTED красный
COMPLETE зеленый

System requirements

Hardware

CPU 4 core x 2200 Mhz x64
RAM 8 Gb
HDD 120 Gb

Software

OS Linux or Windows based (Ubuntu 15 is recomended)
JVM Oracle Java 7 or higher
RDBMS PostgreSQL 9.3 or higher
Servlet container Apache Tomcat 7

FAQ

Pro Install

Порядок установки серверной части iDa Mobile

Общие шаги

  1. Произвести установку СУБД PostgresSQL
  2. При помощи утилиты pgAdmin (обычно входит в дистрибутив PostgreSQL) подключиться к СУБД
  3. Создать новую роль (пользователя)
  4. Создать новую БД с указанием созданной в п.3 роли в качестве владельца создаваемой БД
  5. В созданной БД добавить схемы с названиями: lightschema, proschema
  6. Установить Apache Tomcat
  7. При желании - настроить работу Apache Tomcat с протоколом SSL (можно выполнить позднее)
  8. Открыть файл .war при помощи ZIP-архиватора и перейти в подпапку “.war\WEB-INF\classes\META-INF”
  9. Открыть файл persistence.xml и внести соответствующие правки, необходимые для подключения к БД (параметры: hibernate.connection.url, hibernate.connection.username, hibernate.connection.password).
  10. Заменить в *.war файле persistence.xml на тот, который был отредактирован в п.3
  11. Запустить Apache Tomcat (в случае с linux - ./tomcat/bin/startup.sh, в случае с windows вомпользоваться специальной системной службой)

Установка iDa Pro

  1. В подпапке pro.war\WEB-INF\classes\config открыть конфигурационный файл банка (Например, bank.properties) и проверить корректность значений параметров proxy.wsdl, proxy.service, proxy.endpoint а так же проверить доступность значения параметра proxy.wsdl с машины, на которой будет запущен iDa Pro. В случае внесения изменений в файл *.properties - сохранить новую версию этого файла в pro.war
  2. Скопировать файл pro.war в папку /tomcat/webapps и дождаться пока будет автоматически создана подпапка /Pro
  3. Открыть через pgAdmin требуемую БД и проверить, что в схеме proschema добавились таблицы
  4. Проверить работоспособность приложения с помощью настроенного мобильного клиента

Порядок обновления серверной части iDa Mobile (*.war)

  1. Получить новую сборку в виде файла *.war
  2. Открыть файл .war при помощи ZIP-архиватора и перейти в подпапку “.war\WEB-INF\classes\META-INF”
  3. Открыть файл persistence.xml и внести соответствующие правки, необходимые для подключения к БД (параметры: hibernate.connection.url, hibernate.connection.username, hibernate.connection.password).
  4. Заменить в *.war файле persistence.xml на тот, который был отредактирован в п.3
  5. Убедится, что серверй приложений Tomcat запущен (в linux - ps -ef|grep tomcat</code>). Если не запущен - запустить его (в linux - ./tomcat/bin/startup.sh).
  6. Перейти в папку tomcat/webapps
  7. В случае наличия в ней старой версии iDa - удалить файл *.war и дождаться пока папка обновляемого приложения удалится автоматически (~ 15 секунд)
  8. Скопировать в папку /tomcat/webapps/ полученный в п.4 файл *.war
  9. Дождаться пока в папке /tomcat/webapps появится папка с наименованием приложения (~ 15 секунд)
  10. Осуществить проверку работы приложения при помощи настроенного мобильного клиента

Пример wsdl

pro - IdaMobProxyServiceFacade?wsdl

Версия сервера

pro - version/getVersion

Multi-server

Рекомендация по развертыванию нескольких серверов на одной машине

  1. Повторно выполнить шаги 3, 4, 5 из раздела ‘Порядок установки серверной части iDa Mobile’ для создания ещё одной копии схемы БД
  2. В Apache TomCat задеплоить копии pro.war и light.war предварительно переименовав их, например в pro_new.war и light_new.war
  3. Установить фронт-серверное приложение, например, nginx или Apache HTTPD
  4. Настроить дополнительный домен, например, если у вас используется домен ida.mybank.com для мобильных приложений, то нужно создать домен ida_new.mybank.com, который так-же будет ссылаться на IP настраиваемого сервера
  5. Произвести настройку фронт-сервера таким образом, что бы траффик для домена ida.mybank.com перенаправлялся на localhost:8080/pro (8080 - порт TomCat по умолчанию), а траффик ida_new.mybank.com направлялся на localhost:8080/pro_new. Пример подобной настройки nginx

Server config

smarttransactions.enabled=false
proxy.timeout=60000
proxy.login.case.insensitive=true

proxy.wsdl=http://dev.idamob.ru/proxy/services/IdaMobProxyServiceFacade?wsdl
proxy.service=IdaProServiceFacade
proxy.endpoint=BasicHttpBinding_IdaMobProxyServiceFacadePortType

security.password.hash=false
security.password.encrypt=false
security.verification.encrypt=false

pro.banner.enabled=false

pigeon.enabled=false
pigeon.url=http://dev.idamob.ru/pigeon
pigeon.twoFactorAuth=false

Конфиг сервера

Все настройки сервиса задаются через файл конфигурирования, который расположен по адресу pro.war\WEB-INF\classes\config\bank.properties путём добавления следующих параметров:

key type comment
smarttransactions.enabled bool наличие модуля SmartTransactions
proxy.timeout int время ожидания отвера сервера из бэка, в милесекундах (должно быть так же установлено в мобильной апликации)
proxy.login.case.insensitive bool признак чуствительности к регистру для логина
-
proxy.wsdl string ${bank.proxy.wsdl}
proxy.service string IdaMobProxyServiceFacade
proxy.endpoint string IdaMobProxyServiceFacadeHttpSoap12Endpoint
-
security.password.hash bool наличие запроса хэш пароля и алгоритм как он был получен requestHashedPassword. на сервере pro происходит проверка совпадают ли хеши полученные с клиента и с сервера банка
security.password.encrypt bool расшифровывать пароль, зашифрованный на мобильном криенте
security.verification.encrypt bool расшифровывать код из запроса confirmTransfer, зашифрованный на мобильном криенте
security.incorrect_login_attempts int количество неверных попыток ввода ПИН кода
-
pigeon.url string сервер пушей http://dev.idamob.ru/pigeon
pigeon.enabled bool наличие связки с сервером пуш сообщений PiGeon
pigeon.twoFactorAuth bool наличие процесса двухфакторной аутентификации при подписке пользователя на пуш уведомления
pigeon.repeatSubscriptionAfter int повторить запрос регистрации при отказе (дни)
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
             xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

    <persistence-unit name="jpaUnit" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>

        <class>com.idamobile.platform.pro.model.Session</class>
        <class>com.idamobile.platform.pro.model.SecretKey</class>
        <class>com.idamobile.platform.pro.model.PinCode</class>
        <class>com.idamobile.platform.pro.model.User</class>
        <class>com.idamobile.platform.pro.model.IncorrectLoginAttempt</class>
        <class>com.idamobile.platform.pro.model.DeviceVerificationCode</class>
        <class>com.idamobile.platform.pro.model.DeviceVerificationCodeSalt</class>

        <!--POSTGRESQL-->
        <properties>
            <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
            <property name="hibernate.connection.url" value="jdbc:postgresql://127.0.0.1/proproxytestbase" />
            <property name="hibernate.connection.username" value="username" />
            <property name="hibernate.connection.password" value="password" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL82Dialect" />
            <property name="hibernate.hbm2ddl.auto" value="update"/>
            <property name="hibernate.show_sql" value="false"/>
        </properties>
    </persistence-unit>
</persistence>

Конфиг базы

Все настройки базы задаются через файл конфигурирования, который расположен по адресу pro.war/WEB-INF/classes/META-INF/persistence.xml путём добавления следующих параметров:

key type comment
hibernate.connection.url string адрес расположения базы банных
hibernate.connection.username string логин к базе
hibernate.connection.password string пароль к базе

Удаление сессий пользователя

В случае если у пользователя сменился логин, но не поменялся bankClientId, вход под новым логином будет невозможен. Для того что бы очистить данные по старому логну LOGIN нужно выполнить скрипт в proschema:

select id from proschema.bank_user usr where usr.login = 'LOGIN'
от результата этого запроса подставьте вместо #ID# нижеследующих запросах
delete from proschema.secret_key sc where sc.session_id in (select id from proschema.user_session ses where ses.user_id = '#ID#')
delete from proschema.user_session ses where ses.user_id = '#ID#'
delete from proschema.device_verification_code dvc where dvc.user_id = '#ID#'
delete from proschema.device_verification_code_salt dvc where dvc.user_id = '#ID#'
delete from proschema.bank_user usr where usr.id = '#ID#'