Documentation de l'API revendeur

L'API revendeur SHOP2TOPUP est une API REST JSON pour vendre des recharges de jeux et des codes de cartes cadeaux depuis votre propre boutique, votre site ou votre bot. Cette référence documente chaque endpoint public, ses paramÚtres et ses réponses.

URL de base et transport

Tous les chemins de cette rĂ©fĂ©rence sont relatifs Ă  l'URL de base ci-dessous. RequĂȘtes et rĂ©ponses sont en JSON sur HTTPS, les montants sont des chaĂźnes de caractĂšres pour qu'aucun arrondi flottant ne s'y glisse, et chaque horodatage est en UTC au format ISO 8601.

https://shop2topup.com/api/endpoints/v1

Authentification

Chaque requĂȘte porte un seul en-tĂȘte. La paire de clĂ©s est dĂ©livrĂ©e depuis la page API Access de votre panneau revendeur et peut ĂȘtre restreinte Ă  une liste d'IP autorisĂ©es ; un appel venant de toute autre adresse est rejetĂ© avec IP_NOT_ALLOWED avant d'atteindre la moindre logique mĂ©tier.

En-tĂȘte de requĂȘte
Authorization: Bearer <keyId>.<secret>

Un premier appel

Rien à installer. Insérez votre propre clé et cet appel renvoie des données de catalogue en direct.

RequĂȘte - cURL
curl -s "https://shop2topup.com/api/endpoints/v1/catalog/categories?bigCategoryId=1" \
  -H "Authorization: Bearer YOUR_KEY_ID.YOUR_KEY_SECRET"

Conventions de réponse

  • Chaque rĂ©ponse porte un champ boolĂ©en success : une seule condition sĂ©pare le cas nominal de tous les Ă©checs.
  • Les Ă©checs renvoient un objet error avec un code stable, un message lisible et des dĂ©tails facultatifs. Branchez-vous sur le code, jamais sur le message.
  • Les montants sont toujours des chaĂźnes dĂ©cimales, par exemple "0.950000" en USD. Ne les convertissez pas en flottant binaire avant de les comparer ou de les additionner.
  • Les endpoints de liste renvoient un objet pagination avec page, limit, total et total_pages.
  • La crĂ©ation de commande est idempotente sur l'UUID order_id que vous fournissez : une relance ne peut donc jamais dĂ©biter deux fois.
Réponse d'erreur
{
  "success": false,
  "error": {
    "code": "PRICE_INCREASED",
    "message": "Price has increased beyond expected",
    "details": {
      "expected_unit_price": "0.950000",
      "current_unit_price": "0.980000"
    }
  }
}

Sections de la référence

CatalogueLe catalogue est une arborescence Ă  trois niveaux : les grandes catĂ©gories contiennent des catĂ©gories, les catĂ©gories contiennent des sous-catĂ©gories, et une sous-catĂ©gorie est l'article que vous achetez rĂ©ellement. Ces endpoints vous permettent de recopier cette arborescence dans votre propre base de donnĂ©es et de tarifer un article juste avant de le commander.Validation joueurLa validation joueur rĂ©sout un compte in-game avant tout mouvement d'argent. Elle confirme que l'identifiant existe pour ce produit, renvoie le nom in-game pour que votre acheteur puisse le vĂ©rifier, et expose la rĂ©gion afin qu'une commande inter-rĂ©gions soit rejetĂ©e tĂŽt plutĂŽt que d'Ă©chouer aprĂšs paiement.CommandesLes commandes sont créées avec un UUID que vous gĂ©nĂ©rez. Cet UUID est la clĂ© d'idempotence : le rejouer renvoie la commande d'origine au lieu de dĂ©biter deux fois. Le statut se relit ensuite commande par commande, par lots de cinquante au maximum, ou sous forme de liste paginĂ©e.Compte et authentificationChaque requĂȘte porte un seul en-tĂȘte. GET /account est l'endpoint que vous appelez pour prouver qu'une clĂ© fonctionne, lire le solde du portefeuille sur lequel vos commandes sont dĂ©bitĂ©es, et confirmer que le compte est actif avant de lancer un traitement par lots.Codes d'erreurChaque Ă©chec renvoie un code stable, lisible par une machine, Ă  cĂŽtĂ© du statut HTTP. Branchez-vous sur le code, jamais sur le texte du message : les messages sont Ă©crits pour des humains et peuvent ĂȘtre reformulĂ©s, tandis que les codes font partie du contrat.

Limites de débit

Les limites s'appliquent par compte sur une fenĂȘtre glissante. Chaque rĂ©ponse porte X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset, et un appel limitĂ© rĂ©pond 429 avec un en-tĂȘte Retry-After.

RouteRequĂȘtesFenĂȘtreComptĂ©es par
GET /catalog/* (all five)8060sper account
POST /orders/create12060sper account
GET /orders/:orderId360sper account + order id
POST /orders/batch260sper account
GET /orders260sper account
GET /account6060sper account
POST /player/validatededicated limiter—per account

Webhooks

Les rĂ©sultats des commandes sont poussĂ©s vers un endpoint HTTPS que vous enregistrez, signĂ©s en HMAC-SHA256 sur le corps brut. La liste des Ă©vĂ©nements, celle des en-tĂȘtes, la forme de la charge utile et un extrait de vĂ©rification sont documentĂ©s sur la page de prĂ©sentation de l'API.

Lire la référence charge utile et signature des webhooks

Nouveau sur la plateforme ? Commencez par la présentation de l'API de recharge de jeux pour revendeurs, ou lisez la présentation du programme revendeur SHOP2TOPUP pour comprendre le fonctionnement du compte partenaire.

Documentation API revendeur — Recharge de jeux et codes