cURL
curl --request POST \
--url https://api.clickpesa.com/third-parties/payments/preview-card-payment \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"amount": "<string>",
"currency": "USD",
"orderReference": "<string>",
"checksum": "<string>"
}
'import requests
url = "https://api.clickpesa.com/third-parties/payments/preview-card-payment"
payload = {
"amount": "<string>",
"currency": "USD",
"orderReference": "<string>",
"checksum": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
amount: '<string>',
currency: 'USD',
orderReference: '<string>',
checksum: '<string>'
})
};
fetch('https://api.clickpesa.com/third-parties/payments/preview-card-payment', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.clickpesa.com/third-parties/payments/preview-card-payment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amount' => '<string>',
'currency' => 'USD',
'orderReference' => '<string>',
'checksum' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.clickpesa.com/third-parties/payments/preview-card-payment"
payload := strings.NewReader("{\n \"amount\": \"<string>\",\n \"currency\": \"USD\",\n \"orderReference\": \"<string>\",\n \"checksum\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.clickpesa.com/third-parties/payments/preview-card-payment")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": \"<string>\",\n \"currency\": \"USD\",\n \"orderReference\": \"<string>\",\n \"checksum\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.clickpesa.com/third-parties/payments/preview-card-payment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": \"<string>\",\n \"currency\": \"USD\",\n \"orderReference\": \"<string>\",\n \"checksum\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"activeMethods": [
{
"name": "<string>",
"fee": 123,
"message": 123
}
]
}{
"message": "Invalid Order Reference, should only contain alphanumeric characters and cannot be blank"
}{
"message": "Unauthorized"
}{
"message": "Account has no payment collection methods"
}{
"message": "Order reference {Your reference} already used: Create a different reference"
}CARD
Preview Card Payment
This endpoint validates card payment details like Amount, Order Reference and verifies Method availability
POST
/
payments
/
preview-card-payment
cURL
curl --request POST \
--url https://api.clickpesa.com/third-parties/payments/preview-card-payment \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"amount": "<string>",
"currency": "USD",
"orderReference": "<string>",
"checksum": "<string>"
}
'import requests
url = "https://api.clickpesa.com/third-parties/payments/preview-card-payment"
payload = {
"amount": "<string>",
"currency": "USD",
"orderReference": "<string>",
"checksum": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
amount: '<string>',
currency: 'USD',
orderReference: '<string>',
checksum: '<string>'
})
};
fetch('https://api.clickpesa.com/third-parties/payments/preview-card-payment', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.clickpesa.com/third-parties/payments/preview-card-payment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amount' => '<string>',
'currency' => 'USD',
'orderReference' => '<string>',
'checksum' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.clickpesa.com/third-parties/payments/preview-card-payment"
payload := strings.NewReader("{\n \"amount\": \"<string>\",\n \"currency\": \"USD\",\n \"orderReference\": \"<string>\",\n \"checksum\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.clickpesa.com/third-parties/payments/preview-card-payment")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": \"<string>\",\n \"currency\": \"USD\",\n \"orderReference\": \"<string>\",\n \"checksum\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.clickpesa.com/third-parties/payments/preview-card-payment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": \"<string>\",\n \"currency\": \"USD\",\n \"orderReference\": \"<string>\",\n \"checksum\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"activeMethods": [
{
"name": "<string>",
"fee": 123,
"message": 123
}
]
}{
"message": "Invalid Order Reference, should only contain alphanumeric characters and cannot be blank"
}{
"message": "Unauthorized"
}{
"message": "Account has no payment collection methods"
}{
"message": "Order reference {Your reference} already used: Create a different reference"
}Authorizations
Authorization header containing the JWT access token returned from the generate token endpoint. The token already includes the Bearer prefix. Example: Authorization: Bearer eyJhbGciOi...
Body
application/json
Your payment amount
Available options:
USD Your unique Order reference
If enabled, this is the generated checksum of the payload. Refer to the documentation for more details.
Response
Preview Card response
Show child attributes
Show child attributes
⌘I

