L’API est accessible via l’URL https://api.lemotel.fr/v1
Les paramètres sont à passer en POST.
curl -X POST https://api.lemotel.fr/v1/etablissement \
-H "Content-Type: application/json" \
-d '{"id_etablissement":"12871","token":"IiY27r0u9MjZXwaKvBLT6Wn4gmGHzlP3"}'
/etablissement
Chaque établissement possède un ou plusieurs points de vente. Dans M-System, les points de ventes s’appellent des caisses.
Récupère la liste des points de vente du compte, ainsi que quelques informations générales.
Champ | Type | Description |
---|---|---|
id_etablissement | String | Obligatoire. Le numéro de compte du client. Il se trouve en bas de la page ‘Profil’ du back office. |
token | String | Obligatoire. Le token du client. Une chaîne de caractères que que client demande à M-System. |
Un objet JSON avec la structure suivante
{
"message":"OK",
"nom":"Démo FOOD",
"caisses":[
{
"id_caisse":"11943",
"libelle":"Caisse 1"
}
],
"types_paiement":[
{
"libelle":"Espèces"
},
{
"libelle":"CB"
}
]
}
Champ | Type | Description |
---|---|---|
message | String | Des informations sur l’éxecution de l’appel. “OK” en cas de succès, un message d’erreur sinon |
nom | String | Le nom de l’établissement |
caisses | JSON Array | Un tableau JSON contenant la liste des points de vente de l’établissement |
caisses.id_caisse | String | L’identifiant de la caisse |
caisses.libelle | String | Le libellé de la caisse |
types_paiement | JSON Array | Un tableau contenant les libellés des types de paiement |
types_paiement.libelle | String | Le libellé du type de paiement |
/produits
Récupère la liste des produits du compte. Tous les produits actifs sont renvoyés.
Champ | Type | Description |
---|---|---|
id_etablissement | String | Obligatoire. Le numéro de compte du client. Il se trouve en bas de la page ‘Profil’ du back office. |
token | String | Obligatoire. Le token du client. Une chaîne de caractères que que client demande à M-System. |
Un onjet JSON avec la structure suivante
{
"message":"OK",
"data":[
{
"id_produit":"483130",
"id_categorie":"850",
"categorie":"CHAUD",
"libelle":"PIZZA",
"prix_ttc":"9.00",
"taux_tva":"0.100"
},
{
"id_produit":"483131",
"id_categorie":"848",
"categorie":"SALÉ",
"libelle":"BURGER",
"prix_ttc":"5.00",
"taux_tva":"0.100"
}
]
}
Champ | Type | Description |
---|---|---|
message | String | Des informations sur l’éxecution de l’appel. “OK” en cas de succès, un message d’erreur sinon |
data | JSON Array | Un tableau JSON contenant la liste des produits |
data.id_produit | String | L’identifiant du produit |
data.id_categorie | String | L’identifiant de la catégorie du produit |
data.categorie | String | La catégorie du produit |
data.libelle | String | Le libellé du produit |
data.taux_tva | String | Le taux de TVA du produit. 0.1 = TVA 10% |
/ventes
Récupère la liste des ventes sur une période donnée. Les résultats sont renvoyés de la table du journal par rowid croissant. Les résultats sont paginés par paquets de 500.
Champ | Type | Description |
---|---|---|
id_etablissement | String | Obligatoire. Le numéro de compte du client. Il se trouve en bas de la page ‘Profil’ du back office. |
token | String | Obligatoire. Le token du client. Une chaîne de caractères que que client demande à M-System. |
date_debut | String | Obligatoire. La date de début de la période des ventes à récupérer. Format à saisir : YYYY-MM-DD |
date_fin | String | Obligatoire. La date de fin de la période des ventes à récupérer. Format à saisir : YYYY-MM-DD |
current_page | String | Optionnel. Le numéro de page du journal à récupérer. Si il n’est pas spécifié, la page 1 est renvoyée. |
id_caisse | String | Optionnel. Filtre pour ne récupérer les ventes que sur certaines caisses. Séparateur : virgule |
Un onjet JSON avec la structure suivante
{
"message":"OK",
"total_pages":31,
"current_page":6,
"data":[
{
"id":"706519",
"id_transaction":"175",
"date_transaction":"2020-05-01 12:08:08",
"id_produit":"483146",
"produit":"MARGARITA",
"id_caisse":"11943",
"caisse":"Caisse 1",
"type_paiement":"CB",
"quantite":"1.0000",
"montant_ttc":"7.00",
"montant_ht":"6.3636364",
"taux_tva":"0.100"
},
{
"id":"706565",
"id_transaction":"176",
"date_transaction":"2020-05-01 15:30:00",
"id_produit":"483145",
"produit":"TARTE",
"id_caisse":"11943",
"caisse":"Caisse 1",
"type_paiement":"CB",
"quantite":"2.0000",
"montant_ttc":"6.00",
"montant_ht":"5.4545455",
"taux_tva":"0.100"
}
]
}
Champ | Type | Description |
---|---|---|
message | String | Des informations sur l’éxecution de l’appel. “OK” en cas de succès, un message d’erreur sinon |
total_pages | Int | Le nombre total de pages qui correspond à l’intervalle demandé |
current_page | Int | Le numéro de la page courante |
data | JSON Array | Un tableau JSON contenant la liste des ventes |
data.id | String | Le numéro de la ligne dans la table du journal |
data.id_transaction | String | L’identifiant de la transaction. Une transaction comporte un ou plusieurs produits. |
data.id_produit | String | L’identifiant du produit |
data.produit | String | Le libellé du produit |
data.taux_tva | String | Le taux de TVA du produit. 0.1 = TVA 10% |
data.id_caisse | String | L’identifiant de la caisse où a eu lieu la transaction |
data.caisse | String | Le libellé de la caisse où a eu lieu la transaction |
data.type_paiement | String | Le libellé du type de paiement de la transaction |
data.quantite | String | La quantité du produit dans la transaction |
data.montant_ttc | String | Le montant ttc du produit dans la transaction (est égal au prix unitaire x la quantité) |
data.montant_ht | String | Le montant ht du produit dans la transaction (est égal au prix unitaire ht x la quantité) |
/ventes2
Récupère la liste des ventes sur une période donnée. Les résultats sont renvoyés de la table du journal par id_transaction croissant. Les résultats sont paginés par paquets de 500. Les données sont présentées sous une autre forme que dans /ventes
Si une vente a été annulée, au lieu de remonter la vente en question et son équilavent négatif, on ne remonte rien.
Champ | Type | Description |
---|---|---|
id_etablissement | String | Obligatoire. Le numéro de compte du client. Il se trouve en bas de la page ‘Profil’ du back office. |
token | String | Obligatoire. Le token du client. Une chaîne de caractères que que client demande à M-System. |
date_debut | String | Obligatoire. La date de début de la période des ventes à récupérer. Format à saisir : YYYY-MM-DD |
date_fin | String | Obligatoire. La date de fin de la période des ventes à récupérer. Format à saisir : YYYY-MM-DD |
current_page | String | Optionnel. Le numéro de page du journal à récupérer. Si il n’est pas spécifié, la page 1 est renvoyée. |
id_caisse | String | Optionnel. Filtre pour ne récupérer les ventes que sur certaines caisses. Séparateur : virgule |
Un onjet JSON avec la structure suivante
{
"message":"OK",
"total_pages":1,
"current_page":1,
"data":[
{
"id_transaction":"254",
"date_transaction":"2020-07-16 16:25:38",
"id_caisse":"7031",
"total_ttc":20,
"total_ht":18.1818182,
"produits":[
{
"produit":"MARGARITA",
"id_produit":"483146",
"taux_tva":"0.100",
"quantite":2,
"montant_ttc":14,
"montant_ht":12.7272727
},
{
"produit":"DESSERT",
"id_produit":"495091",
"taux_tva":"0.100",
"quantite":1,
"montant_ttc":6,
"montant_ht":5.4545455
}
],
"paiements":[
{
"type":"CB",
"montant":20
}
]
},
{
"id_transaction":"255",
"date_transaction":"2020-07-16 16:26:03",
"id_caisse":"7031",
"total_ttc":13,
"total_ht":11.8181819,
"produits":[
{
"produit":"BROWNIE",
"id_produit":"483144",
"taux_tva":"0.100",
"quantite":1,
"montant_ttc":4,
"montant_ht":3.6363637
},
{
"produit":"TARTE",
"id_produit":"483145",
"taux_tva":"0.100",
"quantite":3,
"montant_ttc":9,
"montant_ht":8.1818182
}
],
"paiements":[
{
"type":"Espèces",
"montant":11
},
{
"type":"CB",
"montant":2
}
]
}
]
}
Champ | Type | Description |
---|---|---|
message | String | Des informations sur l’éxecution de l’appel. “OK” en cas de succès, un message d’erreur sinon |
total_pages | Int | Le nombre total de pages qui correspond à l’intervalle demandé |
current_page | Int | Le numéro de la page courante |
data | JSON Array | Un tableau JSON contenant la liste des ventes |
data.id_transaction | String | L’identifiant de la transaction. Une transaction comporte un ou plusieurs produits. |
data.id_caisse | String | L’identifiant du point de vente sur lequel la transaction a eu lieu. |
data.total_ttc | Float | Le moontant total TTC de la transaction |
data.total_ht | Float | Le moontant total HT de la transaction |
data.produits | JSON Array | Un tableau JSON avec la liste des produits de la transaction |
data.produits.produit | String | Le libellé du produit |
data.produits.id_produit | String | L’identifiant du produit |
data.produits.taux_tva | String | Le taux de TVA du produit. 0.1 = TVA 10% |
data.produits.quantite | String | La quantité du produit dans la transaction |
data.produits.montant_ttc | Float | Le montant ttc du produit dans la transaction (est égal au prix unitaire x la quantité) |
data.produits.montant_ht | Float | Le montant ht du produit dans la transaction (est égal au prix unitaire ht x la quantité) |
data.paiements | JSON Array | La liste des paiements de la transaction |
data.paiements.type | String | Le type de paiement |
data.paiements.montant | Float | Le montant de la transaction encaissé avec ce type de paiement |
/insert_vente
Insère une commande dans M-System. Cette commande est écrite directement dans le journal des ventes. On ne peut envoyer qu’une seule commande à la fois.
Champ | Type | Description |
---|---|---|
id_etablissement | String | Obligatoire. Le numéro de compte du client. Il se trouve en bas de la page ‘Profil’ du back office. |
token | String | Obligatoire. Le token du client. Une chaîne de caractères que que client demande à M-System. |
commandes | JSON Array | Obligatoire. Un tableau de longueur 1 avec la commande à envoyer. |
commandes[0].id_caisse | String | Obligatoire. L’identifiant de la caisse. |
commandes[0].id_type_paiement | String | Obligatoire. L’identifiant du type de paiement de la commande. |
commandes[0].date_transaction | String | Obligatoire. La date de la commande. Format aaaa-mm-jj hh:mm:ss |
commandes[0].produits | JSON Array | Obligatoire. Un tableau avec les produits de la commande |
commandes[0].produits.id_produit | String | Obligatoire. L’identifiant du produit. |
commandes[0].produits.quantite | Float | Obligatoire. La quantité du produit. |
Exemple de paramètres à passer en appel à la page
{
"id_etablissement":"12871",
"token":"UPfsFABWgh8b20X72rHu6xV5QGNdzqOa",
"commandes":[
{
"id_caisse":"11943",
"id_type_paiement":"1",
"date_transaction":"2024-12-20 15:07:00",
"produits":[
{
"id_produit":"483130",
"quantite":2
},
{
"id_produit":"483160",
"quantite":3
}
]
}
]
}
Un onjet JSON avec la structure suivante
{
"id_transaction": 1044,
"id_caisse": 11943,
"message": "OK",
"nb_produits": 5,
"montant_commande": 27.6
}
Champ | Type | Description |
---|---|---|
message | String | Des informations sur l’éxecution de l’appel. “OK” en cas de succès, un message d’erreur sinon |
id_caisse | Int | L’identifiant de la caisse de la commande insérée |
id_transaction | Int | L’identifiant de la transaction insérée |
nb_produits | Float | Le nombre de produits de la commande |
montant_commande | Float | Le montant total de la commande |
La valeur id_caisse,id_transaction
est unique dans l’application.
/insert_commande
Insère une commande dans M-System. Cette commande apparait sous forme de note dans l’application.
Champ | Type | Description |
---|---|---|
id_etablissement | String | Obligatoire. Le numéro de compte du client. Il se trouve en bas de la page ‘Profil’ du back office. |
token | String | Obligatoire. Le token du client. Une chaîne de caractères que que client demande à M-System. |
libelle | String | Obligatoire. Le libellé de la note qui sera affichée dans M-System. |
date_commande | String | Facultatif. La date à laquelle la commande est passée. Si non spécifiée, l’heure d’appel à la page est utilisée. Format : YYYY-MM-DD HH:MM:SS |
id_type_paiement | String | Facultatif. L’identifiant du type de paiement avec lequel cette commande sera encaissée. Si non spécifié, la commande pourra être encaissée avec un type de paiement choisi par l’utilisateur M-System |
id_externe | String | Facultatif. L’identifiant dde la commande dans le système appelant. |
etat_commande | String | Facultatif. L’état de la commande dans le système appelant. |
contenu_commande | Json Array | Obligatoire. Le contenu de la commande |
contenu_commande.id_produit | String | Obligatoire. L’identifiant du produit de la commande |
contenu_commande.quantite | String | Obligatoire. La quantité du produit de la commande |
contenu_commande.prix_unitaire | String | Obligatoire. Le prix unitaire du produit |
Exemple de paramètres à passer en appel à la page
{
"id_etablissement":"12871",
"token":"UPfsFABWgh8b30X72rHu6xV5QGNdzqOa",
"libelle":"Alice",
"id_type_paiement":"2",
"date_commande":"2020-06-18 19:03:36",
"id_externe":"99f55ed2-ca74-11ea-89bb-a484d00fb427",
"etat_commande":"en_preparation",
"contenu_commande":[
{
"id_produit":"483157",
"quantite":"1",
"prix_unitaire":"3.5"
},
{
"id_produit":"483149",
"quantite":"2",
"prix_unitaire":"17"
}
]
}
Un onjet JSON avec la structure suivante
{
"message":"OK",
"id_note":"ab078272-1eba-45a3-923a-66f09ea35f7e",
"nb_produits":3,
"montant_commande":37.5
}
Champ | Type | Description |
---|---|---|
message | String | Des informations sur l’éxecution de l’appel. “OK” en cas de succès, un message d’erreur sinon |
id_note | String | L’identifiant de la note nouvellement insérée dans M-System |
nb_produits | Float | Le nombre de produits de la note |
montant_commande | Float | Le montant total de la note |
Après chaque validation de commande, il est possible d’appeler un webhook. Les ventes insérées dans le journal sont passées en paramètre.
L’appel qui est lancé à chaque nouvelle commande :
curl -X POST https://monsite.fr/path/to/webhook \
-H "Content-Type: application/json" \
-d
{
"id_etablissement": "12871",
"data": [
{
"id_transaction": 2151,
"date_transaction": "2024-10-20 10:56:49",
"total_ttc": 13,
"total_ht": 10.8333333,
"id_caisse": "21579",
"id_appareil": "2300",
"produits": [
{
"produit": "COCKTAIL",
"id_produit": "885",
"taux_tva": 0.2,
"quantite": 1,
"montant_ttc": 7,
"montant_ht": 5.833333333333334
},
{
"produit": "VIN BLANC",
"id_produit": "508",
"taux_tva": 0.2,
"quantite": 1,
"montant_ttc": 6,
"montant_ht": 5
}
],
"paiements": [
{
"type": "CB",
"montant": 13
}
]
}
]
}
Champ | Type | Description |
---|---|---|
id_etablissement | String | Le numéro de compte du client. |
data | JSON Array | Un tableau des transactions qui viennent d’être insérées en base. Le format est le même que pour celui de /ventes2 , avec en plus un identifiant de l’appareil qui a enregistré les ventes. |
Si vous souhaitez le mettre en place, vous nous transmettez votre url, et nous la paramétrons dans votre compte.