Vous êtes sur la page 1sur 11

Web interface API

Monétique Informatique Identification

Web interface API


Spécification techniques des API REST

Web Interface API


Version 1.0
Titre du document Web interface API
Date de publication 2020-10-16
Version Date Auteur Modifications
0.0 2020-10-13 Guillaume initialisation
OUEDRAOGO

1.0 2020-10-14 S. Patrick DA Relecture

Projet Coris Money 2020


TABLE DES MATIERES

Présentation ............................................................................................................................................. 1
1. Authentification ........................................................................................................................... 1
2. Autorisation ................................................................................................................................. 1
Description des Services ......................................................................................................................... 2
1. Service info-client ....................................................................................................................... 2
2. Service solde................................................................................................................................ 2
3. Service historique ........................................................................................................................ 3
4. Service account-account .............................................................................................................. 3
5. Service paiement-internet ............................................................................................................ 6
6. Service paiement marchand ......................................................................................................... 7
Présentation
Ce document décrit les spécifications de l’API REST permettant à tout développeur
d’intégrer les services de Coris Money. Elles seront accessibles sur l’url :
https://hostname/api/external/apiName.

Les services suivants sont disponibles :

- Information sur l’identité d’un client ;


- Historique des transactions ;
- Solde d’un compte ;
- Paiement internet ;
- Transfert compte à compte ;
- Paiement marchand;
- Demande de code OTP.

Dans la suite nous présenterons les différents services que Coris Money offre mais avant
tout voyons quelques règles à respecter pour bénéficier de ces services.

1. Authentification
Avant de pouvoir accéder à une ressource, une authentification est nécessaire.
Exemple de requête d’authentification
curl -X POST 'https://hostname/oauth/token' /
-H "Content-Type: application/x-www-form-urlencoded" /
-d "username=<user>" /
-d 'password=<password>' /
-d 'grant_type=password' /
-d 'client_id=<client_id>' /
-d 'client_secret=<secret>'
Exemple de réponse
{
"access_token" : "6b9c1108-165e-4c69-a7c5-b327bc12face",
"token_type" : "bearer",
"refresh_token" : "b610b8c3-5c1b-43d6-bfe2-be081268645e",
"expires_in" : 373,
"scope" : "read write"
}
Dans chaque appel à la ressource ajouter l’entête suite
headers: { 'Authorization': 'Bearer ' + access_token }.

2. Autorisation
L’authentification ne suffit pas pour bénéficier des services externes de CorisMoney. Pour
des raisons de sécurité, des règles d’appel des API ont étés mises en place afin de filtrer et
rejeter toutes les requêtes qui ne les respectent pas.

Projet Coris Money 2020


Ainsi pour envoyer une requête aux API, il faut disposer d’un identifiant appeler client_id et
connaitre le code secret obtenu auprès de l’administrateur de la plateforme.

A chaque appel à l’entête (headers) doit être ajouté le client_id et un hashParam.

Mais qu’est-ce que c’est : le hashParam ?

Le hashParam est une concaténation des paramètres de la requête et du code secret


associé au client_id hachée en sha256.

Une fois la requête envoyé, le système vérifie que les règles préétablies sont bien
respectées avant de poursuivre les traitements. Dans le cas contraire un message d’erreur
est renvoyé.

Description des Services


1. Service info-client
Ce service se réalise grâce à un API permettant de consulter des informations d’un client
donné à travers l’envoi d’une requête de type GET à la plateforme CorisMoney.

Exemple de requête :

Request URL: http://localhost:9002/api/external/infos-


client?codePays=226&telephone=76477115
Request Method: GET

Variable Description Type Obligatoire ?

codePays Le code téléphonique du pays du client String Oui

telephone Le numéro de téléphone du client String Oui

2. Service solde
La plateforme CorisMoney expose un API permettant la consultation de solde d’un client.
Les requêtes doivent être de type GET.

Exemple de requête :
Request URL: http://localhost:9002/api/external/solde?codePays=226&telephone=76477115
Request Method: GET

Variable Description Type Obligatoire ?

Projet Coris Money 2020


codePays Le code téléphonique du pays du client String Oui

telephone Le numéro de téléphone du client String Oui

3. Service historique
Il s’agit d’un API exposé par CORISMONEY permettant à un bénéficiaire de consulter
l’historique des transactions d’un client sur une période donnée. Pour se faire le bénéficiaire
envoi une requête de type GET.

Exemple de requête :
RequestURL:
http://localhost:9002/api/external/historique?codePays=226&telephone=76477115&debutPer
iode=01-01-2020&finPeriode=14-10-2020
Request Method: GET

Variable Description Type Obligatoire ?

codePays Le code téléphonique du pays du client String Oui

telephone Le numéro de téléphone du client String Oui

debutPeriode La date de début de la période. String Oui


finPeriode La date de fin de la période. String Oui

4. Service account-account
Ce service permet à un bénéficiaire de débiter un compte pour créditer un autre après
l’approbation du client détenteur du compte. Cette opération s’effectue en deux étapes : La
demande d’envoi d’un code OTP au détenteur du compte source et l’envoi de la requête de
validation.

Exemple de requête d’envoi de code OTP :


Request URL: http://localhost:9002/api/external/send-code-
otp?codePays=226&telephone=76477115
Request Method: POST

Variable Description Type Obligatoire ?

codePays Le code téléphonique du pays du client String Oui


détenteur du compte émetteur

telephone Le numéro de téléphone du client détenteur String Oui


du compte émetteur

Projet Coris Money 2020


Exemple de requête de validation:
Request URL: http://localhost:9002/api/external/operations/account-
account?codePaysEmetteur=226&telephoneEmetteur=76477115&codePaysRecepteur=226
&telephoneRecepteur=75961094&codePv=PV025&montant=1000&codeOTP=09352
Request Method: POST

Variable Description Type Obligatoire ?

codePaysEmetteur Le code téléphonique associé au compte String Oui


émetteur

telephoneEmetteur Le numéro de téléphone associé au compte String Oui


émetteur

codePaysRecepteur Le code téléphonique associé au compte String Oui


récepteur.
telephoneRecepteur Le numéro de téléphone associé au compte String Oui
récepteur

codePv Code du point de vente String Oui


montant Montant de l’opération BigDecimal Oui

codeOTP Code envoyé au client après l’appel de l’API String OUI


send-code-otp

Projet Coris Money 2020


Diagramme de séquence associé
Client Bénéficiaire CORIS MONEY

Send-code-otp

Envoi du code OTP au


client

Communication du code OTP


par le client au bénéficiaire

account-account

Réponse

Exemple de réponse
{
code: " 0",
message: " Opération effectuée avec succès.",
transactionId: " 1900021",
}

Variable Description Type

code Code de la réponse : * "0" si l’opération s’est bien terminé String


" -1" dans le cas contraire.
message Message explicite. String

transactionId Identifiant de la transaction. String

Projet Coris Money 2020


5. Service paiement-internet
Ce service permet à un bénéficiaire d’effectuer des paiements en ligne. Dans ce cas de
figure, l’opération est initiée par le client à partir de son application mobile ou web et reçoit
un code de retrait à saisir sur le site du marchand. Ce dernier à son tour envoi une requête à
CORIS MONEY via l’API paiement-internet pour terminer l’opération.

Exemple de requête :
Request URL: http://localhost:9002/api/external/operations/paiement-
internet?codePays=226&telephone=76477115&codePv=PV025&codeRetrait=02154
Request Method: GET

Variable Description Type Obligatoire ?

codePays Le code String Oui


téléphonique du
pays du client
telephone Le numéro de String Oui
téléphone du client

codePv Code du point de String Oui


vente
codeRetrait Code de retrait String Oui
envoyé au client
lors de l’initiation
de l’opération

Diagramme de séquence associé


Client Bénéficiaire CORIS
MONEY

Communication du code de
retrait par le client au
bénéficiaire

paiement-internet

Réponse

Projet Coris Money 2020


Exemple de réponse
{
code: " 0",
message: " Opération effectuée avec succès.",
transactionId: " 1900021",
}

Variable Description Type

code Code de la réponse : * "0" si l’opération String


s’est bien terminé
" -1" dans le cas contraire.

message Message explicite. String

transactionId Identifiant de la transaction. String

6. Service paiement marchand


L’opération est initiée par sur le site marchand. Il envoie une requête à CORIS MONEY pour la
génération d’un code OTP à transmettre au client. Le client renseigne sur l’interface du
marchand, le code OTP à envoyer à l’API paiement-bien.
Exemple de requête :
Request URL: http://localhost:9002/api/external/operations/paiement-
bien?codePays=226&telephone=76477115&codePv=PV025&montant=1000&codeO
TP=98542
Request Method: GET

Variable Description Type Obligatoire ?

codePays Le code téléphonique du pays du client String Oui


telephone Le numéro de téléphone du client String Oui

codePv Code du point de vente du bénéficiaire String Oui

montant Montant de l’opération BigDecimal

codeOTP Code envoyé au client après l’appel de l’API send- String Oui
code-otp

Projet Coris Money 2020


Diagramme de séquence associé
Client Bénéficiaire CORIS MONEY

Send-code-otp

Envoi du code OTP au


client

saisie du code OTP par le client


au bénéficiaire
paiement-bien

Réponse

Exemple de réponse
{
code: " -1",
message: " Code OTP introuvable.",
transactionId: " 1900021",
}

Variable Description Type

code Code de la réponse : * "0" si l’opération s’est bien String


terminé
" -1" dans le cas contraire.

message Message explicite. String

transactionId Identifiant de la transaction. String

Projet Coris Money 2020