1. Genel Bakış ve Mimari
En Onay REST API, modern dijital ajanslar, yazılım ekipleri ve e-ticaret otomasyonları için özel olarak geliştirilmiş kurumsal bir SMS onay köprüsüdür. Sistemimiz doğrudan Tier-1 uluslararası telekom operatörlerinin sinyal katmanlarına bağlıdır.
Platformumuz iki temel entegrasyon modelini destekler:
- RESTful Polling Modu: Standart HTTP GET/POST istekleri ile numara tahsis edilir ve durum periyodik olarak sorgulanır.
- Event-Driven Webhook Modu (Önerilen): SMS operatörden geldiği anda sunucunuza JSON bildirim fırlatılır. Polling gecikmesini ve sunucu yükünü sıfıra indirir.
Kurumsal Garanti ve Sıfır Risk İlkesi
Tahsis edilen numaraya 10 dakika içerisinde SMS kodu ulaşmazsa, işlem otomatik olarak iptal edilir veya cancel uç noktası üzerinden çağrıldığında ücret bakiyenize kuruşu kuruşuna iade edilir. Başarısız işlem için asla ücret ödemezsiniz.
2. Kimlik Doğrulama (Authentication)
API isteklerinin güvenliğini sağlamak amacıyla tüm korumalı uç noktalarda Authorization: Bearer <API_KEY> veya X-API-KEY başlığı kullanılmalıdır.
API Anahtarınızı Kullanıcı Paneli üzerinden tek tıkla üretebilirsiniz. Test amaçlı geliştirme yaparken sandbox modunu kullanabilirsiniz:
| Ortam | API Base URL | Test API Anahtarı | Durum |
|---|---|---|---|
| Canlı (Production) | https://enonay.com/api/v1.php |
Kendi Panel API Key'iniz | ● Aktif |
| Sandbox (Demo Test) | https://enonay.com/api/v1.php |
demo_enonay_key |
● Ücretsiz Mock Data |
3. Hızlı Başlangıç (Quickstart)
Aşağıdaki hazır kod blokları ile WhatsApp için İngiltere (+44) numarası alabilir ve SMS kodunu anında yakalayabilirsiniz:
# 1. WhatsApp için İngiltere numarası satın al
curl -X POST "https://enonay.com/api/v1.php?action=buy" -H "Authorization: Bearer demo_enonay_key" -H "Content-Type: application/x-www-form-urlencoded" -d "country=england&app=whatsapp"
# 2. Gelen SMS kodunu sipariş ID'si ile sorgula
curl -X GET "https://enonay.com/api/v1.php?action=sms&order_id=744204" -H "Authorization: Bearer demo_enonay_key"
import requests
import time
API_URL = "https://enonay.com/api/v1.php"
HEADERS = {"Authorization": "Bearer demo_enonay_key"}
# 1. Numara Satın Alma İsteği
order_resp = requests.post(f"{API_URL}?action=buy", headers=HEADERS, data={
"country": "england",
"app": "whatsapp"
}).json()
if order_resp.get("status") == "success":
order_id = order_resp["data"]["order_id"]
phone = order_resp["data"]["phone"]
print(f"[+] Tahsis Edilen Numara: {phone} (Sipariş: {order_id})")
# 2. SMS Kodu Bekleme Döngüsü (Polling)
print("[*] SMS kodu bekleniyor...")
for _ in range(20):
time.sleep(2)
sms_resp = requests.get(f"{API_URL}?action=sms&order_id={order_id}", headers=HEADERS).json()
if sms_resp.get("data", {}).get("status") == "RECEIVED":
print(f"[✓] Onay Kodu Alındı: {sms_resp['data']['sms_code']}")
break
<?php
$apiUrl = 'https://enonay.com/api/v1.php';
$apiKey = 'demo_enonay_key';
// 1. Numara Satın Alma (cURL)
$ch = curl_init($apiUrl . '?action=buy');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer {$apiKey}"],
CURLOPT_POSTFIELDS => http_build_query([
'country' => 'england',
'app' => 'whatsapp'
])
]);
$orderData = json_decode(curl_exec($ch), true);
curl_close($ch);
if ($orderData['status'] === 'success') {
$orderId = $orderData['data']['order_id'];
$phone = $orderData['data']['phone'];
echo "Numara Hazır: {$phone} (ID: {$orderId})
";
}
?>
const axios = require('axios');
async function quickSMS() {
const res = await axios.post('https://enonay.com/api/v1.php?action=buy',
'country=england&app=whatsapp', {
headers: { 'Authorization': 'Bearer demo_enonay_key' }
});
console.log('Tahsis Edilen Numara:', res.data.data.phone);
}
quickSMS();
API Referansı ve Uç Noktalar
Hesabınızdaki kullanılabilir Türk Lirası (TRY) bakiye durumunu ve hesap tipini döndürür.
curl -X GET "https://enonay.com/api/v1.php?action=balance" -H "Authorization: Bearer <API_KEY>"
Örnek Başarılı Yanıt (200 OK):
{
"status": "success",
"code": 200,
"message": "Bakiye bilgisi alındı.",
"timestamp": 1779977410,
"data": {
"user_id": 1042,
"email": "[email protected]",
"balance": 450.50,
"currency": "TRY",
"account_type": "production"
}
}
Mevcut tüm platformların (WhatsApp, Telegram, OpenAI vb.), anlık stok adetlerinin ve minimum birim fiyatlarının listesini getirir.
curl -X GET "https://enonay.com/api/v1.php?action=services" -H "Authorization: Bearer demo_enonay_key"
Belirtilen ülke ve servis için anında aktif bir sanal SMS onay numarası tahsis eder. Numara geçerlilik süresi 10 dakikadır (600 saniye).
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| country | string | Zorunlu | Ülke kodu: england, usa, germany, netherlands vb. |
| app | string | Zorunlu | Servis adı: whatsapp, telegram, google, openai, discord |
import requests
res = requests.post("https://enonay.com/api/v1.php?action=buy",
headers={"Authorization": "Bearer <API_KEY>"},
data={"country": "england", "app": "telegram"}
)
print(res.json())
Satın alınan numaranın durumunu kontrol eder. SMS geldiğinde status: "RECEIVED" ve sms_code alanları döner.
{
"status": "success",
"code": 200,
"data": {
"order_id": 744204,
"status": "RECEIVED",
"sms_code": "812940",
"full_sms": "WhatsApp dogrulama kodunuz: 812-940",
"received_at": "2026-10-27 00:08:06",
"delivery_time_seconds": 1.2
}
}
SMS gelmeyen numarayı iptal eder. Kesintisiz tutar bakiyenize hemen iade edilir.
4. Webhook Entegrasyonu & Anlık Push
Sürekli döngü (polling) ile sunucunuzu meşgul etmek yerine, SMS operatöre ulaştığı anda doğrudan kendi uç noktanıza HTTP POST bildirimleri alabilirsiniz. Bu mimari gecikmeyi milisaniyelere indirir ve CPU kullanımını optimize eder.
HMAC-SHA256 Güvenlik İmzası
Gönderilen her webhook isteği X-EnOnay-Signature: sha256=<hash> başlığı ile imzalanır. Gelen verinin gerçekten En Onay sunucularından geldiğini kendi gizli anahtarınız (secret key) ile doğrulayabilirsiniz.
PHP ile Örnek Webhook Alıcı (Listener) Kodu:
<?php
// En Onay Webhook Listener Örneği
$secretKey = 'YOUR_WEBHOOK_SECRET_KEY';
// 1. Ham gövdeyi (raw payload) ve başlığı oku
$rawPayload = file_get_contents('php://input');
$signatureHeader = $_SERVER['HTTP_X_ENONAY_SIGNATURE'] ?? '';
// 2. HMAC-SHA256 imzasını hesapla ve doğrula
$expectedSignature = 'sha256=' . hash_hmac('sha256', $rawPayload, $secretKey);
if (!hash_equals($expectedSignature, $signatureHeader)) {
http_response_code(401);
exit(json_encode(['error' => 'Geçersiz HMAC İmzası!']));
}
// 3. Güvenli veriyi işle
$data = json_decode($rawPayload, true);
$orderId = $data['order_id'];
$smsCode = $data['sms_code'];
$phone = $data['phone'];
// [Burada SMS kodunu veritabanınıza yazabilir veya kullanıcınıza aktarabilirsiniz]
error_log("SMS Geldi! Siparis: {$orderId}, Kod: {$smsCode}, Numara: {$phone}");
// 4. Başarılı olduğunu En Onay motoruna bildir (200 OK)
http_response_code(200);
echo json_encode(['status' => 'acknowledged']);
?>
Python (Flask) Webhook Alıcı Kodu:
from flask import Flask, request, jsonify
import hmac, hashlib
app = Flask(__name__)
SECRET_KEY = b"YOUR_WEBHOOK_SECRET_KEY"
@app.route("/webhook", methods=["POST"])
def enonay_webhook():
signature = request.headers.get("X-EnOnay-Signature", "")
raw_body = request.get_data()
expected = "sha256=" + hmac.new(SECRET_KEY, raw_body, hashlib.sha256).hexdigest()
if not hmac.compare_digest(signature, expected):
return jsonify({"error": "Invalid signature"}), 401
payload = request.get_json()
print(f"[+] Webhook Alındı! Sipariş: {payload['order_id']} | Kod: {payload['sms_code']}")
return jsonify({"status": "acknowledged"}), 200
if __name__ == "__main__":
app.run(port=5000)
5. Kurumsal SLA & Concurrency Limitleri
Büyük ölçekli veri madenciliği, ajans operasyonları ve botnet entegrasyonları için sunucu seviyesinde optimize edilmiş bağlantı havuzları sunuyoruz.
| Hesap Seviyesi | Rate Limit (Dakika) | Paralel İstek | Dedicated IP Havuzu | Webhook Hızı |
|---|---|---|---|---|
| Standart Geliştirici | 120 istek/dk | 10 eşzamanlı | Paylaşımlı | < 1.2 sn |
| Kurumsal / Ajans Planı | 1.200 istek/dk | 150 eşzamanlı | Özel Ayrılmış Gateway | < 500 ms |
6. Canlı API Sandbox & Test Konsolu
Entegrasyonunuzu tarayıcı üzerinden canlı test edin. Aşağıdaki formu kullanarak gerçek API Gateway uç noktamıza istek gönderip yanıtı anında inceleyebilirsiniz.