DOCUMENTATION API
TELESOL API v1
Ce guide explique comment connecter une application aux ressources TELESOL autorisées. Les échanges utilisent HTTPS et les réponses sont retournées au format JSON.
https://api.telesol.net/v1Démarrage rapide
- Enregistrez l’applicationDepuis la section Applications, indiquez son nom, son adresse et les informations auxquelles elle peut accéder.
- Copiez son identifiantL’identifiant commence par
tsa_et représente l’application dans chaque requête. - Connectez l’utilisateurL’utilisateur s’authentifie avec son compte professionnel TELESOL.
- Appelez une ressourceEnvoyez l’identifiant client avec la requête et laissez le navigateur transmettre la session sécurisée.
Authentification
La connexion utilise le compte professionnel TELESOL. Une session sécurisée est créée dans un cookie HttpOnly et reste inaccessible au code JavaScript.
POST /v1/auth/login
Content-Type: application/json
{
"login": "utilisateur@telesol.net",
"password": "votre_mot_de_passe"
}
Important L’application ne doit jamais enregistrer le mot de passe. Elle transmet les identifiants uniquement au moment de la connexion.
Vérifier la session
GET /v1/auth/me
Fermer la session
POST /v1/auth/logoutIdentifiant de l’application
Chaque application reçoit un identifiant public unique. Ajoutez-le avec l’en-tête X-TELESOL-Client. L’accès final dépend à la fois des permissions de l’application et de celles de l’utilisateur connecté.
fetch("https://api.telesol.net/v1/products?limit=10", {
credentials: "include",
headers: {
"X-TELESOL-Client": "tsa_votre_identifiant"
}
});
Exemple cURL
curl -c cookies.txt -X POST "https://api.telesol.net/v1/auth/login" \
-H "Content-Type: application/json" \
-d '{"login":"utilisateur@telesol.net","password":"votre_mot_de_passe"}'
curl -b cookies.txt "https://api.telesol.net/v1/products?limit=10" \
-H "X-TELESOL-Client: tsa_votre_identifiant"Recherche et pagination
Les ressources de liste acceptent les paramètres suivants.
searchtexteRecherche par nom ou référence.limitnombreNombre d’éléments, de 1 à 100. Valeur par défaut : 25.offsetnombrePosition du premier élément. Valeur par défaut : 0.GET /v1/products?search=radio&limit=20&offset=0Ressources disponibles
/productsProduits, références, catégories et quantités disponibles.
/inventoryQuantités en stock, réservations et emplacements.
/suppliersFournisseurs enregistrés dans Odoo et coordonnées professionnelles.
/employeesNom, fonction, département et coordonnées professionnelles.
/projectsProjets actifs, clients, responsables et étapes.
/planningCréneaux, ressources, rôles, projets et heures allouées.
Créer un produit dans Odoo
La fiche est enregistrée directement dans Odoo avec les droits du compte connecté. La création ne modifie pas les quantités en stock.
/products/create-optionsSociété, devise, catégories et droit de création.
/productsCréer le produit et retourner son identifiant Odoo confirmé.
{
"requestId": "009c19a6-785b-4166-bb30-65a8dd76ae33",
"name": "Routeur Wi-Fi",
"reference": "RES-001",
"barcode": "",
"price": 75,
"companyId": 1,
"currencyId": 2
}Lire les identifiants de société et de devise dans /products/create-options. categoryId est facultatif. Utiliser la même demande UUID pour vérifier un enregistrement après une réponse perdue. Le Client ID autorisé sur Produits et la session personnelle sont obligatoires. En cas d’incertitude, vérifier dans Odoo avant toute nouvelle saisie.
Le catalogue utilise les variantes product.product, avec les produits archivés, le prix lst_price et sa devise currency_code.
Gestion du stock
La couche stock est préparée en mode consultation et recette. Elle donne une vision complète de l’organisation logistique et vérifie les opérations contre les données réelles sans modifier Odoo.
/inventoryQuantités physiques, réservées et disponibles.
/stock-warehousesEntrepôts et emplacements principaux.
/stock-locationsEmplacements internes, fournisseurs et clients.
/stock-lotsLots et numéros de série associés aux produits.
/stock-movementsHistorique détaillé des mouvements.
/stock-transfersRéceptions, livraisons et transferts internes.
/stock/capabilitiesMode actif et opérations prises en charge.
/stock/readinessVérifie les droits de lecture, création et modification dans Odoo.
/stock/operations/validateContrôle la structure d’une opération sans contacter le stock.
/stock/operations/previewVérifie le produit, les emplacements, le lot et la quantité disponible.
POST /v1/stock/operations/preview
{
"type": "transfer",
"productId": 42,
"quantity": 3,
"sourceLocationId": 10,
"destinationLocationId": 11,
"reference": "TRANSFERT-INTERNE-001"
}Sécurité de production Les écritures de stock restent désactivées. Une validation retourne toujours "executed": false tant que la phase de recette et les autorisations Odoo ne sont pas terminées.
Format des réponses
Les ressources de liste retournent les éléments et les informations nécessaires pour parcourir les pages.
{
"items": [
{ "id": 42, "display_name": "Radio professionnelle" }
],
"pagination": {
"total": 1508,
"limit": 25,
"offset": 0,
"hasMore": true
}
}Codes d’erreur
400Requête invalide — vérifiez les paramètres ou les informations envoyées.401Authentification requise — la session ou l’identifiant client est absent ou invalide.403Accès refusé — l’utilisateur ou l’application ne possède pas la permission requise.404Introuvable — la ressource demandée n’existe pas.409Conflit — une application utilise déjà cette adresse.429Trop de requêtes — attendez avant de réessayer.502Service temporairement indisponible — la communication avec Odoo a échoué.{ "error": "Description de l’erreur" }Bonnes pratiques
- Utilisez toujours HTTPS en production.
- N’accordez à une application que les permissions réellement nécessaires.
- Ne placez jamais de mot de passe dans le code source ou dans GitHub.
- Renouvelez l’identifiant d’une application en cas de doute.
- Suspendre immédiatement une application qui n’est plus utilisée.
- Consultez régulièrement la page Utilisation pour détecter les erreurs inhabituelles.
Besoin d’aide ? Contactez l’équipe technique TELESOL en indiquant le nom de l’application, la ressource appelée et le code d’erreur reçu.