IframePasso 2 di 2
Configurare il backend
Ricevi i dati bancari normalizzati sul tuo server e conferma correttamente il callback.
Completa il Checklist frontend. Il widget non invia i dati bancari per postMessage- li invia qui, usando POST.
Checklist di integrazione
0 di 41. Crea l'URL callback
Esponi un endpoint HTTPS sul tuo server che accetti POST con un corpo JSON.
Dopo aver elaborato ciò che è necessario, rispondi HTTP 200 con le seguenti JSON:
{
"status": "ok"
}
Se restituisci un altro codice di stato o un altro JSON , il widget non notificherà al frontend che il flusso è terminato con successo.
Considera operation_id come idempotente: la consegna ripetuta non dovrebbe creare due operazioni sul tuo sistema.
2. Cosa sta per arrivare nel POST
Il corpo è lo stesso JSON che POST /entities/ nel Riferimento OpenAPI. Le cose importanti da attraversare nell'operazione:
| Campo | Applicazione |
|---|---|
success |
true se la lettura fosse finita bene. |
payload |
Dati standardizzati (account, portafogli, carte, ecc.). |
statistics.operation_id |
Il operation_id che generava il tuo frontend. |
statistics.token |
Credenziale di custodia per successivi aggiornamenti dei dati (se la tokenizzazione è attiva). |
statistics.code |
Codice entità (bbva, caixabank, ...). |
statistics.SESSION |
ID sessione, utile in un ticket di supporto. |
statistics.warnings |
Avvertenze che non invalidano la lettura (ad esempio, un prodotto vuoto). |
Esempio ritagliato:
{
"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"
}
}
Lo schema completo payload si trova nell'OpenAPI. Non dare per scontato che tutte le chiavi arrivino sempre: dipendono da product_types e da ciò che l'utente ha nell'entità.
3. Dominio associato, callback e chiave API
Nel Area Clienti Associato:
- il dominio da cui viene caricato il widget (l'origine del tuo front);
- l'URL di callback hai appena creato;
- La tua
api_key.
Finché il dominio non viene registrato, il widget non funziona.
4. Testare il flusso
Apri la pagina che carica il widget e accedi:
| Utente | Password | Risultato |
|---|---|---|
MOCKDATA |
Qualsiasi | Lettura riuscita con dati campioni anonimizzati. Il callback riceve un JSON success: true. |
MOCKOTP |
Qualsiasi | Ricrei una sfida a due fattori. |
MOCKLOGINKO |
Qualsiasi | Ricrei un errore di login. Il callback non viene chiamato. |
Se non hai l'email di benvenuto, chiedila a support@wealthreader.com.
Se vuoi vedere il POST prima di avere l'endpoint nel tuo ambiente, crea un URL temporaneo in un servizio come https://pipedream.com/ e mettilo come callback.
5. Aggiornamento dati (opzionale)
Finora hai un'integrazione one-shot: una lettura per ogni volta che l'utente apre il widget.
Se ti serve un batch ogni sera o un pulsante "aggiorna", chiama di nuovo il API con il token e code hai salvato dal callback. Non chiedere un nuovo nome utente e password.
curl --location 'https://api.wealthreader.com/entities/' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'api_key=TU_API_KEY' \
--data-urlencode 'code=bbva' \
--data-urlencode 'token=EL_TOKEN_DEL_CALLBACK' \
--data-urlencode 'product_types=accounts,portfolios'
Presta attenzione al Codici di errore: Una password non valida non viene riprovata; la manutenzione di un'entità sì.
- Specifiche OpenAPI v3
- Postman Collezione
Se il token non è più valido (cambio di password o nuova 2FA), riapri il widget passando quel valore in wr_conf.token per l'utente di riautenticarsi.