Create Payment Links
curl --request POST \
--url https://checkout-api-service.epayclub.com/checkout/links/create \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"Name": "<string>",
"Description": "<string>",
"PaymentType": "<string>",
"Currency": "<string>",
"AuthOption": "<string>",
"Amount": "<string>",
"Mobile": "<string>",
"BackgroundImage": "<string>",
"Website": "<string>",
"Limit": "<string>"
}
'import requests
url = "https://checkout-api-service.epayclub.com/checkout/links/create"
payload = {
"Name": "<string>",
"Description": "<string>",
"PaymentType": "<string>",
"Currency": "<string>",
"AuthOption": "<string>",
"Amount": "<string>",
"Mobile": "<string>",
"BackgroundImage": "<string>",
"Website": "<string>",
"Limit": "<string>"
}
headers = {
"api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
Name: '<string>',
Description: '<string>',
PaymentType: '<string>',
Currency: '<string>',
AuthOption: '<string>',
Amount: '<string>',
Mobile: '<string>',
BackgroundImage: '<string>',
Website: '<string>',
Limit: '<string>'
})
};
fetch('https://checkout-api-service.epayclub.com/checkout/links/create', 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://checkout-api-service.epayclub.com/checkout/links/create",
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([
'Name' => '<string>',
'Description' => '<string>',
'PaymentType' => '<string>',
'Currency' => '<string>',
'AuthOption' => '<string>',
'Amount' => '<string>',
'Mobile' => '<string>',
'BackgroundImage' => '<string>',
'Website' => '<string>',
'Limit' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api-key: <api-key>"
],
]);
$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://checkout-api-service.epayclub.com/checkout/links/create"
payload := strings.NewReader("{\n \"Name\": \"<string>\",\n \"Description\": \"<string>\",\n \"PaymentType\": \"<string>\",\n \"Currency\": \"<string>\",\n \"AuthOption\": \"<string>\",\n \"Amount\": \"<string>\",\n \"Mobile\": \"<string>\",\n \"BackgroundImage\": \"<string>\",\n \"Website\": \"<string>\",\n \"Limit\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api-key", "<api-key>")
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://checkout-api-service.epayclub.com/checkout/links/create")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"Name\": \"<string>\",\n \"Description\": \"<string>\",\n \"PaymentType\": \"<string>\",\n \"Currency\": \"<string>\",\n \"AuthOption\": \"<string>\",\n \"Amount\": \"<string>\",\n \"Mobile\": \"<string>\",\n \"BackgroundImage\": \"<string>\",\n \"Website\": \"<string>\",\n \"Limit\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://checkout-api-service.epayclub.com/checkout/links/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"Name\": \"<string>\",\n \"Description\": \"<string>\",\n \"PaymentType\": \"<string>\",\n \"Currency\": \"<string>\",\n \"AuthOption\": \"<string>\",\n \"Amount\": \"<string>\",\n \"Mobile\": \"<string>\",\n \"BackgroundImage\": \"<string>\",\n \"Website\": \"<string>\",\n \"Limit\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"paymentLink": {
"id": 133,
"name": "Checkout TestAB",
"paymentType": null,
"logo": "https://merchant-api-service.devepayclub.com/subsidiary/dashboard/file/epayclub-compliance-images/download?fileId=",
"amount": null,
"dateCreated": "2025-04-15T00:16:33.984405",
"reference": "vxwHip7xXm4xtPUtg0ZzDv$0noEby6MIPxG74O9nm4v3b1tby9mnErxfSOY_AZ0412",
"createdBy": null,
"creatorEmail": null,
"isActive": true,
"currency": "USD",
"limit": 1,
"paymentLinkUrl": "https://payment-link.devepayclub.com/vxwHip7xXm4xtPUtg0ZzDv$0noEby6MIPxG74O9nm4v3b1tby9mnErxfSOY_AZ0412",
"appEnvironmentId": 1,
"paymentLinkType": "Single Charge",
"paymentLinkCode": "SC",
"description": "A Demo to understand how payment links work."
},
"subsidiary": {
"id": 1,
"name": "Merchant Epayclub",
"country": "NG",
"supportEmail": "merchant@epayclub.com",
"customization": null
}
},
"status": "success",
"statusCode": "00",
"message": "Payment details fetched successfully"
}
{
"status": "failed",
"statusCode": "VAL400",
"message": "The Name field is required."
}
Payment Links
Create Payment Links
Create a payment link for your customer.
POST
/
checkout
/
links
/
create
Create Payment Links
curl --request POST \
--url https://checkout-api-service.epayclub.com/checkout/links/create \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"Name": "<string>",
"Description": "<string>",
"PaymentType": "<string>",
"Currency": "<string>",
"AuthOption": "<string>",
"Amount": "<string>",
"Mobile": "<string>",
"BackgroundImage": "<string>",
"Website": "<string>",
"Limit": "<string>"
}
'import requests
url = "https://checkout-api-service.epayclub.com/checkout/links/create"
payload = {
"Name": "<string>",
"Description": "<string>",
"PaymentType": "<string>",
"Currency": "<string>",
"AuthOption": "<string>",
"Amount": "<string>",
"Mobile": "<string>",
"BackgroundImage": "<string>",
"Website": "<string>",
"Limit": "<string>"
}
headers = {
"api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
Name: '<string>',
Description: '<string>',
PaymentType: '<string>',
Currency: '<string>',
AuthOption: '<string>',
Amount: '<string>',
Mobile: '<string>',
BackgroundImage: '<string>',
Website: '<string>',
Limit: '<string>'
})
};
fetch('https://checkout-api-service.epayclub.com/checkout/links/create', 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://checkout-api-service.epayclub.com/checkout/links/create",
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([
'Name' => '<string>',
'Description' => '<string>',
'PaymentType' => '<string>',
'Currency' => '<string>',
'AuthOption' => '<string>',
'Amount' => '<string>',
'Mobile' => '<string>',
'BackgroundImage' => '<string>',
'Website' => '<string>',
'Limit' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api-key: <api-key>"
],
]);
$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://checkout-api-service.epayclub.com/checkout/links/create"
payload := strings.NewReader("{\n \"Name\": \"<string>\",\n \"Description\": \"<string>\",\n \"PaymentType\": \"<string>\",\n \"Currency\": \"<string>\",\n \"AuthOption\": \"<string>\",\n \"Amount\": \"<string>\",\n \"Mobile\": \"<string>\",\n \"BackgroundImage\": \"<string>\",\n \"Website\": \"<string>\",\n \"Limit\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api-key", "<api-key>")
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://checkout-api-service.epayclub.com/checkout/links/create")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"Name\": \"<string>\",\n \"Description\": \"<string>\",\n \"PaymentType\": \"<string>\",\n \"Currency\": \"<string>\",\n \"AuthOption\": \"<string>\",\n \"Amount\": \"<string>\",\n \"Mobile\": \"<string>\",\n \"BackgroundImage\": \"<string>\",\n \"Website\": \"<string>\",\n \"Limit\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://checkout-api-service.epayclub.com/checkout/links/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"Name\": \"<string>\",\n \"Description\": \"<string>\",\n \"PaymentType\": \"<string>\",\n \"Currency\": \"<string>\",\n \"AuthOption\": \"<string>\",\n \"Amount\": \"<string>\",\n \"Mobile\": \"<string>\",\n \"BackgroundImage\": \"<string>\",\n \"Website\": \"<string>\",\n \"Limit\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"paymentLink": {
"id": 133,
"name": "Checkout TestAB",
"paymentType": null,
"logo": "https://merchant-api-service.devepayclub.com/subsidiary/dashboard/file/epayclub-compliance-images/download?fileId=",
"amount": null,
"dateCreated": "2025-04-15T00:16:33.984405",
"reference": "vxwHip7xXm4xtPUtg0ZzDv$0noEby6MIPxG74O9nm4v3b1tby9mnErxfSOY_AZ0412",
"createdBy": null,
"creatorEmail": null,
"isActive": true,
"currency": "USD",
"limit": 1,
"paymentLinkUrl": "https://payment-link.devepayclub.com/vxwHip7xXm4xtPUtg0ZzDv$0noEby6MIPxG74O9nm4v3b1tby9mnErxfSOY_AZ0412",
"appEnvironmentId": 1,
"paymentLinkType": "Single Charge",
"paymentLinkCode": "SC",
"description": "A Demo to understand how payment links work."
},
"subsidiary": {
"id": 1,
"name": "Merchant Epayclub",
"country": "NG",
"supportEmail": "merchant@epayclub.com",
"customization": null
}
},
"status": "success",
"statusCode": "00",
"message": "Payment details fetched successfully"
}
{
"status": "failed",
"statusCode": "VAL400",
"message": "The Name field is required."
}
This endpoint doesn’t require encryption.
string
required
The name displayed on the payment form.
string
required
Additional information about the payment form.
string
required
Specify the payment type as either
SC, MC and SUB. Learn more about supported payments for payment links here.string
default:"NGN"
required
The transaction currency. This defaults to NGN.
string
required
Authentication method, specify
AUTH for 3DS and NOAUTH for NoAuth payments.string
The transaction amount. Leave empty to allow the customer enter the amount value on the payment form.
string
The customer’s mobile number.
string
Specify the URL for the background image.
string
Specify the redirect URL for completed payments.
string
The number of subscribers that can use this payment link.
{
"data": {
"paymentLink": {
"id": 133,
"name": "Checkout TestAB",
"paymentType": null,
"logo": "https://merchant-api-service.devepayclub.com/subsidiary/dashboard/file/epayclub-compliance-images/download?fileId=",
"amount": null,
"dateCreated": "2025-04-15T00:16:33.984405",
"reference": "vxwHip7xXm4xtPUtg0ZzDv$0noEby6MIPxG74O9nm4v3b1tby9mnErxfSOY_AZ0412",
"createdBy": null,
"creatorEmail": null,
"isActive": true,
"currency": "USD",
"limit": 1,
"paymentLinkUrl": "https://payment-link.devepayclub.com/vxwHip7xXm4xtPUtg0ZzDv$0noEby6MIPxG74O9nm4v3b1tby9mnErxfSOY_AZ0412",
"appEnvironmentId": 1,
"paymentLinkType": "Single Charge",
"paymentLinkCode": "SC",
"description": "A Demo to understand how payment links work."
},
"subsidiary": {
"id": 1,
"name": "Merchant Epayclub",
"country": "NG",
"supportEmail": "merchant@epayclub.com",
"customization": null
}
},
"status": "success",
"statusCode": "00",
"message": "Payment details fetched successfully"
}
{
"status": "failed",
"statusCode": "VAL400",
"message": "The Name field is required."
}
⌘I

