IframeSchritt 1 von 2
Aufbau des Frontends
Einbetten Sie das Widget auf Ihrer Seite, zeigen Sie den Bankpicker an und hören Sie sich die Nachrichten des iframe an.
Das Widget ist ein iframe, das mit https://widget.wealthreader.com/js/load.jslädt. Diese Seite deckt nur die Vorderseite ab. Die callback - und Bankdaten sind auf Backend.
Die Domain, von der aus Sie diese Seite bereitstellen, muss autorisiert sein Der Kundenbereich bevor das Widget geöffnet wird. Wenn nicht, antwortet das Widget, dass die Domain nicht autorisiert ist.
Integrations-Checkliste
0 von 3Mindestcode
Generiere für jede Operation ein neues operation_id . Lasse entities_to_display leer, um alle Entitäten in deinem api_keyanzuzeigen. Halte wait_full_response in true , es sei denn, das technische Team weist es anders an.
<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") {
// El callback de backend ya se envió con éxito.
// Cierra el selector o redirige a la pantalla de éxito.
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, login incorrecto, callback caído, etc.
}
} catch (err) {
// Ignora otros mensajes del iframe.
}
});
</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 findet das iframe mit id="wr-iframe" und weist ihm die Höhe entsprechend dem Fenster zu. Positioniere es so, dass es vertikalen Platz hat; wenn du es in die Mitte der Seite einfügst, kann es beschnitten werden.
Nachrichten postMessage
Der iframe spricht so mit deiner Seite:
event.data |
Wenn | Was zu tun ist |
|---|---|---|
"flow completed" |
Die Lesung endete gut und dein callback antwortete 200 + {"status":"ok"} |
Schließe das Widget oder gehe zum Erfolgsbildschirm. Diese Nachricht enthält keine Bankdaten. |
JSON mit error |
Der Fluss setzt sich fort (2FA, Vertrag usw.) oder ist ausgefallen | Lies error.code und error.message. Die callback wurde nicht abgeschickt. |
Überprüfe immer event.origin === "https://widget.wealthreader.com".
wr_conf Parameter
| Parameter | Erforderlich | Default | Was es bewirkt |
|---|---|---|---|
operation_id |
Ja | — | Von Ihnen erzeugte Kennung. Sie wird im Callback zurückgegeben, damit Frontend und Backend dieselbe Operation zuordnen können. |
entities_to_display |
Nein | Alle | Array der Entitätscodes. Leer oder abwesend = alle. Liste: https://api.wealthreader.com/entities/ |
wait_full_response |
Nein | true |
true– Produkte und Transaktionen. false– Nur die Produktliste. |
date_from |
Nein | gestern | Startdatum des abzufragenden Transaktionszeitraums, AAAA-MM-DD. Gilt nur, wenn wait_full_response true ist. |
product_types |
Nein | Die Ihrer api_key |
Produktfilter. Array- oder kommagetrennte Liste. |
default_login |
Nein | — | Entitätscode. Öffnet das Formular für diese Entität direkt. |
default_login_entity_country |
Nein | ES |
ISO-Ländercode (ES, FR, ...). Wird nur verwendet, wenn es default_logingibt. |
token |
Nein | — | Re-Authentifizierung: Wählen Sie die Bank eines token vorab aus, die nicht mehr gültig ist. |
psd2 |
Nein | true |
Zeigt Entitäten PSD2. Nur wenn du nicht mit entities_to_displayfilterst. |
nonpsd2 |
Nein | true |
Zeigt Entitäten pro Kanal, nicht PSD2 (vollständigere Informationen). Gleiche Nuance wie psd2. |
language |
Nein | Der Browser | "es" oder "en". |
tokenize |
Nein | Der im Kundenbereich | true ein wiederverwendbares token im callbackbekommen. |
business_account |
Nein | true |
Umfasst Unternehmenseinheiten. |
personal_account |
Nein | true |
Es umfasst Entitäten von Individuen. |
wait_full_response
Lass es bei true. Das Ausschalten verkürzt die Wartezeit (Sekunden), allerdings ohne Transaktionen. Deaktiviere es nur, wenn es einen klaren UX-Grund gibt, und stelle die Transaktionen später mit dem API und token der callbackwieder her.
date_from
Wenn du es nicht verschickst, verwendet das Widget das Datum von gestern. Es ist nicht "die gesamte Historie".
Für Intervalle von mehr als 89 Tagen bei europäischen Banken kann das Unternehmen einen zusätzlichen Doppelfaktor verlangen. Der Nutzer füllt diese im Widget aus; die Messung kann mehrere Minuten dauern.
product_types
Mögliche Werte:
accounts— Kontenportfolios— Anlageportfolioscards— Kartenreceipts— Lastschriftenloans— Kreditedeposits— Einlagenleases— Leasing / Mieteinsurances— Versicherungfactoringconfirmingproperties— Immobilieninvoices— Rechnungenfiles— Dateien (Norma 43, 19, ...)
Beispiel: ["accounts", "cards", "loans"] oder "accounts,cards,loans".
Nächster Schritt
Wenn der Selector gut aussieht, folgt mit iframe-Backend.