BuyCheapKeys

API d'importation vendeur

Gérez vos offres et votre stock depuis votre propre système. Toutes les requêtes utilisent HTTPS et JSON, les montants sont en EUR.

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

Authentification

Créez une clé dans Espace vendeur → API et transmettez-la dans l'en-tête Authorization. Gardez-la secrète : elle donne un accès complet à vos offres et à votre stock.

Authorization: Bearer bcks_xxxxxxxxxxxx_…

Points de terminaison

MéthodeCheminDescription
GET/meVotre boutique et vos conditions actuelles de commission.
GET/products?search=&page=&limit=Rechercher dans le catalogue. Renvoie productId, le prix boutique et le meilleur prix vendeur.
GET/offers?status=&page=&limit=Vos offres avec le stock, le prix client et l'indication si vous êtes le moins cher.
POST/offersCréer ou mettre à jour votre offre pour un produit : { productId, price, status? }.
GET/offers/{id}Une offre spécifique.
PATCH/offers/{id}Modifier le prix et/ou le statut (active | paused).
DELETE/offers/{id}Supprimer une offre sans stock (les offres ayant déjà des ventes sont passées en pause).
POST/offers/{id}/keysImporter des clés : { keys: ["…"] } (max. 1 000 par requête).
POST/offers/{id}/withdrawRécupérer les clés invendues : { count? }. Les renvoie en texte brut.
GET/sales?page=&limit=Vos ventes, vos gains et les dates de fin de retenue.
GET/balanceSolde en attente, solde disponible et prochains déblocages.
GET/disputes?status=&page=&limit=Litiges clients sur vos ventes (open | escalated | resolved).
GET/disputes/{id}Un litige avec ses messages.
POST/disputes/{id}/messagesRépondre au client : { body }.
POST/disputes/{id}/replaceEnvoyer un remplacement : { key } ou { fromStock: true }.
POST/disputes/{id}/refundRembourser le client (la vente est annulée).

Tarifs

price correspond à ce que vous recevez par unité. Le client paie votre prix augmenté de la commission du type de produit (clés, comptes et cadeaux, abonnements spéciaux), indiquée dans /me et dans chaque offre. Votre offre est vendue dès que son prix client est le plus bas disponible.

Exemple : publier un produit et importer des clés

# 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"

Erreurs et limites

Les erreurs renvoient { error: { code, message, requestId } } avec un statut 4xx/5xx. Limites : 20 requêtes par seconde et 600 par minute par clé ; 300 imports de clés par minute.