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.
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.
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.
{
"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
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.
| Route | RequĂȘtes | FenĂȘtre | ComptĂ©es par |
|---|---|---|---|
| GET /catalog/* (all five) | 80 | 60s | per account |
| POST /orders/create | 120 | 60s | per account |
| GET /orders/:orderId | 3 | 60s | per account + order id |
| POST /orders/batch | 2 | 60s | per account |
| GET /orders | 2 | 60s | per account |
| GET /account | 60 | 60s | per account |
| POST /player/validate | dedicated 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 webhooksNouveau 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.