Aide Caisse enregistreuse gratuite - POS - PDV

Caisse Enregistreuse

Logiciel de caisse enregistreuse gratuit, en ligne depuis 2014.

Suivez-nous

Centre d'aide caisse enregistreuse

Cette aide est disponible pour vous guider dans l'utilisation de notre logiciel de caisse

API caisse.enregistreuse.fr

Documentation technique complète et opérationnelle. Chaque section inclut des exemples JavaScript (fetch) prêts à l’emploi.

Résumé rapide : Obtenez un token (APIKEY) + l’identifiant de boutique (SHOPID), puis utilisez-les pour télécharger vos données ou enregistrer des ventes.

1) Authentification — Obtenir un auth token

Deux méthodes :

  1. Depuis l’interface : Configuration ? Webservices (le token de votre compte y est affiché).
  2. Par requête POST : https://caisse.enregistreuse.fr/workers/getAuthToken.php

1.1 POST /workers/getAuthToken.php

Paramètres POST

  • login — le login de votre compte existant
  • password — le mot de passe de votre compte existant

Réponse JSON attendue (succès)

{ "result": "OK", "APIKEY": "[votre Token]", "SHOPID": "[identifiant de compte boutique]"}

Exemple JavaScript (fetch)

const login = "mon.email@example.com";const password = "monMotDePasse";fetch("https://caisse.enregistreuse.fr/workers/getAuthToken.php", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ login, password })}) .then(r => r.json()) .then(data => {  if (data.result === "OK") {   console.log("Token:", data.APIKEY);   console.log("Boutique:", data.SHOPID);  } else {   console.error("Erreur d'authentification", 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

3) Télécharger vos ventes (journalier)

GET /workers/getSales.php

URL de base : https://caisse.enregistreuse.fr/workers/getSales.php

Paramètres

NomTypeObligatoireDescription
idboutiquestringOuiIdentifiant de compte boutique (SHOPID)
keystringOuiVotre token (APIKEY)
dintNonJour (si non précisé, la veille est utilisée)
mintNonMois
yintNonAnnée
formatExportstringOuiStd (rapport HTML), PDF, XLS, CSV, frafec (FEC), saft

Exemples JavaScript

// Aide pour construire une URL GETfunction buildUrl(path, params){ const qs = new URLSearchParams(params); return `${path}?${qs.toString()}`;}const SHOPID = "[SHOPID]";const APIKEY = "[APIKEY]";// 1) Export CSV pour date préciseconst urlCsv = buildUrl("https://caisse.enregistreuse.fr/workers/getSales.php", { idboutique: SHOPID, key: APIKEY, d: 16, m: 10, y: 2025, formatExport: "CSV"});fetch(urlCsv).then(r=>r.text()).then(csv=>console.log(csv));// 2) Rapport HTML (Std) pour la veille (sans date)const urlStd = buildUrl("https://caisse.enregistreuse.fr/workers/getSales.php", { idboutique: SHOPID, key: APIKEY, formatExport: "Std"});fetch(urlStd).then(r=>r.text()).then(html=>{ document.getElementById("rapport").innerHTML = html;});// 3) Rapport PDF (Blob)const urlPdf = buildUrl("https://caisse.enregistreuse.fr/workers/getSales.php", { idboutique: SHOPID, key: APIKEY, d: 16, m: 10, y: 2025, formatExport: "PDF"});fetch(urlPdf).then(r=>r.blob()).then(pdf=>{ const a = document.createElement("a"); a.href = URL.createObjectURL(pdf); a.download = "rapport-ventes.pdf"; a.click();});

4) Télécharger la liste des articles, rayons, clients, etc

Tous les endpoints suivants acceptent &format=json, &format=csv ou &format=html.

4.1 Endpoints disponibles

RessourceEndpoint
Articles/workers/getPlus.php
Rayons/workers/getDepartments.php
Groupes de rayons/workers/getDepartmentGroups.php
Clients/workers/getClients.php
Déclinaisons d'articles/workers/getDeclinaisons.php
Méthodes de livraison/workers/getLivraisons.php
Méthodes de paiement/workers/getPaymentModes.php
Caisses/workers/getCashbox.php
Zones de livraison/workers/getDeliveryZones.php
Points relais/workers/getRelayDeposit.php
Réductions/workers/getDiscounts.php
Utilisateurs/workers/getUsers.php
Tables/workers/getTables.php
Commandes en cours/workers/getPending.php

Patron d’URL

https://caisse.enregistreuse.fr/workers/[endpoint].php?idboutique=[SHOPID]&key=[APIKEY]&format=[csv|json|html]

Exemples JavaScript

// Récupération d'une ressource génériquefunction buildUrl(path, params){ const qs = new URLSearchParams(params); return `${path}?${qs.toString()}`;}async function fetchResource(endpoint, format = "json"){ const url = buildUrl(`https://caisse.enregistreuse.fr/workers/${endpoint}.php`, {  idboutique: SHOPID,  key: APIKEY,  format }); const res = await fetch(url); return format === "json" ? res.json() : res.text();}// 1) Articles en JSONfetchResource("getPlus", "json").then(data => console.log("Articles:", data));// 2) Clients en CSVfetchResource("getClients", "csv").then(csv => console.log("Clients (CSV):\n", csv));// 3) Rayons en HTML (injection)fetchResource("getDepartments", "html").then(html => { document.getElementById("rayons").innerHTML = html;});

5) Enregistrer des ventes dans le logiciel

POST /workers/webapp.php

Envoyez une commande complète : articles, client, mode de paiement, livraison, etc.

Paramètres POST

NomTypeObligatoireDescription
idboutiquestringOuiVotre identifiant de boutique (SHOPID)
keystringOuiVotre Token (APIKEY)
idUserintNonIdentifiant d'utilisateur. Si non précisé, le logiciel crée un compte utilisateur avec le login "webservice" s'il n'existe pas déjà, et l'utilise.
paymentintOui-2 = Non payée, non validée ; -1 = Non payée, validée ; un identifiant de mode de paiement pour indiquer un paiement (peut être un identifiant d'un mode de remboursement)
idClientintNonIdentifiant du client existant pour l'affecter à la commande
idtableintNonIdentifiant de la table pour l'affecter à la commande
idcaisseintNonIdentifiant de la caisse pour l'affecter à la commande
numcouvertsintNonNombre de couverts servis à la table
publicCommentstringNonCommentaire adossé à la commande (public)
privateCommentstringNonCommentaire adossé à la commande (privé)
pagerNumintNonNuméro de bippeur

Créer un nouveau client dans la même requête

Si le client n'existe pas, vous pouvez le créer avec les champs suivants (à envoyer directement en POST) :

client[nom]=[nom]client[prenom]=[Prénom]client[email]=[Email]client[telephone]=[nom]client[adresseligne1]=[Adresse ligne 1]client[adresseligne2]=[Adresse ligne 2]client[commentaireadresse]=[nom]client[codepostal]=[Code postal]client[ville]=[Ville]client[pays]=FRclient[numtva]=[Numéro TVA]client[rcs]=[Numéro RC]client[codeBarre]=[Code barre]client[telephone2]=[Téléphone secondaire]client[lat]=[latitude]client[lng]=[longitude]

deliveryMethod

ValeurSignification
0À emporter
1À livrer
2Sur place
3Service au volant
4Vente au comptoir
5Point relai
6À expédier

itemsList[] — Structure et exemples

  • [idArticle] — ajoute un article (quantité 1)
  • [idArticle]_[quantite] — préciser la quantité
  • [idArticle]_[quantite]_[titre personnalisé]_[prix personnalisé] — forcer le titre et le prix
  • [idArticle]_[quantite]_[titre]_[prix]_[idDéclinaison1]_[idDéclinaison2]_[idDéclinaison3]_[idDéclinaison4]_[idDéclinaison5] — ajouter jusqu'à 5 déclinaisons
  • Vente libre en rayon : -[idRayon]_[prix]_[titre] — crée une ligne libre rattachée au rayon
  • Vente libre : Free_[prix]_[titre] — crée une ligne libre

Exemple JavaScript — client existant

async function enregistrerVenteAvecClientExistant(){ const body = new URLSearchParams({  idboutique: SHOPID,  key: APIKEY,  idUser: 1,  payment: -1,  deliveryMethod: 0,  idClient: 123 }); body.append("itemsList[]", "12_2_Pizza 4 fromages_14.50_3_8"); body.append("itemsList[]", "-5_9.99_Vente libre"); const res = await fetch("https://caisse.enregistreuse.fr/workers/webapp.php", {  method: "POST",  headers: { "Content-Type": "application/x-www-form-urlencoded" },  body }); let payload; try{ payload = await res.json(); }catch{ payload = await res.text(); } console.log(payload);}

Exemple JavaScript — nouveau client + vente

async function enregistrerVenteAvecNouveauClient(){ const body = new URLSearchParams({  idboutique: SHOPID,  key: APIKEY,  payment: 2,  deliveryMethod: 1 }); body.append("client[nom]", "Durand"); body.append("client[prenom]", "Zoé"); body.append("client[email]", "zoe.durand@example.com"); body.append("client[telephone]", "+33 6 12 34 56 78"); body.append("client[adresseligne1]", "10 rue des Écoles"); body.append("client[adresseligne2]", "Bât. B"); body.append("client[commentaireadresse]", "Sonner 2 fois"); body.append("client[codepostal]", "75005"); body.append("client[ville]", "Paris"); body.append("client[pays]", "FR"); body.append("client[numtva]", "FRXX999999999"); body.append("client[rcs]", "RCS Paris 123 456 789"); body.append("client[codeBarre]", "CUST-0001"); body.append("client[telephone2]", "+33 1 23 45 67 89"); body.append("client[lat]", "48.848"); body.append("client[lng]", "2.347"); body.append("itemsList[]", "42_1_Menu midi_12.90"); body.append("itemsList[]", "15_3_Canette Cola_2.50"); const res = await fetch("https://caisse.enregistreuse.fr/workers/webapp.php", {  method: "POST",  headers: { "Content-Type": "application/x-www-form-urlencoded" },  body }); let payload; try{ payload = await res.json(); }catch{ payload = await res.text(); } console.log(payload);}
Rappel : si idUser est omis, le logiciel utilise/crée automatiquement un utilisateur “webservice”.

6) Bonnes pratiques & remarques

  • Toutes les requêtes doivent être effectuées en HTTPS.
  • Pour les POST, utilisez Content-Type: application/x-www-form-urlencoded.
  • Encodage : UTF-8.
  • Les exports PDF/XLS/CSV se manipulent comme des Blob côté navigateur.
Inscrivez-vous maintenant
Licence Creative Commons Ce document est mis à disposition selon les termes de la licence Creative Commons Attribution 4.0 International (CC BY 4.0) .