curl --request POST \
--url https://api.linkio.world/transactions/v2/offramp \
--header 'Content-Type: application/json' \
--header 'ngnc-sec-key: <api-key>' \
--data '
{
"amount": "20",
"currency": "NGN",
"bank_name": "<string>",
"account_number": "<string>",
"account_name": "<string>",
"wallet_address": "<string>",
"network": "<string>",
"routing_number": "<string>",
"account_type": "checkings",
"chargeFeeOnRequest": true
}
'import requests
url = "https://api.linkio.world/transactions/v2/offramp"
payload = {
"amount": "20",
"currency": "NGN",
"bank_name": "<string>",
"account_number": "<string>",
"account_name": "<string>",
"wallet_address": "<string>",
"network": "<string>",
"routing_number": "<string>",
"account_type": "checkings",
"chargeFeeOnRequest": True
}
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: '20',
currency: 'NGN',
bank_name: '<string>',
account_number: '<string>',
account_name: '<string>',
wallet_address: '<string>',
network: '<string>',
routing_number: '<string>',
account_type: 'checkings',
chargeFeeOnRequest: true
})
};
fetch('https://api.linkio.world/transactions/v2/offramp', 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/offramp",
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' => '20',
'currency' => 'NGN',
'bank_name' => '<string>',
'account_number' => '<string>',
'account_name' => '<string>',
'wallet_address' => '<string>',
'network' => '<string>',
'routing_number' => '<string>',
'account_type' => 'checkings',
'chargeFeeOnRequest' => true
]),
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/offramp"
payload := strings.NewReader("{\n \"amount\": \"20\",\n \"currency\": \"NGN\",\n \"bank_name\": \"<string>\",\n \"account_number\": \"<string>\",\n \"account_name\": \"<string>\",\n \"wallet_address\": \"<string>\",\n \"network\": \"<string>\",\n \"routing_number\": \"<string>\",\n \"account_type\": \"checkings\",\n \"chargeFeeOnRequest\": true\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/offramp")
.header("ngnc-sec-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": \"20\",\n \"currency\": \"NGN\",\n \"bank_name\": \"<string>\",\n \"account_number\": \"<string>\",\n \"account_name\": \"<string>\",\n \"wallet_address\": \"<string>\",\n \"network\": \"<string>\",\n \"routing_number\": \"<string>\",\n \"account_type\": \"checkings\",\n \"chargeFeeOnRequest\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkio.world/transactions/v2/offramp")
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\": \"20\",\n \"currency\": \"NGN\",\n \"bank_name\": \"<string>\",\n \"account_number\": \"<string>\",\n \"account_name\": \"<string>\",\n \"wallet_address\": \"<string>\",\n \"network\": \"<string>\",\n \"routing_number\": \"<string>\",\n \"account_type\": \"checkings\",\n \"chargeFeeOnRequest\": true\n}"
response = http.request(request)
puts response.read_body"{\n \"status\": \"success\",\n \"message\": \"Transaction Request successful\",\n \"transaction\": {\n \"transaction_id\": \"645c31fdedd472fb04b3be53\",\n \"business\": {\n \"business_id\": \"0123456789\"\n },\n \"type\": \"Sell\",\n \"reference\": \"64125118694\",\n \"amount\": 102094,\n \"account_name\": \"Tansi Jones\",\n \"account_number\": \"9480948372\",\n \"bank_name\": \"Wema bank\",\n \"link_tag\": \"Link_eng\",\n \"date_created\": \"May 11, 2023\"\n }\n}""{}"""Initiate Offramp
curl --request POST \
--url https://api.linkio.world/transactions/v2/offramp \
--header 'Content-Type: application/json' \
--header 'ngnc-sec-key: <api-key>' \
--data '
{
"amount": "20",
"currency": "NGN",
"bank_name": "<string>",
"account_number": "<string>",
"account_name": "<string>",
"wallet_address": "<string>",
"network": "<string>",
"routing_number": "<string>",
"account_type": "checkings",
"chargeFeeOnRequest": true
}
'import requests
url = "https://api.linkio.world/transactions/v2/offramp"
payload = {
"amount": "20",
"currency": "NGN",
"bank_name": "<string>",
"account_number": "<string>",
"account_name": "<string>",
"wallet_address": "<string>",
"network": "<string>",
"routing_number": "<string>",
"account_type": "checkings",
"chargeFeeOnRequest": True
}
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: '20',
currency: 'NGN',
bank_name: '<string>',
account_number: '<string>',
account_name: '<string>',
wallet_address: '<string>',
network: '<string>',
routing_number: '<string>',
account_type: 'checkings',
chargeFeeOnRequest: true
})
};
fetch('https://api.linkio.world/transactions/v2/offramp', 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/offramp",
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' => '20',
'currency' => 'NGN',
'bank_name' => '<string>',
'account_number' => '<string>',
'account_name' => '<string>',
'wallet_address' => '<string>',
'network' => '<string>',
'routing_number' => '<string>',
'account_type' => 'checkings',
'chargeFeeOnRequest' => true
]),
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/offramp"
payload := strings.NewReader("{\n \"amount\": \"20\",\n \"currency\": \"NGN\",\n \"bank_name\": \"<string>\",\n \"account_number\": \"<string>\",\n \"account_name\": \"<string>\",\n \"wallet_address\": \"<string>\",\n \"network\": \"<string>\",\n \"routing_number\": \"<string>\",\n \"account_type\": \"checkings\",\n \"chargeFeeOnRequest\": true\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/offramp")
.header("ngnc-sec-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": \"20\",\n \"currency\": \"NGN\",\n \"bank_name\": \"<string>\",\n \"account_number\": \"<string>\",\n \"account_name\": \"<string>\",\n \"wallet_address\": \"<string>\",\n \"network\": \"<string>\",\n \"routing_number\": \"<string>\",\n \"account_type\": \"checkings\",\n \"chargeFeeOnRequest\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkio.world/transactions/v2/offramp")
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\": \"20\",\n \"currency\": \"NGN\",\n \"bank_name\": \"<string>\",\n \"account_number\": \"<string>\",\n \"account_name\": \"<string>\",\n \"wallet_address\": \"<string>\",\n \"network\": \"<string>\",\n \"routing_number\": \"<string>\",\n \"account_type\": \"checkings\",\n \"chargeFeeOnRequest\": true\n}"
response = http.request(request)
puts response.read_body"{\n \"status\": \"success\",\n \"message\": \"Transaction Request successful\",\n \"transaction\": {\n \"transaction_id\": \"645c31fdedd472fb04b3be53\",\n \"business\": {\n \"business_id\": \"0123456789\"\n },\n \"type\": \"Sell\",\n \"reference\": \"64125118694\",\n \"amount\": 102094,\n \"account_name\": \"Tansi Jones\",\n \"account_number\": \"9480948372\",\n \"bank_name\": \"Wema bank\",\n \"link_tag\": \"Link_eng\",\n \"date_created\": \"May 11, 2023\"\n }\n}""{}"""Authorizations
Body
Stable coin in which user wants to off-ramp in. (USDC, USDT)
USDC, USDT Amount in (USDC/USDT) that the users wishes to offramp into a USD or NGN bank account. (Min ~ 20 USDT / USDC).
Currency in which user wants to receive funds. (NGN,USD)
NGN, USD Use the "fetch Payment banks" ENDPOINT to fetch the list of supported payment banks. Only the name needs to be passed
Customer's bank account number for where funds should be sent to.
Bank name associated with bank account number provided above.
Origin wallet address where funds would be sent from.
Wallet address network. Our supported networks are (Arbitrum, Avalanche, Stellar, Base, Polygon, Solana, Stellar, Tron, XRPL)
Please provide routing number for USD request.
Please select either checkings or savings for USD request.
Setting this option to true, allows users see what amount they receive after the fee has been deducted. Currently available for payout to NGN accounts only.

