Prerequisites
- Terminal / command line untuk jalankan cURL (semua OS)
- Payment method QRIS Indonesia (DANA, GoPay, OVO, ShopeePay, atau m-banking)
- Email valid untuk register akun
Tidak butuh kartu kredit. Tidak butuh KTP.
Step 1 — Register akun (30 detik)
Buka nomorotp.id/register di browser. Isi username + email + password + centang persetujuan → Buat Akun & Masuk. Akun langsung aktif tanpa email verification.
Punya akun Google? Klik Daftar dengan Google — akun langsung terbuat dalam 1 klik.
Step 2 — Top up saldo (1 menit)
Di dashboard, klik Isi Saldo. Pilih nominal minimum Rp 10.000. Sistem generate QRIS — scan pakai app pembayaran favorit (DANA / GoPay / OVO / ShopeePay / m-banking).
Saldo masuk otomatis dalam ~15 detik setelah payment sukses. Refresh dashboard untuk cek balance.
Step 3 — Ambil API key (30 detik)
Buka nomorotp.id/api-docs. Section My API Key menampilkan token kamu — klik Reveal lalu Copy. Kalau belum ada, klik Generate untuk buat baru.
API key ini yang lu pakai di HTTP header X-API-Key untuk auth semua endpoint.
Simpan API key baik-baik. Jangan hardcode di source code yang di-push ke git — pakai environment variable. Kalau leak, langsung regenerate di dashboard.
Step 4 — Test dulu: cek saldo (5 detik)
Endpoint paling sederhana untuk verifikasi API key kamu jalan. GET request ke action=getBalance:
curl -X GET "https://api.nomorotp.id/?action=getBalance" \
-H "X-API-Key: YOUR_API_KEY"
Response success:
{"success": true, "balance": 10000}
Kalau success: true + saldo muncul = API key valid ✓ Lanjut ke step berikutnya.
Step 5 — Sewa nomor virtual (10 detik)
Endpoint getNumber pakai POST — kirim server, service, country sebagai query string. Contoh untuk WhatsApp (service=wa) nomor Indonesia (country=6) di server default (server=sh):
curl -X POST "https://api.nomorotp.id/?action=getNumber&server=sh&service=wa&country=6" \
-H "X-API-Key: YOUR_API_KEY"
Response:
{
"success": true,
"activation": {
"id": "ACT123",
"phone": "628123456789",
"cost": 250,
"expires_in": 1200
}
}
Copy phone → paste ke aplikasi tujuan (misal WhatsApp saat register), request send OTP.
Step 6 — Poll SMS untuk terima kode (10-30 detik)
Poll endpoint getStatus setiap 3 detik untuk cek apakah SMS masuk. Pass activation id dari step sebelumnya:
curl -X GET "https://api.nomorotp.id/?action=getStatus&id=ACT123" \
-H "X-API-Key: YOUR_API_KEY"
Response saat kode belum masuk:
{"success": true, "status": "STATUS_WAIT_CODE"}
Response saat kode masuk:
{"success": true, "status": "STATUS_OK", "code": "456789"}
Copy field code → input ke aplikasi tujuan → verifikasi sukses. Selesai.
Kalau kode gagal masuk — apa yang terjadi?
Kalau tidak ada SMS dalam 20 menit, sistem otomatis expire activation dan refund 100% saldo ke akun kamu. Tanpa klaim manual, tanpa chat admin. Cocok untuk automated retry logic.
Kalau kamu mau cancel manual (misalnya salah request), panggil cancelActivation:
curl -X POST "https://api.nomorotp.id/?action=cancelActivation&id=ACT123" \
-H "X-API-Key: YOUR_API_KEY"
Response:
{"success": true, "refund": 250}
Kalau kode sukses dipakai — mark finish
Setelah kode dipakai untuk verifikasi, mark activation sebagai selesai dengan setStatus (status 6 = finish):
curl -X POST "https://api.nomorotp.id/?action=setStatus&id=ACT123&status=6" \
-H "X-API-Key: YOUR_API_KEY"
Ini cegah retry accidentally + clean up activation dari list pending.
Next steps
Setelah selesai quickstart, lanjut ke:
- API Reference lengkap — 12 endpoint + params + error codes
- Code examples — production-ready PHP / Node.js / Python samples
- FAQ — rate limit, best practices, error handling
Butuh service ID untuk aplikasi spesifik?
Beberapa service ID populer:
| Service | ID | Landing page |
|---|---|---|
wa | otp-whatsapp | |
| Telegram | tg | otp-telegram |
| Gojek | go | otp-gojek |
| Shopee | ot | otp-shopee |
| TikTok | lf | otp-tiktok |
ig | otp-instagram | |
fb | otp-facebook |
List lengkap 400+ service via endpoint getServices (baca API Reference).