API sederhana untuk order OTP secara otomatis: cek saldo, top-up, ambil daftar layanan & negara, beli nomor, terima OTP, batalkan, atau selesaikan order.
https://kopisusuotp.store/api/v1
Setiap permintaan wajib menyertakan API key kamu. Kirim lewat salah satu cara:
Authorization: Bearer YOUR_API_KEY
X-Api-Key: YOUR_API_KEY
?apikey=YOUR_API_KEY
🔑 Masuk lalu buka Pengaturan API untuk mendapatkan key milikmu.
Key berlaku hanya di domain ini. Rahasiakan — key = akses penuh ke saldo & order kamu.
| Baca (GET) | 120 permintaan / menit |
| Mutasi (POST) | 30 permintaan / menit |
Kuota dihitung per API key. Jika terlampaui, respons 429 Too Many Requests. Header Retry-After menunjukkan jeda detik.
Selalu JSON. Semua nominal uang dalam Rupiah (IDR), bilangan bulat.
{ "success": true, "data": ... }
{ "success": false, "message": "penjelasan error" }
Kode HTTP: 200 ok · 401 key salah · 422 input salah / gagal · 429 kebanyakan request · 504 koneksi lambat (lihat catatan order).
Saldo pelanggan. `held` = dana tertahan di order aktif, `active_count` = jumlah order berjalan.
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://kopisusuotp.store/api/v1/balance
{ "success": true, "data": { "balance": 50000, "held": 3148, "active_count": 1 } }
Daftar layanan (WhatsApp, Telegram, dst).
| q | cari nama layanan |
| page | halaman (default 1) |
| limit | per halaman (default 10, maks 50) |
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://kopisusuotp.store/api/v1/services?q=whatsapp&limit=20"
{ "success": true, "data": [
{ "id": 1, "name": "WhatsApp", "service_image": "https://..." }
] }
Negara yang tersedia untuk sebuah layanan, beserta harga jual (IDR). Gunakan `country_id` untuk order.
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://kopisusuotp.store/api/v1/services/1/countries
{ "success": true, "data": [
{ "country_id": 6, "country_name": "Indonesia", "country_code": "id", "price": 1200 }
] }
Beli nomor OTP. Saldo dipotong sebesar harga negara terpilih.
| service_id * | id layanan |
| country_id * | id negara |
| operator | operator tertentu (default "any") |
| max_price_usd | batas harga; pilih tier termurah ≤ nilai ini |
| request_id | kunci idempotensi (lihat catatan 504) |
curl -X POST https://kopisusuotp.store/api/v1/order \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"service_id":1,"country_id":6,"request_id":"my-uniq-123"}'
{ "success": true, "data": {
"id": 9001, "phone_number": "628123456789",
"service_name": "WhatsApp", "country_name": "Indonesia",
"price": 1200, "status": "active",
"sms_code": null, "sms_data": [], "expired_at": "2026-07-13T21:20:00+07:00"
} }
⚠️ Jika balasan 504 (retry_safe), JANGAN order baru — nomor mungkin sudah dibuat. Ulangi dengan `request_id` yang sama, atau cek `/orders/active`.
Semua order yang masih berjalan (menunggu / sudah menerima OTP).
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://kopisusuotp.store/api/v1/orders/active
Status satu order + OTP terbaru. Panggil berkala (mis. tiap 3–5 detik) untuk menunggu OTP masuk. `sms_code` terisi saat OTP diterima.
{ "success": true, "data": {
"id": 9001, "status": "active", "phone_number": "628123456789",
"sms_code": "123456",
"sms_data": [ { "text": "Your code is 123456", "code": "123456" } ]
} }
Batalkan order. Saldo dikembalikan bila belum ada SMS. Tidak bisa dibatalkan jika OTP sudah masuk (atau nomor sewa).
curl -X POST https://kopisusuotp.store/api/v1/order/cancel \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"order_id":9001}'
Minta SMS/OTP baru pada nomor yang sama (hanya untuk order yang mendukung, setelah SMS pertama).
curl -X POST https://kopisusuotp.store/api/v1/order/request-sms \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"order_id":9001}'
Tandai order selesai (wajib sudah ada SMS). Setelah selesai, order diarsipkan ke riwayat.
curl -X POST https://kopisusuotp.store/api/v1/order/finish \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"order_id":9001}'
Top-up saldo. QRIS (bayar rupiah) atau Crypto (bayar USD via gateway). Saldo bertambah otomatis setelah pembayaran dikonfirmasi.
| method * | "qris" atau "crypto" |
| amount | QRIS: nominal IDR (2.000 – 2.000.000) |
| amount_usd | Crypto: nominal USD (1 – 1000) |
curl -X POST https://kopisusuotp.store/api/v1/deposit \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"method":"qris","amount":10000}'
{ "success": true, "data": {
"id": 5501, "code": "RCD-XXXX", "amount": 10000,
"qr_string": "00020101...6304ABCD",
"qr_image_base64": "data:image/png;base64,iVBOR...",
"expired_at": "2026-07-13T21:40:00+07:00"
} }
Tampilkan `qr_image_base64` sebagai gambar, atau buat QR sendiri dari `qr_string`. Untuk Crypto, respons berisi `payment_url` — arahkan pelanggan ke sana.
curl -X POST https://kopisusuotp.store/api/v1/deposit \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"method":"crypto","amount_usd":5}'
Status satu deposit. `status` = "pending" (belum dibayar) / "paid" (lunas → saldo sudah masuk) / "expired". Panggil berkala setelah membuat deposit, atau cukup pantau /balance.
{ "success": true, "data": {
"id": 5501, "code": "RCD-XXXX", "amount": 10000,
"status": "paid", "method": "iskapay",
"paid_at": "2026-07-13T21:31:00+07:00", "expired_at": "2026-07-13T21:40:00+07:00"
} }