Card Payments Request
Introduction
The Card Payments feature allows you to send money securely using debit or credit cards through our unified API. This documentation explains how to make card payments using an HTTP POST request and provides working examples in several programming languages.
https://api.mypayd.app/api/v3/payments
Authorization
Users need to include basic authentication credentials in the request headers.
Authorization: Basic <base64-encoded-username:password>
Content-Type: application/json
X-Payd-Merchant-ID: <your_merchant_id>
Request Body
This payload allows you to securely collect card-based payments using the Payd API. The request body must include the following structure:
{
"username": "amazing",
"email": "paydconsultants@gmail.com",
"amount": 101,
"phone_number": "0712345678",
"first_name": "amazing",
"last_name": "maverick",
"narration": "Payment for goods",
"currency": "KES",
"redirect_url": "https://payd-test.free.beeceptor.com",
"channel": "card",
"provider": "instasend"
}
Code Examples
Below are code examples in different programming languages demonstrating how to make card payments using HTTP POST requests.
- Curl
- Go
- Nodejs
- Python
- PHP
curl --location 'https://api.mypayd.app/api/v3/payments' \
--data-raw '{
"username": "amazing",
"email": "paydconsultants@gmail.com",
"amount": 101,
"phone_number": "0712432771",
"first_name": "amazing",
"last_name": "maverick",
"narration": "Payment for goods",
"currency": "KES",
"redirect_url": "https://payd-test.free.beeceptor.com",
"channel": "card",
"provider": "instasend"
}'
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.mypayd.app/api/v3/payments"
method := "POST"
payload := strings.NewReader(`curl --location 'https://api.mypayd.app/api/v3/payments' \
--data-raw '{
"username": "amazing",
"email": "paydconsultants@gmail.com",
"amount": 101,
"phone_number": "0712432771",
"first_name": "amazing",
"last_name": "maverick",
"narration": "Payment for goods",
"currency": "KES",
"redirect_url": "https://payd-test.free.beeceptor.com",
"channel": "card",
"provider": "instasend"
}'
)
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\"username\": \"paydconsultants\",\n\"email\": \"paydconsultant@gmail.com\",\n\"amount\": 101,\n\"phone_number\": \"0712432771\",\n\"first_name\": \"Amazing\",\n\"last_name\": \"Mavericks\",\n\"narration\": \"Payment for goods\",\n\"currency\": \"KES\",\n\"redirect_url\": \"https://payd-test.free.beeceptor.com\",\n\"channel\": \"card\",\n\"provider\": \"instasend\"\n}";
var config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://api.mypayd.app/api/v3/payments',
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/v3/payments"
payload = "{\n\"username\": \"paydconsultants\",\n\"email\": \"paydconsultant@gmail.com\",\n\"amount\": 101,\n\"phone_number\": \"0712432771\",\n\"first_name\": \"Amazing\",\n\"last_name\": \"Mavericks\",\n\"narration\": \"Payment for goods\",\n\"currency\": \"KES\",\n\"redirect_url\": \"https://payd-test.free.beeceptor.com\",\n\"channel\": \"card\",\n\"provider\": \"instasend\"\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/v3/payments');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setBody("{\n\"username\": \"paydconsultants\",\n\"email\": \"paydconsultant@gmail.com\",\n\"amount\": 101,\n\"phone_number\": \"0712432771\",\n\"first_name\": \"Amazing\",\n\"last_name\": \"Mavericks\",\n\"narration\": \"Payment for goods\",\n\"currency\": \"KES\",\n\"redirect_url\": \"https://payd-test.free.beeceptor.com\",\n\"channel\": \"card\",\n\"provider\": \"instasend\"\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
{
"status": "SUCCESS",
"transaction_reference": "VGC124316537eR",
"success": true,
"message": "Processed successfully",
"trackingId": "",
"reference": "",
"result": null
}
Conclusion
The card payments feature provides a convenient way for users to send money securely using their debit or credit cards. By following the instructions outlined in this documentation, users can easily integrate card payments into their applications or services.