API Développeurs StockPro Desktop
L'API StockPro Desktop permet aux partenaires approuvés de générer et de gérer des licences de manière automatique, directement depuis leurs propres systèmes.
Cette API est exclusivement réservée aux partenaires disposant d'un accès validé. Pour obtenir vos identifiants, consultez notre Programme Partenaire.
URL de base
https://stockpro-desktop.com/api/v1Authentification
Toutes les requêtes envoyées à l'API doivent inclure deux en-têtes d'authentification. Votre clé API est disponible dans votre espace partenaire.
| En-tête | Valeur | Requis |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | Requis |
X-Partner-Key | YOUR_API_KEY | Requis |
Content-Type | application/json | Recommandé |
Exemple d'en-têtes :
Authorization: Bearer sp_partner_a1b2c3d4e5f6...
X-Partner-Key: sp_partner_a1b2c3d4e5f6...
Content-Type: application/json
Codes de réponse HTTP
| Code | Signification |
|---|---|
| 200 | Succès — la requête a été traitée correctement |
| 400 | Mauvaise requête — corps ou paramètres invalides |
| 401 | Non autorisé — clé API manquante ou invalide |
| 403 | Accès refusé — le compte partenaire est inactif |
| 404 | Non trouvé — la ressource demandée n'existe pas |
| 429 | Trop de requêtes — limite de débit dépassée |
| 500 | Erreur serveur — erreur interne lors du traitement |
Limite de débit
L'API est soumise à une limite de débit de 30 requêtes par minute par clé API. Si cette limite est dépassée, l'API répond avec un code 429 et un en-tête Retry-After indiquant le nombre de secondes avant de pouvoir réessayer.
HTTP/1.1 429 Too Many Requests
Retry-After: 42
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 0
{
"status": "error",
"message": "Too many requests. Please try again later.",
"retry_after_seconds": 42
}/licensesCréer une licenceGénère une nouvelle licence pour un client au nom du partenaire authentifié. La génération d'une licence déclenche la facturation côté partenaire. Une licence créée ne peut pas être annulée.
Corps de la requête
| Champ | Type | Requis | Description |
|---|---|---|---|
customer_name | string | Requis | Nom du client |
customer_email | string | Requis | Email du client (doit correspondre à l'email admin dans le logiciel) |
license_type | string | Requis | Type de licence : standard ou pro |
Exemple de requête
POST https://stockpro-desktop.com/api/v1/licenses
Authorization: Bearer sp_partner_a1b2c3d4e5f6...
X-Partner-Key: sp_partner_a1b2c3d4e5f6...
Content-Type: application/json
{
"customer_name": "Jean Dupont",
"customer_email": "jean.dupont@example.com",
"license_type": "pro"
}Réponse en cas de succès (200)
{
"status": "success",
"license_key": "SPRO-AB123-CD456-EF789",
"license_type": "pro"
}Réponse en cas d'erreur de validation (400)
{
"status": "error",
"message": "Validation failed.",
"errors": [
"customer_email is required and must be a valid email address.",
"license_type is required and must be either \"standard\" or \"pro\"."
]
}/licensesLister les licencesRetourne la liste de toutes les licences générées par le partenaire authentifié, triées par date de création décroissante.
Paramètres de requête (optionnels)
| Paramètre | Type | Description |
|---|---|---|
license_type | string | Filtrer par type : standard ou pro |
limit | integer | Nombre maximum de résultats à retourner |
offset | integer | Décalage pour la pagination (commence à 0) |
Exemple de requête
GET https://stockpro-desktop.com/api/v1/licenses?license_type=pro&limit=10
Authorization: Bearer sp_partner_a1b2c3d4e5f6...
X-Partner-Key: sp_partner_a1b2c3d4e5f6...Réponse en cas de succès (200)
{
"status": "success",
"count": 2,
"licenses": [
{
"id": "a1b2c3d4-...",
"license_key": "SPRO-AB123-CD456-EF789",
"partner_id": "uuid-partenaire",
"customer_name": "Jean Dupont",
"customer_email": "jean.dupont@example.com",
"license_type": "pro",
"created_at": "2026-03-08T10:30:00.000Z"
},
{
"id": "e5f6g7h8-...",
"license_key": "SPRO-CD789-EF012-GH345",
"partner_id": "uuid-partenaire",
"customer_name": "Marie Curie",
"customer_email": "marie.curie@example.com",
"license_type": "standard",
"created_at": "2026-03-07T14:15:00.000Z"
}
]
}/licenses/:licenseKeyRécupérer une licenceRetourne les informations d'une licence spécifique identifiée par sa clé. Seules les licences appartenant au partenaire authentifié sont accessibles.
Paramètre de chemin
| Paramètre | Type | Description |
|---|---|---|
licenseKey | string | La clé de licence (ex. SPRO-AB123-CD456-EF789) |
Exemple de requête
GET https://stockpro-desktop.com/api/v1/licenses/SPRO-AB123-CD456-EF789
Authorization: Bearer sp_partner_a1b2c3d4e5f6...
X-Partner-Key: sp_partner_a1b2c3d4e5f6...Réponse en cas de succès (200)
{
"status": "success",
"license": {
"id": "a1b2c3d4-...",
"license_key": "random@thing-some-string-CD456-EF789",
"partner_id": "uuid-partenaire",
"customer_name": "Jean Dupont",
"customer_email": "jean.dupont@example.com",
"license_type": "pro",
"created_at": "2026-03-08T10:30:00.000Z"
}
}Réponse si non trouvé (404)
{
"status": "error",
"message": "License not found."
}Bonnes pratiques de sécurité
- Ne jamais exposer votre clé API publiquement. Votre clé ne doit jamais apparaître dans du code JavaScript côté navigateur, dans un dépôt Git public ou dans une application mobile.
- Stocker la clé API côté serveur. Toutes les requêtes à l'API StockPro doivent être effectuées depuis votre backend. Utilisez des variables d'environnement pour stocker vos credentials.
- Utiliser exclusivement HTTPS. L'API n'accepte que les connexions chiffrées. Ne transmettez jamais votre clé via HTTP.
- Gérer les erreurs correctement. Vérifiez systématiquement le code de réponse HTTP et le champ
statusdans le corps de la réponse avant de considérer qu'une licence a été générée. - Respecter les limites de débit. Implémentez un mécanisme de retry avec backoff exponentiel si vous recevez un code 429.
- Ne pas régénérer une licence existante. Vérifiez avant toute génération si une licence a déjà été créée pour l'adresse email concernée via le endpoint GET /licenses.
Exemple d'intégration (Node.js)
Voici un exemple complet de génération de licence depuis un backend Node.js :
const response = await fetch(
'https://stockpro-desktop.com/api/v1/licenses',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${ process.env.STOCKPRO_API_KEY } `,
'X-Partner-Key': process.env.STOCKPRO_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
customer_name: 'Jean Dupont',
customer_email: 'jean.dupont@example.com',
license_type: 'pro',
}),
}
);
const result = await response.json();
if (result.status === 'success') {
console.log('Licence générée :', result.license_key);
// Envoyer la licence au client...
} else {
console.error('Erreur :', result.message);
}Support développeurs
Si vous rencontrez des difficultés lors de l'intégration de l'API, notre équipe technique est disponible pour vous accompagner.