[wp_sms_verify_form]

[wp_sms_wallet_dashboard]

API Gateway Entegrasyon Dokümantasyonu

Sanal numara kiralama ve SMS onay işlemlerini kendi sistemlerinize entegre etmek için SMS Gateway v1 protokol detayları.

ℹ️
5sim / SMS-Activate Protokol Uyumluluğu API protokolümüz, standart SMS-Activate ve 5sim entegrasyon şablonlarıyla %100 uyumludur. Mevcut yazılımlarınızda sadece API URL (Base URL) ve API Key tanımlayarak hemen kullanmaya başlayabilirsiniz.

1 Genel Kurallar ve Kimlik Doğrulama

Tüm API istekleri güvenli bağlantı üzerinden HTTP GET metodu kullanılarak gerçekleştirilir. İsteklerinizi doğrulamak için her sorguda hesabınıza ait API anahtarını api_key parametresi olarak iletmelisiniz.

API Anahtarı (API Key)

API Anahtarınızı cüzdan panelinizdeki Wallet Dashboard > API Integration sekmesinden edinebilirsiniz. API Anahtarınızın güvenliğini korumalı, üçüncü şahıslarla paylaşmamalısınız.

API İstek Adresleri (Base URL)
Önerilen https://siteniz.com/sms-api
Alternatif https://siteniz.com/?wp_sms_api=1

2 API Metotları ve Protokol Detayları

2.1 Bakiye Sorgulama (getBalance) GET

Cüzdanınızda bulunan güncel bakiyenizi kontrol etmek amacıyla kullanılır.

İstek URL:
https://siteniz.com/sms-api?api_key=YOUR_API_KEY&action=getBalance
Başarılı Yanıt (Düz Metin):
ACCESS_BALANCE:15.5000
Olası Hatalar:
BAD_KEY
2.2 Fiyat ve Stok Sorgulama (getPrices) GET

Sistemdeki ülke ve servislere ait fiyatlandırmaları ve anlık stok adetlerini getirir.

Opsiyonel Parametreler:
  • country: Ülke adı veya ID’si (Varsayılan olarak 0/Tüm Ülkeler döner).
  • service: Filtrelemek istediğiniz Servis Kodu (Örn: wa for WhatsApp, tg for Telegram).
İstek URL:
https://siteniz.com/sms-api?api_key=YOUR_API_KEY&action=getPrices&country=0&service=wa
Başarılı Yanıt (JSON):
{
  "0": {
    "wa": {
      "cost": 0.50,
      "count": 99
    }
  }
}
2.3 Numara Satın Alma (getNumber) GET

Belirlenen ülke ve servise ait yeni bir sanal numara tahsis eder. Numara tahsis edildiğinde cüzdan bakiyenizden ilgili tutar bloke edilir (SMS kodu ulaşıp onaylanana veya iptal edilene kadar bakiye tam olarak tahsil edilmez).

Zorunlu Parametreler:
  • country: Hedef Ülke ID’si veya adı (Örn: turkey, usa, england vb.).
  • service: Hedef Uygulama / Servis Kodu (Örn: wa – WhatsApp, tg – Telegram, go – Google).
İstek URL:
https://siteniz.com/sms-api?api_key=YOUR_API_KEY&action=getNumber&country=turkey&service=wa
Başarılı Yanıt (Düz Metin):
ACCESS_NUMBER:1425:905321234567
Yanıt formatı: ACCESS_NUMBER:[SIPARIS_ID]:[TELEFON_NUMARASI] şeklindedir.
Hata Yanıtları:
NO_BALANCE (Bakiye yetersiz)
NO_NUMBERS (Mevcut numara yok/sağlayıcı hatası)
BAD_SERVICE (Hatalı ülke veya servis)
PREVENT_RACE_CONDITION (10 saniye limitine takıldınız. İstekler arasında 10 saniye bekleyin)
2.4 SMS Durumu Sorgulama (getStatus) GET

Tahsis edilen numara için SMS kodunun gelip gelmediğini kontrol etmek için kullanılır. İstek sıklığının 5 saniyede birden daha sık olmaması önerilir.

Zorunlu Parametre:
  • id: Satın alırken elde ettiğiniz Sipariş Numarası (ACTIVATION_ID).
İstek URL:
https://siteniz.com/sms-api?api_key=YOUR_API_KEY&action=getStatus&id=1425
Yanıt Durumları:
STATUS_WAIT_CODE - SMS kodu bekleniyor (Henüz ulaşmadı)
STATUS_OK:982314 - SMS kodu ulaştı. Kodu alıp kullanabilirsiniz
STATUS_CANCEL - Sipariş zaman aşımından veya kullanıcı talebiyle iptal edildi
2.5 Aktivasyon Durumunu Güncelleme (setStatus) GET

Aktif siparişi onaylayıp sonlandırmak veya iptal ederek bloke bakiyenin iadesini almak için kullanılır.

Zorunlu Parametreler:
  • id: Güncellemek istediğiniz Sipariş Numarası (ACTIVATION_ID).
  • status: Hedef durum kodu:
    • 6 (Tamamle): SMS kodu ulaştı ve başarıyla onaylandı. Bloke edilen bakiye hesaptan kalıcı olarak tahsil edilir.
    • 8 (İptal/İade): Kod alınamadı veya sipariş iptal edildi. Bloke tutar cüzdana anında iade edilir.
İptal İstek Örneği:
https://siteniz.com/sms-api?api_key=YOUR_API_KEY&action=setStatus&id=1425&status=8
Yanıt Durumları:
ACCESS_CANCEL - Sipariş başarıyla iptal edildi ve tutar iade edildi
ACCESS_ACTIVATION - Sipariş başarıyla tamamlandı
BAD_STATUS - Geçersiz durum değişikliği isteği

3 Hata Kodları Referansı

Sistem genelinde dönen tüm standart hata mesajları ve çözümleri aşağıda listelenmiştir:

Hata Kodu Açıklama ve Çözüm Ayrıntısı
BAD_KEY Geçersiz veya eksik API anahtarı. Anahtarınızı cüzdan panelinden kontrol edin.
BAD_ACTION Gönderilen aksiyon geçersiz veya eksik (action parametresini doğrulayın).
NO_BALANCE Cüzdan bakiyeniz yetersiz. Lütfen web sitesi üzerinden bakiye yüklemesi yapın.
NO_NUMBERS Sağlayıcılarda veya seçilen ülkede uygun stok bulunamadı. Lütfen daha sonra deneyin.
NO_ACTIVATION Belirtilen ID değerine sahip bir sipariş bulunamadı veya sipariş hesaba ait değil.
BAD_SERVICE Geçersiz ülke adı veya geçersiz servis kodu. Protokol listesini inceleyin.
PREVENT_RACE_CONDITION Aynı anda çoklu istek engeli. İki kiralama isteği arasında en az 10 saniye olmalıdır.

4 Entegrasyon Kod Örnekleri

4.1 Python Entegrasyon Örneği

import time
import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://siteniz.com/sms-api"

# 1. Bakiye Kontrolü
balance_resp = requests.get(f"{BASE_URL}?api_key={API_KEY}&action=getBalance")
print("Cüzdan Bakiyesi:", balance_resp.text)

# 2. Sanal Numara Satın Al (WhatsApp - Türkiye)
buy_params = {
    "api_key": API_KEY,
    "action": "getNumber",
    "country": "turkey",
    "service": "wa"
}
buy_resp = requests.get(BASE_URL, params=buy_params)
print("Sipariş Yanıtı:", buy_resp.text)

if buy_resp.text.startswith("ACCESS_NUMBER"):
    parts = buy_resp.text.split(":")
    activation_id = parts[1]
    phone_number = parts[2]
    print(f"Numara Alındı! ID: {activation_id} | Tel: {phone_number}")
    
    # 3. Belirli aralıklarla SMS Kodu sorgulama
    print("SMS kodu bekleniyor...")
    for _ in range(18):  # 3 dakika boyunca sorgula
        time.sleep(10)
        status_resp = requests.get(f"{BASE_URL}?api_key={API_KEY}&action=getStatus&id={activation_id}")
        
        if status_resp.text.startswith("STATUS_OK"):
            sms_code = status_resp.text.split(":")[1]
            print(f"SMS Kodu Alındı: {sms_code}")
            
            # Siparişi Onayla
            requests.get(f"{BASE_URL}?api_key={API_KEY}&action=setStatus&id={activation_id}&status=6")
            break
            
        elif status_resp.text == "STATUS_CANCEL":
            print("Sipariş zaman aşımı veya harici sebeplerle iptal edildi.")
            break
    else:
        # SMS gelmediyse siparişi iptal et (bakiye iadesi)
        print("Süre bitti. Sipariş iptal ediliyor...")
        requests.get(f"{BASE_URL}?api_key={API_KEY}&action=setStatus&id={activation_id}&status=8")

4.2 cURL (Terminal) Hızlı Test Komutları

# Bakiye Sorgulama
curl "https://siteniz.com/sms-api?api_key=YOUR_API_KEY&action=getBalance"

# Numara Satın Alma (WhatsApp - Türkiye)
curl "https://siteniz.com/sms-api?api_key=YOUR_API_KEY&action=getNumber&country=turkey&service=wa"

# SMS Kodunu Sorgula (Sipariş ID: 1425)
curl "https://siteniz.com/sms-api?api_key=YOUR_API_KEY&action=getStatus&id=1425"

# Siparişi Onaylayarak Sonlandır (Sipariş ID: 1425)
curl "https://siteniz.com/sms-api?api_key=YOUR_API_KEY&action=setStatus&id=1425&status=6"

# Siparişi İptal Et ve Bakiyeyi İade Al (Sipariş ID: 1425)
curl "https://siteniz.com/sms-api?api_key=YOUR_API_KEY&action=setStatus&id=1425&status=8"
“`