Bienvenue sur API-money !
Vous avez reçu les éléments techniques pour tester notre solution (URL de la plate-forme de test, credentials Sandbox), ainsi que la documentation associée :
- URL Sandbox : https://test-emoney-services.w-ha.com/dashboard/#/login
- URL Prod : https://emoney-services.w-ha.com/dashboard/#/login
- api_access_key : Disponible sur le dashboard onglet Partenaire, section Security
- api_secret_key : Disponible sur le dashboard onglet Partenaire, section Security
Cf: Trouver ses credentials sur le dashboard
L’objectif de ce document est de vous aider à comprendre et manipuler les « objets » utilisés dans API-money, ainsi que les opérations associées : compte utilisateur, wallet, compte bancaire, cash-in, transfert, cash-out…
Il a pour vocation de vous aider à utiliser la solution API-money en vous indiquant les principales requêtes. Il ne décrit pas l’ensemble des requêtes et reflète pas l’ensemble des possibilités offertes par API-money !
1. Authentifier les requêtes
Vous avez cliqué sur l’URL de la Sandbox et vous obtenez une erreur 1002 ?
Pas de panique, c’est normal.
Plus d’explications dans la FAQ dédiée : J’obtiens un code erreur 1002 lorsque je clique sur l’URL de la Sandbox. Pourquoi ?
Les requêtes de votre serveur vers celui d’API-money doivent être authentifiées.
Cette authentification est assurée par le calcul d’un HMAC, sur la base des credentials et d’un timestamp.
Un exemple simple est fourni au paragraphe suivant.
2. Récupérer vos comptes créés
GET /accounts
Vous récupérez notamment un identifiant de compte Partenaire, de la forme : AS-XXXXXX pour un compte standard ou AB-XXXX pour un compte business
Plus d’explications dans la FAQ « dynamique » dédiée : « J’obtiens l’erreur {“code”:”1002″,”message”:”Authorization error: Full authentication is required to access this resource »}. Que faire ? »
Si vous avez pu récupérer les paramètres de vos comptes créés, le plus dur est fait.
Vous savez désormais authentifier les requêtes et communiquer avec la plate-forme API-money.
Vous pouvez passer à l’étape suivante.
3. Créer 2 comptes “utilisateur”
Il s’agit maintenant de créer deux comptes Utilisateur afin de préparer un transfert entre Wallet de ces 2 comptes.
Vous pouvez, par exemple, créer un premier compte Utilisateur de type « standard », c’est-à-dire « particulier » :
POST /accounts/standard (voir la documentation)
Vous récupérez notamment un identifiant de compte Utilisateur « standard », de la forme : AS-XXXXXXXXXXXXXXXX
Et créer ensuite un second compte Utilisateur de type « Business », c’est-à-dire « professionnel » :
POST /accounts/business (voir la documentation)
Vous récupérez notamment un identifiant de compte Utilisateur « business » , de la forme : AB-XXXXXXXXXXXXXXXX
Les données qui seront envoyés dans le Body doivent être stringify JSON, ensuite ajoutés dans le stringToSign pour l’encodage du Sign (hmac SHA256) et rajouté au Body de la requête.
4. Associer 2 wallets
Il faut désormais associer un Wallet de type EMONEY à chacun de ces 2 comptes Utilisateur.
Pour cela, il faut utiliser la requête suivante (2 x) :
POST /wallets (voir la documentation)
Vous récupérez notamment un identifiant de Wallet EMONEY, de la forme : WE-XXXXXXXXXXXXXXXX
5. Créer un wallet « partenaire » (fees) pour les commissions
De la même façon, vous allez créer un Wallet, mais de type FEES cette fois, pour récupérer vos commissions Partenaire :
POST /wallets (voir la documentation)
Vous récupérez notamment un identifiant de Wallet FEES, de la forme : WF-XXXXXXXXXXXXXXXX
6. Alimenter le 1er wallet « utilisateur » (cash-in)
Il faut maintenant injecter de l’argent dans le système via un « cash-in » ou « dépôt » sur un Wallet de type EMONEY :
POST /cash-in/creditcards/init
Exemple de body:
{“partner_ref” : “REF-CO-A11621675”,“tag” : “My cash-in”,“receiver_wallet_id” : “WE-4662390787667836”,“fees_wallet_id” : “WF-8367182202500409”,“amount” : 60,“fees” : 5,“return_url” : “https://www.google.com”,“lang” : “fr”,“auth_timeout_delay” : 86400}
Le cash-in est alors en état Initiated après la requête. Il vous faudra alors récupérer le lien pour le paiement via la réponse de la requête.
La carte bleu n’est pas enregistrée initialement, l’enregistrement peut se faire lors du premier cash-in, au choix de l’utilisateur.
Veuillez utiliser ses cartes bancaire de test : Carte de test
Suite aux entrées des informations de la carte, sur la plateforme de test, vous arriverez sur une page AuthenticationOrAccountVerificationSuccessful où vous devrez cliquer Continue Transaction.
Sur la production, l’utilisateur rencontrera une page de validation 3DS.
La transaction est alors en état Authorized, vous récupérez notamment un identifiant de transaction sur le dashboard API-Money sous la forme : TX-XXXXXXXXXXXXXXXX
Afin de confirmer la transaction et mettre les fonds sur le compte, il faudra faire appel à la requête la requête PUT cash-in/TX-XXXXXXXXXXX.
Cf: https://www.api-money.com/docs/#CashinservicesCreditCard-ConfirmanAuthorizedcash-in
Attention, veuillez vous renseigner sur les plafonds des wallets et cash-in selon le niveau de KYC des comptes.
Cf: https://www.api-money.com/docs/#nav-compliance-kyc
A noter :
Un Utilisateur peut effectuer un « cash-in » sur son propre Wallet aussi bien que sur le Wallet d’un autre Utilisateur.
7. Faire un transfert entre les 2 wallets “utilisateur”
Il s’agit maintenant de transférer de l’argent du Wallet qui vient d’être crédité vers le second Wallet :
POST /transfers (voir la documentation)
Si le Partenaire (= vous) prend une commission lors des transferts, celle-ci est prélevée sur le Wallet « sender » ou « envoyeur ».
Par ailleurs, le montant du transfert est commission incluse.
Par conséquent, considérant l’exemple d’un transfert de 10 € et d’une commission de 1 €.
Pour un transfert de 10 € avec la commission de 1 € prélevée sur le Wallet « sender »,
il faut indiquer : – amount = 11 – fees = 1
Pour un transfert de 10 € avec la commission de 1 € prélevée sur le Wallet « receiver »,
il faut indiquer : – amount = 10 – fees = 1
Vous récupérez notamment un identifiant de transaction, de la forme : TX-XXXXXXXXXXXXXXXX
8. Associer un compte bancaire au compte receveur
Pour effectuer un retrait (ou cash-out) d’un Wallet, il faut dans un 1er temps y associer un compte bancaire, via son IBAN :
POST /bankaccounts (voir la documentation)
Vous récupérez un identifiant de compte bancaire, de la forme : BA-XXXXXXXXXXXXXXXX
9. Retirer de l’argent du wallet receveur (cash-out)
Une fois un compte bancaire associé au Wallet, il est possible d’effectuer un « cash-out » ou « retrait » :
POST /cash-out (voir la documentation)
Vous récupérez notamment un identifiant de transaction, de la forme : TX-XXXXXXXXXXXXXXXX
Attention, le cash-out aura l’état To Validate une fois que vous aurez fait la requête.
Pour la plateforme de test, il vous faudra passer par le support API-Money.
Pour la plateforme de production, les validations sont gérées par nos équipes, vous n’avez pas besoin de nous faire de demande.