Skip to content

Intégration complète Api

Cette methode d'intégration du paiement consiste a intégrer toutes les routes api à fin de faire le processus de paiment de bout en bout dans votre application.

Lien Swagger de nos api : https://api-pay.gobiworld.com/swagger/

Voici les étapes à suivre pour cette intégration:

Dans votre dashboard, vous avez les clés publiques et privées de votre boutique. La clé public est utilisée pour création d'une commande.

  • Create order :

Création de la commande

La route api appelée permet de créer une commande liée à une boutique. Elle nécessite la clé public propre à la boutique qui doit être renseignée dans le header de la requête. La clé à renseigner dependend du mode test ou live.

text
//Exemple
[
'X-STORE-PUBLIC-KEY'  => 'store-public-key'
]

Route :

text
    /gobipay/orders/

Method : POST

Body :

body de la requête
json
{
    "description": "string",
    "total": 0,
    "order_type": "string",
    "customer_fullname": "string",
    "customer_email": "user@example.com",
    "notified_for_partial_payment": true,
    "items": {},
    "success_redirect_url": "string",
    "failed_redirect_url": 'string",
    "cancel_redirection_url": "string",
    "minimum_payment_amount ": "string"
}
js
js
js
$request = array(
    'method' => 'POST',
    'body' => json_encode(
    array(
    'total' => '',
    'description' => '',
    'currency' => '',
    'customer_email' =>'' ,
    'customer_fullname' => '',
    'notified_for_partial_payment' => false,
    'order_type' => 'global',
    'items' => []
),
),
    'timeout' => '2500',
    'headers' => array(
    'Content-Type' => 'application/json',
    'X-STORE-PUBLIC-KEY' => '',
    'X-STORE-SECRET-KEY' => ''
),
);
js
AttributTypeDescriptionDefault value / ExRequired
itemsArrayObjet contenant les éléments de la commande du client. Vous avez le choix libre de rensigner les données que vous souhaitez dans l'objet items{} / (Ex: [{ price: '250', quantity: '2',name: 'produit' }])No
notified_for_partial_paymentBooleanIndique s'il s'agit d'un paiement partiel ou non pour la commandefalseNo
order_typeStringMettez 'item' si vous renseignez l'attribut items et 'global' si vous ne le renseignez pas.globalNo
customer_fullnameStringNom et prénom du clientEx : John DoeNo
customer_emailStringEmail du clientEx: johndoe@gmail.comNo
totalNumberMontant total de la commandeYes
success_redirect_urlStringVotre URL de redirection en cas d'un paiement effectué avec succèsNo
failed_redirect_urlStringVotre URL de redirection en cas d'un paiement échouéNo
cancel_redirection_urlStringVotre URL de redirection en cas d'un paiement abandonnéNo

Response:

Retour Api
json
{
  "description": null,
  "currency": "XOF",
  "mode": "test",
  "uuid": "764ade76-9d36-484d-9293-e16ce259ad51",
  "status": 0,
  "total_paid_by_client": 0,
  "customer_amount_due": 47800,
  "total_paid_to_merchand": null,
  "tax_type": "global",
  "is_partially_paid": false,
  "nb_partial_payments": 0,
  "customer_fullname": null,
  "customer_email": null,
  "store_slug": "st_411576036609",
}
  • Authorize platforms

Plateformes de la boutique

Cette route permet de recuprer la liste des plateformes de paiement qui sont autorisées par le propriétaire de la boutique. Cette route a besoin des clés api de la boutique. Les clés à renseigner dependent du mode test ou live Passer dans le header de la requête la clé pulbique de la boutique.

[ 'X-STORE-PUBLIC-KEY' => 'store-public-key' ]

Method : GET

Route :

text
  /gobipay/orders/get_store_authorized_plateforms/{store_slug}/
Response Api Authorize Platforms
  • STEP 1 : Init

Initialisation du paiement

Cette route api permet d'initialiser le paiement du client. Elle préccède trois étapes qui permet de finaliser un paiement. Elle retourne des informations utiles dont le slug de la transaction qui sera utilise dans le reste du processus de paiement.

Method : POST

Route :

text
    /gobipay/payment/init-transaction/

Body :

Objet de la requête
json
{
  "from_plateform_money": "string",
  "amount": 0,
  "extra_infos": {
    "customer_fullname": "string",
    "customer_email": "user@example.com",
    "order_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "merchant_type": "string"
  }
}
js
js
js
js
AttributInfoDefault value / ExempleRequired
from_plateform_moneyLa plateforme de paiement de la boutique selectionnée par le clientYes
amountLe montant de la commandeYes
extra_infosObjet contenant les informations retlatives au client et à la boutique. customer_fullname et customer_email sont optionnels{} / (Ex: [{ customer_fullname: 'Jonh Doe', customer_email: 'jonhdoe@gmail.com',order_uuid: 'fa85f64-5717-4562-b3fc-2c963f66afa6' }])No
merchant_typeLe type d'opération marchant effectuécollectionNo

Response :

Api Response
json
{
    "exchange_transaction": {
        "conversion_details": {
            "code_promo": null,
            "devise": {
                "from": "XOF",
                "to": "XOF"
            },
            "fees": {
                "from": {
                    "network_fees": 0,
                    "network_fees_detailled": {
                        "deposit": 0,
                        "withdraw": 0
                    },
                    "transaction_fees": 0
                },
                "to": {
                    "network_fees": 0,
                    "network_fees_detailled": {
                        "deposit": 0,
                        "withdraw": 0
                    },
                    "transaction_fees": 0
                }
            },
            "from_amount": 3335,
            "from_amount_with_fees": 3335,
            "tauxFromTo": 1.000166795675,
            "to_amount": 3332,
            "to_amount_with_fees": 3332
        },
        "created_at": "1725554141.0787604",
        "exchange_transactions_data": [],
        "from_amount": 3335,
        "from_amount_usd": 5.645213402819957,
        "from_amount_with_fees": 3335,
        "from_plateform_money": {
            "devise": {
                "name": "XOF"
            },
            "identifier": "MTN_BEN_XOF"
        },
        "from_plateform_money_id": 225,
        "invoice": null,
        "network_fees_usd": 0,
        "recipient_status": "recipient.empty",
        "service": "service.pay",
        "slug": "tr_592493300002933",
        "status": 0,
        "status_name": "pending",
        "tag": "tag.exchange",
        "timestamps": "1725554141.0705504",
        "to_amount": 3332,
        "to_amount_usd": 5.640135249833913,
        "to_amount_with_fees": 3332,
        "to_plateform_money": {
            "devise": {
                "name": "XOF"
            },
            "identifier": "MY_GOBI_XOF"
        },
        "to_plateform_money_id": 68,
        "transaction_fees_usd": 0,
        "txID": null,
        "update_at": "1725554143.6087124",
        "user_id": null
    },
    "from_plateform_money": {
        "business_fees": {
            "cagnotte": {
                "MY_GOBI_XOF": {
                    "devise": "XOF",
                    "fixe": 0,
                    "percent": 1.5
                },
                "default": {
                    "devise": "USD",
                    "fixe": 0,
                    "percent": 1.5
                }
            },
            "exchange": {
                "MOOV_BEN_XOF": {
                    "devise": "XOF",
                    "fixe": 75,
                    "percent": 0.25
                },
                "MTN_BEN_XOF": {
                    "devise": "XOF",
                    "fixe": 50,
                    "percent": 0.05
                },
                "default": {
                    "devise": "USD",
                    "fixe": 0.18,
                    "percent": 1
                }
            },
            "pay": {
                "default": {
                    "devise": "USD",
                    "fixe": 0,
                    "percent": 1.5
                }
            },
            "pay_me": {
                "default": {
                    "devise": "USD",
                    "fixe": 0,
                    "percent": 1.5
                }
            }
        },
        "country_from": [
            "BJ"
        ],
        "country_infos": {
            "indicative": "BJ",
            "indicative_tel": "+229"
        },
        "country_to": [
            "BJ"
        ],
        "description": "Mtn Bénin Mobile Money",
        "devise": {
            "name": "XOF"
        },
        "display_from": "MTN BEN",
        "display_to": "MTN BEN",
        "id": 225,
        "identifier": "MTN_BEN_XOF",
        "logo": "https://go-pub.s3.eu-west-3.amazonaws.com/gobichange/assets/mobile/MTN.png",
        "name": "MTN_BEN_XOF",
        "network": "MTN",
        "plateform": {
            "name": "GOBIMM",
            "type_system": {
                "name": "MOBILE_MONEY"
            }
        }
    },
    "local": true,
    "payload": {
        "fields": {
            "from_amount": 3335,
            "full_ussd_code": "*880*41*185082*3335#,motif,PIN",
            "gobi_mm_devise_code": "185082",
            "gobi_mm_slug": 1157,
            "motif": "1",
            "ussd_code": "*880*41*185082*3335#"
        },
        "local_api": null,
        "method": null,
        "url": null
    },
    "redirect": false
}
js
js
{}
js
{}
js
{}
  • STEP 2: Payin

Payin

Cette route est la deuxième étape dans le processus de paiement.

identifier : est le slug de la translation. Il est retourné par l'api à l'étape 1

Method : POST

Route :

text
/gobipay/payment/{identifier}/pay/
Payin

Body :

json
{}
js
js
{}
js
{}
js
{}
  • STEP 3 : Chek

Check

Cette route est la troisième étape dans le processus de paiement.

identifier : est le slug de la translation. Il est retourné par l'api à l'étape 1

Method : POST

Route :

text
      /gobipay/payment/{identifier}/check-transaction/

Body :

Request body
json
{}
js
js
{}
js
{}
js
{}
  • Verify Transaction status

Vérification transaction

Obtenez les détails de la transaction avec cette route. Elle prend en paramètre le slug de la transaction. Cette dernière est retoutnée par l'api à l'étape 1.

identifier : est le slug de la translation. Il est retourné par l'api à l'étape 1

Method : GET

Route :

text
    /gobipay/payment/{identifier}/transaction-details/

All right reserved