Görünüm
Test ortamı (sandbox)
Entegrasyonunuzu canlı müşteri verisine hiç dokunmadan deneyebileceğiniz izole bir restoran ve ona bağlı bir test anahtarı veriyoruz.
Nasıl alınır
Kendi kendine kayıt yok. Bize yazın; sizin adınıza bir sandbox açıp test anahtarınızı iletiriz.
Test anahtarı için anlaşma gerekmez
Canlı POS anahtarı için imzalı entegratör anlaşması şarttır. Test anahtarı için değil — test ortamı tam olarak anlaşmadan önce denenmek için var.
Anahtar vnrs_test_ ön ekiyle gelir ve yalnız bir kez gösterilir.
Canlıdan farkı
| Canlı | Sandbox | |
|---|---|---|
| Anahtar ön eki | vnrs_live_… | vnrs_test_… |
| Ulaşabildiği restoran | yalnız aktif restoranlar | yalnız sizin sandbox restoranınız |
| Entegratör anlaşması | zorunlu | gerekmez |
| Sipariş kaynağı | gerçek müşteri | sentetik, siz tetiklersiniz |
| Ödeme | kart / yemek kartı / nakit | senaryo seçilir (varsayılan nakit) |
| Kurye | platform ya da restoran kuryesi | senaryo seçilir (varsayılan restoran kuryesi) |
| Hız sınırı | dakikada 120 | dakikada 120 (aynı) |
Test anahtarı canlı veriye ULAŞAMAZ, canlı anahtar da sandbox'a
Ortam ile restoran durumu çift olarak eşleşir: test anahtarı yalnız sandbox restoranına, canlı anahtar yalnız aktif restoranlara çözülür. Diğer her bileşim 401 döner.
Sandbox restoranı müşteriye görünmez
Test restoranı müşteri uygulamasında ve tanıtım sitesinde hiçbir yerde çıkmaz: aramada, listede, öne çıkanlarda, kampanyalarda, önerilerde, favorilerde, "bir daha sipariş ver"de ve mahalle sorgusunda yok.
Ona müşteri siparişi de verilemez. Kimliğini bilen bir müşteri doğrudan çağırsa bile sipariş reddedilir.
Test döngüsü
Üç adım. Hepsi gerçek uçlar; ayrı bir taklit katmanı yok.
1. Menüyü yazın
PUT
/api/v1/pos/menuTest anahtarıscope: menu:writeSandbox restoranı POS-yönetimli doğar: ilk yazımınız taslağa düşmez ve kimsenin onayını beklemez, yanıtta doğrudan mode: "applied" görürsünüz. Canlıda ilk yazım taslağa düşer ve restoranın panelden onayını bekler.
2. Sipariş tetikleyin
POST
/api/v1/pos/sandbox/ordersTest anahtarıSipariş sizin yazdığınız menü ürünlerinden oluşturulur, böylece external_id eşlemenizi gerçekten sınayabilirsiniz.
Gövde isteğe bağlı. Boş POST varsayılan senaryoyu verir; senaryo seçmek isterseniz:
json
{ "payment_method": "card", "courier_type": "platform" }| Alan | Değerler | Varsayılan |
|---|---|---|
payment_method | cash · card | cash |
courier_type | own_courier · platform | own_courier |
Bilinmeyen bir değer 400 sandbox.invalid_scenario döner; sessizce varsayılana düşmeyiz.
json
{
"order_id": "…",
"status": "pending",
"item_count": 2,
"total_amount": 250.0,
"payment_method": "cash",
"courier_type": "own_courier"
}Menü boşsa 409 sandbox.menu_empty alırsınız — önce birinci adımı yapın.
Senaryolar dış sistemlere DOKUNMAZ
payment_method: card seçtiğinizde ödeme sağlayıcısına tek çağrı bile gitmez; ödeme kaydı succeeded ile sentetik yazılır, yani "ödemesi onaylanmış kart siparişi" gövdesini görürsünüz. 3DS yönlendirmesi, iade ve split sandbox'ta koşmaz.
courier_type: platform seçtiğinizde gerçek kuryelere teklif gitmez; eşleştirme test restoranlarını atlar. Platform akışının durum zincirini görürsünüz, kurye arzı etkilenmez.
İkisi de sözleşme tarafını sınamak için var. Para akışının ve gerçek kurye atamasının provası canlıda, küçük tutarlarla yapılır.
3. Okuyun ve ilerletin
GET
/api/v1/pos/ordersTest anahtarıPOST
/api/v1/pos/orders/{orderID}/statusTest anahtarıDurum geçişleri canlıdakiyle aynı kuralları uygular.
Webhook da deneyebilirsiniz: aboneliğe sentetik bir webhook.ping göndermek için deneme ucunu kullanın.
Neyi sınayamazsınız
Sentetik sipariş, sipariş satırını doğrudan yazar. Şu mantıklar bu yolda koşmaz:
- fiyatlama ve platform bedeli hesabı
- kampanya, kupon, indirim
- gerçek ödeme akışı (3DS, iade, split) — kart senaryosunda sonuç yazılır, yol koşmaz
- gerçek kurye ataması — platform senaryosunda durum zinciri görünür, kurye çağrılmaz
Gördüğünüz gövde gerçek bir siparişin gövdesidir: alanlar, tipler ve durum geçişleri birebir aynı. Ama o gövdeye nasıl gelindiği gerçek yol değil.
Pratik sonucu: sözleşme tarafını sandbox'ta bitirebilirsiniz (alan okuma, eşleme, imza doğrulama, durum zinciri). Para tarafını canlıda, küçük tutarlarla doğrulamanız gerekir — Canlıya geçiş.
Sınırlar
| Sınır | Değer |
|---|---|
| Anahtar başına istek | dakikada 120 (canlıyla aynı) |
| Günlük istek | 5.000 |
| Anahtar süresi | 365 gün |
| Sandbox başına anahtar | 1 |
Günlük tavan aşılırsa 429 pos.quota.exceeded alırsınız ve Retry-After gün sonuna kadar olur. Bunu hız sınırı sanıp birkaç saniye bekleyerek çözmeye çalışmayın; pencere günlük. 5.000 istek kurulum ve prova senaryoları için fazlasıyla yeterlidir.
Anahtarınızı kaybederseniz geri okutamayız; yeni bir sandbox açarız.