Pendahuluan
The SecretCryptos APImenyediakan akses yang aman, sederhana, dan konsisten ke layananMixerdanExchangekami. Dokumen “Lite” ini berfokus pada titik akhir inti agar Anda dapat memulai dengan cepat.
URL Dasar: https://api.secretcryptos.com/v1
Contoh: GET /v1/ping – cobalah
Anda juga dapat menjelajahi halaman root langsung diapi.secretcryptos.com.
Tautan lainnya:Links hub • API Dokumen (UI Swagger) • Organisasi GitHub.
Otentikasi
- Header:
Authorization: Bearer YOUR_API_KEY - Semua permintaan harus menggunakan HTTPS.
Dapatkan Kunci API
- Buat akun atau masuk diMitra.
- Buka menu atas dan klikAPItab.
- Salin API-KEY Anda(rahasiakan; ini berfungsi untuk Mixer dan Exchange).
Keamanan Kunci API
cURL (sisi server)
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.secretcryptos.com/v1/meta/mixer"
Proksi PHP
<?php
$ch = curl_init("https://api.secretcryptos.com/v1/meta/exchange");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer YOUR_API_KEY"]);
echo curl_exec($ch);
Node.js (Ekspres)
import express from "express";
import fetch from "node-fetch";
const app = express();
app.get("/api/meta/exchange", async (req, res) => {
const r = await fetch("https://api.secretcryptos.com/v1/meta/exchange", {
headers: { Authorization: "Bearer " + process.env.SECRETCRYPTOS_API_KEY }
});
res.status(r.status).type("application/json").send(await r.text());
});
app.listen(3000);
Python (Flask)
from flask import Flask, Response
import os, requests
app = Flask(__name__)
@app.get("/api/meta/mixer")
def mixer_meta():
r = requests.get(
"https://api.secretcryptos.com/v1/meta/mixer",
headers={"Authorization": f"Bearer {os.environ['SECRETCRYPTOS_API_KEY']}"}
)
return Response(r.content, status=r.status_code, mimetype="application/json")
Ping
Pemeriksaan kesehatan dan versi sederhana.
GET https://api.secretcryptos.com/v1/ping
{
"ok": true,
"service": "SecretCryptos API",
"version": "1.2.6",
"ts": 1723800000
}
ts: Unix epoch (detik).- Tidak diperlukan autentikasi.
MIXER
The Mixer APImemungkinkan Anda membuat transaksi yang menjaga privasi secara terprogram. Anda menentukankoin, jaringan, jumlah, dan satu atau lebihalamat keluarandengan persentase pembagian dan penundaan opsional. Kami mengalokasikan alamat setoran dan mengembalikan paket lengkap (biaya + keluaran) sehingga Anda dapat mengotomatiskan penerimaan, pembayaran, atau aliran seperti escrow.
- Kasus penggunaan: penerimaan pembayaran aman, pembagian pendapatan otomatis, pembayaran ke beberapa dompet, pencairan tertunda.
- Dapatkan batasan & biaya melalui
/v1/meta/mixersebelum membuat pesanan. - Semua bidang moneter berada dalamunit koinkecuali disebutkan.
- Semua cap waktu adalah Unix epoch detik (zona waktu: GMT-3 di server).
MIXER / Buat Pesanan
Buat pesanan mixer baru. Anda memberikan koin, jaringan, jumlah, dan satu atau lebih alamat keluaran dengan persentase dan penundaan. Sistem mengalokasikan alamat deposit dan detail pesanan pengembalian termasuk biaya dan rencana keluaran.
Aturan Validasi
amount: Harus antara khusus koinmin_amountdanmax_amountdari/v1/meta/mixer.addresses: 1–10 keluaran.percent:- Format: hingga 2 desimal (misalnya,
10,10.5,10.50). - Minimum per alamat:
≥ 1.00, maksimum:≤ 100.00. - Total semua keluaran harus sama persis
100.00. - Jika hanya ada 1 keluaran, persentasenya harus sama persis
100.00.
- Format: hingga 2 desimal (misalnya,
delay:- Menerima menit (misalnya,
120) atau label (misalnya,"2h 0m"). - Maksimum:
48h(yaitu,2880menit).
- Menerima menit (misalnya,
service_fee(opsional override):- Hingga 2 desimal.
- Rentang:
0.10–5.00(%). Jika dihilangkan, default sistem untuk koin akan digunakan.
address format: Harus cocok dengan jaringan yang dipilih (misalnya, BTC legacy/SegWit, ERC-200x…, TRC-20T…, SOL, dll.).destination_tag / memo: Opsional; diperlukan untuk beberapa jaringan (mis., tag XRP, memo TON).
Catatan
expires_at: Ketika alamat penyetoran habis masa berlakunya (epoch detik).outputs[i].time: Waktu keluaran yang direncanakan sebagai epoch detik (berdasarkandelay_minutes).- Gunakan
?pretty=1untuk JSON yang dapat dibaca manusia selama pengujian. - Batas nilai: default per batas harian kunci API; tersedia tingkatan yang lebih tinggi (lihat “Batas Tarif”).
Kesalahan Umum
{
"ok": false,
"code": "BAD_REQUEST",
"message": "Sum of percents must be exactly 100.00"
}
BAD_REQUEST: Isi tidak valid, format alamat salah, persen bukan 2 desimal, biaya di luar jangkauan, penundaan > 48 jam, dll.AMOUNT_TOO_LOW / AMOUNT_TOO_HIGH: Melanggar min/maks per koin.SERVICE_UNAVAILABLE: Tidak ada alamat deposit yang tersedia untuk jaringan itu.TOO_MANY_REQUESTS: Batas API harian tercapai.UNAUTHORIZED / FORBIDDEN: Kunci API tidak valid/dinonaktifkan.
Headers
Authorization: Bearer YOUR_API_KEYContent-Type: application/json
Permintaan Isi
{
"action": "create_order",
"addresses": [
{
"address": "35iMHbUZeTssxBodiHwEEkb32jpBfVueEL",
"percent": "84.93",
"delay": "0",
},
{
"address": "1P279UBChDFPAky8S4DcKGaaxKEMYBK9MM",
"percent": "15.07",
"delay": "120",
}
],
"amount": "10.00000000",
"crypto": "btc",
"network": "btc",
"partner": "YOUR_PARTNER_KEY",
"service_fee": 0.45,
"qrcode": 1
}
Badan Permintaan
{
"action": "create_order",
"addresses": [
{
"address": "raGXwk3P9yCtT2mGKD7nQdRNDCPSgwb2Kb",
"percent": "100",
"delay": "0",
"destination_tag": "435757008"
}
],
"amount": "10.00000000",
"crypto": "btc",
"network": "btc",
"partner": "YOUR_PARTNER_KEY",
"service_fee": 0.45,
"qrcode": 1
}
addresses: Daftar tujuan keluaran. Setiap alamat harus memiliki kolom berikut:address: Alamat tujuan pengiriman dana.percent: Persentase jumlah total yang akan dikirim ke alamat ini (misalnya,100untuk seluruh jumlah atau50untuk setengahnya).delay: Penundaan sebelum transaksi diproses. Hal ini dapat ditentukan dalam hitungan menit (misalnya,120) atau dalam format teks (misalnya,"2h 0m").destination_tag: Bidang ini diperlukan untukXRPdanTONjaringan. Jika tidak diperlukan, dapat dihilangkan atau dibiarkan kosong (misalnya,"").
amount: Jumlah total dalam satuan koin yang akan ditransfer. Harap gunakan titik sebagai pemisah desimal (misalnya,10.00000000).crypto/network: Jaringan koin dan blockchain (misalnya,btc/btcuntuk Bitcoin).partner: Opsional namun disarankan. PARTNER KEYAnda tersedia diPartnerdi bawah tab API (dengan API-KEY Anda). Bila digunakan, Anda mendapatkan30% dari biaya layanan.service_fee: Opsi penggantian biaya layanan dalam persen. Jika dihilangkan, default sistem akan berlaku. Jika disediakan, harus berupa angka antara0.1dan5(inklusif).qrcode: Opsional.1mengembalikan URL data Base64 di bawahdeposit.qr_code;0atau dihilangkan tidak akan mengembalikan kode QR.destination_tag: Diperlukan untukXRPdanTONjaringan. Jika tidak diperlukan, dapat dihilangkan atau dibiarkan kosong ("").
Cara Menggunakan Kode QR
Ketikaqrcodediatur ke1, responsnya akan menyertakan gambar berkode Base64 di bawah bidangdeposit.qr_code. Ini adalah kode QR yang berfungsi penuh yang dapat Anda sematkan di frontend Anda sebagai gambar, memungkinkan pengguna memindainya dengan aplikasi dompet mereka. Berikut adalah contoh cara menampilkannya di halaman web:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." alt="Scan to pay" />
Pengguna dapat memindai kode QR dengan aplikasi dompet pilihan mereka untuk langsung mengisi alamat tujuan dan jumlah, memfasilitasi transaksi yang cepat dan aman.
Respon
{
"ok": true,
"trackcode": "6A5FB3BA8A150EC9",
"maintenance": 0,
"deposit": {
"address": "31wXuLH5AKBWoZsK4VJS5wG75nTUAWYnWf",
"name": "Bitcoin",
"symbol": "₿",
"network": "btc",
"network_label": "Bitcoin (BTC)",
"deposit_amount": "10.00000000",
"min_amount": 0.001,
"max_amount": 20,
"expires_at": 1755614593,
"qr_code": "data:image/png;base64,iVBORw0....."
},
"fees": {
"service_fee_percent": 0.45,
"service_fee_value": "0.04500000",
"fee_per_output": "0.00005000",
"fee_outputs_total": "0.00010000",
"fee_total": "0.04510000"
},
"outputs": [
{
"id": 1,
"address": "35iMHbUZeTssxBodiHwEEkb32jpBfVueEL",
"destination_tag": null,
"share_percent": 84.93,
"delay_minutes": 0,
"delay_label": "0h 0m",
"amount": "8.45469657",
"time": 1755441793
},
{
"id": 2,
"address": "1P279UBChDFPAky8S4DcKGaaxKEMYBK9MM",
"destination_tag": null,
"share_percent": 15.07,
"delay_minutes": 120,
"delay_label": "2h 0m",
"amount": "1.50020343",
"time": 1755448993
}
],
"signature_text": "...."
}
trackcode: Pengidentifikasi pesanan unik.deposit: Ke mana pengguna harus mengirim dana.fees: Semua diterapkan biaya.outputs: Distribusi dana yang direncanakan, dengan penundaan.timedanexpires_at: Stempel waktu Unix (zona waktu GMT-3).signature_text: Tanda tangan lapis baja digital untuk validasi.
Contoh PHP
<?php
$url = "https://api.secretcryptos.com/v1/mixer/orders";
$headers = [
"Authorization: Bearer YOUR_API_KEY",
"Content-Type: application/json"
];
$data = [
"action" => "create_order",
"addresses" => [
["address"=>"35iMHbUZeTssxBodiHwEEkb32jpBfVueEL", "percent"=>"84.93", "delay"=>"0"],
["address"=>"1P279UBChDFPAky8S4DcKGaaxKEMYBK9MM", "percent"=>"15.07", "delay"=>"120"]
],
"amount" => "10.00000000",
"crypto" => "btc",
"network" => "btc",
"partner" => "YOUR_PARTNER_KEY",
"service_fee" => 0.45,
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($data)
]);
echo curl_exec($ch);
curl_close($ch);
EXCHANGE
The Exchange APImemungkinkan Anda menukarfrom_coin/ from_networkdeposit ke dalam satuto_coin/ to_networkalamat tujuan. Kami mengalokasikan alamat deposit, menghitung kuotasi langsung (batas & biaya berbasis USD yang berlaku), dan mengembalikan objek pesanan lengkap yang dapat Anda pilih hingga didanai dan dieksekusi.
- Kasus penggunaan: pertukaran instan saat checkout, “deposit dalam X → terima Y”, jembatan off-ramp/on-ramp antara L1/L2.
- Dapatkan batas pasangan & biaya default melalui
/v1/meta/exchangesebelum membuat pesanan. - Semua bidang moneter ada diunit koinkecuali disebutkan; batasnya adalahBerbasis USD.
- Semua cap waktu adalah Unix epoch detik (zona waktu server GMT‑3).
PERTUKARAN / Buat Pesanan
Buat pesanan pertukaran baru. Anda menyediakanfrom_* sisi (koin/jaringan/jumlah) dan tujuanto_addressuntuk sisito_* . Kami mengembalikan alamat deposit padafrom_network, kuotasi, dan keluaran yang direncanakan.
Aturan Validasi
amount: Nilai USD (jumlah × dari_harga koin) harus berada dalam spesifik pasanganmin_usd/max_usddari/v1/meta/exchange.address format: Harus cocok denganto_networkyang dipilih (misalnya, ERC‑200x…, TRC‑20T…, BTC, DOGE, SOL, dll.).destination_tag / memo: Opsional tetapi diwajibkan oleh beberapa jaringan (misalnya,XRPtag,TONmemo).service_fee(opsional, persen):- Hingga 2 desimal (misalnya,
0.6=0.60%). - Penjepit global: min
0.50%, max3.00%. - Jika tersedia di bawah default situs untuk pasangan tersebut, default situs akan berlaku. Jika di atas
3.00%, dibatasi pada3.00%. - Jika dihilangkan, biaya efektif =
max(site_default, 0.50%).
- Hingga 2 desimal (misalnya,
Catatan
quote.final_usd= (jumlah × dari harga) × (1 − biaya%).quote.to.estimated_receive=final_usd÷ to_coinharga.receive.delay_label: Penundaan yang direncanakan sebelum kami mengirimkan swap (default0h 10m).expires_at: Jendela deposit untuk alamat yang dialokasikan.- Gunakan
?pretty=1untuk JSON yang dicetak cantik saat pengujian.
Headers
Authorization: Bearer YOUR_API_KEYContent-Type: application/json
Permintaan Isi
{
"from_coin": "eth",
"from_network": "eth",
"to_coin": "doge",
"to_network": "doge",
"to_address": "DLPaeuaJi2JLUcvYHD4ddLxadwnGaVSt4p",
"amount": "1.00000000",
"service_fee": 0.6, // optional; %0.60 → clamped by rules "partner": "YOUR_PARTNER_KEY", // optional, earns 30% of platform fee "qrcode": 1 // optional; adds base64 QR at deposit.qr_code}
Badan Permintaan (contoh XRP / TON)
{
"from_coin": "usdt",
"from_network": "trx",
"to_coin": "xrp",
"to_network": "xrp",
"to_address": "rLWyHZwAhsVrHCu8ahsfQfb9w9w7A5WTrS",
"destination_tag": "123456",
"amount": "250"
}
---
{
"from_coin": "btc",
"from_network": "btc",
"to_coin": "ton",
"to_network": "ton",
"to_address": "UQDTQmCrngsFMbgBhWNX_Sg6Ko3sXUcdeliM5OoZO2Pt4NJx",
"memo": "MYMEMO123",
"amount": "0.015"
}
Respon
{
"ok": true,
"type": "exchange",
"trackcode": "D391FC08747E7B04",
"pair": { "from": "ETH_eth", "to": "DOGE_doge" },
"deposit": {
"address": "0x7ed2bf650d12819171a8add77fe772a18dd77a10",
"name": "Ethereum",
"symbol": "Ξ",
"network": "eth",
"network_label": "Ethereum (ERC20)",
"deposit_amount": "1.00000000",
"min_usd": 100,
"max_usd": 88565,
"expires_at": 1755781843,
"qr_code": "data:image/png;base64,..." // only if qrcode=1 },
"quote": {
"from": { "coin":"ETH","network":"eth","price_usd":4300.8836,"amount":"1.00000000","amount_usd":"4300.88362842" },
"to": { "coin":"DOGE","network":"doge","price_usd":0.22014648,"estimated_receive":"19419.24455241" },
"fee_percent": 0.6,
"final_usd": "4275.07832665"
},
"receive": {
"address":"DLPaeuaJi2JLUcvYHD4ddLxadwnGaVSt4p",
"destination_tag": null,
"coin":"DOGE","network":"doge",
"percent":100,"delay_minutes":10,"delay_label":"0h 10m",
"amount":"19419.24455241","time":1755609642
},
"outputs":[
{ "id":1, "address":"DLPaeuaJi2JLUcvYHD4ddLxadwnGaVSt4p", "destination_tag":null,
"share_percent":100, "delay_minutes":10, "delay_label":"0h 10m",
"amount":"19419.24455241", "time":1755609642 }
],
"signature_text":"..."
}
trackcode: Pengidentifikasi pesanan unik untuk status jajak pendapat.deposit: Di mana pengguna harus mengirimfrom_coin.quote: Cuplikan harga dan biaya efektif.receive/outputs: Detail keluaran swap yang direncanakan.
Contoh PHP
<?php $url = "https://api.secretcryptos.com/v1/exchange/orders"; $headers = [ "Authorization: Bearer YOUR_API_KEY", "Content-Type: application/json" ]; $payload = [ "from_coin"=>"eth","from_network"=>"eth", "to_coin"=>"doge","to_network"=>"doge", "to_address"=>"DLPaeuaJi2JLUcvYHD4ddLxadwnGaVSt4p", "amount"=>"1.00000000", "service_fee"=>0.6, "partner"=>"YOUR_PARTNER_KEY", "qrcode"=>1 ]; $ch = curl_init($url); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER=>true, CURLOPT_HTTPHEADER=>$headers, CURLOPT_POST=>true, CURLOPT_POSTFIELDS=>json_encode($payload, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES), ]); echo curl_exec($ch); curl_close($ch);
Cara Menggunakan Kode QR
Ketikaqrcodedisetel ke1di Buat, responsnya mencakup a QR berkode Base64 di bawahdeposit.qr_code. Sematkan langsung sebagai <img> agar pengguna dapat memindai alamat penyetoran.
<img src="data:image/png;base64,..." alt="Scan to pay" />
Harga
Ambil harga pasar terbaru diUSDuntuk mata uang kripto yang didukung. Anda dapat menanyakan beberapa simbol sekaligus dengan memisahkannya menggunakan koma.
Endpoint
Parameter Kueri
symbols(opsional): Daftar simbol koin yang dipisahkan koma (misalnya,BTC,ETH,USDT). Jika dihilangkan, semua koin yang didukung akan dikembalikan.
Respon
ok:truejika permintaan berhasil.base: SelaluUSD.ts: Stempel waktu Unix (detik).prices: Pemetaan objekSYMBOL → "price"(nomor string).
Permintaan Contoh (Hanya BTC, ETH)
<?php
$url = "https://api.secretcryptos.com/v1/prices?symbols=" . urlencode("BTC,ETH");
$headers = [
"Authorization: Bearer <API_KEY>",
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_TIMEOUT => 20,
]);
$result = curl_exec($ch);
if ($result === false) {
echo "cURL error: " . curl_error($ch);
} else {
echo $result;
}
curl_close($ch);
Permintaan Contoh (Semua Simbol)
<?php
$url = "https://api.secretcryptos.com/v1/prices";
$headers = [
"Authorization: Bearer <API_KEY>",
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_TIMEOUT => 20,
]);
$result = curl_exec($ch);
if ($result === false) {
header("Content-Type: text/plain; charset=utf-8");
echo "cURL error: " . curl_error($ch);
} else {
header("Content-Type: application/json; charset=utf-8");
echo $result;
}
curl_close($ch);
Contoh Respon
{
"ok": true,
"base": "USD",
"ts": 1755600000,
"prices": {
"BTC": "117799.51713382",
"ETH": "4409.46254479",
"USDT": "1.0005594"
}
}
Kode Kesalahan
BAD_REQUEST: Tidak validsymbolsformat.UNAUTHORIZED / FORBIDDEN: Kunci API tidak valid atau hilang.SERVER_ERROR: Server/database internal error.
Catatan
- Ticker yang tidak didukung dihilangkan begitu saja dari objek
prices. - Nilai numerik dikembalikan sebagai string untuk menjaga presisi.
Status Pesanan
Gunakan satu titik akhir untuk memeriksa status pesananmixerdanpertukaran. Anda dapat secara eksplisit mengatur jenis pesanan (mixer/ exchange) atau membiarkan API mendeteksinya secara otomatis.
Endpoint
Badan Permintaan
trackcode(wajib): Kode pelacakan huruf besar 16 karakter pesanan.type(opsional):mixer|exchange. Jika dihilangkan, API akan mencoba mendeteksi secara otomatis.outputs(opsional):none|summary|full(default:summary).mask_addresses(opsional):true=alamat mask (default),false=mengembalikan alamat lengkap.
Respons
type:mixeratauexchange.deposit.confirm_status: Status konfirmasi setoran:0: Tidak ada pembayaran yang diterima.1: Pembayaran telah diterima tetapi masih tertunda (menunggu konfirmasi atau belum didanai sepenuhnya).2: Deposit telah dikonfirmasi dan didanai sepenuhnya.
deposit.delete_in_sec: Sisa detik hingga retensi 48 jam habis masa berlakunya.deposit.fundingblock:waiting_balance: Total jumlah yang diharapkan.received_balance: Jumlah yang diterima sejauh ini.remaining_need: Sisa jumlah yang dibutuhkan.is_fully_funded: Apakah didanai penuh.can_start: hanyabenar jikaconfirm_status==2DANis_fully_funded==true.
outputs:none: Tidak dikembalikan.summary: Mengembalikancount,sent_count,sent_total.full: Untuk setiap keluaran:index,address(bertopeng atau tidak),destination_tag,coin,network,share_percent,delay_label,delay_seconds,state,confirm,tx,amount,left_seconds.
status_reason: mis."INSUFFICIENT_FUNDS"(if not fully funded).
Business Rules
- Orders will not startunless fully funded (
is_fully_funded=false): outputs remain unassigned and no partner payout is generated. - If
confirm_status==2ANDis_fully_funded==true:- Outputs are timestamped once and remain consistent on repeated checks.
- Affiliate earnings are credited a single time when the order becomes valid.
Example Request (PHP)
// Mixer example (full outputs, unmasked addresses)<?php
$url = "https://api.secretcryptos.com/v1/orders/check";
$headers = [
"Authorization: Bearer <API_KEY>",
"Content-Type: application/json"
];
$data = [
"trackcode" => "554FEC10054743FD",
"type" => "mixer", // mixer | exchange
"outputs" => "full", // none | summary | full
"mask_addresses" => false // true(default)=masked, false=full
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
]);
$result = curl_exec($ch);
if ($result === false) {
header("Content-Type: text/plain; charset=utf-8");
echo "cURL error: " . curl_error($ch);
} else {
header("Content-Type: application/json; charset=utf-8");
echo $result;
}
curl_close($ch);
Example Response — Fully Funded
{
"ok": true,
"type": "mixer",
"trackcode": "6A5FB3BA8A150EC9",
"deposit": {
"confirm_status": 2,
"coin": "btc",
"network": "btc",
"delete_in_sec": 167812,
"funding": {
"waiting_balance": "10.00000000",
"received_balance": "10.00000000",
"remaining_need": "0.00000000",
"is_fully_funded": true,
"can_start": true
}
},
"outputs": [
{
"index": 1,
"address": "35iMHbUZeTssxBodiHwEEkb32jpBfVueEL",
"destination_tag": null,
"coin": "btc",
"network": "btc",
"share_percent": 84.93,
"delay_label": "0h 0m",
"delay_seconds": 0,
"state": 2,
"confirm": 1,
"tx": "135f451af7f894....fafb578eee9e9c4",
"amount": "8.45469657",
"left_seconds": 0
},
{
"index": 2,
"address": "1P279UBChDFPAky8S4DcKGaaxKEMYBK9MM",
"destination_tag": null,
"coin": "btc",
"network": "btc",
"share_percent": 15.07,
"delay_label": "2h 0m",
"delay_seconds": 7200,
"state": 1,
"confirm": 0,
"tx": "",
"amount": "1.50020343",
"left_seconds": 5916
}
]
}
Example Response — Underfunded
{
"ok": true,
"type": "exchange",
"trackcode": "A1B2C3D4E5F6A7B8",
"deposit": {
"confirm_status": 2,
"coin": "usdt",
"network": "erc20",
"delete_in_sec": 14321,
"funding": {
"waiting_balance": "500.00000000",
"received_balance": "420.00000000",
"remaining_need": "80.00000000",
"is_fully_funded": false,
"can_start": false
}
},
"status_reason": "INSUFFICIENT_FUNDS",
"outputs": {
"count": 3,
"sent_count": 0,
"sent_total": "0.00000000"
}
}
Outputs Explanation
index: Sequential output number in the order.address: Destination address where funds are sent.destination_tag: Optional tag/memo for XRP, XLM, etc. (nullif not required).coin: Cryptocurrency code of the output (e.g.,btc,eth).network: Network name used for transfer (e.g.,btc,eth).share_percent: Persentase total deposit yang ditetapkan pada output ini.delay_label: Label yang dapat dibaca manusia menunjukkan kapan output ini akan diproses (misalnya,2h 0m).delay_seconds: Penundaan dalam hitungan detik hingga output dapat mulai diproses.state: Status output:0→ Menunggu (deposit belum sepenuhnya dikonfirmasi).1→ Pemrosesan (dijadwalkan; dimulai ketikadelay_secondsmencapai 0).2→ Selesai (transfer selesai).
confirm: Status konfirmasi transfer (hanya relevan distate=2):0→ Transaksi disiarkan tetapi belum dikonfirmasi (tertunda).1→ Transaksi dikonfirmasi (setidaknya 1 blockchain konfirmasi).
tx: Hash transaksi Blockchain untuk keluaran ini.amount: Jumlah yang dikirim ke alamat keluaran ini.left_seconds: Sisa detik hingga waktu pengiriman yang dijadwalkan.
Catatan:Hitungan mundur ini direset sekalideposit.confirm_status=2(dikonfirmasi sepenuhnya). Contoh: jika600detik (10 menit) diatur, penghitungan mundur dimulai hanya setelah konfirmasi setoran.
Catatan:Data pembayaran dan keluaran disegarkan setiap ~1 menit.
Kode Kesalahan
BAD_REQUEST: Hilang/tidak validtrackcode, format isi permintaan salah.NOT_FOUND: Pesanan tidak ditemukan.UNAUTHORIZED / FORBIDDEN: Kunci API tidak valid atau dinonaktifkan.TOO_MANY_REQUESTS: Batas permintaan harian terlampaui.SERVER_ERROR: Kesalahan server tak terduga.
mask_addresses: dikontrol olehmask_addresses(default:true).delay_seconds: setara numerikdelay_label(hanya dikembalikan dalamfullmode).
Hapus Pesanan
Hapus pesanan yang sudah ada sehingga tidak dapat diakses lagi melalui API. Setelah dihapus, pesanan secara permanen tidak tersedia untuk pertanyaan lebih lanjut.
Endpoint
Badan Permintaan
trackcode(wajib): Kode pelacakan huruf besar 16 karakter.type(opsional):mixer|exchange. Jika dihilangkan, deteksi otomatis.
Respon
ok:truejika berhasil.trackcode: Gema kode pelacakan yang diminta.type: Jenis pesanan (mixeratauexchange).deleted:truejika pesanan sudah dihapus.
Perilaku
- Jika pesanan sudah dihapus atau tidak ditemukan, API mengembalikan404 NOT_FOUND.
- Jika
typedisediakan, hanya jenis itu yang dicentang; jika tidak, deteksi dilakukan secara otomatis.
Permintaan Contoh (PHP)
<?php
$url = "https://api.secretcryptos.com/v1/orders/delete";
$headers = [
"Authorization: Bearer <API_KEY>",
"Content-Type: application/json"
];
$data = [
"trackcode" => "D391FC08747E7B04"
// "type" => "exchange"
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
CURLOPT_TIMEOUT => 20,
]);
$result = curl_exec($ch);
if ($result === false) {
echo "cURL error: " . curl_error($ch);
} else {
echo $result;
}
curl_close($ch);
Respon Contoh — Berhasil
{
"ok": true,
"trackcode": "D391FC08747E7B04",
"type": "exchange",
"deleted": true
}
Contoh Respons — Tidak Ditemukan
{
"ok": false,
"code": "NOT_FOUND",
"message": "Order not found or already deleted"
}
Kode Kesalahan
BAD_REQUEST: Tidak validtrackcodeatautype.NOT_FOUND: Pesanan tidak ditemukan atau sudah dihapus.UNAUTHORIZED / FORBIDDEN: Kunci API tidak valid atau hilang.SERVER_ERROR: Kesalahan server internal.
Validasi Tanda Tangan
Validasi secara digital muatan yang ditandatangani (tanda tangan Surat Jaminan). Setelah dekripsi berhasil, API mengembalikan subset terverifikasi dari detail pesanan terkait (mixer atau pertukaran), sesuai untuk pemeriksaan sisi klien dan tampilan status.
Endpoint
Badan Permintaan
signature(wajib): Blok tanda tangan digital, baik mentah Base64 atau dengan baris BEGIN/END.
Respon
ok:truejika berhasil.message: Pesan status yang dapat dibaca manusia.type:mixer|exchange.route: Untuk mixer:confirm|deposit|mixing. Untuk pertukaran:exc-deposit|exc-send.trackcode: Kode pelacakan terselesaikan.order:deposit_address(string)service_fee(string, 2 desimal)coin(string)network(string)waiting_balance(string, 8 desimal)created_at(integer, Unix cap waktu)
outputs(array):coin,network,address,destination_tagshare_percent(string, 2 desimal)delay_minutes(integer),delay_label(misalnya2h 0m)amount(string, 8 desimal)
outputs_count(integer)
Behavior
- Digital yang disediakan tanda tangan divalidasi terhadap sistem.
- Hanya pesanan terbaru (dalam waktu 48 jam) yang memenuhi syarat untuk validasi. Pesanan lama mungkin telah dihapus secara otomatis.
- Jika tidak ada pesanan yang valid ditemukan, API merespons dengan404 NOT_FOUND.
Permintaan Contoh (PHP)
<?php
$url = "https://api.secretcryptos.com/v1/validate";
$signatureBlock = <<<SIG
-----BEGIN DIGITAL SIGNATURE-----
eyJ0cmFjayI6ICJEMzkxRkMwODc0N0U3QjA0IiwgInR5cGUiOiAibWl4ZXIiLCAiZXh0cmEiOiAiLi4uIn0=
-----END DIGITAL SIGNATURE-----
SIG;
$headers = [
"Authorization: Bearer <API_KEY>",
"Content-Type: application/json",
"Accept: application/json",
];
$payload = [
"signature" => $signatureBlock
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES),
CURLOPT_TIMEOUT => 20,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2,
]);
$result = curl_exec($ch);
if ($result === false) {
header("Content-Type: text/plain; charset=utf-8");
echo "cURL error: " . curl_error($ch);
} else {
header("Content-Type: application/json; charset=utf-8");
echo $result;
}
curl_close($ch);
Respon Contoh — Berhasil
{
"ok": true,
"message": "The signature has been validated successfully.",
"type": "mixer",
"route": "deposit",
"trackcode": "6A5FB3BA8A150EC9",
"order": {
"deposit_address": "31wXuLH5AKBWoZsK4VJS5wG75nTUAWYnWf",
"service_fee": "0.45",
"coin": "btc",
"network": "btc",
"waiting_balance": "10.00000000",
"created_at": "1755698732"
},
"outputs": [
{
"coin": "btc",
"network": "btc",
"address": "35iMHbUZeTssxBodiHwEEkb32jpBfVueEL",
"destination_tag": "",
"share_percent": "84.93",
"delay_minutes": 0,
"delay_label": "0h 0m",
"amount": "8.45469657"
},
{
"coin": "btc",
"network": "btc",
"address": "1P279UBChDFPAky8S4DcKGaaxKEMYBK9MM",
"destination_tag": "",
"share_percent": "15.07",
"delay_minutes": 120,
"delay_label": "2h 0m",
"amount": "1.50020343"
}
],
"outputs_count": 2
}
Contoh Respons — Kesalahan
{
"ok": false,
"error": "BAD_REQUEST",
"message": "Digital signature is required"
}
---
{
"ok": false,
"error": "INVALID_SIGNATURE",
"message": "The provided data is not valid Base64 or is too short"
}
---
{
"ok": false,
"error": "DECRYPTION_FAILED",
"message": "Decryption failed. Ensure that the provided signature is valid and retry."
}
---
{
"ok": false,
"error": "MISSING_TRACKCODE",
"message": "Trackcode is required in the signature payload."
}
---
{
"ok": false,
"error": "NOT_FOUND",
"message": "The requested order details could not be found."
}
Kode Kesalahan
BAD_REQUEST: Hilangsignatureatau format payload salah.INVALID_SIGNATURE: Base64 tidak valid atau blok tanda tangan terlalu pendek.DECRYPTION_FAILED: Dekripsi AES‑GCM gagal.INVALID_PAYLOAD: Payload yang didekripsi tidak valid JSON.MISSING_TRACKCODE:trackbidang tidak ada di payload.NOT_FOUND: Pesanan tidak ditemukan dalam 48 jam terakhir.UNAUTHORIZED / FORBIDDEN: Kunci API tidak valid atau hilang.SERVER_ERROR: Kesalahan server internal.
Catatan
- Presisi numerik:
waiting_balancedanamount→ 8 desimal (string),share_percent→ 2 desimal (string),service_fee→ 2 desimal (string). - Penundaan: label manusia (
delay_label) dan menit yang dapat dibaca mesin (delay_minutes) dikembalikan.