Docs
API partenaire
Pour les partenaires approuvés : créez des codes d’activation Chart Premium pour vos clients depuis vos propres systèmes (CRM, espace client, onboarding) et voyez lesquels ont été utilisés. À propos du programme partenaires.
Authentification
Créez une clé sur votre page partenaire et envoyez-la dans l’en-tête Authorization. Les clés ressemblent à mdp_pk_3f9a1c07de_… ; nous ne gardons qu’une empreinte, une clé perdue ne peut donc pas être réaffichée : créez-en une nouvelle.
curl https://app.marketapi.app/partner/v1/account \
-H "Authorization: Bearer mdp_pk_YOUR_KEY"
Rotation sans interruption : Renouveler crée une nouvelle clé et garde l’ancienne active 24 heures. Mettez la nouvelle clé dans vos systèmes, puis l’ancienne expire d’elle-même (ou révoquez-la aussitôt). Ne mettez jamais une clé dans une page web ou une application mobile : appelez l’API depuis votre serveur.
Limites : 120 requêtes par minute et par partenaire ; trop de clés invalides depuis une même adresse entraînent un blocage de 10 minutes. Les erreurs sont en JSON : {"error": "…", "code": "invalid"} avec HTTP 400, 401, 405 ou 429.
Vos places
GET /partner/v1/account
{"partner_id": "MP-7KQ3TA", "name": "Example Broker", "status": "active",
"seats": [{"plan": "pro", "name": "Pro", "days": 30, "left": 48, "trial": false, "expires_at": null}]}
Chaque place est un code d’activation pour une offre et une durée (30, 91, 182 ou 365 jours). Achetez des packs de places sur votre page partenaire (30 % de remise sur le prix normal, packs de 10, 50, 250).
Créer les codes
POST /partner/v1/codes avec un corps JSON :
| Champ | Signification |
|---|---|
plan | pro ou proplus |
months | 1, 3, 6 ou 12 (la durée de la place), ou days |
count | nombre de codes (1–5000) ; peut être omis si vous fournissez des références |
customer_refs | facultatif : votre propre référence pour chaque code (p. ex. le numéro de compte du client), jusqu’à 120 caractères chacune. Nous la stockons masquée (45•••68) avec une empreinte à clé, vous pouvez donc retrouver un code par la référence complète, mais nous ne la conservons jamais. |
expires_days | durée de validité d’un code inutilisé (365 par défaut ; les places d’essai se terminent plus tôt). Un code inutilisé qui expire libère sa place. |
batch | nom facultatif pour reconnaître le lot |
Envoyez un en-tête Idempotency-Key (n’importe quel texte unique) : si votre requête est relancée, vous recevez les mêmes codes au lieu de nouveaux (pendant 24 heures).
curl -X POST https://app.marketapi.app/partner/v1/codes \
-H "Authorization: Bearer mdp_pk_YOUR_KEY" -H "Content-Type: application/json" \
-H "Idempotency-Key: onboarding-45123468" \
-d '{"plan": "pro", "months": 1, "customer_refs": ["45123468"]}'
201 {"count": 1, "codes": [{"code": "K7QM-3XTP-9RWA-FD2H", "hint": "FD2H", "customer_ref": "45•••68",
"plan": "pro", "days": 30, "expires_at": "2027-10-17T08:00:00+00:00"}]}
Les codes figurent dans la réponse une seule fois. Donnez à chaque client son code ; il le saisit sur https://app.marketapi.app/premium (connecté) et l’offre démarre aussitôt, ou après celle qu’il a déjà.
Gros lots : au-delà de 100 codes, ils sont créés par notre file de tâches. La réponse est 202 {"job": 812, "url": "/partner/v1/jobs/812"} ; interrogez cette URL jusqu’à ce que status soit done ; les codes figurent dans cette réponse la première fois seulement.
GET /partner/v1/jobs/812
{"status": "queued", "position": 2, "eta_s": 4.0} → {"status": "done", "count": 2000, "codes": [ … ]}
Trouver des codes
GET /partner/v1/codes?customer_ref=45123468&status=unused&limit=100&offset=0 — statut : unused, redeemed ou cancelled.
{"codes": [{"id": 9134, "hint": "FD2H", "customer_ref": "45•••68", "plan": "pro", "days": 30, "status": "redeemed",
"created_at": "…", "expires_at": "…", "redeemed_at": "…"}]}
Annuler un code
POST /partner/v1/codes/9134/cancel — codes inutilisés seulement ; la place redevient libre aussitôt.
Sécurité
- Chaque appel passe par HTTPS ; les clés sont comparées en temps constant et seule leur empreinte à clé est stockée.
- Nous écrivons à votre adresse de contact chaque fois qu’une clé est créée ou renouvelée.
- Les codes font 16 caractères parmi 32 symboles (80 bits), sont affichés une fois, stockés uniquement sous forme d’empreinte et limités à 10 essais par heure et par compte lors de la saisie.