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 Paynote,
Tél: 243 232 240 poste 6054
Email: support-paynote@y-note.cm
Notre site web : https://www.y-note.cm/

Etape 1: Récupération de l'accès 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.

Etape 2:Requête d'encaissement 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.

    Etape 3: 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.
    Etape 4: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
    Etape 5 :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.