v1.0
ASSISTANT VOCAL INTELLIGENT

API pour les restaurants

Connectez l'interface de l'assistant vocal aux données et aux services du restaurant : informations générales, carte, livraison, clients et passage de commande.

Exemple HTTP
GET /v1/?restaurant HTTP/1.1
Host: apiv1.demo-pizza.com
Authorization: Bearer YOUR_TOKEN
X-Restaurant-ID: 123
FORMAT JSON

Réponses structurées et simples à exploiter.

AUTH ID + Token

Une authentification propre à chaque restaurant.

VERSION API v1

Endpoints versionnés pour garantir la stabilité.

DÉMARRAGE

Authentification

Chaque restaurant dispose obligatoirement d'un identifiant unique et d'une clé API ou d'un token permettant d'autoriser les appels vers nos services.

i
Important

Le token doit être stocké côté serveur et ne doit jamais être exposé publiquement.

Attribut
Type
Obligatoire
Description
restaurant_id
integer
Oui
Identifiant unique du restaurant.
key
string
Oui
Clé d'authentification unique.
GET /v1/?restaurant

Informations du restaurant

Retourne les coordonnées, horaires et informations générales du restaurant.

Réponse

Les informations renvoyées peuvent être utilisées par l'assistant pour répondre aux questions du client.

200 OKJSON
{
  "success": true,
  "restaurant": {
    "id_resto": 123,
    "nom": "Restaurant Exemple",
    "telephone": "01 00 00 00 00",
    "adresse": "10 rue Exemple",
    "ville": "Paris",
    "code_postal": "75000",
    "specialite": "pizza",
    "horaires_livr": [],
    "horaires_emport": []
  }
}
GET /v1/?delivery-cities

Villes de livraison

Retourne les zones de livraison et leurs conditions.

200 OKJSON
{
  "success": true,
  "delivery_cities": [
    {
      "id_ville": 32,
      "nom_ville": "Ville Exemple 75000",
      "frais_livraison": 0,
      "minimum_commande": 25,
      "delais_livraison": "00:45:00"
    }
  ]
}
GET /v1/?order-settings

Paramètres de commande

Retourne les modes de commande autorisés, moyens de paiement, règles de livraison et autres paramètres nécessaires au passage d'une commande.

200 OKJSON
{
    "success": "true",
    "order_settings": {
        "modes": [
            "livraison",
            "emporter"
        ],
        "paiement": [
            "espece",
            "ticket_resto",
            "cheque",
            "cb_livraison"
        ],
        "commande_ouverte": true
    }
}
GET /v1/?customer

Informations client

Permet de rechercher les informations client nécessaires au traitement de la commande.

Paramètre
Type
Obligatoire
Description
telephone
string
Selon usage
Numéro de téléphone du client.
200 OKJSON
{
    "success": "true",
    "customer": {
        "id_client": "373",
        "societe": "",
        "nom": "Fernández",
        "prenom": "Jérémie",
        "civilite": "Mr",
        "adresse": "12 Rue de lÉglise",
        "mail": "abirdjebbi@des-click.com",
        "tel": "0183621701",
        "ville": {
            "id_ville": "0",
            "nom_ville": null,
            "frais_livraison": null,
            "minimum_commande": [],
            "delais_livraison": null
        },
        "pointfidelite": "0",
        "adresse_infplus": "Bât. A - Appt n°5",
        "dat_nais": "2026-02-11"
    }
}
GET /v1/?passager

Informations passager

Permet de rechercher les informations client nécessaires au traitement de la commande A emporter uniquement.

Paramètre
Type
Obligatoire
Description
telephone
string
Selon usage
Numéro de téléphone du client.
200 OKJSON
{
    "success": "true",
    "Passager": {
        "id_passager": "",
        "pseudo": "",
        "mobile": ""
    }
}
POST /v1/?orders

Insertion de commande

Permet à l'assistant vocal d'envoyer une commande validée vers le système du restaurant. La commande est ensuite réceptionnée par le logiciel de caisse pour traitement et impression.

Corps de la requête

Request BodyJSON

              {
    "id_resto": null,
    "key": null,
    "info_commande": {
        "type_commande": livraison,   \\ livraison ou emporter ou sur_place
        "date_commande": YYYY-mm-dd,
        "heure_commande": HH:ii:ss,
        "date_livraison": YYYY-mm-dd,
        "heure_livraison": HH:ii:ss,
        "reduction": null,
        "totalTTC_NET": null,  \\ total de commande final 
        "frais_livraison": null,
        "frais_gestion": null,
        "note_commande": null
    },
    "payement": [
        "espece",
        "cheque",
        "Ticket restaurant",
        "CB"
    ],
    "details_commande": [
        {
            "id_produit": null,
            "id_famille": null,
            "id_taille": null,
            "prix": null,
            "qte": null,
            "id_accompagnement": [],
            "id_accompagnement_famille": [],
            "ingredients_supp": [],
            "ingredients_sans": [],
            "composant": []
        }
    ],
    "info_client": {    \\ soit client 
        "id_client": null,
        "societe": null,
        "nom": null,
        "prenom": null,
        "civilite": null,
        "adresse": null,
        "mail": null,
        "tel": null,
        "ville": null,
        "pointfidelite": 0,
        "adresse_infplus": null
    },
    "info_passager": {    \\ soit passager(uniquement à emporter)
        "id_passager": "",
        "pseudo": "",
        "mobile": ""
    },
    "platform": "IAVOCAL"
}
            

Réponse

200 CreatedJSON
{
    "id_commande": 475,
    "message": "Votre commande est valide",
    "ttc": "71.00"
}
POSTURL Webhook du partenaire

Notifications Webhook

Le Webhook permet à notre système d'informer automatiquement l'application partenaire lorsqu'une modification intervient sur un restaurant.

i
Principe

Le partenaire fournit une URL HTTPS publique. Lorsqu'un événement est détecté, notre système envoie automatiquement une requête HTTP POST contenant un objet JSON.

Flux de communication

Notre systèmeDétecte une modification
→
WebhookPOST JSON
→
PartenaireReçoit l'événement
→
APIRécupère les nouvelles données

URL à fournir par le partenaire

ExempleHTTPS
https://partenaire.exemple.com/webhook/restaurant

Exemple : mise à jour de la carte

Payload envoyéJSON
{
  "event_id": "evt_987654",
  "statut": "mise_a_jour_carte",
  "id_resto": 3255,
  "date_creation": "2026-09-22T16:25:40+01:00"
}

Description des données

Champ
Type
Obligatoire
Description
event_id
string
Oui
Identifiant unique de l'événement, utile pour éviter un traitement en double.
statut
string
Oui
Type d'événement ayant déclenché le Webhook.
id_resto
integer
Oui
Identifiant du restaurant concerné.
date_creation
datetime
Oui
Date et heure de création de la notification.

Traitement attendu

Si statut vaut mise_a_jour_carte, le partenaire identifie le restaurant avec id_resto, puis appelle l'API Carte & produits pour récupérer les données actualisées. Le Webhook sert de notification ; les données complètes restent disponibles via les API.

Réponse attendue du partenaire

200 OKJSON
{
  "success": true,
  "message": "Webhook reçu"
}

Événements disponibles

Valeur statut
Événement
mise_a_jour_carte
Modification de la carte ou des produits.
mise_a_jour_restaurant
Modification des informations générales du restaurant.
mise_a_jour_livraison
Modification des villes ou paramètres de livraison.
mise_a_jour_parametres
Modification des paramètres de commande.
↻
Gestion des tentatives

L'identifiant event_id permet au partenaire d'ignorer un événement déjà traité si la notification est renvoyée après un échec de réception.

RÉFÉRENCE

Codes d'erreur

200Succès

Requête traitée avec succès.

400Bad Request

Paramètres manquants ou invalides.

401Unauthorized

Token ou identifiant invalide.

403Forbidden

Accès non autorisé.

404Not Found

Ressource introuvable.

500Server Error

Erreur interne du serveur.

VERSION

Historique

v1.0 Version initiale

Authentification, restaurant, menu, livraison, client, paramètres et insertion de commande.

Voice Restaurant API Documentation Version 1.0