Barındırılan ödemenin nasıl çalıştığı
RMT.GG kayıtlı satıcı olarak kalır. Partner mağazanız kilitli bir tutar ve para birimi gönderir. Alıcı bizim barındırılan sayfamızda ödeme yapar. Ödeme sonrası, mağazanızda teslimat yaparsınız. Siparişler otomatik olarak tamamlanır, böylece cüzdan uzlaşması çalışabilir.
- Alıcı tam olarak gönderdiğiniz tutar ve para birimini öder. Biz bunu artırmıyoruz.
- Satıcı ücretiniz o kilitli tutarın %4'üdür. Pazar yeri listeleme ücretleri genelde %5'tir.
- Kart, PayPal ve kripto işleme ücretleri bu akışta platform tarafından karşılanır.
Beyaz liste gereklidir
Ayarlar, Barındırılan ödeme altında başvurun, ardından yönetici onayı bekleyin. Onaylanmamış API anahtarları CHECKOUT_PARTNER_NOT_APPROVED alır.
Başvurun ve onay alın
Onaylandıktan sonra, Hosted checkout ayarları sayfasında checkout:write ile bir API anahtarı ve checkout.completed için bir JSON webhook oluşturun. Onaylanana kadar, hosted checkout API'leri engelli kalır.
- 1Ayarlar → Barındırılan ödeme'yi açın ve mağaza URL'nizi ve ödeme yöntemini nasıl kullanacağınızı belirten kısa bir not gönderin.
- 2Bir yöneticinin onaylamasını bekleyin. O zamana kadar bekleyen bir rozet göreceksiniz.
- 3Onaylandıktan sonra, Ayarlar → Hosted checkout altında checkout.completed için bir API anahtarı ve bir JSON webhook oluşturun.
Satıcı API'si
Bunu herhangi bir mağazadan veya kendi sunucunuzdan kullanın. POST /api/v1/checkout/sessions ile bir oturum oluşturun. checkout:write ve bir Idempotency-Key gönderin. Alıcıyı hosted_url'ye yönlendirin. order.paid'i dinleyin, ardından mağazanızda yerine getirin.
Barındırılan ödeme oturumu oluşturun
curl -X POST -H "Authorization: Bearer rmt_sk_live_…" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: inv-12345" \
https://rmt.gg/api/v1/checkout/sessions \
-d @session.jsonoturum.json
{
amount: 10, // required when items is omitted
currency: "USD", // optional; defaults to USD
itemName: "Gold pack", // required when items is omitted; alias title
description: "1000 gold for account example", // optional
imageUrl: "https://cdn.shop.example/gold.png", // optional, HTTPS only
categorySlug: "games", // send with offering, or omit both
offering: "Mods", // send with categorySlug
email: "[email protected]", // optional
returnUrl: "https://your-shop.example/thanks", // optional
cancelUrl: "https://your-shop.example/cancel", // optional
invoiceId: "12345" // optional
}Opsiyonel teslimat ile birden fazla kilitli satır (session.json)
{
currency: "USD",
invoiceId: "12345", // optional
items: [ // required when amount is omitted
{
name: "Gold pack", // required per line
description: "1000 gold", // optional
amount: 10, // required per line
quantity: 1, // optional, default 1
imageUrl: "https://cdn.shop.example/gold.png", // optional, HTTPS only
delivery: [ // optional
{ name: "Code", type: "text", value: "XXXX-YYYY" } // name and value required; type is optional
]
}
]
}- Tek bir ürün için miktar artı itemName (veya başlık) gönderin ya da boş olmayan bir items[] dizisi. Para birimi varsayılan olarak USD'dir. Opsiyonel alanlar: açıklama, HTTPS imageUrl, e-posta (ödeme sayfasını önceden doldurur), returnUrl, cancelUrl, invoiceId, categorySlug ve offering (her ikisini de gönderebilir veya hiçbiri). itemName, ödeme sayfasının başlığıdır; açıklama ise altında yer alan daha uzun metindir. Alıcı, ödeme yapmadan önce geçerli bir e-posta adresini onaylamalıdır. Ödeme sonrası alıcı, RMT.GG onay sayfasında kalır, böylece teslimat alanlarını kopyalayabilir. Eğer returnUrl ayarlarsanız ve teslimat alanları varsa, o ekrandan mağazanıza yönlendirilirler. Eğer yoksa, kısa bir geri sayımın ardından geri göndeririz. returnUrl veya cancelUrl'yi atlarsanız, alıcı ödeme, iptal veya sürenin dolmasından sonra RMT.GG ödeme sayfasında kalır.
- Başarılı olduğunda, o URL HTTPS (veya localhost) olduğunda returnUrl'ye ?order= olarak sipariş uid'sini ekleriz.
- Tekrar eden Idempotency-Key veya invoiceId değerleri aynı oturumu yeniden kullanır, kopya oluşturmaz.
- itemName ve açıklama yalnızca RMT ödeme sayfasında görünür. Kart, PayPal ve kripto ödeme işlemleri, asla mağaza başlığınızı kullanmadan, Games · Add-ons gibi katalog kodlu etiketler kullanır. Ayarların altında, Hosted checkout kısmında varsayılan bir ayar belirleyin veya session'da categorySlug ve offering gönderin.
- Oturumlar 24 saat sürer. Bunun ardından ödeme sayfası tamamlanamaz, devam eden Stripe ve PayPal oturumları kapatılır ve checkout.canceled'ı süresi dolmuş nedeni ile POST ederiz.
- items[] tek bir miktar ve itemName gövdesinin çok satırlı alternatifidir. Her satırın adı ve miktarı gereklidir. items ile miktar atlanabilir ve satırlardan hesaplanır veya gönderdiğinizde toplamla eşleşmelidir. Miktar rmt.gg'de kilitlidir: alıcılar satır ekleyemez, çıkaramaz veya değiştiremez. imageUrl HTTPS olmalıdır; bunu almayız. İsteğe bağlı teslimat alanları (metin, şifre veya metin alanı) bir ad ve değer gerektirir. Ödeme sonrası onay sayfasında ve Satın Almalar'da gösterilir. Kamu oturumu GET, yalnızca ödeme sonrası teslimat değerlerini içerir. Satıcı GET ve webhook'lar asla bunları içermez.
Ödeme durumunu kontrol et
Öncelikle checkout.completed için dinleyin. Eğer bir webhook gecikirse, oturumu GET edin. Alıcı ödeme yaptığında paid true olur. Oturum uid'si veya gönderdiğiniz invoiceId ile arama yapabilirsiniz.
- Oturum oluşturduğunuzda dönen uid ile GET /api/v1/checkout/sessions/{uid}.
- Eğer kendi invoice id'nizi sakladıysanız, GET /api/v1/checkout/sessions?invoiceId=YOUR_INVOICE_ID.
Invoice id ile arama yap
curl -H "Authorization: Bearer rmt_sk_live_…" \
https://rmt.gg/api/v1/checkout/sessions?invoiceId=inv-12345Digiseller ve benzeri mağazalar
Eğer Satıcı API'si ile checkout oluşturuyorsanız bunu atlayın. Mağazanız (örneğin Digiseller) alıcıyı buraya özel bir ödeme yöntemiyle gönderdiğinde kullanın. Digiseller, Ödeme URL'mize gönderir, ödemeyi alırız, ardından Digiseller Durum URL'sini kontrol eder.
- 1Ödeme URL'sini, Durum URL'sini ve ödeme gizlisini Ayarlar → Hosted checkout'tan kopyalayın.
- 2Bunları Digiseller'a özel bir ödeme yöntemi olarak yapıştırın. Gizliyi özel tutun.
- 3Digiseller daha sonra alıcıları ödemek için bize gönderir ve ödenmiş veya ödenmemiş için Durum URL'sini kontrol eder.
- item_name (veya başlık) ödeme sayfasındaki başlıktır. açıklama ise altında daha uzun bir metindir. Eğer her iki isim de atlanırsa, açıklama başlık olarak kullanılır.
Digiseller'ın gönderdiği örnek istek
{
"invoice_id": "12345",
"amount": "10.00",
"currency": "USD",
"item_name": "Altın paketi",
"description": "Hesap örneği için 1000 altın",
"signature": "…"
}JSON webhook tercih edin
Durum URL'si Digiseller içindir. Kendi sunucunuzdan yerine getiriyorsanız, bir JSON webhook ekleyin ve checkout.completed için dinleyin. Ayrıca yedek olarak oturumu GET edebilirsiniz.
JSON webhooks
Barındırılan ödeme, ayrı bir webhook API'si kullanmaz. Geliştirici altında, JSON HTTPS uç noktasını pazar satışlarıyla aynı olaylara yönlendirin. Ödeme sonrası order.paid POST ederiz. İade sonrası order.refunded POST ederiz. Satışı externalInvoiceId (faturaId'niz) veya partnerSessionUid ile eşleştirin.
order.paid yükü (barındırılan ödeme alanları)
{
"id": "whd_…",
"type": "order.paid",
"created": "2026-08-14T12:00:00.000Z",
"data": {
"order": {
"uid": "ord_…",
"status": "ÖDENDİ",
"partnerSessionUid": "…",
"externalInvoiceId": "inv-12345",
"partnerSource": "api"
}
}
}- source, Satıcı API oturumları için apidir.
- İsteğe bağlı imzalama, X-RMT-Timestamp ve X-RMT-Signature kullanır. HMAC'ı diğer satıcı webhook'larıyla aynı şekilde doğrulayın.
- checkout.canceled, alıcı ödeme sayfasını ödemeden terk ettiğinde buyer_canceled sebebini veya 24 saatlik oturum TTL'si dolduğunda expired sebebini içerir.
- checkout.items kilitli satırları listeler (isim, açıklama, miktar, miktar, imageUrl). Teslimat değerleri asla webhook'larda yer almaz.
İki kez yerine getirmeyin
Digiseller ayrıca kendi ödeme geri çağrısını alır. Eğer checkout.completed için de dinliyorsanız, siparişi yalnızca bir kez yerine getirin. Satıcı API oturumları asla o Digiseller geri çağrısını göndermez.
Misafir e-posta ve makbuzlar
Alıcılar, makbuzu ve vergi faturasını gönderebilmemiz için ödeme sayfasında bir e-posta girmelidir. Eşleşen RMT hesapları, alıcıyı oturum açmadan eklenir.
- E-posta zaten bir RMT hesabına ait ise, sipariş o hesabın Satın Alma bölümünde görünür. Ödeme sayfasında oturum açma çerezi ayarlanmaz.
- Yeni bir e-posta, makbuzların ve daha sonraki oturum açmanın çalışabilmesi için hafif bir kullanıcı oluşturur.
- Ödeme işlemini tamamlamak için e-posta gereklidir. Mağazanız hala checkout.completed olayını dinlemelidir.
Para birimleri ve limitler
USD veya EUR gibi desteklenen bir ISO para birimi kullanın. Kartla ödeme en iyi USD veya EUR ile çalışır. Sağlayıcı kabul ederse, diğer para birimleri için kripto ve PayPal hala çalışabilir.
Bu sürümde yok
Barındırılan ödeme sayfasında iframe SDK, özel ödeme sayfası alanı veya cüzdan bakiyesi yoktur. Alıcılar kart, PayPal veya kripto yönlendirme ödemesi kullanır.
Canlıya geçmeden önce
Staging kontrol listesi
Birim testleri ücretleri, HMAC ve yeniden kullanımı kapsar. Gerçek alıcılar göndermeden önce staging'de bu listeyi gözden geçirin.
- Başvurun, bekleyen rozeti onaylayın, ardından bir yöneticinin onaylamasını sağlayın. Kimlik bilgileri yalnızca onaylandığında görünür. POST /api/v1/checkout/sessions'da onaylanmamış bir anahtar 403 döner.
- itemName, açıklama ve categorySlug ile bir oturum oluşturun, ayrıca bir teklif (veya kaydedilmiş varsayılan). hosted_url'yi açın. Başlık, ürün adıdır; açıklama altında yer alır. Ödeme sayfasında üst navigasyon veya yan çubuk yoktur. USD veya EUR ile kartla ödeme yapın. Kart, PayPal ve kripto sayfaları, dükkan başlığınız yerine Oyunlar · Ek Paketler gibi bir katalog etiketi göstermelidir.
- checkout.completed'in invoiceId, checkout.uid ve source içerdiğini onaylayın, ardından mağazanızda yerine getirin. Ödeme sayfasını iptal edin ve buyer_canceled sebebiyle checkout.canceled'ı onaylayın. Bir oturumun 24 saati geçmesine izin verin ve expired sebebiyle checkout.canceled'ı onaylayın, bu durumda hala ödeme yapılamaz.
- Digiseller için, Ödeme URL'sini, Durum URL'sini ve ödeme gizlisini özel bir ödeme yöntemine yapıştırın. Digiseller'ın ödenmiş durumunu görebildiğinden emin olun ve siparişi yalnızca bir kez yerine getirin.
- Mevcut bir RMT e-posta ile ödeme yapın: sipariş Alımlar kısmına düşer ve bir makbuz gönderilir, oturum açma çerezi olmadan. Yeni bir e-posta, hafif bir kullanıcı oluşturur. Ödeme sayfasında e-posta gereklidir.
- Gizli sentetik teklif, pazar aramasında görünmemelidir. Bekleme listesi ile sınırlı bir ana bilgisayarda, /pay/:uid ve adaptör yolları hala çalışır.
- Ürün resmi veya birden fazla kilitli satır gerekiyorsa isteğe bağlı imageUrl ve items[] gönderin. Ödeme sayfasında miktar kontrollerinin olmadığını onaylayın. Ödemeden sonra, teslimat alanları Satın Almalar ve sipariş sayfasında görünür. Sadece HTTPS resim URL'leri.
İlgili kılavuzlar
Barındırılan ödeme için başvurun
Ayarlar → Barındırılan ödeme'yi açarak başvurun veya onaylandıktan sonra API referansına atlayın.