BuyCheapKeys

API importu dla sprzedawców

Zarządzaj ofertami i stanem magazynowym z poziomu własnego systemu. Wszystkie żądania wykorzystują HTTPS oraz JSON, kwoty podawane są w EUR.

https://buycheapkeys.com/partner-api/v1/seller

Uwierzytelnianie

Utwórz klucz w Panel sprzedawcy → API i przesyłaj go w nagłówku Authorization. Zachowaj go w tajemnicy: daje pełny dostęp do Twoich ofert i kluczy.

Authorization: Bearer bcks_xxxxxxxxxxxx_…

Punkty końcowe

MetodaŚcieżkaOpis
GET/meTwój sklep i aktualne warunki prowizji.
GET/products?search=&page=&limit=Przeszukiwanie katalogu. Zwraca productId, cenę w sklepie i najlepszą cenę sprzedawcy.
GET/offers?status=&page=&limit=Twoje oferty ze stanem magazynowym, ceną dla klienta i informacją, czy jesteś najtańszy.
POST/offersTworzenie lub aktualizacja oferty dla produktu: { productId, price, status? }.
GET/offers/{id}Pojedyncza oferta.
PATCH/offers/{id}Zmiana ceny i/lub statusu (active | paused).
DELETE/offers/{id}Usunięcie oferty bez stanu magazynowego (oferty ze sprzedażą są zamiast tego wstrzymywane).
POST/offers/{id}/keysWgrywanie kluczy: { keys: ["…"] } (maks. 1 000 w żądaniu).
POST/offers/{id}/withdrawWycofanie niesprzedanych kluczy: { count? }. Zwraca je w postaci zwykłego tekstu.
GET/sales?page=&limit=Twoja sprzedaż, zarobki i daty zwolnienia środków.
GET/balanceSaldo oczekujące i dostępne oraz nadchodzące zwolnienia środków.
GET/disputes?status=&page=&limit=Spory klientów dotyczące Twojej sprzedaży (open | escalated | resolved).
GET/disputes/{id}Jeden spór wraz z wiadomościami.
POST/disputes/{id}/messagesOdpowiedź dla klienta: { body }.
POST/disputes/{id}/replaceWysłanie zamiennika: { key } lub { fromStock: true }.
POST/disputes/{id}/refundZwrot środków klientowi (sprzedaż zostaje anulowana).

Ceny

price to kwota, którą otrzymujesz za sztukę. Klient płaci Twoją cenę powiększoną o prowizję dla danego typu produktu (klucze, konta i prezenty, specjalne subskrypcje), podaną w /me i w każdej ofercie. Twoja oferta sprzedaje się wtedy, gdy jej cena dla klienta jest najniższa dostępna.

Przykład: wystawienie produktu i wgranie kluczy

# 1. Find the product
curl "https://buycheapkeys.com/partner-api/v1/seller/products?search=elden%20ring" \
  -H "Authorization: Bearer $BCK_SELLER_KEY"

# 2. Create (or update) your offer — price = what you receive per unit, EUR
curl -X POST "https://buycheapkeys.com/partner-api/v1/seller/offers" \
  -H "Authorization: Bearer $BCK_SELLER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"productId":"<productId>","price":24.90}'
# → { "created": true, "offer": { "id": "off_…", "customerPrice": 27.15, "stock": 0, … } }

# 3. Upload keys (max 1,000 per request; duplicates are skipped)
curl -X POST "https://buycheapkeys.com/partner-api/v1/seller/offers/off_…/keys" \
  -H "Authorization: Bearer $BCK_SELLER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keys":["XXXXX-XXXXX-XXXXX","YYYYY-YYYYY-YYYYY"]}'
# → { "added": 2, "duplicates": 0, "stock": 2 }

# 4. Follow your sales and balance
curl "https://buycheapkeys.com/partner-api/v1/seller/sales" -H "Authorization: Bearer $BCK_SELLER_KEY"
curl "https://buycheapkeys.com/partner-api/v1/seller/balance" -H "Authorization: Bearer $BCK_SELLER_KEY"

Błędy i limity

Błędy zwracają { error: { code, message, requestId } } ze statusem 4xx/5xx. Limity: 20 żądań na sekundę i 600 na minutę na klucz; 300 wgrań kluczy na minutę.