curl --request POST \
--url https://api.money.orki.io/api/v1/partner/transactions \
--header 'Content-Type: application/json' \
--header 'X-ORKI-API-KEY: <api-key>' \
--data '
{
"fiat_currency": "EUR",
"crypto_currency": "BTC",
"payment_method": "credit_debit_card",
"network": "mainnet",
"amount": 900,
"provider": "guardarian",
"type": "BUY",
"redirect_url": "https://website.com/success",
"partner_context": "abcd",
"wallet_address": "YOUR_BTC_WALLET_ADDRESS"
}
'import requests
url = "https://api.money.orki.io/api/v1/partner/transactions"
payload = {
"fiat_currency": "EUR",
"crypto_currency": "BTC",
"payment_method": "credit_debit_card",
"network": "mainnet",
"amount": 900,
"provider": "guardarian",
"type": "BUY",
"redirect_url": "https://website.com/success",
"partner_context": "abcd",
"wallet_address": "YOUR_BTC_WALLET_ADDRESS"
}
headers = {
"X-ORKI-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-ORKI-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
fiat_currency: 'EUR',
crypto_currency: 'BTC',
payment_method: 'credit_debit_card',
network: 'mainnet',
amount: 900,
provider: 'guardarian',
type: 'BUY',
redirect_url: 'https://website.com/success',
partner_context: 'abcd',
wallet_address: 'YOUR_BTC_WALLET_ADDRESS'
})
};
fetch('https://api.money.orki.io/api/v1/partner/transactions', 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.money.orki.io/api/v1/partner/transactions",
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([
'fiat_currency' => 'EUR',
'crypto_currency' => 'BTC',
'payment_method' => 'credit_debit_card',
'network' => 'mainnet',
'amount' => 900,
'provider' => 'guardarian',
'type' => 'BUY',
'redirect_url' => 'https://website.com/success',
'partner_context' => 'abcd',
'wallet_address' => 'YOUR_BTC_WALLET_ADDRESS'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-ORKI-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://api.money.orki.io/api/v1/partner/transactions"
payload := strings.NewReader("{\n \"fiat_currency\": \"EUR\",\n \"crypto_currency\": \"BTC\",\n \"payment_method\": \"credit_debit_card\",\n \"network\": \"mainnet\",\n \"amount\": 900,\n \"provider\": \"guardarian\",\n \"type\": \"BUY\",\n \"redirect_url\": \"https://website.com/success\",\n \"partner_context\": \"abcd\",\n \"wallet_address\": \"YOUR_BTC_WALLET_ADDRESS\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-ORKI-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://api.money.orki.io/api/v1/partner/transactions")
.header("X-ORKI-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"fiat_currency\": \"EUR\",\n \"crypto_currency\": \"BTC\",\n \"payment_method\": \"credit_debit_card\",\n \"network\": \"mainnet\",\n \"amount\": 900,\n \"provider\": \"guardarian\",\n \"type\": \"BUY\",\n \"redirect_url\": \"https://website.com/success\",\n \"partner_context\": \"abcd\",\n \"wallet_address\": \"YOUR_BTC_WALLET_ADDRESS\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.money.orki.io/api/v1/partner/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-ORKI-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"fiat_currency\": \"EUR\",\n \"crypto_currency\": \"BTC\",\n \"payment_method\": \"credit_debit_card\",\n \"network\": \"mainnet\",\n \"amount\": 900,\n \"provider\": \"guardarian\",\n \"type\": \"BUY\",\n \"redirect_url\": \"https://website.com/success\",\n \"partner_context\": \"abcd\",\n \"wallet_address\": \"YOUR_BTC_WALLET_ADDRESS\"\n}"
response = http.request(request)
puts response.read_body{
"msg": "Success",
"data": {
"transaction_id": "01k8qrw1j0f2mvd99x33ep160s",
"provider": {
"name": "Guardarian",
"identifier": "guardarian",
"icon": "https://d31sk3i6y53c7h.cloudfront.net/assets/providers/guardarian.svg"
},
"exchange_rate": 93023.26,
"is_best": true,
"fiat_amount": 350,
"crypto_amount": 0.0037606,
"quote_amount": 0.0037606,
"link": "buy-link"
},
"success": true,
"code": 200
}Create Transaction
Use this endpoint to initiate a new transaction. The response includes a hosted payment link that the user can follow to complete the transaction.
The destination wallet is set per transaction, not in the Orki Terminal. wallet_address is required for Binance BUY transactions and optional for other providers. Supplying it for a BUY automatically locks the checkout destination for Transak, Stripe, Unlimit, Yellow Card, Fonbnk, TransFi, and Alchemy Pay, in both sandbox and production, without another lock parameter or integration setting. See Destination wallets. Creating the transaction does not purchase or deliver crypto; the buyer must complete the selected provider’s checkout.
You can track the transaction status via webhooks or by polling the GET /api/v1/partner/transactions/{transaction_id} endpoint.
curl --request POST \
--url https://api.money.orki.io/api/v1/partner/transactions \
--header 'Content-Type: application/json' \
--header 'X-ORKI-API-KEY: <api-key>' \
--data '
{
"fiat_currency": "EUR",
"crypto_currency": "BTC",
"payment_method": "credit_debit_card",
"network": "mainnet",
"amount": 900,
"provider": "guardarian",
"type": "BUY",
"redirect_url": "https://website.com/success",
"partner_context": "abcd",
"wallet_address": "YOUR_BTC_WALLET_ADDRESS"
}
'import requests
url = "https://api.money.orki.io/api/v1/partner/transactions"
payload = {
"fiat_currency": "EUR",
"crypto_currency": "BTC",
"payment_method": "credit_debit_card",
"network": "mainnet",
"amount": 900,
"provider": "guardarian",
"type": "BUY",
"redirect_url": "https://website.com/success",
"partner_context": "abcd",
"wallet_address": "YOUR_BTC_WALLET_ADDRESS"
}
headers = {
"X-ORKI-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-ORKI-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
fiat_currency: 'EUR',
crypto_currency: 'BTC',
payment_method: 'credit_debit_card',
network: 'mainnet',
amount: 900,
provider: 'guardarian',
type: 'BUY',
redirect_url: 'https://website.com/success',
partner_context: 'abcd',
wallet_address: 'YOUR_BTC_WALLET_ADDRESS'
})
};
fetch('https://api.money.orki.io/api/v1/partner/transactions', 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.money.orki.io/api/v1/partner/transactions",
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([
'fiat_currency' => 'EUR',
'crypto_currency' => 'BTC',
'payment_method' => 'credit_debit_card',
'network' => 'mainnet',
'amount' => 900,
'provider' => 'guardarian',
'type' => 'BUY',
'redirect_url' => 'https://website.com/success',
'partner_context' => 'abcd',
'wallet_address' => 'YOUR_BTC_WALLET_ADDRESS'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-ORKI-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://api.money.orki.io/api/v1/partner/transactions"
payload := strings.NewReader("{\n \"fiat_currency\": \"EUR\",\n \"crypto_currency\": \"BTC\",\n \"payment_method\": \"credit_debit_card\",\n \"network\": \"mainnet\",\n \"amount\": 900,\n \"provider\": \"guardarian\",\n \"type\": \"BUY\",\n \"redirect_url\": \"https://website.com/success\",\n \"partner_context\": \"abcd\",\n \"wallet_address\": \"YOUR_BTC_WALLET_ADDRESS\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-ORKI-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://api.money.orki.io/api/v1/partner/transactions")
.header("X-ORKI-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"fiat_currency\": \"EUR\",\n \"crypto_currency\": \"BTC\",\n \"payment_method\": \"credit_debit_card\",\n \"network\": \"mainnet\",\n \"amount\": 900,\n \"provider\": \"guardarian\",\n \"type\": \"BUY\",\n \"redirect_url\": \"https://website.com/success\",\n \"partner_context\": \"abcd\",\n \"wallet_address\": \"YOUR_BTC_WALLET_ADDRESS\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.money.orki.io/api/v1/partner/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-ORKI-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"fiat_currency\": \"EUR\",\n \"crypto_currency\": \"BTC\",\n \"payment_method\": \"credit_debit_card\",\n \"network\": \"mainnet\",\n \"amount\": 900,\n \"provider\": \"guardarian\",\n \"type\": \"BUY\",\n \"redirect_url\": \"https://website.com/success\",\n \"partner_context\": \"abcd\",\n \"wallet_address\": \"YOUR_BTC_WALLET_ADDRESS\"\n}"
response = http.request(request)
puts response.read_body{
"msg": "Success",
"data": {
"transaction_id": "01k8qrw1j0f2mvd99x33ep160s",
"provider": {
"name": "Guardarian",
"identifier": "guardarian",
"icon": "https://d31sk3i6y53c7h.cloudfront.net/assets/providers/guardarian.svg"
},
"exchange_rate": 93023.26,
"is_best": true,
"fiat_amount": 350,
"crypto_amount": 0.0037606,
"quote_amount": 0.0037606,
"link": "buy-link"
},
"success": true,
"code": 200
}Authorizations
Body
"EUR"
"BTC"
"credit_debit_card"
"mainnet"
900
"guardarian"
"BUY"
"https://website.com/success"
"abcd"
Per-transaction destination wallet. Required when provider is binance and type is BUY; optional for other providers. For BUY transactions, supplying this address automatically locks checkout for transak, stripe, unlimit, yellowcard, fonbnk, transfi, and alchemypay in sandbox and production; no additional lock parameter or integration setting is needed.
"YOUR_BTC_WALLET_ADDRESS"