API für Skin-Einzahlungen in CS2, Dota 2 und Rust
Nimm CS2, Dota 2 und Rust Skins mit wenigen REST-Aufrufen an. Gehosteter Checkout, wenn es schnell gehen soll, direkte Zahlungen, wenn du eine eigene Oberfläche willst.
Alles, was die Integration abdeckt
Gehostete Zahlungen
POST /payments liefert eine pay_url und eine embed_url. Redirect, Pop-up oder iframe.
Direkte Zahlungen
GET /inventory liefert die Items des Kunden mit Preisen; POST /payments/direct sendet den Trade.
Signierte Webhooks
HMAC-SHA256 über Zeitstempel und Body, 5 Minuten Toleranz, Wiederholungen über etwa zwei Tage.
Testmodus
sk_test_-Keys, simulierte Trades, POST /test/payments/{id}/simulate für jedes Ergebnis.
OpenAPI 3.1
Importiere /api/openapi.json in Postman, Insomnia oder deinen Codegenerator.
Auth mit zwei Headern
X-Project-Key + X-Project-Secret, optionale IP-Allowlist, Secrets gehasht gespeichert.
So funktioniert's
Keys erhalten
Registriere dich und reiche ein Projekt ein; Testkeys funktionieren sofort.
Zahlung erstellen
Ein POST mit deiner Bestell-ID.
Webhook verarbeiten
Signatur prüfen, Zahlung erneut abrufen, Nutzer gutschreiben.
Zahlung erstellen
Ein Aufruf liefert den Checkout-Link. Vollständige Referenz mit allen Endpoints: API-Referenz.
curl -X POST 'https://skinplata.com/api/v1/payments' \
-H 'X-Project-Key: pk_your_key' \
-H 'X-Project-Secret: sk_test_your_secret' \
-H 'Content-Type: application/json' \
-d '{"order_id":"inv-1042","game":"cs2","currency":"usd","min_amount":5,"metadata":{"user_id":"8812"}}'<?php
$ch = curl_init('https://skinplata.com/api/v1/payments');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'X-Project-Key: pk_your_key',
'X-Project-Secret: sk_test_your_secret',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'order_id' => 'inv-1042',
'game' => 'cs2',
'currency' => 'usd',
'min_amount' => 5,
'metadata' => [
'user_id' => '8812',
],
]),
]);
$response = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);const res = await fetch('https://skinplata.com/api/v1/payments', {
method: 'POST',
headers: {
'X-Project-Key': 'pk_your_key',
'X-Project-Secret': 'sk_test_your_secret',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"order_id": "inv-1042",
"game": "cs2",
"currency": "usd",
"min_amount": 5,
"metadata": {
"user_id": "8812"
}
}),
});
const data = await res.json();
if (!res.ok) throw new Error(data.error.message);import requests
r = requests.post(
"https://skinplata.com/api/v1/payments",
headers={"X-Project-Key": "pk_your_key", "X-Project-Secret": "sk_test_your_secret"},
json={
"order_id": "inv-1042",
"game": "cs2",
"currency": "usd",
"min_amount": 5,
"metadata": {
"user_id": "8812"
}
},
timeout=30,
)
data = r.json()
if not r.ok:
raise RuntimeError(data["error"]["message"])Eine Integration, drei Spiele
- Gehosteter Checkout oder eigene Item-Auswahl über die API
- Live-Preise für jedes Item, angezeigt in 16 Währungen
- Ein Tradeangebot pro Zahlung, vom Kunden in Steam angenommen
- Signierte Webhooks für jeden Status, zwei Tage lang wiederholt
- Testmodus mit simulierten Trades und Testguthaben
- Auszahlungen in USDT, USDC, BTC, ETH, LTC, SEPA, PayPal oder Wise




FAQ
Gibt es ein SDK?
Die API ist klein genug, um sie direkt aufzurufen; die Referenz hat Beispiele in cURL, PHP, Node.js und Python, und aus der OpenAPI-Datei erzeugst du Clients für jede Sprache.
Welche Rate Limits gibt es?
600 Anfragen pro Minute je Projekt und 1.200 je IP.
Sind Zahlungen idempotent?
Ja. order_id ist pro Projekt und Modus eindeutig; eine Wiederholung antwortet mit 409.