Developers API & Widget
API Reference
NL

OAuth

Stel de flow OAuth

De gebruiker authenticeert zich bij Wealth Reader, keert terug naar je redirect_uri met een code , en je verzilvert het voor dezelfde JSON als de iframe- callback .

Gebruik dit pad als je het iframe niet kunt embed (native app of een redirect flow). Als je webapp een iframe kan mounten, gebruik dan iframe-frontend in plaats daarvan.

Fast Track

  1. Autoriseer het domein met access_type=oauth.
  2. Genereert nonce, state en code_verifier. Berekent challenge_code. Codeert wr_conf in hexadecimaal. Slaat nonce en code_verifierop.
  3. Stuur de gebruiker door naar https://oauth.wealthreader.com/oauth2/ met die parameters.
  4. Ontvang een GET-verzoek op je redirect_uri met nonce en code.
  5. Maak POST https://oauth.wealthreader.com/token/ en haal de payload van de bank.

1. Het domein autoriseren

De domain moet dezelfde URL zijn die je als redirect_uri en als url_callbackgebruikt.

curl --location 'https://api.wealthreader.com/domains/' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'method=add' \
  --data-urlencode 'api_key=TU_API_KEY' \
  --data-urlencode 'domain=https://example.com/oauth/success.php' \
  --data-urlencode 'url_callback=https://example.com/oauth/success.php' \
  --data-urlencode 'access_type=oauth' \
  --data-urlencode 'tokenize=1'

Je kunt het domeinaccount ook registreren vanaf de Klantengebied Door integratie OAuthte kiezen.

2. Genereer de waarden van de uitdaging

Genereer drie willekeurige reeksen van 41 alfanumerieke teksttekens (A-Za-z0-9) en zet deze om naar hexadecimale (bin2hex). Elke hexadecimale waarde heeft 82 tekens tekst.

Waarde Hoe deze wordt verkregen Verzonden in
redirect_uri Je retour-URL, dezelfde die je hebt geautoriseerd Query en POST /token/
nonce 41 tekens → hex query; kom terug in de GET
state 41 tekens → hex Query
code_verifier 41 tekens → hex alleen POST /token/ (niet in de query)
challenge_code SHA-256 van code_verifier (hexadecimale digest) Query, als challenge_code
wr_conf Configuratie-JSON van de bankselector → hexadecimaal Query

wr_conf ondersteunt dezelfde velden als de iframe-frontend. Voorbeeld voordat je naar hexadecimaal gaat:

{
  "operation_id": "op_a1b2c3d4e5f6",
  "entities_to_display": [],
  "wait_full_response": true
}

Hexadecimaal van die JSON:

7b226f7065726174696f6e5f6964223a226f705f613162326333643465356636222c22656e7469746965735f746f5f646973706c6179223a5b5d2c22776169745f66756c6c5f726573706f6e7365223a747275657d

Het omzetten van wr_conf naar hexadecimaal genereert geen nonce, state of code_verifier. Die drie waarden worden apart gemaakt en je moet ze behouden (geassocieerd aan de nonce) tot de POST /token/.

Voorbeeld in PHP, gelijk aan het exemplaar dat we intern gebruiken:

function randomAlnum($length)
{
    $alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
    $value = '';
    for ($i = 0; $i < $length; $i++) {
        $value .= $alphabet[random_int(0, strlen($alphabet) - 1)];
    }
    return $value;
}

$nonce = bin2hex(randomAlnum(41));
$state = bin2hex(randomAlnum(41));
$code_verifier = bin2hex(randomAlnum(41));
$challenge_code = hash('sha256', $code_verifier);

$wr_conf = bin2hex(json_encode([
    'operation_id' => 'op_a1b2c3d4e5f6',
    'entities_to_display' => [],
    'wait_full_response' => true,
]));

3. Leid de gebruiker om

Bouw de query en stuur om. Voorbeeld met waarden die met elkaar consistent zijn:

https://oauth.wealthreader.com/oauth2/?challenge_code=c725133644f703a5f069a09583fa981eb5b8820071a4450f8d47ff8b1c6a879a
&code_challenge_method=S256
&redirect_uri=https://example.com/oauth/success.php
&response_type=code
&state=73684148464b3778795873626d724e62734749724336685a7a687854336c317934524f516831316a45
&nonce=696d6a716d4a47746d714e52656562496f61786468765a30335a4b4a646d6c546c5339654e42586573
&wr_conf=7b226f7065726174696f6e5f6964223a226f705f613162326333643465356636222c22656e7469746965735f746f5f646973706c6179223a5b5d2c22776169745f66756c6c5f726573706f6e7365223a747275657d

De gebruiker ziet de bankselector, authenticeert zich en als hij klaar is, stuurt Wealth Reader deze terug naar je redirect_uri.

4. Ontvang de GET in redirect_uri

https://example.com/oauth/success.php?nonce=696d6a716d4a47746d714e52656562496f61786468765a30335a4b4a646d6c546c5339654e42586573
&code=1234567890abcdef1234567890abcdef1234567890a

Gebruik de nonce om de code_verifier die je in stap 2 hebt opgeslagen op te halen. Als de nonce niet degene is die je hebt uitgegeven, wijs dan het verzoek af.

5. Voltooi de uitdaging

curl --location --request POST 'https://oauth.wealthreader.com/token/' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=authorization_code' \
  --data-urlencode 'redirect_uri=https://example.com/oauth/success.php' \
  --data-urlencode 'code=1234567890abcdef1234567890abcdef1234567890a' \
  --data-urlencode 'code_verifier=6634413364504337675230375a624671644f644d42414241303037737374684f494877477649723433'
Veld Waarde
grant_type authorization_code
redirect_uri Precies hetzelfde als stap 3
code Die met de GET
code_verifier De hex die je in stap 2 hebt gegenereerd

Als de waarden overeenkomen, is het antwoord de JSON van de bank (hetzelfde schema als de callback van het iframe): success, payload en statistics (operation_id, token, code).

Sla token op en code als je later met POST https://api.wealthreader.com/entities/gaat verversen.

Voorbeeldcode

Er is een voorbeeld in Java (JBang/Java 17) dat de parameters genereert en de uitdaging voltooit:

Download Java Voorbeeld (ZIP)

Als je dezelfde flow in een andere taal nodig hebt, schrijf ons dan op support@wealthreader.com.

Laatst bijgewerkt