MOBILEMONEY

How to use MOBILEMONEY to submit a payin in Kenya.

Payin by MOBILEMONEY

Step 1: Get the "prepay_id" from the API response. Each transaction should create a unique prepay_id.

POST https://gateway-test.pagsmile.com/trade/create

This endpoint allows you to submit a payin by MOBILEMONEY in Kenya.

Headers

Name
Type
Description

Content-Type*

string

application/json; chartset=UTF-8

Authorization*

string

Basic Base($app_id:$security_key)

Request Body

Name
Type
Description

app_id*

string

created app's id at dashboard

- Max. 32 chars -

method*

string

Fixed value: MOBILEMONEY

out_trade_no*

string

ID given by the merchant in their system - Max. 64 chars -

notify_url*

string

Where Pagsmile will send notification to

timestamp*

string

yyyy-MM-dd HH:mm:ss - Max. 19 chars -

subject*

string

payment reason or item title

- Max. 128 chars -

order_amount*

string

payment amount - 10 ~ 50,000 KES-

order_currency*

string

Fixed value: KES

content

string

payment reason detail or item detail

- Max. 255 chars -

buyer_id*

string

merchant user's id

version*

string

Fixed value: 2.0

trade_type*

string

Fixed value: WEB

customer.email*

string

User's email

customer.phone*

string

User's phone

{
    "code": "10000",
    "msg": "Success",
    "out_trade_no": "out***300",
    "trade_no": "20240***34",
    "web_url": "https://checkout.pagsmile.com?prepay_id=UloyV0l3NFFyW***DTT0=-645a8F4c",
    "prepay_id": "UloyV0l3NFFyW***DTT0=-645a8F4c"
}

Example

curl --location --request POST 'https://gateway-test.pagsmile.com/trade/create' \
--header 'Authorization: Basic MTYyNTgyOTIxNDUzMTY2Mzg6UGFnc21pbGVfc2tfZDUwMWQ1ZGNkNTI5OGQ5N2MwNmUzYjI4YjA2OWZjZmY3NDU5ZjY2NzNiMjFjMTFlYTY3NDM5MDgzOTZkOTYxNQ==' \
--header 'Content-Type: application/json' \
--data-raw '{
    * "app_id": "1649***56",
    * "out_trade_no": "out***3300",
    * "order_currency": "KES",
    * "method": "MOBILEMONEY",
    * "order_amount": "100",
    * "subject": "pagsmile test ",
      "content": "pagsmile test ",
    * "trade_type": "WEB",
    * "timestamp": "2024-07-04 18:50:42",
    * "notify_url": "http://demo.gemini-tiger.cn/callback/success",
    * "buyer_id": "buyer52023",
    * "version": "2.0",
    * "customer" : {
    *     "email": "[email protected]",
    *     "phone": "254******000"
      }
}

Step 2: Initialize the SDK using setPublishableKey method by providing the necessary parameters.

Pagsmile.setPublishableKey({
        app_id: "166****044", //Use your own app_id taken from the dashboard. 
        public_key: "Pagsmile_sk_47****59728d70e9a", //Use your own key taken from the dashboard.
        env: "sandbox",
        region_code: "EAK",
        prepay_id:
          "UloyV0l3NFFyW***DTT0=-645a8F4c",
      })
        .then((clientInstance) => {
          console.log("successfully initiated!");
          document
            .getElementById("submit-pay")
            .addEventListener("click", function (e) {
              clientInstance
                .createOrder()
                .then((res) => {
                  console.log("res: ", res);
                })
                .catch((err) => {
                  console.log("Error: ", err);
                });
            });
        })
        .catch((err) => {
          console.log("Error: ", err);
        });

Step 3: Use createOrder method of clientInstance; the user may need to enter OTP, (SDK automatically triggers OTP prompt)

Step 4: Analyse the response

{
 status: "success",        // successfully created order
 query: true,              // use backend query for transaction status
 auth_type: "STK_PROMPT",  // user needs to confirm the transaction on mobile app
}

Note: 162************38 is pagsmile's test app id for sandbox, and MTYyNTgyOTIxNDUzMTY2Mzg6UGFnc21pbGVfc2tfZDUwMWQ1ZGNkNTI5OGQ5N2MwNmUzYjI4YjA2OWZjZmY3NDU5ZjY2NzNiMjFjMTFlYTY3NDM5MDgzOTZkOTYxNQ== is authorization token associated with the test app id.

Last updated

Was this helpful?