Developers API & Widget
API Reference
FR

OAuth

Installez le flux OAuth

L’utilisateur s’authentifie à Wealth Reader, retourne à votre redirect_uri avec un code , et vous l’échangez pour le même JSON que le rappel iframe.

Utilisez ce chemin si vous ne pouvez pas intégrer l’iframe (application native ou flux de redirection). Si votre application web peut monter un iframe, utilisez Frontend iframe à la place.

Parcours rapide

  1. Autorisez le domaine avec access_type=oauth.
  2. Génère nonce, state et code_verifier. Calcule challenge_code. Encode wr_conf en hexadécimal. Conservez nonce et code_verifier.
  3. Redirigez l’utilisateur vers https://oauth.wealthreader.com/oauth2/ avec ces paramètres.
  4. Recevez un GET sur votre redirect_uri avec nonce et code.
  5. Faites POST pour https://oauth.wealthreader.com/token/ et récupérez la charge utile de la banque.

1. Autoriser le domaine

Le domain doit être la même URL que vous utiliserez comme redirect_uri et comme url_callback.

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'

Vous pouvez également enregistrer le domaine depuis le Zone clientèle en choisissant l’intégration OAuth.

2. Générer les valeurs du défi

Génère trois chaînes aléatoires de 41 caractères alphanumériques (A-Za-z0-9) et les convertir en hexadécimales (bin2hex). Chaque valeur hexadécimale fait 82 caractères.

Valeur Comment il est obtenu Envoyé dans
redirect_uri Votre URL de retour, la même que celle que vous avez autorisée requête et POST /token/
nonce 41 caractères → hexadécimal requête ; revenez dans le GET
state 41 caractères → hexadécimal Requête
code_verifier 41 caractères → hexadécimal seulement POST /token/ (pas dans la requête)
challenge_code code_verifier SHA-256 (empreinte hexadécimale) Requête, comme challenge_code
wr_conf → Configuration du Sélecteur Hexadécimal JSON Requête

wr_conf supporte les mêmes champs que le Frontend iframe. Exemple Avant Du passage à l’hexadécimal :

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

Hexadécimal de ce JSON:

7b226f7065726174696f6e5f6964223a226f705f613162326333643465356636222c22656e7469746965735f746f5f646973706c6179223a5b5d2c22776169745f66756c6c5f726573706f6e7365223a747275657d

Convertir wr_conf en hexadécimal ne génère pas nonce, state ou code_verifier. Ces trois valeurs sont créées séparément et vous devez les faire persister (associées à la nonce) jusqu’à l’appel POST /token/.

Exemple en PHP, équivalent à celui que nous utilisons en interne :

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. Rediriger l’utilisateur

Construisez la requête et effectuez la redirection. Exemple avec des valeurs cohérentes :

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

L’utilisateur consulte le sélecteur bancaire, s’authentifie et, une fois terminé, Wealth Reader le renvoie à votre redirect_uri.

4. Recevoir le GET en redirect_uri

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

Utilisez le nonce pour récupérer le code_verifier que vous avez sauvegardé à l’étape 2. Si le nonce n’est pas celui que vous avez émis, rejetez la demande.

5. Terminer le défi

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'
Champ Valeur
grant_type authorization_code
redirect_uri Exactement comme l’étape 3
code Celui avec le GET
code_verifier La valeur hexadécimale que vous avez générée à l’étape 2

Si les valeurs correspondent, la réponse est le JSON de la banque (même schéma que le Rappel iframe: success, payload et statistics (operation_id, token, code).

Sauvegardez token et code si vous comptez rafraîchir avec POST https://api.wealthreader.com/entities/ plus tard.

Code exemple

Il existe un exemple en Java (JBang/Java 17) qui génère les paramètres et complète le défi :

Télécharger un exemple Java (ZIP)

Si vous avez besoin du même flux dans une autre langue, écrivez-nous à l’adresse suivante support@wealthreader.com.

Dernière mise à jour