Cette aide est disponible pour vous guider dans l'utilisation de notre logiciel de caisse
Rechercher par mot clé dans l'aide :
Authentification
L'accès à l'API nécessite de fournir votre APIKEY et SHOPID.
1) Obtenir un auth token
Différentes méthodes :
- Méthode recommandée : clé dédiée : Configuration ? Webservices ? Clés API, depuis une session administrateur. Choisissez un nom, les autorisations nécessaires et éventuellement une expiration.
- Compatibilité par confirmation du courriel :
https://kash.click/workers/getOTPForAccount.php - Compatibilité par login et mot de passe :
https://kash.click/workers/getAuthTokenWithPassword.php
Ces routes délivrent une nouvelle clé API gérée, sans expiration et avec toutes les autorisations, uniquement à un administrateur actif. Un collaborateur reçoit api_admin_required (HTTP 403), même si son courriel ou son mot de passe est correct. Contactez un administrateur pour configurer une clé dédiée. Les clés déjà émises restent valides avec leurs autorisations existantes.
1.1.1 POST /workers/getOTPForAccount.php
Demandez un code de confirmation pour votre courriel. La réponse ne révèle pas si des comptes existent. Une adresse valide reçoit un code, même si aucun compte ne lui est encore associé ; aucun compte n’est créé par cette demande.
| Nom | Obligatoire | Description |
|---|---|---|
email | Oui | Adresse de courriel à confirmer |
accountID | Non | Limite la confirmation à ce profil ; omettre ce champ pour découvrir tous les profils associés |
La réponse contient success: true, un texte générique result, challengeId (32 caractères hexadécimaux) et expiresIn: 600. Conservez challengeId pour transmettre le code reçu par courriel.
const response = await fetch('/workers/getOTPForAccount.php', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams({ email })});const challenge = await response.json();// Demander à la personne le code reçu par courriel.// Conserver challenge.challengeId pour la confirmation. Le code de six chiffres expire après dix minutes et admet cinq essais au maximum. Les envois sont espacés de soixante secondes, avec des quotas par courriel et par IP. Une limitation retourne rate_limited (HTTP 429).
1.1.2 POST /workers/getAuthTokenWithOTP.php
Confirmez le courriel et choisissez un profil administrateur pour recevoir APIKEY et SHOPID. La liste des profils ne constitue pas une autorisation de délivrer une clé. Cette route ne renvoie et ne crée aucun cookie de connexion.
| Nom | Obligatoire | Description |
|---|---|---|
email | Oui | Le courriel de la demande |
challengeId | Oui | Référence reçue lors de la demande de code |
otp | À la confirmation | Code de six chiffres reçu par courriel ; OTP reste un alias accepté |
emailProof | Après confirmation | Preuve retournée après confirmation, à la place du code |
accountID | Si plusieurs profils | Identifiant du profil choisi parmi les comptes confirmés |
Avec un seul profil, accountID est facultatif. Avec plusieurs profils et sans choix, HTTP 409 retourne code: account_selection_required, accounts et emailProof. Recommencez avec cette preuve et le profil choisi, sans réutiliser le code.
Vous pouvez également confirmer le code par POST sur /workers/listShops.php avec email, challengeId et otp : la réponse contient accounts, emailProof et expiresIn. Le courriel seul ne révèle aucune liste et retourne email_confirmation_required (HTTP 401), sans déclencher un envoi.
La confirmation consomme le code. La preuve expire après cinq minutes au maximum, sans prolongation, et est consommée une seule fois lors de la délivrance de la clé. Elle reste limitée au courriel et, si précisé à la demande, au profil initial.
const response = await fetch('/workers/getAuthTokenWithOTP.php', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams({ email, challengeId, emailProof, accountID })});const credentials = await response.json();// Utiliser credentials.APIKEY et credentials.SHOPID pour l’intégration.{ "success": true, "result": "Here are your credentials", "APIKEY": "[votre clé API]", "SHOPID": "[identifiant de boutique]"} Le rôle administrateur est vérifié à nouveau avant la délivrance. Une confirmation de courriel ne contourne pas les protections de l’identité ou du second facteur : connectez-vous dans Kash.click et utilisez une clé dédiée si ces protections sont actives. Les accès suspendus ou révoqués, les établissements fermés et les webservices désactivés sont refusés.
1.2 POST /workers/getAuthTokenWithPassword.php
Cette route de compatibilité échange le login et le mot de passe d’un administrateur actif contre une nouvelle clé API gérée, sans expiration et avec toutes les autorisations. /workers/getAuthToken.php applique les mêmes autorisations, avec son format de succès historique.
Les deux routes partagent les mêmes limites : 10 tentatives par login et par 15 minutes, 30 par IP et par 15 minutes, 200 par IP et par jour, et 600 par minute pour l’ensemble du service. Les succès sont également comptés. Une limitation retourne HTTP 429 avec success: false, error: rate_limited, message et Retry-After en secondes. Attendez ce délai avant de réessayer ; alterner les routes ne remet pas les compteurs à zéro.
Utilisez uniquement des champs POST : login (254 octets maximum) et password (1024 octets maximum). Une requête mal formée retourne HTTP 400, une autre méthode HTTP 405. Un schéma ou service indisponible retourne HTTP 503 avec migration_required ou service_unavailable. Les réponses ne sont pas mises en cache.
Paramètres POST
| Nom | Obligatoire | Description |
|---|---|---|
login | Oui | Le login de votre compte existant |
password | Oui | Le mot de passe de votre compte existant |
Réponse JSON attendue (succès)
{ "success": true, "result":"Here are your credentials", "APIKEY": "[votre Token]", "SHOPID": "[identifiant de compte boutique]"} Réponse JSON attendue (échec)
{ "success": false, "result": "Authentication error"} Un profil non administrateur reçoit HTTP 403 avec success: false, error: api_admin_required et message. Une identité ou un second facteur peut imposer la connexion interactive, puis une clé dédiée. Les clés existantes et les connexions au logiciel ne sont pas révoquées par ce contrôle.
Exemple JavaScript (fetch)
const login = "mon.email@example.com";const password = "myPassword";fetch("https://kash.click/workers/getAuthTokenWithPassword.php", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ login, password })}) .then(r => r.json()) .then(data => { if (data.success) { console.log("Token:", data.APIKEY); console.log("Shop:", data.SHOPID); } else { console.error("Auth error", data); } }); 2) Avec la clé API, vous pouvez…
- Télécharger vos données de ventes
- Télécharger articles, clients, rayons, etc.
- Enregistrer des ventes
Ce document est mis à disposition selon les termes de la licence Creative Commons Attribution 4.0 International (CC BY 4.0) .