La plateforme d'intégration MaxiCash permet aux marchands d'intégrer à la plateforme MaxiCash afin de recevoir des paiements via leurs applications mobiles ou leurs sites web. L'API utilise JSON pour interagir avec .Net ou des plateformes open source comme PHP.
Afin de recevoir des paiements MaxiCash pour votre site Web ou votre application mobile, vous devez être inscrit sur la plateforme MaxiCash en tant que marchand. Voici les étapes à suivre
La plateforme MaxiCash dispose de 2 devises, le maxiDollar et le maxiRand. Le maxiDollar a un taux de change de 1 pour 1 par rapport Dollar Americain, et est la devise la plus utilisée par notre réseau de marchands. Les marchands d'Afrique du Sud utilisent le maxiRand, dont le taux de change est de 1 pour 1 par rapport au Rands Sud-Africain.
Vous pouvez intégrer l'API MaxiCash et à la passerelle MaxiCash en utilisant les points de connexion ci-dessous pour les comptes Sandbox et Live.
API en Sandbox : https://api-testbed.maxicashapp.com/Merchant/api.asmx
API en Live : https://api.maxicashapp.com/Merchant/api.asmx
Passerelle en Sandbox : https://api-testbed.maxicashapp.com/payentry
Passerelle en Live : https://api.maxicashapp.com/payentry
L'intégration de la plateforme MaxiCash supporte 2 modèles d'intégration : Les applications mobiles (L'API'MaxiCash) et les sites Web (Passerelle MaxiCash)
La Passerelle MaxiCash est principalement conçu pour permettre une intégration facile et rapide des sites web à la plateforme MaxiCash.
Avec la passerelle MaxiCash, vous pouvez recevoir des paiements des utilisateurs MaxiCash. La passerelle permet au marchand de recevoir également des paiements d'utilisateurs non-MaxiCash en utilisant Cartes de crédit, Paypal, Pepele Mobile et autres.
La passerelle MaxiCash comprend un Bouton de donation pour les ONG et les plugins de eCommerce pour Wordpress/Woocommerce et Prestashop (1.6 and 1.7)
L'API MaxiCash est principalement conçu pour permettre l'intégration d'applications mobiles et de sites Web complexes. Il permet uniquement les paiements des utilisateurs de MaxiCash. Les utilisateurs MaxiCash effectuent le paiement en utilisant L'application Mobile MaxiCash par le biais de Notification In-App ou en fournissant un OTP (One Time Pin) SMS envoyé au numéro de telephone MaxiCash utilisé lors de l'inscription.
La passerelle MaxiCash permet au marchand de collecter des paiements sur son compte MaxiCash en utilisant plusieurs canaux de paiement tels que les cartes de crédit, MaxiCash, Paypal, Mobile Money et Mobile Banking.
L'intégration à la passerelle MaxiCash peut se faire avec :
Postez le formulaire avec les attributs ci-dessous en utilisant ces urls :
Voici comment utiliser chaque paramètre :
Doit toujours être réglé sur MaxiCash, sauf indication contraire. Ce paramètre est obligatoire
Montant attendu pour la transaction. Ce montant sera rechargé sur votre compte MaxiCash. Ce paramètre est obligatoire. Veuillez noter que les montants sont attendus en centimes. Cela signifie que si vous souhaitez effectuer un paiement de 1 USD, vous devez envoyer un montant de 100.
Devise de la transaction. Ce paramètre est obligatoire. Il existe généralement 4 valeurs : USD, ZAR, maxiRand ou maxiDollar.
Numéro de téléphone du payeur. Ce paramètre est facultatif. Généralement utilisé pour les méthodes de paiement par Mobile Money
Adresse e-mail du payeur. Ce paramètre est facultatif. Généralement utilisé pour les paiements par carte de crédit
Le Merchant ID authentifie le marchand sur la plateforme. Ce paramètre est obligatoire.
Le mot de passe du marchand fonctionne conjointement avec le MerchantID pour authentifier le marchand sur la plateforme. Ce paramètre est obligatoire.
Permet de spécifier une langue sur la passerelle.This parameter is optional. Actuellement, uniquement l'anglais (en) et le Français (fr) sont pris en charge. S'il n'est pas spécifié, le système utilise par défaut l'anglais.
Il s'agit d'une référence de transaction utilisée par le marchand. Ce paramètre est obligatoire.
Il s'agit de la page Web du marchand vers laquelle le payeur sera redirigé lorsque son paiement aura abouti. Ce paramètre est obligatoire. La passerelle MaxiCash ajoutera quelques paramètres de QueryString décrits ci-dessous.
Il s'agit de la page Web du marchand vers laquelle le payeur sera redirigé s'il décide d'annuler le paiement. Ce paramètre est facultatif. La passerelle MaxiCash ajoutera quelques paramètres de QueryString décrits ci-dessous. Si ce paramètre n'est pas spécifié, MaxiCash utilisera par défaut le paramètre declineurl.
Il s'agit de la page Web du commerçant vers laquelle le payeur sera redirigé en cas d'échec du paiement. MaxiCash utilise également ce paramètre cancelurl par défaut dans le cas où la page Web du marchand n'est pas spécifiée. Ce paramètre est obligatoire. La passerelle MaxiCash ajoutera quelques paramètres de QueryString décrits ci-dessous.
Ce paramètre est utilisé pour informer le site web marchand de l'état de la transaction avant que le payeur ne soit redirigé vers le accepturl, declineurl or failureurl Ce paramètre est facultatif mais recommandé. La passerelle MaxiCash ajoutera quelques paramètres de QueryString décrits ci-dessous.
<form action="https://api.maxicashapp.com/PayEntryPost" method="POST"> <input type="hidden" name="PayType" value="MaxiCash"> <input type="hidden" name="Amount" value="{TOTAL_AMOUNT}"> <input type="hidden" name="Currency" value="MaxiDollar"> <input type="hidden" name="Telephone" value="{MAXICASH_TELEPHONE_NO}"> <input type="hidden" name="Email" value="{MAXICASH_EMAIL}"> <input type="hidden" name="MerchantID" value="{YOUR_MERCHANT_ID}"> <input type="hidden" name="MerchantPassword" value="{YOUR_MERCHANT_PASSWORD}"> <input type="hidden" name="Language" value="En"> <input type="hidden" name="Reference" value="{REFERENCE_OF_TRANSACTION}"> <input type="hidden" name="accepturl" value="{SUCCESS_URL}"> <input type="hidden" name="cancelurl" value="{CANCEL_URL}"> <input type="hidden" name="declineurl" value="{FAILURE_URL}"> <input type="hidden" name="notifyurl" value="{NOTIFY_URL}"> </form>
Postez le formulaire avec les attributs ci-dessous en utilisant ces urls :
Attacher une requête à l'URL avec un requête Json pour l'attribut Data
https://api.maxicashapp.com/payentry?data={PayType:"MaxiCash",Amount:"{TOTAL_AMOUNT}",Currency:"maxiDollar",Telephone:"{MAXICASH_TELEPHONE_NO}",MerchantID:"{YOUR_MERCHANT_ID}",MerchantPassword:"{YOUR_MERCHANT_PASSWORD}",Language:"fr",Reference:"{REFERENCE_OF_TRANSACTION}",Accepturl:"{SUCCESS_URL}",Cancelurl:"{CANCEL_URL}",Declineurl:"{FAILURE_URL}",NotifyURL:"{NOTIFY_URL}"}
Envoyez une requête API en utilisant ces urls :
Étape 1This payment method is perfect for Merchant wishing to integrate to the gateway using REST architecture and is done in two steps
La méthode PayEntryWeb est utilisée pour effectuer un paiement. La méthode reçoit la transaction paytype, l'identifiant du marchand, le mot de passe du marchand, le montant, la devise du paiement, le numéro de téléphone MaxiCash du payeur, la langue, la référence, l'url de réussite, l'url d'annulation et l'url de notification. La méthode renvoie un LogID. Veuillez noter que les montants des paiements doivent être envoyés en centimes.
Cette méthode est utilisée pour être redirigé vers la passerelle. La méthode reçoit un LogID.
{ "PayType": "MaxiCash", "MerchantID": "{YOUR_MERCHANT_ID}", "MerchantPassword": "{YOUR_MERCHANT_PASSWORD}", "Amount": "1000", //please note that the amounts must be sent in Cents "Currency": "maxiDollar", //values can be “maxiDollar” or “maxiRand” "Telephone": "{MAXICASH_TELEPHONE_NO}", "Language": "en", //en or fr "Reference": "{REFERENCE_OF_TRANSACTION}", "SuccessURL": "{SUCCESS_URL}", "FailureURL": "{FAILURE_URL}", "CancelURL": "{CANCEL_URL}", "NotifyURL": "{NOTIFY_URL}" }
{ "SessionToken": null, "ResponseStatus": "success", "ResponseError": "", "ResponseData": "123456", "ResponseDesc": "LogID", "TransactionID": "sample string 6", "LogID": "123456", "Reference": null }
https://api-testbed.maxicashapp.com/payentryweb?logid=123456
Postez le formulaire avec les attributs ci-dessous en utilisant ces urls :
Attacher une requête à l'URL avec un requête Json pour l'attribut Data
Une fois que vous vous serez inscrit en tant que marchand ONG, vous recevrez un script Donate with MaxiCash Button à placer sur votre site web.
Exemple de code/lien pour le bouton de donation
<a id="mxc00"><script async src="https://api-testbed.maxicashapp.com/mxcashbtn.js"></script> </a>
Code de donation directe
https://api.maxicashapp.com/donationentry?data={MerchantID:"{YOUR_MERCHANT_ID}",Language:"fr"}
L'API MaxiCash permet au marchand de recevoir des paiements sur son compte MaxiCash de la part d'un utilisateur MaxiCash.
L'intégration à l'API MaxiCash peut se faire avec l'une de ces options :
Ce mode de paiement est parfait pour l'intégration d'une application mobile et se fait en deux étapes
Pour intégrer des applications mobiles, vous devrez utiliser la méthode PayLaterSynch pour commencer et la méthode CompletePayLater pour finaliser le paiement. Lorsque le PayLaterSynch est réussi, l'utilisateur reçoit par SMS un code PIN de transaction qu'il devra vous communiquer pour finaliser le paiement
La méthode PayLaterSynch est utilisée pour initier un paiement pour les applications mobiles. Cette méthode reçoit le montant de la transaction, la devise du paiement et le numéro de téléphone MaxiCash du payeur. La méthode renvoie un message de confirmation indiquant si l'appel a réussi ou non et un ID de paiement. Veuillez noter que les montants des paiements doivent être envoyés en centimes.
Cette méthode vous permet d'effectuer un paiement pour une application mobile. La méthode reçoit un identifiant de paiement et un code PIN et renvoie une confirmation de la réussite ou de l'échec du paiement.
var PmtID = ""; function CallPayLaterSynch() { var a = new Object(); a.Amount = 1000; //please note that the amounts must be sent in Cents a.Currency = 'maxiDollar'; //values can be “maxiDollar” or “maxiRand” a.Telephone = '{MAXICASH_TELEPHONE_NO}'; a.MerchantID = '{YOUR_MERCHANT_ID}'; a.MerchantPassword = '{YOUR_MERCHANT_PASSWORD}'; a.Language = 'en'; //en or fr a.Reference = '{REFERENCE_OF_TRANSACTION}'; var payloadString = ""; payloadString = JSON.stringify(a); payloadString = payloadString.replace(/\"/g, '\\"'); var vURL = "https://api-testbed.maxicashapp.com/Merchant/api.asmx/PayLaterSynch"; $.ajax({ type: "POST", url: vURL, data: '{strData: "' + payloadString + '" }', contentType: "application/json; charset=utf-8", success: function(data) { var parsedResponse = typeof data.d == "string" ? eval("(" + data.d + ")") : data.d; if (parsedResponse[1] === "Success") { alert("An SMS has been sent to your MaxiCash number to finalize the payment"); PmtID = parsedResponse[3]; } else { alert("An error has occured: " + parsedResponse[2]); } }, failure: function(e, textStatus, errorThrown) { alert("An error has occured: " + textStatus); } }); }
function CallValidatePayment(pin, PmtID) { var a = new Object(); a.PaymentID = PmtID; //Received from PayLaterSynch a.PIN = pin; //Received from the User a.MerchantID = '{YOUR_MERCHANT_ID}'; a.MerchantPassword = '{YOUR_MERCHANT_PASSWORD}'; a.Language = 'en'; //en or fr var payloadString = ""; payloadString = JSON.stringify(a); payloadString = payloadString.replace(/\"/g, '\\"'); var vURL = "https://api-testbed.maxicashapp.com/Merchant/api.asmx/CompletePayLater"; $.ajax({ type: "POST", url: vURL, data: '{strData: "' + payloadString + '" }', contentType: "application/json; charset=utf-8", success: function(data) { var parsedResponse = typeof data.d == "string" ? eval("(" + data.d + ")") : data.d; if (parsedResponse[1] === "Success") { alert("Your payment has been finalized"); } else { alert("An error has occured: " + parsedResponse[2]); } }, failure: function(e, textStatus, errorThrown) { alert("An error has occured: " + textStatus); } }); }
Cette méthode est utilisée pour traiter un paiement MaxiCash synchrone à partir d'un site web. La méthode reçoit une devise, un montant, un numéro de téléphone (MaxiCash), un mode de paiement, une référence et la langue.
function CallPayNowSynch() { var a = new Object(); a.PayType = 'MaxiCash'; a.Amount = 1000; //please note that the amounts must be sent in Cents a.Currency = 'maxiDollar'; //values can be “maxiDollar” or “maxiRand” a.Telephone = '{MAXICASH_TELEPHONE_NO}'; a.MerchantID = '{YOUR_MERCHANT_ID}'; a.MerchantPassword = '{YOUR_MERCHANT_PASSWORD}'; a.Language = 'en'; //en or fr a.Reference = '{REFERENCE_OF_TRANSACTION}'; var payloadString = ""; payloadString = JSON.stringify(a); payloadString = payloadString.replace(/\"/g, '\\"'); var vURL = "https://api-testbed.maxicashapp.com/Merchant/api.asmx/PayNowSynch"; $.ajax({ type: "POST", url: vURL, data: '{strData: "' + payloadString + '" }', contentType: "application/json; charset=utf-8", success: function(data) { var parsedResponse = typeof data.d == "string" ? eval("(" + data.d + ")") : data.d; if (parsedResponse[1] === "Success") { alert("Your payment was successful"); } else { alert("An error has occured: " + parsedResponse[2]); } }, failure: function(e, textStatus, errorThrown) { alert("An error has occured: " + textStatus); } }); }
Cette méthode de paiement est parfaite pour les sites Web dotés d'interfaces personnalisées ne nécessitant pas un processus assynchronisé de 60 secondes et s'effectue en deux étapes
Si vous utilisez la méthode PayAsynch, vous devrez utiliser la méthode PayNowStatus pour vérifier si l'utilisateur a terminé sa transaction ou non. Veuillez fournir un écran approprié lorsque votre site Web vérifie le statut de la transaction.
Cette méthode est utilisée pour traiter un paiement MaxiCash assynchronisé à partir d'un site Web ou d'une application mobile. La méthode reçoit une devise, un montant, un numéro de téléphone (MaxiCash), un mode de paiement, une référence et la langue. La méthode renvoie un statut de réussite et un ID de paiement pour vous permettre de vérifier la progression de la transaction. Nous vous recommandons d'utiliser cette méthode uniquement si vous ne souhaitez pas utiliser la passerelle MaxiCash et si vous voulez afficher une interface personnalisée à vos clients. Veuillez noter que pour toutes les devises, à l'exception de 'FC', vous recevez les montants en centimes.
Cette méthode est utilisée pour vérifier le statut d'un paiement MaxiCash synchrone ou Pepele Mobile sur un site web. La méthode reçoit un mode de paiement, un ID de paiement et la langue (facultatif). La méthode renvoie l'URL de réussite ou d'échec du commerçant selon que l'utilisateur a réussi ou non le paiement.
var PmtID = ""; var PType = ""; function CallPayNowAsynch() { var a = new Object(); a.PayType = 'MaxiCash'; a.Amount = 1000; //please note that the amounts must be sent in Cents a.Currency = 'maxiDollar'; //values can be “maxiDollar” or “maxiRand” a.Telephone = '{MAXICASH_TELEPHONE_NO}'; a.MerchantID = '{YOUR_MERCHANT_ID}'; a.MerchantPassword = '{YOUR_MERCHANT_PASSWORD}'; a.Language = 'en'; //en or fr a.Reference = '{REFERENCE_OF_TRANSACTION}'; var payloadString = ""; payloadString = JSON.stringify(a); payloadString = payloadString.replace(/\"/g, '\\"'); var vURL = "https://api-testbed.maxicashapp.com/Merchant/api.asmx/PayNowAsynch"; $.ajax({ type: "POST", url: vURL, data: '{strData: "' + payloadString + '" }', contentType: "application/json; charset=utf-8", success: function(data) { var parsedResponse = typeof data.d == "string" ? eval("(" + data.d + ")") : data.d; if (parsedResponse[1] === "Success") { alert("Your payment was initialized. Please complete it on your Mobile device"); PmtID = parsedResponse[3]; PType = parsedResponse[6]; } else { alert("An error has occured: " + parsedResponse[2]); } }, failure: function(e, textStatus, errorThrown) { alert("An error has occured: " + textStatus); } }); }
function CallPayNowStatus(Pmt, PmtType) { var a = new Object(); a.PmtID = Pmt; a.PType = PmtType; a.MerchantID = '{YOUR_MERCHANT_ID}'; a.MerchantPassword = '{YOUR_MERCHANT_PASSWORD}'; a.Language = 'en'; //en or fr var payloadString = ""; payloadString = JSON.stringify(a); payloadString = payloadString.replace(/\"/g, '\\"'); var vURL = "https://api-testbed.maxicashapp.com/Merchant/api.asmx/CompletePayLater"; $.ajax({ type: "POST", url: vURL, data: '{strData: "' + payloadString + '" }', contentType: "application/json; charset=utf-8", success: function(data) { var parsedResponse = typeof data.d == "string" ? eval("(" + data.d + ")") : data.d; if (parsedResponse[1] === "Success") { //redirecting the user to the correct URL window.location.href = parsedResponse[4]; PmtID = parsedResponse[3]; } else { alert("An error has occured: " + parsedResponse[2]); } }, failure: function(e, textStatus, errorThrown) { alert("An error has occured: " + textStatus); } }); }
MaxiCash fournit des plugins d'eCommerce pour faciliter l'intégration à la plateforme. Vous trouverez ci-dessous la liste des plugins disponibles.
Veuillez nous contacter à info@maxicashapp.com pour obtenir la configuration de ces plugins sur votre site web.