Send To Mobile
Introduction
The "Send To Mobile" feature enables users to send money to a mobile number by making an HTTP POST request to our API. This documentation provides details on how to send money to a mobile number and includes code examples in various programming languages.
Sending Money To Mobile
To send money to a mobile number, users need to make an HTTP POST request to the specified endpoint with the required parameters.
Endpoint
https://api.mypayd.app/api/v2/withdrawal
Authorization
Users need to include basic authentication credentials in the request headers.
The Token object
The request body should include the following parameters:
json
{
"account_id": "account123",
"phone_number": "+254799000088",
"amount": 100,
"narration": "Withdrawal request",
"callback_url": "https://example.com/callback",
"channel": "63902"
}
Network codes
There are different network codes for different mobile providers.
Safaricom - 63902
Airtel - 63903
Code Examples
Below are code examples in different programming languages demonstrating how to send money to a mobile number using HTTP POST requests.
- Curl
- Go
- Nodejs
- Python
- PHP
curl --location 'https://api.mypayd.app/api/v2/withdrawal' \
--data '{
"account_id": "sender123",
"channel": "63902"
"phone_number": "0712345678",
"amount": 500.0,
"narration": "Payment for services",
"callback_url": "https://example.com/mpesa-callback"
}
'
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.mypayd.app/api/v2/withdrawal
method := "POST"
payload := strings.NewReader(`{
"account_id": "sender123",
"channel": "63902"
"phone_number": "0712345678",
"amount": 500.0,
"narration": "Payment for services",
"callback_url": "https://example.com/mpesa-callback"
}
`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
var axios = require('axios');
var data = '{\n "account_id": "sender123",\n "phone_number": "0712345678",\n "amount": 500.0,\n "narration": "Payment for services",\n, "channel": "63902",\n "callback_url": "https://example.com/mpesa-callback"\n}\n';
var config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://api.mypayd.app/api/v2/withdrawal,
headers: { },
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
import requests
url = "https://api.mypayd.app/api/v2/withdrawal
payload = "{\n \"account_id\": \"sender123\",\n \"phone_number\": \"0712345678\",\n \"channel\": \"63902\",\n \"amount\": 500.0,\n \"narration\": \"Payment for services\",\n \"callback_url\": \"https://example.com/mpesa-callback\"\n}\n"
headers = {}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.mypayd.app/api/v2/withdrawal);
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setBody('{\n "account_id": "sender123",\n "phone_number": "0712345678",\n "channel": "63902",\n "amount": 500.0,\n "narration": "Payment for services",\n "callback_url": "https://example.com/mpesa-callback"\n}\n');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
Example of a successful response
{
"responseCode": "200",
"message": "Transaction successful",
"merchantRequestID": "merchant123",
"transactionReference": "trans123",
"paymentGateway": "paystack",
"checkoutRequestID": "checkout123",
"customerMessage": "Thank you for your payment"
}