IframeStap 2 van 2
Configureer de backend
Ontvang de genormaliseerde bankgegevens op uw server en bevestig de callback correct.
Voltooi eerst de frontend-checklist. De widget stuurt de bankgegevens niet via postMessage: die stuurt ze hierheen, als een POST.
Integratiechecklist
0 van 41. De callback-URL aanmaken
Stel op uw server een HTTPS-eindpunt beschikbaar dat POST met een JSON-body accepteert.
Nadat u het nodige hebt verwerkt, antwoordt u met HTTP 200 en de volgende JSON:
{
"status": "ok"
}
Als u een andere statuscode of andere JSON teruggeeft, meldt de widget niet aan de frontend dat het verloop correct is afgerond.
Behandel operation_id als idempotent: een herhaalde levering mag in uw systeem geen twee operaties aanmaken.
2. Wat er in de POST binnenkomt
De body is dezelfde JSON als POST /entities/ in de OpenAPI-referentie. Velden die u nodig heeft om de operatie te koppelen:
| Veld | Gebruik |
|---|---|
success |
true als de uitlezing succesvol is afgerond. |
payload |
Genormaliseerde gegevens (rekeningen, portefeuilles, kaarten, …). |
statistics.operation_id |
De operation_id die uw frontend heeft gegenereerd. |
statistics.token |
Bewaarde inloggegevens voor latere verversingen (als tokenisatie aanstaat). |
statistics.code |
Instellingscode (bbva, caixabank, …). |
statistics.SESSION |
Sessie-id, nuttig in een supportticket. |
statistics.warnings |
Waarschuwingen die de uitlezing niet ongeldig maken (bijvoorbeeld een leeg product). |
Ingekort voorbeeld:
{
"success": true,
"payload": {
"user_information": {
"ID": "12345678Z",
"name": "LUIS GARCIA BAQUERO"
},
"accounts": [
{
"uuid": "8076932f04f73e27fe608fee4d12fca8708dec8c",
"subtype": "checking",
"code": "ES4914651234561234567890",
"name": "Cuenta NOMINA",
"currency": "EUR",
"balances": {
"available": 14302.07,
"current": 14302.07
},
"transactions": []
}
]
},
"statistics": {
"SESSION": "A1B2C3D4E5F67890",
"execution_time": 12.4,
"warnings": [],
"operation_id": "8f1c2a6e-4b0d-4c3a-9e21-0d5b7a91c4e2",
"token": "FRJ0mHlaqZwLzu",
"code": "bbva"
}
}
Het volledige schema van payload staat in de OpenAPI. Ga er niet van uit dat elke sleutel altijd aanwezig is: dat hangt af van product_types en van wat de gebruiker bij de instelling heeft.
3. Domein, callback en API-sleutel koppelen
Koppel in de klantomgeving:
- het domein vanwaar de widget wordt geladen (de origin van uw frontend);
- de callback-URL die u zojuist hebt aangemaakt;
- uw
api_key.
Zolang het domein niet is geregistreerd, werkt de widget niet.
4. Het verloop testen
Open de pagina die de widget laadt en meld u aan:
| Gebruikersnaam | Wachtwoord | Resultaat |
|---|---|---|
MOCKDATA |
willekeurig | Geslaagde uitlezing met geanonimiseerde voorbeeldgegevens. De callback ontvangt JSON met success: true. |
MOCKOTP |
willekeurig | Speelt een tweefactorchallenge na. |
MOCKLOGINKO |
willekeurig | Speelt een loginfout na. De callback wordt niet aangeroepen. |
Als u de welkomstmail niet hebt, vraag die aan via support@wealthreader.com.
Als u de POST wilt inspecteren voordat uw eindpunt bestaat, maak dan een tijdelijke URL aan bij een dienst zoals https://pipedream.com/ en stel die in als callback.
5. Gegevens verversen (optioneel)
Op dit punt heeft u een eenmalige integratie: één uitlezing telkens wanneer de gebruiker de widget opent.
Als u een nachtelijke batch of een knop „Bijwerken” nodig heeft, roep de API opnieuw aan met de token en code die u uit de callback hebt opgeslagen. Vraag gebruikersnaam en wachtwoord niet opnieuw.
curl --location 'https://api.wealthreader.com/entities/' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'api_key=YOUR_API_KEY' \
--data-urlencode 'code=bbva' \
--data-urlencode 'token=TOKEN_FROM_CALLBACK' \
--data-urlencode 'product_types=accounts,portfolios'
Let goed op de foutcodes: probeer een ongeldig wachtwoord niet opnieuw; bij onderhoud van de instelling mag u het wel opnieuw proberen.
Als de token niet meer werkt (wachtwoordwijziging of een nieuwe 2FA), open de widget opnieuw en geef die waarde mee in wr_conf.token, zodat de gebruiker zich opnieuw kan authenticeren.