IframeШаг 1 из 2
Настройте frontend
Встройте виджет на свою страницу, покажите селектор банков и слушайте сообщения iframe.
Виджет — это iframe, который загружается через https://widget.wealthreader.com/js/load.js. На этой странице только frontend. Callback и банковские данные настраиваются в разделе backend.
Домен, с которого отдаётся эта страница, должен быть авторизован в кабинете клиента до открытия виджета. Иначе виджет сообщит, что домен не авторизован.
Чек-лист интеграции
0 из 3Минимальный код
Генерируйте новый operation_id для каждой операции. Оставьте entities_to_display пустым, чтобы показать все учреждения вашего api_key. Держите wait_full_response равным true, если техническая команда не укажет иное.
<script>
const wr_conf = {
operation_id: crypto.randomUUID(),
entities_to_display: [],
wait_full_response: true
};
window.addEventListener("message", (event) => {
if (event.origin !== "https://widget.wealthreader.com") {
return;
}
if (event.data === "flow completed") {
// The backend callback has already been sent successfully.
// Close the selector or redirect to the success screen.
return;
}
if (typeof event.data !== "string") {
return;
}
try {
const message = JSON.parse(event.data);
if (message.error) {
console.log(message.error.code, message.error.message);
// OTP, wrong login, callback down, etc.
}
} catch (err) {
// Ignore other iframe messages.
}
});
</script>
<iframe
id="wr-iframe"
title="Wealth Reader widget"
width="100%"
frameBorder="0"
referrerpolicy="origin"
></iframe>
<script src="https://widget.wealthreader.com/js/load.js"></script>
load.js находит iframe по id="wr-iframe" и задаёт его высоту по окну просмотра. Дайте ему вертикальное пространство; если разместить его в середине страницы, он может обрезаться.
Сообщения postMessage
Iframe общается с вашей страницей так:
event.data |
Когда | Что делать |
|---|---|---|
"flow completed" |
Чтение успешно завершилось и ваш callback вернул 200 + {"status":"ok"} |
Закройте виджет или перейдите на экран успеха. Банковские данные в этом сообщении не передаются. |
JSON с error |
Поток ещё идёт (2FA, договор и т. д.) или завершился ошибкой | Прочитайте error.code и error.message. Callback ещё не отправлен. |
Всегда проверяйте event.origin === "https://widget.wealthreader.com".
Параметры wr_conf
| Параметр | Обязательный | По умолчанию | Что делает |
|---|---|---|---|
operation_id |
Да | — | Идентификатор, который генерируете вы. Он возвращается в callback, чтобы сопоставить frontend и backend. |
entities_to_display |
Нет | все | Массив кодов учреждений. Пустой или отсутствует = все. Список: https://api.wealthreader.com/entities/ |
wait_full_response |
Нет | true |
true: продукты и транзакции. false: только список продуктов. |
date_from |
Нет | вчера | Начало транзакций, YYYY-MM-DD. Применяется только если wait_full_response равен true. |
product_types |
Нет | те, что у вашего api_key |
Фильтр продуктов. Массив или список через запятую. |
default_login |
Нет | — | Код учреждения. Сразу открывает форму этого учреждения. |
default_login_entity_country |
Нет | ES |
Код страны ISO (ES, FR, …). Используется только если задан default_login. |
token |
Нет | — | Повторная аутентификация: заранее выбирает банк токена, который больше не действителен. |
psd2 |
Нет | true |
Показывать учреждения PSD2. Только если вы не фильтруете через entities_to_display. |
nonpsd2 |
Нет | true |
Показывать учреждения канала non-PSD2 (более полные данные). Та же оговорка, что и у psd2. |
language |
Нет | язык браузера | "es" или "en". |
tokenize |
Нет | настройка кабинета клиента | true, чтобы получить в callback повторно используемый token. |
business_account |
Нет | true |
Включать корпоративные учреждения. |
personal_account |
Нет | true |
Включать учреждения для частных лиц. |
wait_full_response
Оставьте true. Отключение сокращает ожидание (секунды), но вы не получите транзакции. Не отключайте без явной причины в UX, а затем запросите транзакции позже через API и token из callback.
date_from
Если параметр не указать, виджет использует вчерашнюю дату. Это не «вся история».
Для диапазонов длиннее 89 дней в европейских банках учреждение может запросить дополнительный шаг двухфакторной аутентификации. Пользователь проходит его в виджете; чтение может занять несколько минут.
product_types
Возможные значения:
accounts— текущие счетаportfolios— инвестиционные портфелиcards— картыreceipts— прямые дебетыloans— кредитыdeposits— депозитыleases— лизинг / арендаinsurances— страхованиеfactoringconfirmingproperties— недвижимостьinvoices— счета-фактурыfiles— файлы (Norma 43, 19, …)
Пример: ["accounts", "cards", "loans"] или "accounts,cards,loans".
Следующий шаг
Когда селектор выглядит правильно, продолжайте с iframe backend.