Introduction

L’API mutualisée vous permet de recevoir les paiements de vos clients via Orange Money. Sa particularité est qu’elle est disponible pour les particuliers ou les jeunes entreprise ne disposant pas encore les documents nécessaires pour l’obtention des APIs. De plus, le temps nécessaire pour l’acquisition de notre API mutualisée est très court (disponible en moins de 24h). À la fin de cette documentation vous avez des exemples concrets faits avec Postman.

Pour l’intégration de cette API, vous devez avoir à votre disposition les informations suivantes que nous vous aurons transmis:

  • le idClient
  • le secretClient
  • le customerkey
  • customersecret

Si vous n’avez pas ces informations , n’hésitez pas à nous contacter.

Pour tout besoin d’assistance vous pouvez nous contacter directement:
Nom: Support Y-Note,
Tél: 242 232 240
canal du support technique: 6054
Email: [email protected]
Notre site web : https://www.y-note.cm/

Récupération du Token

L’Access Token est un jeton d’authentification récupéré auprès de l’API, ce qui nous permettra d’effectuer le remboursement. l’URL à utiliser est la suivante : https://omapi-token.ynote.africa/oauth2/token

Cette requête doit comporter un header contenant les paramètres:

  • Conten-Type:application/x-www-form-urlencoded
  • Authorization: elle doit avoir comme valeur votre login:votre_mot_de_passe encodé en base64

La requête CURL est la suivante:

curl –location ‘https://omapitest.auth.us-east-1.amazoncognito.com/oauth2/token’ \
–header ‘Content-Type: application/x-www-form-urlencoded’ \
–header ‘Authorization: Basic xxxxxxxxxxxx’ \
–data-urlencode ‘grant_type=client_credentials’

La réponse a cette requête est un element en JSON comprenant votre Access Token Bearer:

{« access_token »: »eyJraWQiOiJcL2NucXVJxxxxxxxxxxxxxx », »expires_in »:300, »token_type »: »Bearer »}

Le paramètre à récupérer pour la suite de nos opérations est « access_token« . Son délai d’expiration est précisé dans la paramètre « expires_in » et exprimé en secondes.

Requête d'encaisement avec l'API Mutualisée

Par la suite, utilisez ce jeton obtenu à l’étape 1 dans votre requête de paiement sur le point de terminaison https://omapi.ynote.africa/prod/webpayment avec le type d’auhtentification Bearer :

Passer ensuite corps de la requête en json dans le dody:

{   

    « API_MUT »:
        {
            « customerkey »: « xxxxxxxxxxxxxxx »,
            « customersecret »: « xxxxxxxxxxxxxxx »,
            « order_id »:« xxxxx »,
            « amount »: « 10 »,
            « subscriberMsisdn »:« 692xxxxxx »,
            « description »:« description »,
            « notifUrl »: « https://notification.com/ »,
            « PaiementMethod »:« ORANGE_CMR »
      }
}
Explication des différents paramètres:
Paramètres Type Description Exemple
customerkey Chaîne de caractère Login de l’utilisateur, fourni par l’aggrégateur knnWJwrxaVgHzXQSloPePxAAwavB
customersecret Chaîne de caractère Mot de passe de l’utilisateur, fourni par l’aggrégateur pknWJwrxaVgHzXQSloPePxAAwavB
order_id Chaîne de caractère L’identifiant de votre transaction payment001
amount Chaîne de caractère Le montant que devra payer votre client 200
subscriberMsisdn
Chaîne de caractère Le numéro du payeur (celui de votre client) 692xxxxxx
description Chaîne de caractère Il s’agit d’une tres courte description de votre paiement PaymentArticleB
notifUrl Chaîne de caractère L’url de réception de la notification lors du changement du statut de votre paiement https://webhook.site/cf37074f-831e-4949-a93e-f0353c03e687. Notehttps://webhook.site est un site gratuit qui vous permet de tester la recetion d’une requête post avant de renseigner votre URL définitive.
PaiementMethod
Chaîne de caractère La méthode de paiement. Vous ne devez pas modifier ce paramètre ca valeur reste ORANGE_CMR  ORANGE_CMR

Exemple d’appel avec CURL:

curl –location ‘https://omapi.ynote.africa/prod/webpayment’ \
–header ‘Content-Type: application/json’ \
–header ‘Authorization: Bearer myyLTGX8-eGbI9QHJxweij72FCsyaS2UyvlCch7wH0Aog6pjTDOxxx’ \
–data ‘{
« API_MUT »:{
« customerkey »: « xxxxxxx »,
« customersecret »: « xxxxxxx »,
« order_id »: »order1222″,
« amount »: « 10 »,
« subscriberMsisdn »: »69xxxxxxx »,
« description »: »description »,
« notifUrl »: « https://webhook.site/cf37074f-831e-4949-a93e-f0353c03e687 »,
« PaiementMethod »: »ORANGE_CMR »
}
}’

La donnée renvoyée par cet appel est un dictionnaire sous la forme:

{
« StatusCode »: 200,
« body »: « Pay Request Accepted »,
« ErrorMessage »: «  »,
« parameters »: {
« operation »: « OM_CMR collection ussd-mut »,
« MessageId »: « MP250324E4C07838139DDF675F7E »,
« currency »: « XAF »,
« amount »: « 10 »,
« subscriberMsisdn »: « 692xxxxxx »,
« order_id »: « order1222 »,
« notifUrl »: « https://webhook.site/cf37074f-831e-4949-a93e-f0353c03e687 »
}
}

Il faut noter que le paramètre MessageId vous permettra plus tard de retrouver le statut de votre transaction à tout moment, nous y reviendrons plus bas dans la documentation.

Réponse de l’API sur le notifUrl

 L’API renvoie la réponse de traitement de chaque demande sur l’URL spécifié dans le paramètre notifUrl, la table ci-dessous fournit des détails sur les réponses renvoyées.

Codes réponse body Description
5010
Missing customerkey on API_MUT
Le corps de la requête est manquant dans l’élément API_MUT.
5011
customersecret missing on API_MUT
le paramètre customersecret est manquant dans l’élément API_MUT.
5013
order_id missing on API_MUT
le paramètre order_id est manquant dans l’élément API_MUT.
5014
amount missing on API_MUT
le paramètre amount est manquant dans l’élément API_MUT.
5015
Floating numbers not allowed on amount in API_MU
Votre montant ne doit pas contenir de partie décimale, uniquement les entiers.
5015
Amount in API_MUT should be a string
vous devez mettre votre montant entre double cotes.
5015

Amount is too big and

should be below or equal to 500.000 Fcfa
Votre montant ne doit pas dépasser 500.000 Fcfa
5015

Amount is too small and

should be at least 10 Fcfa

 

Votre montant doit etre au moins 10 Fcfa
5016
subscriberMsisdn missing on API_MUT

 

le paramètre subscriberMsisdn est manquant dans l’élément API_MUT.
5023
 
Le signe de lindicatif nest pas autorisé sur le numéro du bénéficiaire, les exemples de numéros valides sont:
692xxxxxx, 237692xxxxxx
Le signe de l’indicatif n’est pas autorisé sur le numéro du bénéficiaire, les exemples de numéros valides sont: 692xxxxxx, 237692xxxxxx
5024
Le numéro du bénéficiaire ne doit contenir que des chiffres, les exemples de numéros valides sont: 692xxxxxx, 237692xxxxxx
Le numéro du bénéficiaire ne doit contenir que des chiffres, les exemples de numéros valides sont: 692xxxxxx, 237692xxxxxx
5025
Le numéro du bénéficiaire na pas la longeur requise, les exemples de numéros valides sont: 692xxxxxx, 237692xxxxxx’
 
5026
Le numéro du bénéficiaire nest’ pas un numéro mobile Camerounais valide, les exemples de numéros valides sont: 692xxxxxx, 237692xxxxxx
Le numéro du bénéficiaire n’est’ pas un numéro mobile Camerounais valide, les exemples de numéros valides sont: 692xxxxxx, 237692xxxxxx
5017
description missing on API_MUT
le paramètre description est manquant dans l’élément API_MUT.
5018
notifUrl missing on API_MUT
le paramètre notifUrl est manquant dans l’élément API_MUT.
5019
PaiementMethod missing on API_MUT
le paramètre PaiementMethod est manquant dans l’élément API_MUT. Ce paramètre doit avoir pour valeur ORANGE_CMR.
5020
PaiementMethod wrong Value on API_MUT
Mauvaise valeur pour le paramètre PaiementMethod, Ce paramètre doit avoir pour valeur ORANGE_CMR.
Vérification du statut des paiements

Afin de vérifier à tout moment le statut d’une transaction faite, vous devez récupérer de nouveau un acces_token sur l’url https://omapi-token.ynote.africa/oauth2/token en fournissant l’id et le secret, vous recevrez un acces_token avec le type et sa durée de validité comme c’était le cas lorsqu’il s’agissait du acces_token pour le  paiement.

Ensuite faire un GET sur l’url https://omapi.ynote.africa/prod/webpayment/status/messageId, messageId correspondant au paramètre MessageId renvoyé lors du POST sur l’url du paiement.

Les paramètres à fournir sont d’abord le access_token de type Bearer ensuite le corps de la requête en json:

{

    « API_MUT »:{

        « customerkey »: »XXXXXXXX »,
« customersecret »: »XXXXX »

    }

}

Voici un exemple de réponse lors de l’appel a cet API:

{
« company_id »: « 1 »,
« updateDate »: « 2025-03-24 22:29:35 »,
« currency »: « XAF »,
« operation »: « OM_CMR collection ussd-mut »,
« notifurl »: « https://webhook.site/cf37074f-831e-4949-a93e-f0353c03e687 »,
« payment_method »: « 1 »,
« paytoken »: « MP250324E4xxx »,
« status »: « SUCCESSFUL »,
« paymentRef »: « MP250324E4C0783xxx »,
« creationDate »: « 2025-03-24 22:08:36 »,
« customer_key »: « xxxxxxxx »,
« reason »: « Update status »,
« request_id »: « order_1222 »,
« amount »: « 10 »,
« subscriberMsisdn »: « 692xxxxxx »
}

Quelques paramètres importants:

status Il s’agit du statut de la transation, les valeurs possible sont: SUCCESSFUL, FAILED, PENDING, INITIATED, UNKNOWN
MessageId Il s’agit du paramètre qui permet de récupérer le statut de la transaction a tout moment.

 

La table ci-dessous décrit les autres possibilités de réponse:

Codes réponse body Description
5011
Missing API_MUT parameter
Vous devez renseigner le paramètre API_MUT
5012
No Customer Key on API_MUT
Le paramètre customerkey est manquant dans l’élément API_MUT
Voir notre exemple dan postman

Nous avons préparé un exemple complet de ces requêtes dans postman, cliquez Ici pour voir .

Et voila , vous avez maintenant implémenté l’API mutualisée Orange Money vous permettant de recevoir les paiements de vos clients.

Cette API Orange Money est valable au Cameroun et permet de bénéficier d’une souplesse dans les encaisements inégalé.

Vous avez une activité ? Vous souhaitez faire payer vos clients par Orange Money au Cameroun ? 

Y-Note est Agrégateur Orange Money Cameroun officiel depuis 2018. Accompagnant des centaines de eCommerçant au Cameroun, nous proposons la mise en place de solution d’encaissement et de remboursement Orange Money.