Pendahuluan
SecretCryptos API menyediakan akses yang aman, sederhana, dan konsisten ke layanan Mixer dan Exchange kami. Dokumen "Lite" ini berfokus pada endpoint inti untuk memulai dengan cepat.
Base URL: https://api.secretcryptos.com/v1
Contoh: GET /v1/ping
– coba sekarang
Anda juga dapat menjelajahi halaman root langsung di api.secretcryptos.com.
Tautan lain: Pusat tautan • Dokumentasi API (Swagger UI) • Organisasi GitHub.
Otentikasi
- Header:
Authorization: Bearer YOUR_API_KEY
- Semua permintaan harus menggunakan HTTPS.
Dapatkan API Key
- Buat akun atau masuk di Partner.
- Buka menu atas dan klik tab API.
- Salin API-KEY Anda (simpan dengan aman; berlaku untuk Mixer dan Exchange).
Keamanan API Key
cURL (server-side)
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.secretcryptos.com/v1/meta/mixer"
PHP proxy
<?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 (Express)
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 sederhana dan versi.
GET https://api.secretcryptos.com/v1/ping
{ "ok": true, "service": "SecretCryptos API", "version": "1.2.6", "ts": 1723800000 }
ts
: Unix epoch (detik).- Tidak memerlukan autentikasi.
MIXER
Mixer API memungkinkan Anda membuat transaksi yang menjaga privasi secara terprogram. Anda menentukan koin, jaringan, jumlah, dan satu atau lebih alamat keluaran dengan persentase pembagian dan penundaan opsional. Kami menyediakan alamat deposit dan mengembalikan rencana penuh (biaya + output) sehingga Anda dapat mengotomatisasi penerimaan, pembayaran, atau alur seperti escrow.
- Kasus penggunaan: penerimaan pembayaran aman, pembagian pendapatan otomatis, pembayaran ke banyak dompet, pencairan tertunda.
- Dapatkan batas & biaya melalui
/v1/meta/mixer
sebelum membuat pesanan. - Semua bidang moneter menggunakan satuan koin kecuali disebutkan lain.
- Semua timestamp dalam detik Unix epoch (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 serta penundaan. Sistem akan menyediakan alamat deposit dan mengembalikan detail pesanan termasuk biaya dan rencana distribusi.
Aturan Validasi
amount
: Harus berada di antaramin_amount
danmax_amount
khusus koin dari/v1/meta/mixer
.addresses
: 1–10 keluaran.percent
:- Format: maksimal 2 desimal (misalnya,
10
,10.5
,10.50
). - Minimum per alamat:
≥ 1.00
, maksimum:≤ 100.00
. - Total semua keluaran harus tepat
100.00
. - Jika hanya ada 1 keluaran, persentasenya harus tepat
100.00
.
- Format: maksimal 2 desimal (misalnya,
delay
:- Menerima menit (misalnya,
120
) atau label (misalnya,"2h 0m"
). - Maksimum:
48h
(yaitu,2880
menit).
- Menerima menit (misalnya,
service_fee
(opsional override):- Maksimal 2 desimal.
- Rentang:
0.10
–5.00
(%). Jika tidak diisi, sistem akan menggunakan default untuk koin tersebut.
address format
: Harus sesuai dengan jaringan yang dipilih (misalnya, BTC legacy/SegWit, ERC-200x…
, TRC-20T…
, SOL, dll.).destination_tag / memo
: Opsional; wajib untuk beberapa jaringan (misalnya, tag XRP, memo TON).
Catatan
expires_at
: Waktu kadaluarsa alamat deposit (epoch seconds).outputs[i].time
: Waktu keluaran terjadwal dalam epoch seconds (berdasarkandelay_minutes
).- Gunakan
?pretty=1
untuk JSON yang mudah dibaca manusia saat pengujian. - Batas permintaan: default limit harian per API key; tier lebih tinggi tersedia (lihat “Rate Limits”).
Kesalahan Umum
{ "ok": false, "code": "BAD_REQUEST", "message": "Sum of percents must be exactly 100.00" }
BAD_REQUEST
: Badan permintaan tidak valid, format alamat salah, persentase bukan 2-desimal, biaya di luar jangkauan, penundaan > 48h, dll.AMOUNT_TOO_LOW / AMOUNT_TOO_HIGH
: Melanggar batas min/maks per koin.SERVICE_UNAVAILABLE
: Tidak ada alamat deposit yang tersedia untuk jaringan tersebut.TOO_MANY_REQUESTS
: Limit API harian tercapai.UNAUTHORIZED / FORBIDDEN
: API key tidak valid/dinonaktifkan.
Header
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Request Body
{ "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 }
Request Body
{ "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 field berikut:address
: Alamat tujuan tempat dana dikirim.percent
: Persentase dari jumlah total yang akan dikirim ke alamat ini (misalnya,100
untuk seluruh jumlah atau50
untuk setengahnya).delay
: Penundaan sebelum transaksi diproses. Bisa dalam menit (misalnya,120
) atau dalam format teks (misalnya,"2h 0m"
).destination_tag
: Field ini wajib untuk jaringan XRP dan TON. Jika tidak diperlukan, bisa dihilangkan atau dikosongkan (misalnya,""
).
amount
: Jumlah total dalam satuan koin yang akan ditransfer. Gunakan titik sebagai pemisah desimal (misalnya,10.00000000
).crypto
/network
: Koin dan jaringan blockchain (misalnya,btc
/btc
untuk Bitcoin).partner
: Opsional tetapi direkomendasikan. PARTNER KEY Anda tersedia di Partner di bawah tab API (bersama API-KEY Anda). Jika digunakan, Anda akan mendapat 30% dari biaya layanan.service_fee
: Opsional override untuk biaya layanan dalam persen. Jika tidak diisi, sistem menggunakan default. Jika diberikan, harus berupa angka antara 0.1 dan 5 (inklusif).qrcode
: Opsional.1
mengembalikan Base64 data URL di bawahdeposit.qr_code
;0
atau kosong tidak mengembalikan QR code.destination_tag
: Wajib untuk jaringan XRP dan TON. Jika tidak diperlukan, dapat dihilangkan atau dikosongkan ("").
Cara Menggunakan QR Code
Jika qrcode
diset ke 1
, respons akan menyertakan gambar yang dienkode Base64 di field deposit.qr_code
. Ini adalah QR code yang sepenuhnya berfungsi dan dapat Anda sematkan di frontend sebagai gambar, sehingga pengguna dapat memindainya dengan aplikasi dompet mereka. Berikut contoh cara menampilkannya di halaman web:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." alt="Pindai untuk membayar" />
Pengguna dapat memindai QR code dengan aplikasi dompet pilihan mereka untuk langsung mengisi alamat tujuan dan jumlah, sehingga transaksi menjadi cepat dan aman.
Respons
{ "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 unik pesanan.deposit
: Tempat pengguna harus mengirim dana.fees
: Semua biaya yang dikenakan.outputs
: Rencana distribusi dana, dengan penundaan.time
danexpires_at
: Unix timestamps (zona waktu GMT-3).signature_text
: Tanda tangan 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
Exchange API memungkinkan Anda menukar setoran from_coin/ from_network menjadi satu alamat tujuan to_coin/ to_network. Kami menyediakan alamat deposit, menghitung kutipan langsung (dengan batas & biaya berbasis USD), dan mengembalikan objek pesanan penuh yang dapat Anda pantau hingga didanai dan dieksekusi.
- Kasus penggunaan: pertukaran instan saat checkout, “deposit X → terima Y”, jembatan off-ramp/on-ramp antara L1/L2.
- Dapatkan batas pasangan & biaya default melalui
/v1/meta/exchange
sebelum membuat pesanan. - Semua bidang moneter dalam satuan koin kecuali dinyatakan lain; batas berbasis USD.
- Semua stempel waktu dalam detik Unix epoch (zona waktu server GMT-3).
EXCHANGE / Buat Pesanan
Buat pesanan pertukaran baru. Anda memberikan sisi from_*
(koin/jaringan/jumlah) dan to_address
tujuan untuk sisi to_*
. Kami mengembalikan alamat deposit di from_network
, kutipan, dan output yang direncanakan.
Aturan Validasi
amount
: Nilai USD (jumlah × harga from_coin) harus dalammin_usd
/max_usd
spesifik pasangan dari/v1/meta/exchange
.format alamat
: Harus sesuai denganto_network
yang dipilih (misalnya, ERC-200x…
, TRC-20T…
, BTC, DOGE, SOL, dll.).destination_tag / memo
: Opsional tetapi diperlukan oleh beberapa jaringan (misalnya, tag XRP, memo TON).service_fee
(opsional, persen):- Hingga 2 desimal (misalnya,
0.6
=0.60%
). - Batas global: min
0.50%
, maks3.00%
. - Jika diberikan di bawah default situs untuk pasangan itu, default situs berlaku. Jika di atas
3.00%
, akan dibatasi pada3.00%
. - Jika diabaikan, biaya efektif =
max(default situs, 0.50%)
.
- Hingga 2 desimal (misalnya,
Catatan
quote.final_usd
= (jumlah × harga from) × (1 − biaya%).quote.to.estimated_receive
=final_usd
÷ harga to_coin.receive.delay_label
: Penundaan yang direncanakan sebelum kami mengirim swap (default0j 10m
).expires_at
: Jendela deposit untuk alamat yang dialokasikan.- Gunakan
?pretty=1
untuk JSON yang diformat saat pengujian.
Header
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Badan Permintaan
{ "from_coin": "eth", "from_network": "eth", "to_coin": "doge", "to_network": "doge", "to_address": "DLPaeuaJi2JLUcvYHD4ddLxadwnGaVSt4p", "amount": "1.00000000", "service_fee": 0.6, // opsional; %0.60 → dibatasi oleh aturan "partner": "YOUR_PARTNER_KEY", // opsional, mendapat 30% dari biaya platform "qrcode": 1 // opsional; menambahkan QR base64 di 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" }
Respons
{ "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,..." // hanya jika 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 unik pesanan untuk memantau status.deposit
: Tempat pengguna harus mengirim from_coin.quote
: Cuplikan harga dan biaya efektif.receive
/outputs
: Detail output 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
Saat qrcode
diset ke 1
dalam Create, respons menyertakan QR yang dikodekan Base64 di bawah deposit.qr_code
. Sematkan langsung sebagai <img> agar pengguna dapat memindai alamat deposit.
<img src="data:image/png;base64,..." alt="Pindai untuk membayar" />
Harga
Ambil harga pasar terbaru dalam USD untuk cryptocurrency yang didukung. Anda dapat meminta beberapa simbol sekaligus dengan memisahkannya dengan koma.
Endpoint
Parameter Kuery
symbols
(opsional): Daftar simbol koin yang dipisahkan koma (misalnya,BTC,ETH,USDT
). Jika diabaikan, semua koin yang didukung dikembalikan.
Respons
ok
:true
jika permintaan berhasil.base
: SelaluUSD
.ts
: Stempel waktu Unix (detik).prices
: Objek yang memetakanSYMBOL → "price"
(angka string).
Contoh Permintaan (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);
Contoh Permintaan (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 Respons
{ "ok": true, "base": "USD", "ts": 1755600000, "prices": { "BTC": "117799.51713382", "ETH": "4409.46254479", "USDT": "1.0005594" } }
Kode Kesalahan
BAD_REQUEST
: Formatsymbols
tidak valid.UNAUTHORIZED / FORBIDDEN
: API key tidak valid atau hilang.SERVER_ERROR
: Kesalahan internal server/database.
Catatan
- Ticker yang tidak didukung akan diabaikan dari objek
prices
. - Nilai numerik dikembalikan sebagai string untuk menjaga presisi.
Status Pesanan
Gunakan satu endpoint untuk memeriksa status pesanan mixer dan exchange. Anda dapat secara eksplisit menetapkan jenis pesanan (mixer
/exchange
) atau membiarkan API mendeteksinya secara otomatis.
Endpoint
Badan Permintaan
trackcode
(wajib): Kode pelacakan 16 karakter huruf besar dari pesanan.type
(opsional):mixer
|exchange
. Jika tidak diisi, API akan mencoba mendeteksi secara otomatis.outputs
(opsional):none
|summary
|full
(default:summary
).mask_addresses
(opsional):true
=alamat disembunyikan (default),false
=kembalikan alamat penuh.
Respons
type
:mixer
atauexchange
.deposit.confirm_status
: Status konfirmasi deposit:0
: Tidak ada pembayaran diterima.1
: Pembayaran diterima tetapi masih tertunda (menunggu konfirmasi atau belum sepenuhnya terdanai).2
: Deposit sepenuhnya dikonfirmasi dan terdanai.
deposit.delete_in_sec
: Sisa detik hingga kedaluwarsa retensi 48 jam.- Blok
deposit.funding
:waiting_balance
: Jumlah total yang diharapkan.received_balance
: Jumlah yang sudah diterima.remaining_need
: Jumlah yang masih dibutuhkan.is_fully_funded
: Apakah sudah sepenuhnya terdanai.can_start
: hanya true jikaconfirm_status==2
DANis_fully_funded==true
.
outputs
:none
: Tidak dikembalikan.summary
: Mengembalikancount
,sent_count
,sent_total
.full
: Untuk setiap output:index
,address
(disembunyikan atau tidak),destination_tag
,coin
,network
,share_percent
,delay_label
,delay_seconds
,state
,confirm
,tx
,amount
,left_seconds
.
status_reason
: misalnya"INSUFFICIENT_FUNDS"
(jika belum sepenuhnya terdanai).
Aturan Bisnis
- Pesanan tidak akan dimulai kecuali sepenuhnya terdanai (
is_fully_funded=false
): output tetap tidak ditugaskan dan tidak ada pembayaran afiliasi yang dihasilkan. - Jika
confirm_status==2
DANis_fully_funded==true
:- Output diberi stempel waktu sekali dan tetap konsisten pada pemeriksaan berulang.
- Pendapatan afiliasi dikreditkan satu kali saat pesanan menjadi valid.
Contoh Permintaan (PHP)
// Contoh Mixer (output penuh, alamat tidak disembunyikan)<?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);
Contoh Respons — Sepenuhnya Terdanai
{ "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 } ] }
Contoh Respons — Kurang Dana
{ "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" } }
Penjelasan Output
index
: Nomor urut output dalam pesanan.address
: Alamat tujuan tempat dana dikirim.destination_tag
: Tag/memo opsional untuk XRP, XLM, dll. (null
jika tidak diperlukan).coin
: Kode mata uang kripto untuk output (misalnya,btc
,eth
).network
: Nama jaringan yang digunakan untuk transfer (misalnya,btc
,eth
).share_percent
: Persentase dari total deposit yang ditugaskan ke output ini.delay_label
: Label yang mudah dibaca menunjukkan kapan output ini akan diproses (misalnya,2h 0m
).delay_seconds
: Waktu tunda dalam detik hingga output dapat mulai diproses.state
: Status output:0
→ Menunggu (deposit belum sepenuhnya dikonfirmasi).1
→ Sedang diproses (dijadwalkan; dimulai saatdelay_seconds
mencapai 0).2
→ Selesai (transfer selesai).
confirm
: Status konfirmasi transfer (hanya relevan padastate=2
):0
→ Transaksi disiarkan tetapi belum dikonfirmasi (tertunda).1
→ Transaksi dikonfirmasi (setidaknya 1 konfirmasi blockchain).
tx
: Hash transaksi blockchain untuk output ini.amount
: Jumlah yang dikirim ke alamat output ini.left_seconds
: Sisa detik hingga waktu pengiriman terjadwal.
Catatan: Hitungan mundur ini dimulai ulang setelahdeposit.confirm_status=2
(sepenuhnya dikonfirmasi). Contoh: jika ditetapkan600
detik (10 menit), hitungan mundur hanya dimulai setelah konfirmasi deposit.
Catatan: Data pembayaran dan output diperbarui setiap ~1 menit.
Kode Kesalahan
BAD_REQUEST
:trackcode
hilang/tidak valid, badan permintaan rusak.NOT_FOUND
: Pesanan tidak ditemukan.UNAUTHORIZED / FORBIDDEN
: Kunci API tidak valid atau dinonaktifkan.TOO_MANY_REQUESTS
: Batas permintaan harian terlampaui.SERVER_ERROR
: Kesalahan server yang tidak terduga.
mask_addresses
: dikendalikan olehmask_addresses
(default:true
).delay_seconds
: setara numerik daridelay_label
(hanya dikembalikan dalam modefull
).
Hapus Pesanan
Hapus pesanan yang ada sehingga tidak dapat lagi diakses melalui API. Setelah dihapus, pesanan tidak akan tersedia secara permanen untuk permintaan lebih lanjut.
Endpoint
Badan Permintaan
trackcode
(wajib): Kode pelacakan huruf besar 16 karakter.type
(opsional):mixer
|exchange
. Jika tidak diisi, deteksi otomatis.
Respon
ok
:true
jika berhasil.trackcode
: Pantulan dari kode pelacakan yang diminta.type
: Jenis pesanan (mixer
atauexchange
).deleted
:true
jika pesanan telah dihapus.
Perilaku
- Jika pesanan sudah dihapus atau tidak ditemukan, API mengembalikan 404 NOT_FOUND.
- Jika
type
diberikan, hanya jenis itu yang diperiksa; jika tidak, deteksi otomatis.
Contoh Permintaan (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);
Contoh Respon — Berhasil
{ "ok": true, "trackcode": "D391FC08747E7B04", "type": "exchange", "deleted": true }
Contoh Respon — Tidak Ditemukan
{ "ok": false, "code": "NOT_FOUND", "message": "Order not found or already deleted" }
Kode Error
BAD_REQUEST
:trackcode
atautype
tidak valid.NOT_FOUND
: Pesanan tidak ditemukan atau sudah dihapus.UNAUTHORIZED / FORBIDDEN
: API key tidak valid atau hilang.SERVER_ERROR
: Kesalahan server internal.
Validasi Tanda Tangan
Validasi payload yang ditandatangani secara digital (tanda tangan Letter of Guarantee). Setelah berhasil didekripsi, API mengembalikan subset terverifikasi dari detail pesanan terkait (mixer atau exchange), cocok untuk pengecekan sisi klien dan tampilan status.
Endpoint
Badan Permintaan
signature
(wajib): Blok tanda tangan digital, baik dalam bentuk Base64 mentah atau dengan baris BEGIN/END.
Respon
ok
:true
jika berhasil.message
: Pesan status yang dapat dibaca manusia.type
:mixer
|exchange
.route
: Untuk mixer:confirm
|deposit
|mixing
. Untuk exchange:exc-deposit
|exc-send
.trackcode
: Kode pelacakan yang diuraikan.order
:deposit_address
(string)service_fee
(string, 2 desimal)coin
(string)network
(string)waiting_balance
(string, 8 desimal)created_at
(integer, Unix timestamp)
outputs
(array):coin
,network
,address
,destination_tag
share_percent
(string, 2 desimal)delay_minutes
(integer),delay_label
(contoh:2h 0m
)amount
(string, 8 desimal)
outputs_count
(integer)
Perilaku
- Tanda tangan digital yang diberikan divalidasi terhadap sistem.
- Hanya pesanan terbaru (dalam 48 jam) yang memenuhi syarat untuk validasi. Pesanan lama mungkin telah dihapus otomatis.
- Jika tidak ada pesanan valid yang ditemukan, API merespons dengan 404 NOT_FOUND.
Contoh Permintaan (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);
Contoh Respon — 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 Respon — Error
{ "ok": false, "error": "BAD_REQUEST", "message": "Tanda tangan digital diperlukan" } --- { "ok": false, "error": "INVALID_SIGNATURE", "message": "Data yang diberikan bukan Base64 yang valid atau terlalu pendek" } --- { "ok": false, "error": "DECRYPTION_FAILED", "message": "Dekripsi gagal. Pastikan tanda tangan yang diberikan valid lalu coba lagi." } --- { "ok": false, "error": "MISSING_TRACKCODE", "message": "Trackcode diperlukan dalam payload tanda tangan." } --- { "ok": false, "error": "NOT_FOUND", "message": "Detail pesanan yang diminta tidak dapat ditemukan." }
Kode Error
BAD_REQUEST
:signature
hilang atau payload rusak.INVALID_SIGNATURE
: Base64 tidak valid atau blok tanda tangan terlalu pendek.DECRYPTION_FAILED
: Dekripsi AES-GCM gagal.INVALID_PAYLOAD
: Payload hasil dekripsi bukan JSON yang valid.MISSING_TRACKCODE
: Kolomtrack
tidak ada dalam payload.NOT_FOUND
: Pesanan tidak ditemukan dalam 48 jam terakhir.UNAUTHORIZED / FORBIDDEN
: API key tidak valid atau hilang.SERVER_ERROR
: Kesalahan server internal.
Catatan
- Presisi numerik:
waiting_balance
danamount
→ 8 desimal (string),share_percent
→ 2 desimal (string),service_fee
→ 2 desimal (string). - Delay: baik label manusia (
delay_label
) maupun menit yang dapat dibaca mesin (delay_minutes
) dikembalikan.