BudPay

Popular Searches:
Accept Payment

Server to Server Momo Collection

The mobile money payment request API allows you to accept momo payment from your customer directly from your application or custom checkout.

  • Pass your secret key as the Bearer token in Authorization Header.

Momo Payment Providers

Endpoint: /momo/providers/{cur}
Method: GET

Header

Param Type Required? Decription
authorization string Yes Set value to Bearer SECRET_KEY
content-type string Yes Set value to application/json

Path Params

Param Type Required? Decription
currency string Yes Set value to checkout currency (only KES currently supported)

Sample Post KES

                            
                                curl https://api.budpay.com/api/s2s/v2/momo/providers/KES
                                -H "Authorization: Bearer YOUR_SECRET_KEY"
                                -H "Content-Type: application/json"
                                -X GET
                            
                        

Sample Post GHS

                            
                                curl https://api.budpay.com/api/s2s/v2/momo/providers/GHS
                                -H "Authorization: Bearer YOUR_SECRET_KEY"
                                -H "Content-Type: application/json"
                                -X GET
                            
                        

Sample Response KES

                            
                            {
                                "status": true,
                                "message": "Momo Collection Providers Fetched",
                                "banks": [
                                    "MPesa",
                                    "AirtelMoney",
                                    "T-Kash"
                                ]
                            }
                            
                        

Sample Response GHS

                            
                            {
                                "status": true,
                                "message": "Momo Collection Providers Fetched",
                                "banks": [
                                    "Airtel network",
                                    "Tigo network",
                                    "Vodafone network",
                                    "MTN network",
                                    "MasterCard",
                                    "Bank",
                                    "VISA"
                                ]
                            }
                            
                        

Momo Payment Request

Endpoint: /momo/payment_request
Method: POST

Header

Param Type Required? Decription
authorization string Yes Set value to Bearer SECRET_KEY
content-type string Yes Set value to application/json

Query Params

Param Type Required? Decription
amount string Yes Set value to payment amount. no decimal place allowed.
currency string Yes Set value to checkout currency (only KES currently supported)
bankName string Yes Set value to mobile money provider
phone string Yes Set value to payee's phone number
description string Yes Set value to payment details or purpose
reference string Yes Set value to your unique reference number
callbackUrl string Yes Set value to prefered url to get notified of payment status with key details to identify payment

Sample Post

                            
                                curl https://api.budpay.com/api/s2s/v2/momo/payment_request
                                -H "Authorization: Bearer YOUR_SECRET_KEY"
                                -H "Content-Type: application/json"
                                -d '{ "amount": "10", "bankName": "MPesa", "callbackUrl" :"http://your_callback_url", "currency" :"KES", "description": "Server to Server test", "phone": "25471xxxxxxx", "reference": "12536xxxxxxxx6350" }'
                                -X POST
                            
                        

Sample Response KES

                            
                            {
                                "success": true,
                                "detail": "MPESA STK sent. Enter your PIN to complete transaction",
                                "ResponseDescription": "Success. STK PUSH SENT",
                                "CustomerMessage": "1. GO TO 'LIPA NA MPESA' 2. SELECT 'PAY BILL' 3. ENTER BUSINESS NUMBER: 756756  4. ENTER ACCOUNT NUMBER: PR4571313_BUD INFRASTUCTURE LIMITED  5. ENTER AMOUNT:10 6. ENTER YOUR MPESA PIN AND PRESS OK"
                            }
                            
                        

Sample Response GHS

                            
                            {
                                "success": true,
                                "detail": "Request Sent",
                                "ResponseDescription": "Request successfully received for processing",
                                "CustomerMessage": "Kindly complete transaction on your phone"
                            }
                            
                        

Sample Momo Payment Callback

Endpoint: your_callback_url
Method: POST

Header

Param Type Required? Decription
content-type string Yes Set value to application/json

Sample Body

                            
                            {
                                "status": "success",
                                "event": "collection",
                                "channel": "momo",
                                "currency": "KES",
                                "amount": "10",
                                "fee": "1",
                                "requested_amount": "10",
                                "type": "transaction",
                                "reference": "BUD_16871757xxxxxxx57",
                                "phone": "25471xxxxxxx",
                                "PaymentGateway": "MPesa",
                                "MerchantRequestID": "BUD_16871757xxxxxxx57",
                                "CheckoutRequestID": "5ecd1799-c91b-xxxx-xxxx-xxxxxxxxd421",
                                "domain": "live",
                                "timestamp": "2023-06-19 12:05:00"
                            }