Hub

Integration

Ce guide d’intégration décrit ce processus étape par étape:

1. Demander un paiement
2. (Optionnel) Côté client, authentifier la tentative de paiement
3. Côté BMI: traitement du paiement auprès des fournisseurs
4. Notification sur l'IPN
5. Récupération du statut du paiement

Ci-après en détail comment procéder à ces étapes.

Demander un paiement
L’objet de paymentRequest est utilisé pour représenter la demande de collecter un paiement auprès d’un client. Il conserve une trace des frais et des différentes tentatives de paiement tout au long du traitement.

Le paymentRequest doit être créée sur notre serveur avec certaines informations du client, la référence de l’achat et l'URL de notification du marchand.

Postman du PAYLoad
PAYLoad a transmettre à notre API pour traitement authentification de création du paymentRequest


curl --location --request POST 'https://rwbkrest.paysecurehub.com/api/airtime/hosted-checkout/pay' \
--header 'ApiKey: [REDACTED]' \
--header 'MerchantId: [REDACTED]' \
--header 'Content-Type: application/json' \
--data-raw '{
    "paymentCode": "021220251647",
    "amount": 100,
    "article_label": "Redevance Immobiliere",
    "return_url": "https://nom_de_domaine/ma_page_de_retour",
    "Url_Callback": "https://nom_de_domaine/end_point_notification_paiement/",
    "bill_to_forename": "Dosso",
    "bill_to_surname": "Menougba",
    "bill_to_phone": "0757411021",
    "bill_to_email": "dossmeno41@gmail.com",
    "bill_to_address_line1": "Angre Chateau Terrain Sotra",
    "bill_to_address_city": "Abidjan",
    "bill_to_address_state": "CIV",
    "bill_to_address_country": "CIV"
}'

            
Headers
ApiKey  string   requis
Votre clé API. Transmise par mail après création de votre identifiant marchand. Si vous n'y avez pas eut accès, veuillez contacter l'équipe d'assistance.

MerchantId  string   requis
Votre identifiant marchand. Ces informations sont disponibles dans votre tableau de bord. Si vous n'y avez pas accès, veuillez contacter l'équipe d'assistance.

Body
paymentCode  string   requis
Il s'agit d'un champ personnalisé que vous pouvez remplir avec n'importe quelle référence que vous avez de votre côté correspondant à cette requête de paiement. Il peut vous permettre d'établir une correspondance avec cette requête de paiement dans votre système. Ce champ est particulièrement utile pour les références d'achat, comme une commande passée par votre client.
NB : Cette données vous sera retourné dans le callback.

bill_to_forename  string   requis
Nom du tiers auprès duquel la collecte sera faite.

bill_to_surname  string   requis
Prenoms du tiers auprès duquel la collecte sera faite.

bill_to_phone  string   requis
Contact du tiers auprès duquel la collecte sera faite.

bill_to_email  string   requis
Adresse email du tiers auprès duquel la collecte sera faite.

bill_to_address_line1  string   requis
Adresse de localisation du tiers auprès duquel la collecte sera faite.

bill_to_address_city  string   requis
Ville du tiers auprès duquel la collecte sera faite.

bill_to_address_state  string   requis
Etat du tiers auprès duquel la collecte sera faite.

bill_to_address_country  string   requis
Code Pays du tiers auprès duquel la collecte sera faite.

article_label  string   requis
Designation de l'article à payer.

amount  number   requis
Montant que ce PaymentRequest doit collecter. Un entier positif représentant le montant à facturer dans la plus petite unité monétaire (par exemple, 100 pour facturer 100 FCFA, une devise à décimale zéro). A cela sera ajouté les frais de la plateforme en fonction du parametrage qui a été fait à savoir si c'est le client qui supportera les frais ou le marchand.

return_url  string   requis
URL de redirection du client vers une de vos page après avoir accompli toutes étapes du paiement.

Url_Callback  string   requis
URL callback sert à vous notifier de façon instantané toutes les transactions concernées par l'identifiant du marchand.

Reponse
  •  link  est le lien du hub de paiement vers lequel le client doit être redirigé pour faire son paiement.

{
    "link": "https://rwbkpay.paysecurehub.com/hosted-checkout/6ZW250102P1647179488/rb_iyU72210hoTbnI4114Gk0/MTczNTgzNjQzN3ZwZTY1UU1KSGRoamRkWWRXZnRJTlFnNTlZZDBVYVlBQUVXclVYZjNNUGd5ZHJ1/ax6-e6t35n",
    "merchantId": "ax6-e6t35n",
    "paymentCode": "021220251647",
    "BusinessName": "Immobilier Store",
    "payments": [],
    "createdAt": "2025-01-02T16:47:18.643Z",
    "updatedAt": "2025-01-02T16:47:18.643Z",
    "code": 200,
    "message": "success"
}

            

Notification sur l'IPN
Vous serez notifiez lorsque :
  • Valide le paiement
  • Le client annuler/abandonne le paiement
  • Mise à jour de paiement après verification d'un paiement déjà notifié en FAILED mais qui est passé en SUCCESSFUL

{
    "codePaiement":"021220251647",
    "referencePaiement":"B402409282227.000001",
    "montant":200,
    "benefice":0,
    "service_id":5,
    "moyenPaiement":"MasterCard"
    "numTel":"512345xxxxxx0008",
    "no_transation":"512345xxxxxx0008",
    "p_last_wallet_amount":500,
    "p_new_wallet_amount":700,
    "datePaiement":"2024-09-28",
    "HeurePaiement":"22:27:19",
    "code":200,
    "cleretour":"",
}

            

Recupérez le statut de la transaction
Nous vous mettons un endPoint pour recuperer le statut d'une transaction


curl --location --request POST 'https://rwbkrest.paysecurehub.com/api/airtime/status/transact' \
-header 'ApiKey: [REDACTED]' \
--header 'MerchantId: [REDACTED]' \
--header 'Content-Type: application/json' \
--data-raw '{
    "codePaiement":"100120250909"
}'

            
Headers
ApiKey  string   requis
Votre clé API. Transmise par mail après création de votre identifiant marchand. Si vous n'y avez pas eut accès, veuillez contacter l'équipe d'assistance.

MerchantId  string   requis
Votre identifiant marchand. Ces informations sont disponibles dans votre tableau de bord. Si vous n'y avez pas accès, veuillez contacter l'équipe d'assistance.

Body
codePaiement  string   requis
Il s'agit d'un champ personnalisé que vous pouvez remplir avec n'importe quelle référence que vous avez de votre côté correspondant à cette requête de paiement. Il peut vous permettre d'établir une correspondance avec cette requête de paiement dans votre système. Ce champ est particulièrement utile pour les références d'achat, comme une commande passée par votre client.

Reponse

{
    "pmId": "rb_rsDCdhB0rQhAnbGzm2QtH",
    "merchantId": "ax6-e6t35n",
    "BusinessName": "Immobilier Store",
    "providerId": "100120250909",
    "ipn_url": "https://nom_de_domaine/end_point_notification_paiement/",
    "createdAt": "2025-01-10T12:37:40",
    "payments": {
        "transactionId": "KJK250110P123740756J",
        "amount": 5,
        "fees": 5,
        "currency": "USD",
        "numTransaction": "0757411021",
        "serviceId": 11,
        "serviceName": "non defini",
        "state": "CANCEL",
        "nextAction": "",
        "method": "",
        "link": "",
        "error": "Transaction annulée par le client",
        "createdAt": "2025-01-10T12:37:58",
        "updatedAt": "2025-01-10T12:38:19"
    },
    "code": 500,
    "message": "transaction echouée"
}

            

Introduction Hub