cURL
curl --request POST \
--url https://api-test.klyme.io/api/v1/payments/link \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"merchantUuid": "<string>",
"amount": 10.99,
"reference": "<string>",
"email": "[email protected]",
"mobile": "7742123456",
"countryCallingCode": "44",
"firstName": "<string>",
"surname": "<string>"
}
'import requests
url = "https://api-test.klyme.io/api/v1/payments/link"
payload = {
"merchantUuid": "<string>",
"amount": 10.99,
"reference": "<string>",
"email": "[email protected]",
"mobile": "7742123456",
"countryCallingCode": "44",
"firstName": "<string>",
"surname": "<string>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
merchantUuid: '<string>',
amount: 10.99,
reference: '<string>',
email: '[email protected]',
mobile: '7742123456',
countryCallingCode: '44',
firstName: '<string>',
surname: '<string>'
})
};
fetch('https://api-test.klyme.io/api/v1/payments/link', 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-test.klyme.io/api/v1/payments/link",
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([
'merchantUuid' => '<string>',
'amount' => 10.99,
'reference' => '<string>',
'email' => '[email protected]',
'mobile' => '7742123456',
'countryCallingCode' => '44',
'firstName' => '<string>',
'surname' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"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-test.klyme.io/api/v1/payments/link"
payload := strings.NewReader("{\n \"merchantUuid\": \"<string>\",\n \"amount\": 10.99,\n \"reference\": \"<string>\",\n \"email\": \"[email protected]\",\n \"mobile\": \"7742123456\",\n \"countryCallingCode\": \"44\",\n \"firstName\": \"<string>\",\n \"surname\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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-test.klyme.io/api/v1/payments/link")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"merchantUuid\": \"<string>\",\n \"amount\": 10.99,\n \"reference\": \"<string>\",\n \"email\": \"[email protected]\",\n \"mobile\": \"7742123456\",\n \"countryCallingCode\": \"44\",\n \"firstName\": \"<string>\",\n \"surname\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-test.klyme.io/api/v1/payments/link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"merchantUuid\": \"<string>\",\n \"amount\": 10.99,\n \"reference\": \"<string>\",\n \"email\": \"[email protected]\",\n \"mobile\": \"7742123456\",\n \"countryCallingCode\": \"44\",\n \"firstName\": \"<string>\",\n \"surname\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"link": "https://lnk.klyme.io/a11de8",
"date": "2025-09-08 15:05:12"
}Payment Links
Create Payment Link
Create and send a payment link
POST
/
payments
/
link
cURL
curl --request POST \
--url https://api-test.klyme.io/api/v1/payments/link \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"merchantUuid": "<string>",
"amount": 10.99,
"reference": "<string>",
"email": "[email protected]",
"mobile": "7742123456",
"countryCallingCode": "44",
"firstName": "<string>",
"surname": "<string>"
}
'import requests
url = "https://api-test.klyme.io/api/v1/payments/link"
payload = {
"merchantUuid": "<string>",
"amount": 10.99,
"reference": "<string>",
"email": "[email protected]",
"mobile": "7742123456",
"countryCallingCode": "44",
"firstName": "<string>",
"surname": "<string>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
merchantUuid: '<string>',
amount: 10.99,
reference: '<string>',
email: '[email protected]',
mobile: '7742123456',
countryCallingCode: '44',
firstName: '<string>',
surname: '<string>'
})
};
fetch('https://api-test.klyme.io/api/v1/payments/link', 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-test.klyme.io/api/v1/payments/link",
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([
'merchantUuid' => '<string>',
'amount' => 10.99,
'reference' => '<string>',
'email' => '[email protected]',
'mobile' => '7742123456',
'countryCallingCode' => '44',
'firstName' => '<string>',
'surname' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"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-test.klyme.io/api/v1/payments/link"
payload := strings.NewReader("{\n \"merchantUuid\": \"<string>\",\n \"amount\": 10.99,\n \"reference\": \"<string>\",\n \"email\": \"[email protected]\",\n \"mobile\": \"7742123456\",\n \"countryCallingCode\": \"44\",\n \"firstName\": \"<string>\",\n \"surname\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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-test.klyme.io/api/v1/payments/link")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"merchantUuid\": \"<string>\",\n \"amount\": 10.99,\n \"reference\": \"<string>\",\n \"email\": \"[email protected]\",\n \"mobile\": \"7742123456\",\n \"countryCallingCode\": \"44\",\n \"firstName\": \"<string>\",\n \"surname\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-test.klyme.io/api/v1/payments/link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"merchantUuid\": \"<string>\",\n \"amount\": 10.99,\n \"reference\": \"<string>\",\n \"email\": \"[email protected]\",\n \"mobile\": \"7742123456\",\n \"countryCallingCode\": \"44\",\n \"firstName\": \"<string>\",\n \"surname\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"link": "https://lnk.klyme.io/a11de8",
"date": "2025-09-08 15:05:12"
}
Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Body
application/json
Example:
10.99
Available options:
GBP, EUR Determines how the payment link is delivered.
EMAIL requires email to be specified.
SMS requires mobile and countryCallingCode to be specified.
EMSMS requires both email and mobile to be specified.
Available options:
EMAIL, SMS, EMSMS, LINK Required string length:
6 - 36Maximum string length:
256Must not contain country code, leading zeros or + character.
The parameter countryCallingCode is mandatory if specifying mobile.
Example:
"7742123456"
Is mandatory if mobile has been specified.
Maximum string length:
2Example:
"44"
Maximum string length:
64Maximum string length:
64⌘I
