Withdrawal Requests
Introduction
The withdrawal requests feature allows users to withdraw money from their accounts using our platform's API. This documentation provides details on how to initiate withdrawal requests via HTTP POST requests and includes code examples in various programming languages.
Making Withdrawal Requests
To initiate a withdrawal request, 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.
Request Body (Token Object)
The request body should include the necessary parameters for the withdrawal request, such as the account ID, recipient's phone number, withdrawal amount, narration, callback URL, and channel.
{
"account_id": "4c0f6ad5-92bf-4fd1-ba93-8c89c9d23616",
"phone_number": "+254718686209",
"amount": 100,
"narration": "Withdrawal request",
"callback_url": "https://example.com/callback",
"channel": "63902"
}
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": "4c0f6ad5-92bf-4fd1-ba93-8c89c9d23616",
"phone_number": "+254718686209",
"amount": 100,
"narration": "Withdrawal request",
"callback_url": "https://example.com/callback",
"channel": "63902"
}
'
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": "4c0f6ad5-92bf-4fd1-ba93-8c89c9d23616",
"phone_number": "+254718686209",
"amount": 100,
"narration": "Withdrawal request",
"callback_url": "https://example.com/callback",
"channel": "63902"
}
`)
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": "4c0f6ad5-92bf-4fd1-ba93-8c89c9d23616",\n "phone_number": "+254718686209",\n "amount": 100,\n "narration": "Withdrawal request",\n "callback_url": "https://example.com/callback",\n "channel": "63902"\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\": \"4c0f6ad5-92bf-4fd1-ba93-8c89c9d23616\",\n \"phone_number\": \"+254718686209\",\n \"amount\": 100,\n \"narration\": \"Withdrawal request\",\n \"callback_url\": \"https://example.com/callback\",\n \"channel\": \"63902\"\n}\n"
headers = {}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
var axios = require('axios');
var data = '{\n <?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": "4c0f6ad5-92bf-4fd1-ba93-8c89c9d23616",\n "phone_number": "+254718686209",\n "amount": 100,\n "narration": "Withdrawal request",\n "callback_url": "https://example.com/callback",\n "channel": "63902"\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
{
"success": true,
"correlator_id": "12345abcd",
"message": "Payout processed successfully",
"status": "completed"
}
Conclusion
The withdrawal requests feature provides a convenient way for users to withdraw funds from their accounts securely. By following the instructions outlined in this documentation, users can easily integrate withdrawal requests into their applications or services.