Dokumentasi API
CentralOTP Unified API
CentralOTP API adalah satu pintu untuk membuat order OTP, SMM, App Premium, Top Up Game, dan Prepaid/PPOB. Satu API key dapat dipakai untuk semua produk yang aktif di akun kamu.
Dokumentasi API
CentralOTP API adalah satu pintu untuk membuat order OTP, SMM, App Premium, Top Up Game, dan Prepaid/PPOB. Satu API key dapat dipakai untuk semua produk yang aktif di akun kamu.
Semua endpoint private wajib memakai API key dari dashboard Developer. API key dikirim lewat header `Authorization`.
Authorization: Bearer cotp_live_xxxxxxxxxxxxxxxxx
Jangan kirim API key di query string atau membagikannya ke frontend publik.
saldo userSemua order akan memotong saldo akun web.otp, smm, app_premium, topup, prepaidMenentukan jenis order yang dibuat.objectIsi payload berbeda sesuai produk.string unikDipakai agar retry request tidak membuat order ganda.ord_...ID internal untuk cek status order.Beli nomor virtual untuk menerima kode OTP. Website/API akan refund jika expired tanpa kode.
Order follower, like, view, comment, dan layanan sosial media lain sesuai katalog provider.
Beli akun, lisensi, atau paket aplikasi premium. Hasil order dikembalikan di payload order.
Top up game memakai user ID/server ID dan pilihan nominal produk.
Pulsa, paket data, e-wallet, voucher, dan produk digital lain.
Developer dashboard adalah tempat user mengatur akses API sebelum dipakai di sistem sendiri.
/balanceCek saldo akun API./productsList kategori produk yang tersedia./transactionsRiwayat mutasi saldo./ordersMembuat order semua produk./ordersList order akun./orders/:idCek detail dan status order./orders/:id/cancelCancel order jika produk/status mengizinkan.curl https://api.centralotp.shop/api/v1/balance \
-H "Authorization: Bearer cotp_live_xxxxxxxxx"
POST /api/v1/orders
{
"product_type": "otp",
"idempotency_key": "otp-20260702-0001",
"payload": {
"service_id": "whatsapp",
"country_id": "id",
"operator_id": "any"
}
}
POST /api/v1/orders
{
"product_type": "smm",
"idempotency_key": "smm-20260702-0001",
"payload": {
"service_id": "12345",
"target": "https://instagram.com/username",
"quantity": 100
}
}
POST /api/v1/orders
{
"product_type": "topup",
"idempotency_key": "topup-20260702-0001",
"payload": {
"game_id": "mobile-legends",
"product_id": "diamond-86",
"user_id": "123456789",
"server_id": "1234"
}
}
Semua order memakai endpoint yang sama, tapi isi `payload` berbeda sesuai `product_type`.
service_idID aplikasi OTP, contoh WhatsApp atau Telegram.country_idNegara nomor OTP.operator_idOperator/provider yang dipilih, atau `any` jika tersedia.service_idID layanan SMM.targetURL/posting/profile tujuan.quantityJumlah order.product_id, variant_id, qtyProduk dan paket yang dibeli.game_id, product_id, user_id, server_idGame, nominal, dan data akun game.product_id, destinationProduk PPOB dan nomor tujuan.awalOrder sedang dibuat di sistem.menungguOrder sudah diterima provider dan menunggu hasil.prosesProvider sedang memproses order.selesaiOrder selesai.kedaluwarsaKhusus OTP, waktu tunggu habis.gagalOrder gagal dan akan diproses refund jika memenuhi aturan.refundSaldo order sudah dikembalikan.Webhook bersifat opsional. Jika user mengatur callback URL, CentralOTP akan mengirim update saat status order berubah.
POST https://domain-kamu.com/callback
X-CentralOTP-Signature: sha256=...
{
"event": "order.updated",
"order_id": "ord_xxx",
"product_type": "otp",
"status": "success"
}
401API key tidak ada atau tidak valid.402Saldo tidak cukup.400Payload tidak lengkap atau format salah.403Produk belum aktif untuk akun.404Order tidak ditemukan.502Provider sedang bermasalah.{
"success": false,
"code": "INSUFFICIENT_BALANCE",
"message": "Saldo tidak cukup."
}