API Doc
Génération de formulaires

Formulaire d'acceptation de paiement

Description du schéma de fonctionnement.

Côté serveur Web du client, un formulaire de paiement est généré et envoyé à l'utilisateur pour soumission.

Après avoir soumis le formulaire, l'utilisateur est redirigé vers le traitement pour effectuer un paiement.

Une fois le paiement effectué, l'utilisateur revient soit à SUCCESS_URL, soit à FAIL_URL. Un GET vide est à son tour envoyé à STATUS_URL une demande à réception de laquelle vous devez demander l'état du paiement (request /api/einvoice/status Accounts - Vérification de l'état actuel du compte) en transmettant INVOICE_ID à partir du formulaire généré précédemment et, en fonction de la réponse reçue, prenez d'autres mesures.

Si vous devez accepter un paiement sans vous rendre sur le site de traitement, alors le formulaire doit être envoyé en tant que paramètres GET à la même adresse et ouvrir la page dans IFRAME sur le site Internet du commerçant. p>

<form action="https://acs.dpay.africa/acs" method="POST"> <input type="hidden" name="CLIENT_ID" value="numéro de caisse" /> <input type="hidden" name="SIGN" value="signature du formulaire" /> <input type="hidden" name="SIGN_ORDER" value="AMOUNT;CURRENCY;..." /> <input type="hidden" name="INVOICE_ID" value="numéro de commande" /> <input type="hidden" name="AMOUNT" value="100.00" /> <input type="hidden" name="ACCOUNT" value="123" /> <input type="hidden" name="CURRENCY" value="USD" /> <input type="hidden" name="PAYMENT_CURRENCY" value="visamaster.usd" /> <input type="hidden" name="DESCRIPTION" value="Some payment description" /> <input type="hidden" name="SUCCESS_URL" value="https://test.com/success/invoice_id" /> <input type="hidden" name="FAIL_URL" value="https://test.com/fail/invoice_id" /> <input type="hidden" name="STATUS_URL" value="https://test.com/status/invoice_id" /> </form>

Explication des champs (les champs marqués d'un astérisque sont obligatoires)

Champ Description
CLIENT_ID* Numéro de caissier de votre compte personnel
SIGN* Demander une signature
SIGN_ORDER* L'ordre de concaténation des champs lors de la génération d'une signature
INVOICE_ID* Numéro de compte dans le système comptable du magasin.
Les numéros de compte doivent être uniques (l'unicité est vérifiée) !!! Avec un seul numéro, vous ne pouvez accepter le paiement qu'une seule fois !!!
AMOUNT* Montant à radier
ACCOUNT ID utilisateur dans le système marchand (numéro de compte ou tout autre identifiant unique)
CURRENCY* Devise de facturation. Devises disponibles: UAH, USD, EUR, LTC, BTC, BCH, USDT
PAYMENT_CURRENCY Devise dans laquelle le paiement doit être accepté. Devises disponibles:
, CDF CONGO - afrimoney-congo.cdf
, GMD GAMBIA - afrimoney-gambia.gmd
, ZMW ZAMBIA - airtel-zambia.zmw
, XAF CAMEROON - airtel-cameroon.xaf
, UGX UGANDA - airtel-uganda.ugx
, MGA - airtel.mga
, CDF CONGO - airtel-congo.cdf
, TZS TANZANIA - airtel-tanzania.tzs
, USD CONGO - airtel-congo.usd
, RWF RWANDA - airtel-rwanda.rwf
, MWK MALAWI - airtel-malawi.mwk
, KES KENYA - airtel-kenya.kes
, GHS GHANA - airtel-ghana.ghs
, XAF CONGO-BRAZZAVILLE - airtel-congo-brazzaville.xaf
Virement bancaire, NGN - bank.ngn
Bitcoin, BTC - bitcoin
, BCH - bitcoin_cash
, LINK - link
, XOF BURKINA-FASO - coris-burkina-faso.xof
, ZAR SOUTH-AFRICA - eft-south-africa.zar
Ethereum, ETH - ethereum
, XOF SENEGAL - expresso-senegal.xof
FreeMoney, XOF SENEGAL - free_money-senegal.xof
, TZS TANZANIA - halotel-tanzania.tzs
, INR - imps.inr
Litecoin, LTC - litecoin
Monero, XMR - monero
MOOV, XOF BURKINA-FASO - moov-burkina-faso.xof
MOOV, XOF BENIN - moov-benin.xof
MOOV, XOF MALI - moov-mali.xof
MOOV, XOF TOGO - moov-togo.xof
MOOV, XOF CI - moov-ci.xof
, CDF CONGO - mpesa-congo.cdf
, USD CONGO - mpesa-congo.usd
, TZS TANZANIA - mpesa-tanzania.tzs
, KES KENYA - mpesa-kenya.kes
MTN, UGX UGANDA - mtn-uganda.ugx
MTN, XOF BENIN - mtn-benin.xof
MTN, RWF RWANDA - mtn-rwanda.rwf
MTN, XOF CI - mtn-ci.xof
MTN, GHS GHANA - mtn-ghana.ghs
MTN, XOF TOGO - mtn-togo.xof
MTN, XAF CAMEROON - mtn-cameroon.xaf
MTN, GNF GUINEA - mtn-guinea.gnf
MTN, ZMW ZAMBIA - mtn-zambia.zmw
, MGA - mvola.mga
, NGN - opay.ngn
Orange Money, XOF TOGO - orange_money-togo.xof
Orange Money, XOF MALI - orange_money-mali.xof
Orange Money, XOF BURKINA-FASO - orange_money-burkina-faso.xof
Orange Money, XOF SENEGAL - orange_money-senegal.xof
Orange Money, GNF GUINEA - orange_money-guinea.gnf
Orange Money, SLE SIERRA-LEONE - orange_money-sierra-leone.sle
Orange Money, CDF CONGO - orange_money-congo.cdf
Orange Money, RWF RWANDA - orange_money-rwanda.rwf
Orange Money, USD CONGO - orange_money-congo.usd
Orange Money, XAF CAMEROON - orange_money-cameroon.xaf
Orange Money, XOF CI - orange_money-ci.xof
Orange Money, MGA - orange_money.mga
, NGN - palmpay.ngn
, INR - paytm.inr
, INR - phonepe.inr
QMoney, GMD GAMBIA - qmoney-gambia.gmd
SEPA, EUR - sepa.eur
T-Money, XOF TOGO - tmoney.xof
, KES KENYA - tcash-kenya.kes
Tether ERC20, USDT ERC20 - usdt_erc20
Tether TRC20, USDT TRC20 - usdt_trc20
, TZS TANZANIA - tigo-tanzania.tzs
, GHS GHANA - tigo-ghana.ghs
, MWK MALAWI - tnm-malawi.mwk
Tron, TRX - tron
, INR - upi.inr
, USDC TRC20 - usdc_trc20
, MGA - vanilla_pay.mga
, NGN - verve.ngn
Visa/Master, UAH - visamaster.uah
Visa/Master, NGN - visamaster.ngn
Visa/Master, EUR - visamaster.eur
Visa/Master, USD - visamaster.usd
, TZS TANZANIA - vodafone-tanzania.tzs
, GHS GHANA - vodafone-ghana.ghs
, CDF CONGO - vodafone-congo.cdf
Wave, GMD GAMBIA - wave-gambia.gmd
Wave, XOF CI - wave-ci.xof
Wave, XOF SENEGAL - wave-senegal.xof
, XOF SENEGAL - wiz_all-senegal.xof
, ZMW ZAMBIA - zamtel-zambia.zmw
, AFN - cash_terminal.afn
, NGN - cash_terminal.ngn
DESCRIPTION Description du compte
SUCCESS_URL* URL vers laquelle l'utilisateur sera redirigé après un paiement réussi
FAIL_URL* URL vers laquelle l'utilisateur sera redirigé après un paiement infructueux
STATUS_URL* URL vers laquelle un callback sera envoyé lorsque le compte passera au statut final. Une requête GET vide est envoyée, à réception de laquelle le commerçant doit demander l'état du compte via l'API et prendre une décision sur la base des données reçues

Lors de la soumission d'une demande, l'un des champs CURRENCY ou PAYMENT_CURRENCY est obligatoire. Si deux champs sont renseignés, la priorité est donnée à PAYMENT_CURRENCY et le champ CURRENCY est ignoré.

Un exemple de formation d'une signature en PHP.

$clientID = 123; $secret = "qwertyuiop123456"; $data = [ "CLIENT_ID" => $clientID, "INVOICE_ID" => "1", "AMOUNT" => "100", "CURRENCY" => "USD", "PAYMENT_CURRENCY" => "visamaster.usd", "DESCRIPTION" => "Test payment", "SUCCESS_URL" => "https://test.com/success/1", "FAIL_URL" => "https://test.com/fail/1", "STATUS_URL" => "https://test.com/status/1" ]; $sign = base64_encode(md5($secret . base64_encode(sha1(implode("", $data), true)) . $secret, true)); $data["SIGN_ORDER"] = implode(";", array_keys($data)); $data["SIGN"] = $sign;