Açık API ve dışa aktarılan web kancaları

Geliştirici erişimini etkinleştirin, /api/v1'i bir bearer anahtarı ile çağırın ve sipariş yaşam döngüsü olayları için dışa aktarılan web kancalarına abone olun.

API anahtarları, oran limitleri, keşif ve sipariş olayı web kancaları.

Geliştirici erişimini etkinleştir

Ayarlar → Geliştirici'yi açın, erişimi etkinleştirin, ardından bir API anahtarı ve isteğe bağlı webhook uç noktaları oluşturun.

  • Anahtarlar, satıcı hesabınıza göre kapsamlandırılır ve her zaman iptal edilebilir.
  • Açık API trafiği, her satıcı için dakikada 300 istekle sınırlıdır.
  • GET /api/v1, mevcut kaynaklar için keşif meta verilerini döndürür.

API'yi kimlik doğrulama ve çağırma

Canlı gizli anahtarınızla Authorization: Bearer gönderin. Sadece HTTPS tercih edin. Anahtarları kamuya açık istemcilerde asla gömün.

  • offers:read: teklifleri listele ve al.
  • offers:write: teklifler oluştur, güncelle, yayınla ve sil.
  • orders:read: satıcı siparişlerini listele ve al.
  • orders:write: siparişleri teslim edildi olarak işaretle.

Son siparişleri listeleyin

bash
curl -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/orders

Anahtarları döndürün

Bir anahtar sızarsa, Geliştirici ayarlarında iptal edin ve yenisini oluşturun. Canlıysanız iptal etmeden önce otomasyonunuzu güncelleyin.

Açık API uç noktası haritası

Temel yol /api/v1. Başarılı yanıtlar X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset içerir. GET /api/v1, bu makaleye uyan makine tarafından okunabilir bir işlem kataloğu döner.

  • GET /api/v1: keşif (herhangi bir geçerli anahtar).
  • GET /api/v1/offers: teklifleri listele (offers:read).
  • POST /api/v1/offers: taslak oluştur (offers:write).
  • GET /api/v1/offers/:urlOrId: teklifi al (offers:read).
  • PATCH /api/v1/offers/:urlOrId: teklif alanlarını güncelle (offers:write).
  • DELETE /api/v1/offers/:urlOrId: sil veya arşivle (offers:write).
  • POST /api/v1/offers/:urlOrId/publish: yayınla (offers:write).
  • GET /api/v1/orders: satışları listele (orders:read).
  • GET /api/v1/orders/:uid: siparişi al (orders:read).
  • POST /api/v1/orders/:uid/deliver: teslim edildi olarak işaretle (orders:write).

Canlı işlem kataloğunu yazdır

bash
curl -s -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1 | jq ".operations"

Teklifler API'si

Teklif tanımlayıcıları, genel url slug'ını veya sayısal kimliği kabul eder. Yanıtlar iç kimlik ve sellerId'yi atlar. Stok satırları, seçenek fiyatları, medya ve özellikler satıcı editöründe (veya gelecekteki uç noktalar) yönetilir, henüz PATCH ile değil.

Aktif teklifleri listele

bash
curl -H "Authorization: Bearer rmt_sk_live_…" "https://rmt.gg/api/v1/offers?archive=active"

Bir taslak teklif oluştur

bash
curl -X POST -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/offers

İlişkileri olan bir teklifi al

bash
curl -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/offers/YOUR_OFFER_URL

İzin verilen alanları güncelle

bash
curl -X PATCH -H "Authorization: Bearer rmt_sk_live_…" -H "Content-Type: application/json" https://rmt.gg/api/v1/offers/YOUR_OFFER_URL -d @body.json

İzin verilen PATCH gövde alanları

json
{
  "title": "Güncellenmiş başlık",
  "description": "Alıcıya yönelik açıklama",
  "visibility": "GENEL",
  "categoryId": 12,
  "offeringId": 34,
  "thumbnail": "https://…",
  "offerType": "HESAP",
  "listingMode": "STANDART"
}

Yayınla (varsayılan GENEL)

bash
curl -X POST -H "Authorization: Bearer rmt_sk_live_…" -H "Content-Type: application/json" https://rmt.gg/api/v1/offers/YOUR_OFFER_URL/publish -d '{"visibility":"GENEL"}'

Sil veya arşivle

bash
curl -X DELETE -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/offers/YOUR_OFFER_URL

Yayınlama gereksinimleri

Yayınlama, gerekli listeleme alanları eksik olduğunda 400 ile başarısız olur (teklif editörü ile aynı doğrulama). Başarılı güncellemeler, bir offer.updated webhook'u yayabilir.

Siparişler API'si

Siparişler, satıcı hesabınıza bağlıdır. Alıcı fatura bilgileri gizlenebilir. Al ve teslim için genel sipariş uid'sini (sadece opak referans değil) kullanın.

Son ödenmiş satışları listele

bash
curl -H "Authorization: Bearer rmt_sk_live_…" "https://rmt.gg/api/v1/orders?status=PAID&limit=20&sort=newest"

Bir siparişi satır öğeleriyle al

bash
curl -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/orders/ORDER_UID

Teslim edildi olarak işaretle

bash
curl -X POST -H "Authorization: Bearer rmt_sk_live_…" -H "Content-Type: application/json" https://rmt.gg/api/v1/orders/ORDER_UID/deliver -d @evidence.json

Opsiyonel kanıt gövdesi

json
{
  "evidence": [
    "https://cdn.example.com/proof-1.png"
  ]
}

Hatalar ve oran limitleri

Hatalar JSON { error, code? } döner. Oran limiti, her API anahtarı için dakikada 300 istektir.

  • 401 API_KEY_REQUIRED veya API_KEY_INVALID.
  • 403 SCOPE_MISSING, anahtar uç nokta kapsamına sahip değilse.
  • 404 Teklifler veya sahip olmadığınız siparişler için bulunamadı (her iki durumda da aynı mesaj).
  • 429 RATE_LIMITED, Retry-After ve X-RateLimit-* başlıkları ile.
  • 400 doğrulama hataları için (yayınlama eksik, teslimat izin verilmedi, boş PATCH).

429 ile başa çık

Retry-After saniyeleri kullanarak geri çekilin. Limitleri aşmak için anahtarları döndürmeyin; limit her anahtar için ve tüm satıcılar için sabittir.

Dışa aktarılan sipariş web kancaları

order.paid, order.delivered, order.completed, order.refunded ve order.disputed'e abone olun. Sunucunuz için JSON veya kanal gömme için Discord'u seçin. İsteğe bağlı imzalama, X-RMT-Timestamp ve X-RMT-Signature kullanır.

  • Discord formatı, bir sipariş bağlantısı ve teklif adı ile zengin gömme gönderir.
  • JSON formatı, teklif adları ve satır öğelerini içeren yapılandırılmış bir gövde gönderir.
  • Bir gizli ayarlarsanız, timestamp.body'nin HMAC-SHA256'sinin v1= imza hex'ine eşit olduğunu doğrulayın.
  • Teslimat geçmişi, her uç noktada görünür, böylece hataları yeniden deneyebilirsiniz.

Örnek imzalı başlıklar

json
{
  "X-RMT-Event": "order.paid",
  "X-RMT-Timestamp": "1710000000",
  "X-RMT-Signature": "v1=abc123…"
}

İmzaları doğrulayın

timestamp + "." + rawBody dizesi üzerinde HMAC-SHA256 hesaplayın ve v1='den sonraki hex ile karşılaştırın.

Node.js taslağı

javascript
import crypto from "crypto";
const expected = crypto
  .createHmac("sha256", secret)
  .update(`${timestamp}.${rawBody}`)
  .digest("hex");
const ok = expected === signature.replace(/^v1=/, "");

Geliştirici araçlarını aç

Ayarlar içinde anahtarlar ve webhook uç noktaları oluşturun.