Le message {“code”:”1002″,”message”:”Authorization error: Full authentication is required to access this resource »} indique un problème d’Authentification.
En effet, pour utiliser API-money, il est nécessaire que nous puissions authentifier l’utilisateur qui a initié la requête.
Vous pouvez commencer par une requête simple de type GET, sans “body”, comme :
GET /accounts
Cela vous permettra, par ailleurs de récupérer votre identifiant de compte Partenaire, déjà créé dans le système (cf. doc : https://www.api-money.com/docs/#Accountservices-Createanaccount-Standard & https://www.api-money.com/docs/#Overview-Authentication).
Ci-dessous un exemple détaillé de construction de la requête, avec les paramètres de test suivants :
– sandbox URL : https://test-emoney-services.w-ha.com/dashboard/#/login– api_access_key : k1rXpphkRG!2-Fox
– api_secret_key : E0!oYfVpA6-noiqGr-pT7AJ2ybT4r7lx
– version : 1
1°) Première étape : “StringToSign”
La première étape consiste à construire le “message” à signer.
StringToSign = api_access_key:timestamp:version:
Exemple :
> StringToSign = k1rXpphkRG!2-Fox:timestamp:1:
(ci-dessus la valeur :timestamp: doit contenir un timestamp d’une suite de chiffres, comme ceci :1672650133163: )
⚠️ Attention ⚠️ :
⚠️Le timestamp (unix) désigne le nombre de secondes écoulées depuis le 1er janvier 1970 à minuit UTC précise (cf. http://www.timestamp.fr).
Dans les requêtes API-money, vous devez indiquer le timestamp en millisecondes correspondant au moment de l’envoi de votre requête vers la PF API-money. ⚠️
2°) Deuxième étape : “Sign”
La deuxième étape consiste à encoder le “Sign” en HMCA (SHA256) à partir du “message” à signer (StringToSign) et de la clef secrète (api_secret_key).
L’engodage HMAC assure l’intégrité du message.
Sign = HMAC-SHA256(StringToSign, api_secret_key)
Sign = HMAC-SHA256(k1rXpphkRG!2-Fox:1672650133163:1:, E0!oYfVpA6-noiqGr-pT7AJ2ybT4r7lx)
Exemple :
> Sign = fdc93dee9a203b2a544e7bcc5f34918e89c547c2ee5503071482a9fbfb3e4e8e
Vous pouvez vérifier votre calcul du HMAC, en utilisant, par exemple, l’outil : https://www.freeformatter.com/hmac-generator.html#ad-output
3°) Troisième étape : Requête (en théorie)
Il ne reste plus qu’à générer et envoyer la requête vers l’URL de la plate-forme :
GET /accounts
Paramètre du Header :
Authorization: AUTH api_access_key:timestamp:version:Sign
Exemple :
> URL endpoint : GET /accounts
> Header : Authorization : AUTH k1rXpphkRG!2-Fox:1672650133163:1:fdc93dee9a203b2a544e7bcc5f34918e89c547c2ee5503071482a9fbfb3e4e8e
4°) Quatrième étape : la Requête (en pratique)
Pour vérifier le bon fonctionnement de la requête, vous pouvez lancer la commande CURL suivante avec vos propres identifiants et y ajouter votre timestamp ainsi que votre Sign (encodé HMAC SHA256) :
curl –location –request GET ‘https://test-emoney-services.w-ha.com/api/accounts’ \
–header ‘Authorization: AUTH odzAr67enYtX7vDdiLwdMYOTh6R4ZQUz:[Timestamp]:1:[Sign]’
ATTENTION : une fois la requête préparée, elle n’est valable que pendant 1 heure (le timestamp ne doit pas être âgé de plus de 5 minutes à l’instant T de la requête ) dans l’environnement de test (sandbox) !
Vous devriez obtenir un résultat du type :
[{“id”: “AB-0895358735216643”,“type”: “BUSINESS”,“status”: “ACTIVE”,“tag”: “account_type1”,“creation_date”: “2022-12-23T14:40:26+0100”,“kyc_level”: “LEVEL_1”},{“id”: “AS-5205597398211593”,“type”: “STANDARD”,“status”: “ACTIVE”,“tag”: “account_type1”,“creation_date”: “2022-12-23T14:20:37+0100”,“kyc_level”: “LEVEL_1”}].json