Envoyez, encaissez et pilotez chaque flux d'argent de votre activité — d'un mobile money à l'autre, d'un client à votre compte, d'une facture à un salaire — depuis un seul compte.
Des envois entre particuliers à l'encaissement d'une boutique en ligne, chaque service est pensé pour fonctionner sans changer d'application ni de réseau.
Envoyez de l'argent vers n'importe quel opérateur de mobile money, quel que soit celui utilisé par le destinataire.
ParticuliersTransférez directement entre deux comptes mobile money, dans les deux sens.
ParticuliersConvertissez votre solde OraPay en espèces au point de retrait le plus proche, sans délai d'attente.
ParticuliersRecevez les paiements de vos clients directement depuis leur mobile money, quel que soit l'opérateur, sans lien de paiement & sans APIs.
MarchandsGénérez un lien de paiement à intégrer sur votre site pour encaisser vos clients en quelques clics.
MarchandsÉmettez des chèques virtuels pour verser les salaires de votre équipe, encaissables directement en ligne.
EntreprisesRéglez vos factures, abonnements et d'autres services depuis votre compte.
ParticuliersPayez échelonné nos marchandises et suivez chaque échéance directement depuis OraPay.
MarchandsMettez en ligne votre catalogue et encaissez vos ventes sans avoir besoin d'un site web séparé.
MarchandsAjoutez nos modules de paiements à votre site web pour recevoir les paiements de vos clients.
DéveloppeursConnectez OraPay à votre propre système d'information pour automatiser paiements, virements et encaissements.
DéveloppeursChaque opération génère une notification immédiate à l'émetteur et au destinataire.
Retrouvez l'ensemble de vos transferts, encaissements et factures à tout moment.
Chaque opération sensible est protégée par un code personnel que vous seul connaissez.
Une équipe joignable pour toute question sur un transfert, un encaissement ou une intégration.
Un widget de paiement à insérer sur n'importe quelle page de votre site web, et commencez immédiatement à encaisser vos clients.
<!-- Exemple, le block HTML qui va contenir le Widget --> <div id="block_for_OraPayWidget"></div> <!-- L'URL du Widget de paiement OraPay --> <script src="https://widget.oraplus.org/payment/payme.js"></script> <script> var payment = {}; payment.loadIntoElementId = "#block_for_OraPayWidget"; payment.acn = "1561-2016-0986-3508"; payment.ref = "u56ai4"; payment.ui = { width:"100%", height:"600px", border:0, radius:"12px", shadow:"0px 4px 12px rgba(0,0,0,0,.1)", backgroundColor:"" }; payment.header = { display:"false" }; payment.covert = { display:"false", url:"" }; payment.marchandise = { titled:"Crédit de communication", price:1000, commande:2 }; payment.customer = { name:"Traoré Bintou", phoneNumber:"0102030405", email:"bintra@oraplus.org", nId:"CNI0542365" }; payment.userData = "MYDATABASE-USER-001"; payment.url = { success:"https://payme.oraplus.org/success", failed:"https://payme.oraplus.org/failed" }; oracorp_widgetPayment_payme.init(payment); </script>
<!-- Données en réponse de OraPay --> { date => "2020-01-01" time => "00:00:00" pymt-ref => "pay_pUK4DOlr39iyRLuY9q5Nj" pymt-rgn => "225" pymt-opr => "MTN" pymt-phn => "0500000000" mch-ttl => "Crédit de communication" mch-prx => "1000" mch-cmd => "2" mch-dbt => "2070" cus-nme => "Traoré Bintou" cus-phn => "0102030405" cus-eml => "bintra@oraplus.org" cus-nid => "CNI0542365" userdata => "MYDATABASE-USER-001" }
Copiez et collez le script sur votre page produit,
panier ou facture. Le client choisit son opérateur
mobile money et confirme depuis son téléphone
tablette ou ordinateur sans quitter votre site.
<!-- 1. Créer un block reservé au Widget,
vous pouvez lui attribué un nom que vous voulez
dans notre exemple, le block sera identifié
comme block_for_OraPayWidget --> <div id = "block_for_OraPayWidget"></div> <!-- 2. Insérer le script de chargement du Widget,
de préférence avant </body> de paiement OraPay --> <script src = "https://widget.oraplus.org/payment/payme.js"></script> <!-- 3. Créer un variable objet qui contiendra
toutes les informations de paramétrage du Widget --> var payment = {}; <!-- 4. Indexer le block HTML qui va contenir le Widget --> payment.loadIntoElementId = "#block_for_OraPayWidget"; <!-- 5. Ajouter les informations de votre lien.
Pour retrouver ces informations
veuillez regarder acn & ref dans votre lien --> payment.acn = "LE ACN DE VOTRE COMPTE OraPay"; payment.ref = "LE NUM DU LIEN"; <!-- 6. Pour designer le Widget,
ajoutez ses propriétés --> payment.ui = {}; <!-- 7. Pour afficher ou masquer le logo du Widget,
ajoutez ses propriétés --> payment.header = {}; <!-- 8. Pour afficher; masquer
ou charger l'image de couverture du Widget --> payment.covert = {}; <!-- 9. Pour renseigner les informations sur la marchandise --> payment.marchandise = {}; <!-- 10. Pour renseigner les informations sur le client --> payment.customer = {}; <!-- 11. Une valeur propre à vous que OraPay
vous renvera après une opération --> payment.userData = ""; <!-- 12. Vos URLs pour rediriger vos clients
après une opération. Si aucune URL n'est défini,
OraPay va gérer la rédirection et le reçu de paiement. --> payment.url = {}; <!-- Chargement du Widget --> oracorp_widgetPayment_payme.init(payment);
APIs pour piloter vos encaissements et transferts depuis votre propre système.
L'API base URL est l'adresse de programmation "https://api.oraplus.org/wallet/"
Toutes les requêtes API doivent inclure votre Token dans les headers HTTP. 'Authentification:Bearer YOUR_TOKEN' Remplacez YOUR_TOKEN par un Token généré depuis votre compte OraPay. Pour récupérer votre Token, ouvez OraPay, puis allez dans Paylink, puis API-Token, puis cliquez sur "Renouveler le Token".
Les différents types d'environnements Le mode "sandbox" vous permet de testez votre intégration. Le mode "live" exécuté la transaction en réelle. Utilisez le mode live pour passer en production. 'Mode:sandbox' //Mode test 'Mode:live' //Mode production
'q'=>'balance/payin/payout' //Type de transaction 'region'=>225 //L'indicatif téléphonique international 'operator'=>'Orange|Moov...' //Opérateurs mobile money/carte 'method'=>'wallet/card' //Emission par mobile money/carte 'number'=>'0102030405|2145-5442...' //Numéro mobile money/carte 'amount'=>1000 //Montant 'otp'=>'' //Code de validation 'userdata'=>'' //Données de votre client 'urlIfSuccessful'=>'' //Url de redirection 'urlIfFailed'=>'' //Url de redirection
Les différents statuts interaction //Action requise inprogress //Opération en cours successful //Opération réussie failed //Opération échoué cancelled //Opération annulée
<?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://api.oraplus.org/wallet/", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_HTTPHEADER => array( 'Authorization: Bearer YOUR_TOKEN', 'Mode: sandbox' ), CURLOPT_POSTFIELDS => array( 'q' => 'balance' ) ) ); $response = curl_exec($curl); curl_close($curl); echo $response; exit(); ?>
<?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://api.oraplus.org/wallet/", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_HTTPHEADER => array( 'Authorization: Bearer YOUR_TOKEN', 'Mode: sandbox' ), CURLOPT_POSTFIELDS => array( 'q' => 'payin', 'region' => 225, 'operator' => 'OraPay', 'method' => 'wallet', 'number' => '0102030405', 'amount' => 100, 'otp' => '', 'userdata' => '', 'urlIfSuccessful' => 'https://site.com/success/', 'urlIfFailed' => 'https://site.com/failed/' ) ) ); $response = curl_exec($curl); curl_close($curl); echo $response; exit(); ?>
<?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://api.oraplus.org/wallet/", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_HTTPHEADER => array( 'Authorization: Bearer YOUR_TOKEN', 'Mode: sandbox' ), CURLOPT_POSTFIELDS => array( 'q' => 'payout', 'region' => 225, 'operator' => 'OraPay', 'method' => 'wallet', 'number' => '0102030405', 'amount' => 100, 'userdata' => '' ) ) ); $response = curl_exec($curl); curl_close($curl); echo $response; exit(); ?>
| operator | Orange | MTN | Moov | Wave | OraPay | Visa | Mastercard | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| method | wallet | card | wallet | card | wallet | card | wallet | card | wallet | card | card | card | ||||||||||||
| amount | min | max | min | max | min | max | min | max | min | max | min | max | min | max | min | max | min | max | min | max | min | max | min | max |
| payin | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 500 | 1000000 | 500 | 1000000 |
| payout | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 100 | 1000000 | 500 | 1000000 | 500 | 1000000 |
| Appels/Satuts | interaction | inprogress | successful | failed | cancelled |
|---|---|---|---|---|---|
| balance |
date time signature mode status coins_eco currency_code currency_name |
date time signature mode status error_code error_message |
date time status error_code error_message |
||
| payin |
date time signature mode status transaction_id transaction_message transaction_url |
date time signature mode status transaction_id |
date time signature mode status transaction_id region operator method number amount fees debit currency_code currency_name userdata |
date time signature mode status transaction_id error_code error_message |
date time status error_code error_message |
| payout |
date time signature mode status transaction_id |
date time signature mode status transaction_id region operator method number amount fees debit currency_code currency_name userdata |
date time signature mode status transaction_id error_code error_message |
date time status error_code error_message |
| error | error_code | error_message |
|---|---|---|
| Server_Connexion_Unavailable | #512 | Service indisponible |
| Server_Query_Unavailable | #513 | Requête indisponible |
| Server_Remote_IP_Blacklisted | #514 | Adresse IP non autorisé |
| Server_Remote_Domaine_Blacklisted | #515 | Adresse de domaine non autorisé |
| API_Token_Missing | #600 | Token manquant |
| API_Token_Error | #601 | Token incorrect |
| API_Mode_Missing | #602 | Paramètre du mode manquant |
| API_Mode_Error | #603 | Paramètre du mode incorrect |
| API_Signature_Missing | #604 | Signature manquante |
| API_Webhook_URL_Missing | #605 | Webhook URL manquante |
| API_Query_Region_Error | #606 | Valeur de la région incorrecte |
| API_Query_Operator_Error | #607 | Valeur de l'opérateur incorrecte |
| API_Query_Method_Error | #608 | Valeur de méthode incorrecte |
| API_Query_Number_Missing | #609 | Valeur number manquant |
| API_Query_Number_Error | #610 | Valeur number incorrecte |
| API_Query_Amount_Missing | #611 | Montant manquant |
| API_Query_Amount_Error | #612 | Montant incorrect |
| API_Query_OTP_Missing | #613 | Valeur OTP manquante |
| API_Query_OTP_Error | #614 | Valeur OTP incorrecte |
| API_Query_coins_Low | #615 | Fond insuffisant |
| API_Query_coins_Error | #616 | Solde indisponible |
| API_Query_Fees_Low | #617 | Fees value low |
| API_Query_Fees_High | #618 | Fees value high |
| API_Query_Fees_Error | #619 | Fees value error |
| API_Query_URL_Redirection_Missing | #620 | URL de rédirection manquant |
| API_Query_URL_Redirection_Error | #621 | URL de rédirection contient des caratères spéciaux interdits |
| API_Query_PayIn_Error | #622 | Paiement interrompu |
| API_Query_PayIn_Failed | #623 | Paiement échoué |
| API_Query_PayIn_Cancelled | #624 | Paiement annulé |
| API_Query_PayIn_Aborted | #625 | Paiement non terminé |
| API_Query_PayOut_Error | #626 | Transfert interrompu |
| API_Query_PayOut_Failed | #627 | Transfert échoué |
| API_Query_PayOut_Cancelled | #628 | Transfert annulé |
| API_Query_PayOut_Aborted | #629 | Transfert non terminé |
| API_Account_Usage_Error | #630 | Usage du compte différent de Customer |
| API_Account_PID_Missing | #631 | Compte utilisateur non identifié |
| API_Account_PID_Error | #632 | Erreur de compte utilisateur |
Pour rester honnête envers vos utilisateurs, cette section n'affiche pas de faux avis. Remplacez ce bloc par des citations réelles de clients OraPay, avec leur accord — un commerçant qui encaisse via mobile money, une entreprise qui verse ses salaires, un développeur qui a intégré l'API.
Ouvrez votre compte en quelques minutes et connectez votre premier mobile money.