Create Checkout Request
curl --request POST \
--url https://dev.waftpay.io/checkout/api/v1/request \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer": {
"first_name": "Amina",
"other_names": "Kariuki",
"email": "amina.kariuki@example.com",
"phone_number": "254733112244"
},
"timestamp": "2025-11-18T09:45:30.540Z",
"checkout_reference": "CHK623581942",
"payment_reference": "INV20478519",
"msisdn": "254711223344",
"country": "KEN",
"currency": "KES",
"amount": 1750,
"mode": "redirect",
"callback_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"success_redirect_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"fail_redirect_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"meta_data": {
"order_id": "ORDER-39182"
},
"extra_params": {
"language": "en",
"expiry": "2026-02-14 18:30:00",
"strict_amount": true
}
}
'import requests
url = "https://dev.waftpay.io/checkout/api/v1/request"
payload = {
"customer": {
"first_name": "Amina",
"other_names": "Kariuki",
"email": "amina.kariuki@example.com",
"phone_number": "254733112244"
},
"timestamp": "2025-11-18T09:45:30.540Z",
"checkout_reference": "CHK623581942",
"payment_reference": "INV20478519",
"msisdn": "254711223344",
"country": "KEN",
"currency": "KES",
"amount": 1750,
"mode": "redirect",
"callback_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"success_redirect_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"fail_redirect_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"meta_data": { "order_id": "ORDER-39182" },
"extra_params": {
"language": "en",
"expiry": "2026-02-14 18:30:00",
"strict_amount": True
}
}
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({
customer: {
first_name: 'Amina',
other_names: 'Kariuki',
email: 'amina.kariuki@example.com',
phone_number: '254733112244'
},
timestamp: '2025-11-18T09:45:30.540Z',
checkout_reference: 'CHK623581942',
payment_reference: 'INV20478519',
msisdn: '254711223344',
country: 'KEN',
currency: 'KES',
amount: 1750,
mode: 'redirect',
callback_url: 'https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1',
success_redirect_url: 'https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1',
fail_redirect_url: 'https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1',
meta_data: {order_id: 'ORDER-39182'},
extra_params: {language: 'en', expiry: '2026-02-14 18:30:00', strict_amount: true}
})
};
fetch('https://dev.waftpay.io/checkout/api/v1/request', 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://dev.waftpay.io/checkout/api/v1/request",
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([
'customer' => [
'first_name' => 'Amina',
'other_names' => 'Kariuki',
'email' => 'amina.kariuki@example.com',
'phone_number' => '254733112244'
],
'timestamp' => '2025-11-18T09:45:30.540Z',
'checkout_reference' => 'CHK623581942',
'payment_reference' => 'INV20478519',
'msisdn' => '254711223344',
'country' => 'KEN',
'currency' => 'KES',
'amount' => 1750,
'mode' => 'redirect',
'callback_url' => 'https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1',
'success_redirect_url' => 'https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1',
'fail_redirect_url' => 'https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1',
'meta_data' => [
'order_id' => 'ORDER-39182'
],
'extra_params' => [
'language' => 'en',
'expiry' => '2026-02-14 18:30:00',
'strict_amount' => true
]
]),
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://dev.waftpay.io/checkout/api/v1/request"
payload := strings.NewReader("{\n \"customer\": {\n \"first_name\": \"Amina\",\n \"other_names\": \"Kariuki\",\n \"email\": \"amina.kariuki@example.com\",\n \"phone_number\": \"254733112244\"\n },\n \"timestamp\": \"2025-11-18T09:45:30.540Z\",\n \"checkout_reference\": \"CHK623581942\",\n \"payment_reference\": \"INV20478519\",\n \"msisdn\": \"254711223344\",\n \"country\": \"KEN\",\n \"currency\": \"KES\",\n \"amount\": 1750,\n \"mode\": \"redirect\",\n \"callback_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"success_redirect_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"fail_redirect_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"meta_data\": {\n \"order_id\": \"ORDER-39182\"\n },\n \"extra_params\": {\n \"language\": \"en\",\n \"expiry\": \"2026-02-14 18:30:00\",\n \"strict_amount\": true\n }\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://dev.waftpay.io/checkout/api/v1/request")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer\": {\n \"first_name\": \"Amina\",\n \"other_names\": \"Kariuki\",\n \"email\": \"amina.kariuki@example.com\",\n \"phone_number\": \"254733112244\"\n },\n \"timestamp\": \"2025-11-18T09:45:30.540Z\",\n \"checkout_reference\": \"CHK623581942\",\n \"payment_reference\": \"INV20478519\",\n \"msisdn\": \"254711223344\",\n \"country\": \"KEN\",\n \"currency\": \"KES\",\n \"amount\": 1750,\n \"mode\": \"redirect\",\n \"callback_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"success_redirect_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"fail_redirect_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"meta_data\": {\n \"order_id\": \"ORDER-39182\"\n },\n \"extra_params\": {\n \"language\": \"en\",\n \"expiry\": \"2026-02-14 18:30:00\",\n \"strict_amount\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.waftpay.io/checkout/api/v1/request")
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 \"customer\": {\n \"first_name\": \"Amina\",\n \"other_names\": \"Kariuki\",\n \"email\": \"amina.kariuki@example.com\",\n \"phone_number\": \"254733112244\"\n },\n \"timestamp\": \"2025-11-18T09:45:30.540Z\",\n \"checkout_reference\": \"CHK623581942\",\n \"payment_reference\": \"INV20478519\",\n \"msisdn\": \"254711223344\",\n \"country\": \"KEN\",\n \"currency\": \"KES\",\n \"amount\": 1750,\n \"mode\": \"redirect\",\n \"callback_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"success_redirect_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"fail_redirect_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"meta_data\": {\n \"order_id\": \"ORDER-39182\"\n },\n \"extra_params\": {\n \"language\": \"en\",\n \"expiry\": \"2026-02-14 18:30:00\",\n \"strict_amount\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"code": "200",
"status": "SUCCESS",
"description": "Request accepted",
"data": {
"checkout_url": "https://waftpay.netlify.app/checkout/OTRkN2I2YTQtZTliZi00MDI0LTk2N2ItZGI1MTQ0NmU2NzY2",
"expires_at": "2026-03-02T14:08:41.921Z"
}
}{
"error": "<string>",
"message": "<string>",
"param": "<string>",
"request_id": "<string>"
}{
"code": "400.001.100",
"status": "REJECTED",
"description": "Invalid or expired token",
"data": {}
}Checkout
Create Checkout Request
Initiate a hosted checkout session and receive a checkout URL.
POST
/
checkout
/
api
/
v1
/
request
Create Checkout Request
curl --request POST \
--url https://dev.waftpay.io/checkout/api/v1/request \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer": {
"first_name": "Amina",
"other_names": "Kariuki",
"email": "amina.kariuki@example.com",
"phone_number": "254733112244"
},
"timestamp": "2025-11-18T09:45:30.540Z",
"checkout_reference": "CHK623581942",
"payment_reference": "INV20478519",
"msisdn": "254711223344",
"country": "KEN",
"currency": "KES",
"amount": 1750,
"mode": "redirect",
"callback_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"success_redirect_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"fail_redirect_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"meta_data": {
"order_id": "ORDER-39182"
},
"extra_params": {
"language": "en",
"expiry": "2026-02-14 18:30:00",
"strict_amount": true
}
}
'import requests
url = "https://dev.waftpay.io/checkout/api/v1/request"
payload = {
"customer": {
"first_name": "Amina",
"other_names": "Kariuki",
"email": "amina.kariuki@example.com",
"phone_number": "254733112244"
},
"timestamp": "2025-11-18T09:45:30.540Z",
"checkout_reference": "CHK623581942",
"payment_reference": "INV20478519",
"msisdn": "254711223344",
"country": "KEN",
"currency": "KES",
"amount": 1750,
"mode": "redirect",
"callback_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"success_redirect_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"fail_redirect_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"meta_data": { "order_id": "ORDER-39182" },
"extra_params": {
"language": "en",
"expiry": "2026-02-14 18:30:00",
"strict_amount": True
}
}
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({
customer: {
first_name: 'Amina',
other_names: 'Kariuki',
email: 'amina.kariuki@example.com',
phone_number: '254733112244'
},
timestamp: '2025-11-18T09:45:30.540Z',
checkout_reference: 'CHK623581942',
payment_reference: 'INV20478519',
msisdn: '254711223344',
country: 'KEN',
currency: 'KES',
amount: 1750,
mode: 'redirect',
callback_url: 'https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1',
success_redirect_url: 'https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1',
fail_redirect_url: 'https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1',
meta_data: {order_id: 'ORDER-39182'},
extra_params: {language: 'en', expiry: '2026-02-14 18:30:00', strict_amount: true}
})
};
fetch('https://dev.waftpay.io/checkout/api/v1/request', 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://dev.waftpay.io/checkout/api/v1/request",
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([
'customer' => [
'first_name' => 'Amina',
'other_names' => 'Kariuki',
'email' => 'amina.kariuki@example.com',
'phone_number' => '254733112244'
],
'timestamp' => '2025-11-18T09:45:30.540Z',
'checkout_reference' => 'CHK623581942',
'payment_reference' => 'INV20478519',
'msisdn' => '254711223344',
'country' => 'KEN',
'currency' => 'KES',
'amount' => 1750,
'mode' => 'redirect',
'callback_url' => 'https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1',
'success_redirect_url' => 'https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1',
'fail_redirect_url' => 'https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1',
'meta_data' => [
'order_id' => 'ORDER-39182'
],
'extra_params' => [
'language' => 'en',
'expiry' => '2026-02-14 18:30:00',
'strict_amount' => true
]
]),
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://dev.waftpay.io/checkout/api/v1/request"
payload := strings.NewReader("{\n \"customer\": {\n \"first_name\": \"Amina\",\n \"other_names\": \"Kariuki\",\n \"email\": \"amina.kariuki@example.com\",\n \"phone_number\": \"254733112244\"\n },\n \"timestamp\": \"2025-11-18T09:45:30.540Z\",\n \"checkout_reference\": \"CHK623581942\",\n \"payment_reference\": \"INV20478519\",\n \"msisdn\": \"254711223344\",\n \"country\": \"KEN\",\n \"currency\": \"KES\",\n \"amount\": 1750,\n \"mode\": \"redirect\",\n \"callback_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"success_redirect_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"fail_redirect_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"meta_data\": {\n \"order_id\": \"ORDER-39182\"\n },\n \"extra_params\": {\n \"language\": \"en\",\n \"expiry\": \"2026-02-14 18:30:00\",\n \"strict_amount\": true\n }\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://dev.waftpay.io/checkout/api/v1/request")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer\": {\n \"first_name\": \"Amina\",\n \"other_names\": \"Kariuki\",\n \"email\": \"amina.kariuki@example.com\",\n \"phone_number\": \"254733112244\"\n },\n \"timestamp\": \"2025-11-18T09:45:30.540Z\",\n \"checkout_reference\": \"CHK623581942\",\n \"payment_reference\": \"INV20478519\",\n \"msisdn\": \"254711223344\",\n \"country\": \"KEN\",\n \"currency\": \"KES\",\n \"amount\": 1750,\n \"mode\": \"redirect\",\n \"callback_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"success_redirect_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"fail_redirect_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"meta_data\": {\n \"order_id\": \"ORDER-39182\"\n },\n \"extra_params\": {\n \"language\": \"en\",\n \"expiry\": \"2026-02-14 18:30:00\",\n \"strict_amount\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.waftpay.io/checkout/api/v1/request")
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 \"customer\": {\n \"first_name\": \"Amina\",\n \"other_names\": \"Kariuki\",\n \"email\": \"amina.kariuki@example.com\",\n \"phone_number\": \"254733112244\"\n },\n \"timestamp\": \"2025-11-18T09:45:30.540Z\",\n \"checkout_reference\": \"CHK623581942\",\n \"payment_reference\": \"INV20478519\",\n \"msisdn\": \"254711223344\",\n \"country\": \"KEN\",\n \"currency\": \"KES\",\n \"amount\": 1750,\n \"mode\": \"redirect\",\n \"callback_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"success_redirect_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"fail_redirect_url\": \"https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1\",\n \"meta_data\": {\n \"order_id\": \"ORDER-39182\"\n },\n \"extra_params\": {\n \"language\": \"en\",\n \"expiry\": \"2026-02-14 18:30:00\",\n \"strict_amount\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"code": "200",
"status": "SUCCESS",
"description": "Request accepted",
"data": {
"checkout_url": "https://waftpay.netlify.app/checkout/OTRkN2I2YTQtZTliZi00MDI0LTk2N2ItZGI1MTQ0NmU2NzY2",
"expires_at": "2026-03-02T14:08:41.921Z"
}
}{
"error": "<string>",
"message": "<string>",
"param": "<string>",
"request_id": "<string>"
}{
"code": "400.001.100",
"status": "REJECTED",
"description": "Invalid or expired token",
"data": {}
}Overview
Use Checkout to collect a payment through a hosted page. Your account must have the Collections service enabled. For a full walkthrough, see the Checkout guide. Flow- Use
consumer_keyandconsumer_secretto generate a token in Get Authentication Token. - Cache the token and refresh only on expiry.
- Call Create Checkout Request with customer details, amount, and redirect URLs.
- Redirect the user to the returned
checkout_url(or render it in an iframe). - Receive the final result on your
callback_url(see Webhooks).
Authentication
Required headers| Header | Required | Notes |
|---|---|---|
Authorization | Yes | Bearer <token> |
Content-Type | Yes | application/json |
Example request
{
"customer": {
"first_name": "Amina",
"other_names": "Kariuki",
"email": "amina.kariuki@example.com",
"phone_number": "254733112244"
},
"timestamp": "2025-11-18T09:45:30.540Z",
"checkout_reference": "CHK623581942",
"payment_reference": "INV20478519",
"msisdn": "254711223344",
"country": "KEN",
"currency": "KES",
"amount": 1750.0,
"mode": "redirect",
"callback_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"success_redirect_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"fail_redirect_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"meta_data": {
"order_id": "ORDER-39182"
},
"extra_params": {
"language": "en",
"expiry": "2026-02-14 18:30:00",
"strict_amount": true
}
}
Example cURL
curl --request POST \
--url https://dev.waftpay.io/checkout/api/v1/request \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"customer": {
"first_name": "Amina",
"other_names": "Kariuki",
"email": "amina.kariuki@example.com",
"phone_number": "254733112244"
},
"timestamp": "2025-11-18T09:45:30.540Z",
"checkout_reference": "CHK623581942",
"payment_reference": "INV20478519",
"msisdn": "254711223344",
"country": "KEN",
"currency": "KES",
"amount": 1750,
"mode": "redirect",
"callback_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"success_redirect_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"fail_redirect_url": "https://webhook.site/aa2b85e4-1c13-4a9c-9b7e-3d7f3d91c9f1",
"meta_data": {
"order_id": "ORDER-39182"
},
"extra_params": {
"language": "en",
"expiry": "2026-02-14 18:30:00",
"strict_amount": true
}
}'
Example response
{
"code": "200",
"status": "SUCCESS",
"description": "Request accepted",
"data": {
"checkout_url": "https://waftpay.netlify.app/checkout/OTRkN2I2YTQtZTliZi00MDI0LTk2N2ItZGI1MTQ0NmU2NzY2",
"expires_at": "2026-03-02T14:08:41.921Z"
}
}
Example callback payload
{
"status": "SUCCESS",
"code": "102",
"description": "Transaction successfully processed",
"results": {
"transaction_reference": "CHK1769954123895429017",
"checkout_status": "FULLY_PAID",
"amount": 1750,
"payments": [
{
"status": "SUCCESS",
"result_code": "0",
"result_description": "The service request is processed successfully.",
"amount": 1750,
"account": "254733112244",
"total_charges": 140,
"total_amount": 1750,
"service_code": "SAF_COL_KE",
"external_reference": "Q8MN7RX4J2",
"payment_uuid": "197563911284320774",
"time_processed": 1769954132.447
}
],
"metadata": "{\"order_id\":\"ORDER-39182\"}"
}
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Show child attributes
Show child attributes
ISO 8601 timestamp for the request.
Client-generated unique checkout reference.
Your internal invoice or payment reference.
Payer phone number in MSISDN format (e.g., 2547XXXXXXXX).
ISO 3166-1 alpha-3 country code (e.g., KEN).
ISO 4217 currency code (e.g., KES).
Amount in major units (e.g., 1000 = 1000 KES).
Checkout mode.
Available options:
redirect URL for payment status callback notifications.
URL to redirect on successful payment.
URL to redirect on failed payment.
Arbitrary key-value data returned in the callback.
Show child attributes
Show child attributes
⌘I
