curl --request POST \
--url https://api.linkio.world/transactions/v2/esp_onramp \
--header 'Content-Type: application/json' \
--header 'ngnc-sec-key: <api-key>' \
--data '
{
"amount": 123,
"bankName": "<string>",
"accountNumber": "<string>",
"walletAddress": "<string>",
"kingschatUsername": "<string>",
"espeesCard": "<string>",
"emailAddress": "<string>"
}
'import requests
url = "https://api.linkio.world/transactions/v2/esp_onramp"
payload = {
"amount": 123,
"bankName": "<string>",
"accountNumber": "<string>",
"walletAddress": "<string>",
"kingschatUsername": "<string>",
"espeesCard": "<string>",
"emailAddress": "<string>"
}
headers = {
"ngnc-sec-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'ngnc-sec-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
amount: 123,
bankName: '<string>',
accountNumber: '<string>',
walletAddress: '<string>',
kingschatUsername: '<string>',
espeesCard: '<string>',
emailAddress: '<string>'
})
};
fetch('https://api.linkio.world/transactions/v2/esp_onramp', 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.linkio.world/transactions/v2/esp_onramp",
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' => 123,
'bankName' => '<string>',
'accountNumber' => '<string>',
'walletAddress' => '<string>',
'kingschatUsername' => '<string>',
'espeesCard' => '<string>',
'emailAddress' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"ngnc-sec-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://api.linkio.world/transactions/v2/esp_onramp"
payload := strings.NewReader("{\n \"amount\": 123,\n \"bankName\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"walletAddress\": \"<string>\",\n \"kingschatUsername\": \"<string>\",\n \"espeesCard\": \"<string>\",\n \"emailAddress\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("ngnc-sec-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://api.linkio.world/transactions/v2/esp_onramp")
.header("ngnc-sec-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 123,\n \"bankName\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"walletAddress\": \"<string>\",\n \"kingschatUsername\": \"<string>\",\n \"espeesCard\": \"<string>\",\n \"emailAddress\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkio.world/transactions/v2/esp_onramp")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["ngnc-sec-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 123,\n \"bankName\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"walletAddress\": \"<string>\",\n \"kingschatUsername\": \"<string>\",\n \"espeesCard\": \"<string>\",\n \"emailAddress\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyInitiate Espees Onramp
Initiate a fiat → Espees (ESP) conversion. Submit the user’s fiat currency, amount, and the bank account they are paying from. LINK returns the vendor banking details the user should send funds to.
curl --request POST \
--url https://api.linkio.world/transactions/v2/esp_onramp \
--header 'Content-Type: application/json' \
--header 'ngnc-sec-key: <api-key>' \
--data '
{
"amount": 123,
"bankName": "<string>",
"accountNumber": "<string>",
"walletAddress": "<string>",
"kingschatUsername": "<string>",
"espeesCard": "<string>",
"emailAddress": "<string>"
}
'import requests
url = "https://api.linkio.world/transactions/v2/esp_onramp"
payload = {
"amount": 123,
"bankName": "<string>",
"accountNumber": "<string>",
"walletAddress": "<string>",
"kingschatUsername": "<string>",
"espeesCard": "<string>",
"emailAddress": "<string>"
}
headers = {
"ngnc-sec-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'ngnc-sec-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
amount: 123,
bankName: '<string>',
accountNumber: '<string>',
walletAddress: '<string>',
kingschatUsername: '<string>',
espeesCard: '<string>',
emailAddress: '<string>'
})
};
fetch('https://api.linkio.world/transactions/v2/esp_onramp', 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.linkio.world/transactions/v2/esp_onramp",
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' => 123,
'bankName' => '<string>',
'accountNumber' => '<string>',
'walletAddress' => '<string>',
'kingschatUsername' => '<string>',
'espeesCard' => '<string>',
'emailAddress' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"ngnc-sec-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://api.linkio.world/transactions/v2/esp_onramp"
payload := strings.NewReader("{\n \"amount\": 123,\n \"bankName\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"walletAddress\": \"<string>\",\n \"kingschatUsername\": \"<string>\",\n \"espeesCard\": \"<string>\",\n \"emailAddress\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("ngnc-sec-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://api.linkio.world/transactions/v2/esp_onramp")
.header("ngnc-sec-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 123,\n \"bankName\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"walletAddress\": \"<string>\",\n \"kingschatUsername\": \"<string>\",\n \"espeesCard\": \"<string>\",\n \"emailAddress\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkio.world/transactions/v2/esp_onramp")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["ngnc-sec-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 123,\n \"bankName\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"walletAddress\": \"<string>\",\n \"kingschatUsername\": \"<string>\",\n \"espeesCard\": \"<string>\",\n \"emailAddress\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
Body
Fiat currency the user is sending.
AED, AUD, BRL, CAD, CNY, DKK, EUR, GBP, HKD, ILS, KES, MXN, NGN, PHP, SGD, USD, ZAR Amount of fiat to convert.
Name of the bank the user is paying from.
Account number the user is paying from.
Espees wallet address to credit. Optional — provide at least one identification field.
KingsChat username linked to the user's Espees account. Optional — provide at least one identification field.
Espees card number. Optional — provide at least one identification field.
Email address registered with the user's Espees account. Optional — provide at least one identification field.
Response
Transaction created successfully. Response includes the transaction record and banking_details — the account the user must transfer fiat to.

