Ana sayfa › SMS API
Geliştirici API'si

Sanal Numaralar için SMS Onay API'si

Turonay SMS onay API'si ile uygulamanıza, botunuza ya da panelinize sanal numara alma ve gelen SMS kodunu okuma yeteneği ekleyin. handler_api uyumlu protokolünü konuşur: elinizde bu protokol için yazılmış hazır bir entegrasyon varsa çoğu zaman yalnızca taban adresi ve API anahtarını değiştirirsiniz. Numara alırken değil, kod size ulaştığında ödersiniz.

195şu an listelenen servis
210şu an listelenen ülke
GET · POSTistek yöntemi
HMAC-SHA256imzalı webhook

API sayfaları

3 adımda hızlı başlangıç

Önce ücretsiz kayıt olun, bakiye yükleyin ve profilinizin API bölümünden API anahtarınızı alın. Örneklerde YOUR_KEY yerine kendi anahtarınızı yazın. İstekler GET ya da POST olabilir; POST ile api_key dahil tüm parametreleri istek gövdesinde form alanı (application/x-www-form-urlencoded) olarak gönderebilir, böylece anahtarın URL'de ve sunucu günlüklerinde görünmesini önleyebilirsiniz. İki taban adres eşdeğerdir: https://turonay.com/stubs/handler_api.php ve https://turonay.com/api/.

1. Bakiyenizi kontrol edin

getBalance bakiyenizi ACCESS_BALANCE:tutar biçiminde verir; anahtarınızın çalıştığını da böyle doğrularsınız. Tutar TRY cinsindendir ve açık aktivasyonlar için rezerve edilen miktar düşüldükten sonraki kullanılabilir bakiyedir.

bash
curl "https://turonay.com/stubs/handler_api.php?api_key=YOUR_KEY&action=getBalance"
ACCESS_BALANCE:125.4000

2. Numara alın

service servis kodu (WhatsApp için wa), country ülke kimliğidir. Başarılı istek ACCESS_NUMBER:aktivasyon_kimliği:telefon döndürür. Fiyat bu anda bakiyenizde rezerve edilir, henüz tahsil edilmez. Kabul edeceğiniz en yüksek fiyatı maxPrice ile verirseniz fiyat aşıldığında numara alınmaz ve WRONG_MAX_PRICE:fiyat döner.

bash
curl "https://turonay.com/stubs/handler_api.php?api_key=YOUR_KEY&action=getNumber&service=wa&country=62&maxPrice=20"
ACCESS_NUMBER:184213:905301234567

3. Kodu alın

Kod gelene kadar getStatus STATUS_WAIT_CODE döndürür; kod gelince STATUS_OK:kod. Ücret tam bu anda kesinleşir. Sürekli sorgulamak yerine imzalı webhook da kullanabilirsiniz.

bash
curl "https://turonay.com/stubs/handler_api.php?api_key=YOUR_KEY&action=getStatus&id=184213"
STATUS_WAIT_CODE

curl "https://turonay.com/stubs/handler_api.php?api_key=YOUR_KEY&action=getStatus&id=184213"
STATUS_OK:123456

JSON isterseniz: getNumberV2

getNumberV2, getNumber ile aynı parametreleri alır ve başarıda JSON döndürür: aktivasyon kimliği, numara, fiyat, para birimi (949 = TRY), ülke, bitiş zamanı ve operatör. activationTime ve activationEndTime sunucu saatindedir (Europe/Istanbul, UTC+3), Y-m-d H:i:s biçimindedir ve saat dilimi içermez. Hata durumunda klasik metin kodları (NO_NUMBERS, NO_BALANCE, WRONG_MAX_PRICE:fiyat) gelir.

json
{
  "activationId": "184213",
  "phoneNumber": "905301234567",
  "activationCost": "12.50",
  "currency": 949,
  "countryCode": "62",
  "canGetAnotherSms": true,
  "activationTime": "2026-10-10 12:00:00",
  "activationEndTime": "2026-10-10 12:20:00",
  "activationOperator": "any"
}

Neden Turonay sanal numara API'si?

Amaç, entegrasyonu kısa tutmak ve maliyeti öngörülebilir kılmak.

Uyumlu protokol

Sektörde yaygın handler_api biçimini konuşur: aynı action adları, aynı düz metin yanıtlar, üstüne JSON uçları. Hazır istemci ve botlarınız çoğunlukla taban adres değişikliğiyle çalışır; servis kodlarını ve ülke kimliklerini getPrices ile doğrulayın.

Kod gelince ücret

Numara alındığında tutar yalnızca rezerve edilir. Kod gelmezse, sağlayıcı iptal ederse ya da süre dolarsa rezerve tutar bakiyenize döner.

İmzalı webhook

Kod geldiğinde veya aktivasyon iptal olduğunda sunucunuza HMAC-SHA256 imzalı bir HTTPS POST gider. Başarısız teslimatlar kademeli beklemeyle yeniden denenir.

Güncel fiyat ve stok

getPrices her servis–ülke çifti için güncel fiyatı ve stok adedini verir. Tahmin etmezsiniz; listeyi çeker, fiyatı görür, sonra satın alırsınız.

Çoklu para birimi

API fiyatları TRY'dir (getNumberV2'de para birimi kodu 949). Web sitesinde bakiyenizi ve fiyatları TRY, USD veya RUB olarak görüntüleyebilirsiniz.

Üç dilde site ve doküman

Site ve API dokümanı Türkçe, İngilizce ve Rusça. Entegrasyonda takıldığınızda destek talebi sistemiyle bize yazabilirsiniz.

API metotları

Her istekte api_key ve action gönderilir. Aşağıdaki tablo tüm action'ları ve tipik yanıtlarını özetler; ayrıntılar API dokümanı sayfasında.

ActionNe yapar?Yanıt
getBalance Kullanılabilir bakiyeyi verir (rezerve tutarlar düşülmüştür). ACCESS_BALANCE:125.4000
getPrices Servis–ülke bazında güncel fiyat ve stok adedini JSON verir. service ve country ile süzülür; fiyatlar hesabınızdaki kademe indirimini içerir. {"62":{"wa":{"cost":12.50,"count":744716}}}
getCountries Numara alınabilen ülkeleri (kimlik ve ad) listeler. {"62":{"id":62,"eng":"Turkey"}}
getNumbersStatus Seçilen ülkedeki servislerin stok adetlerini verir. {"wa_0":"744716"}
getOperators Seçilebilir operatörleri listeler; şu an yalnızca any kullanılabilir. {"status":"success","countryOperators":{"62":["any"]}}
getNumber Numara alır: service, country, isteğe bağlı operator ve maxPrice. Fiyat rezerve edilir. ACCESS_NUMBER:184213:905301234567
getNumberV2 getNumber'ın JSON karşılığı; fiyat, para birimi, bitiş zamanı ve operatör de gelir. {"activationId":"184213","phoneNumber":"905301234567",…}
getStatus Kodun gelip gelmediğini sorar. Ücret kod geldiği anda kesinleşir. STATUS_WAIT_CODE
STATUS_OK:123456
STATUS_CANCEL
getStatusV2 getStatus'un JSON karşılığı: kod geldiyse sms nesnesi, gelmediyse düz metin durum döner. {"sms":{"code":"123456",…}}
getActiveActivations Hesabınızdaki açık aktivasyonları listeler; yeniden başlatmadan sonra kaldığınız yerden devam etmek ve panel yapmak için. {"status":"success","activeActivations":[…]}
setStatus 1 hazır (ücret değişmez), 3 yeni SMS iste (ücretsiz), 6 tamamla (yalnızca kod geldikten sonra), 8 iptal (kod gelmediyse iade; geldiyse EARLY_CANCEL_DENIED). ACCESS_READY
ACCESS_RETRY_GET
ACCESS_ACTIVATION
ACCESS_CANCEL

Ücretlendirme: rezerve, tahsil, serbest bırak

Turonay'da sanal numara için ödeme, numaranın alındığı değil kodun geldiği andır. Böylece teslim edilmeyen aktivasyon için para kaybetmezsiniz. Akış dört durumdan oluşur:

AnNe olur?Bakiyeniz
Numara alındı (getNumber / getNumberV2) Fiyat bakiyenizde ayrılır. getBalance bu yüzden daha düşük bir kullanılabilir tutar gösterir. Rezerve
SMS kodu geldi Ücret kesinleşir. Aynı numaradan ek SMS isteği (status=3) ücretsizdir. Tahsil edildi
Kod gelmeden iptal, sağlayıcı iptali veya süre dolumu Rezerve tutar serbest bırakılır, hiçbir ücret alınmaz. Geri döner
Kod geldikten sonra iptal denemesi (status=8) EARLY_CANCEL_DENIED döner; hizmet teslim edildiği için iade yapılmaz. Aktivasyonu status=6 ile tamamlayın. Değişmez

Fiyat tavanı: maxPrice

Bakiyenizin numara fiyatını karşılaması gerekir; aksi halde NO_BALANCE döner. Fiyat sürprizlerine karşı maxPrice gönderin: güncel fiyat bu tutarı aşıyorsa satın alma yapılmaz ve WRONG_MAX_PRICE:fiyat ile gerçek fiyat bildirilir.

Webhook: kod bildirimini sunucunuza alın

Her saniye getStatus çağırmak yerine bir HTTPS adresi tanımlayın; kod geldiğinde ya da aktivasyon iptal olduğunda Turonay oraya imzalı bir POST gönderir. Kod kaydedildiğinde bildirim kuyruğa alınır, genellikle 1–2 dakika içinde ulaşır; getStatus ile yoklama alternatif ve yedek olarak kullanılabilir. Adresi ve gizli anahtarı profilinizden yönetir, test olayı gönderebilirsiniz.

  • İmza: X-Turonay-Signature başlığında, zaman_damgası.gövde metni üzerinden HMAC-SHA256.
  • Başlıklar: X-Turonay-Event, X-Turonay-Timestamp, X-Turonay-Signature, X-Turonay-Delivery.
  • Yalnızca https adresleri kabul edilir.
  • Başarısız teslimat, kademeli beklemeyle en fazla 8 kez denenir; aynı olay yeniden gelebileceği için işlemenizi tekrar-güvenli (idempotent) yazın.
http
POST /your-webhook HTTP/1.1
X-Turonay-Event: code_received
X-Turonay-Timestamp: 1791631200
X-Turonay-Signature: sha256=<hex>
X-Turonay-Delivery: dlv_<id>

signature = HMAC_SHA256(secret, timestamp + "." + body)

İmza doğrulama örnekleri, yük şeması ve yeniden deneme politikası için SMS API webhook rehberine bakın.

Dilinize göre örnekler

Aynı akış (numara al, kodu bekle, tamamla) üç dilde hazır örneklerle anlatılıyor.

Başka bir SMS aktivasyon API'sinden mi geliyorsunuz?

Turonay, yaygın handler_api protokolüyle uyumludur. Başka bir sağlayıcıdan geliyorsanız ve bu protokolü kullanan bir bot, panel ya da betik yazdıysanız geçiş genellikle üç değişiklikten ibarettir: taban adres, API anahtarı ve servis kodu / ülke kimliği doğrulaması. Canlıya almadan önce akışı mutlaka test edin.

Turonay bağımsız bir hizmettir; başka bir sağlayıcıyla bağlantılı değildir ve onların yerine geçtiğini iddia etmez. Bakiye aktarımı yapılmaz; Turonay hesabınıza ayrıca bakiye yüklersiniz.

Fiyatlar ve ödeme

Fiyatlar servis ve ülkeye göre değişir ve sürekli güncellenir; sabit bir liste yerine getPrices ile anlık değeri okursunuz. Güncel örnekler ve hesaplama için SMS API fiyatları sayfasına bakın. Tüm API tutarları TRY'dir; sitede TRY, USD veya RUB görüntüleyebilirsiniz.

Bakiyeyi ödeme sayfasından kartla (Shopier, Stripe), kriptoyla (Cryptomus, Heleket) veya banka havalesiyle yükleyebilirsiniz; hangi yöntemlerin açık olduğu para birimine ve bölgeye göre değişir. API erişimi için ayrıca abonelik ücreti yoktur.

Bayi olarak kendi marjınızla satın

Telegram botu, panel ya da web siteniz üzerinden müşterilerinize SMS onay satıyorsanız kademeli indirim ve marj hesabı için SMS onay bayiliği sayfasına göz atın.

Geliştirici kaynakları

Entegrasyonu hızlandıran hazır dosyalar:

Tam metot ve hata kodu başvurusu için API dokümanı.

Sık sorulan sorular

SMS onay API'si ücretli mi?

API erişimi için ayrı bir abonelik ya da ücret yoktur. Yalnızca teslim edilen kodlar için ödersiniz: numara alındığında tutar bakiyenizde rezerve edilir, kod geldiğinde tahsil edilir.

Kod gelmezse ücret öder miyim?

Hayır. Kod gelmeden siz iptal ederseniz, sağlayıcı iptal ederse ya da numara süresi dolarsa rezerve edilen tutar bakiyenize geri bırakılır.

handler_api uyumlu entegrasyonum çalışır mı?

Turonay handler_api protokolüyle uyumlu çalışır; çoğu entegrasyonda taban adresi (https://turonay.com/stubs/handler_api.php) ve API anahtarını değiştirmek yeterlidir. Servis kodlarını, ülke kimliklerini ve fiyatları getPrices ile doğrulayın. Turonay, herhangi bir sağlayıcıyla bağlantısı olmayan bağımsız bir hizmettir.

Kod geldikten sonra aktivasyonu iptal edebilir miyim?

Hayır. Kod geldikten sonra setStatus 8 çağrısı EARLY_CANCEL_DENIED döndürür ve hizmet teslim edildiği için ücret iade edilmez. Aktivasyonu setStatus 6 ile tamamlayın.

Kodu sorgulamalı mıyım, webhook mu kullanmalıyım?

İkisi birlikte iyi çalışır. Webhook bildirimi kod kaydedildiğinde kuyruğa alınır ve genellikle 1–2 dakika içinde ulaşır; getStatus ve getActiveActivations ise alternatif yol ve kaçan olaylar ile yeniden başlatmalar için güvenlik ağıdır. Webhook gövdesi HMAC-SHA256 ile imzalıdır, imzayı mutlaka doğrulayın.

Fiyatlar hangi para biriminde, nasıl ödeme yapılır?

API fiyatları TRY'dir; sitede TRY, USD veya RUB olarak görüntüleyebilirsiniz. Bakiye kartla (Shopier, Stripe), kriptoyla (Cryptomus, Heleket) veya banka havalesiyle yüklenebilir; açık yöntemler para birimine ve bölgeye göre değişir.

Fiyat aniden artarsa ne olur?

Kabul edeceğiniz üst sınırı maxPrice ile gönderin. Güncel fiyat bu sınırı aşarsa satın alma yapılmaz ve WRONG_MAX_PRICE:fiyat yanıtıyla gerçek fiyat bildirilir.

API hangi kullanımlar için uygun?

Geliştiriciler, test otomasyonu ve QA ekipleri ile bayiler için tasarlandı. Kullanımın ilgili platformların kurallarına ve Turonay kullanım koşullarına uygun olması gerekir.

Entegrasyona başlayın

Ücretsiz kaydolun, bakiye yükleyin ve ilk numaranızı birkaç dakikada alın.