NAV
ruby csharp

Introduction

Bienvenue dans la documentation de Fidelisa API !

L'API vous permet en tant que fournisseur (Partenaire, Editeur de logiciel, Agence, …) de gérer l'ensemble des actions nécessairent au fonctionnement de FIDELISA.

Des exemples de codes sont fournis (Ruby, C#, …) dans la partie droite de la page, d'autres seront bientôt disponibles.

Lexique

Definitions

Vocabulaire

Nom Définition
Fournisseur Partenaires, Editeur de logiciel, Agence, …
lieu lieu, Commerce, eCommerce, …
Client Client d'un lieu

Paramètres des requêtes

Type Definitions
body Elément du JSON envoyé au serveur
path Elément de l'url
query Paramètres de l'url

Date et Montant

Les dates sont au format YYYY-MM-DD

Le séparateur de décimal des montants est le “.” (point), il n’y a pas de séparateur de milliers.

Boolean

Les filtres des requêtes de type boolean ont trois positions :

Valeur du filtre Réponse de la requête
t les éléments qui valident le filtre
f les éléments qui ne valident pas le filtre
tous les éléments.

Exemple

Si je souhaite les gains spéciaux consomés, je vais utiliser la requête suivante:

/api/customers/{customer_id}/specialgains?user=t

Pour les non consomés :

/api/customers/{customer_id}/specialgains?user=f

Pour tous les gains :

/api/customers/{customer_id}/specialgains

Authentification

Provider

Calcul de la cle

FIDELISA_JETON est un jeton aléatoire (différent à chaque appel)

FIDELISA_PROVIDER_KEY correspond au calcul de la signature avec comme paramètres :
  request : concatenation de FIDELISA_PROVIDER et FIDELISA_JETON.
  secret_key : FIDELISA_PROVIDER

Ces requêtes nécessitent les droits fournisseur (ex: Initialisation d'un shop).

Dans le header de la requête ajouter les éléments suivants :

Nom Description
FIDELISA_JETON code à usage unique généré par le provider
FIDELISA_PROVIDER code Fidelisa fourni par Fidelisa
FIDELISA_PROVIDER_KEY signature de la requête

Shop

Calcul de la cle

FIDELISA_JETON est un jeton aléatoire (différent à chaque appel)

FIDELISA_PROVIDER_KEY correspond au calcul de la signature avec comme paramètres :
  request : concatenation de FIDELISA_PROVIDER et FIDELISA_JETON.
  secret_key : FIDELISA_PROVIDER

FIDELISA_APIUSER_KEY correspond au calcul de la [signature](#Signature) avec comme paramètres :
  request : concatenation de FIDELISA_APIUSER et FIDELISA_JETON.
  secret_key : FIDELISA_APIUSER

Ces requêtes nécessitent les droits lieu (ex: la création d’un client).

Dans le header de la requête ajouter les éléments suivants :

Nom Description
FIDELISA_JETON code à usage unique généré par le provider
FIDELISA_PROVIDER code Fidelisa fourni par Fidelisa
FIDELISA_PROVIDER_KEY signature de la requête
FIDELISA_APIUSER code du commerce retourné lors de l’appel du init/shop (champ uuid du json)
FIDELISA_APIUSER_KEY signature de la requête

Exemples de code

Signature

def sign_request(request, secret_key)
  #encode base 64
  policy = Base64.strict_encode64(request)

  # Sign policy with secret key
  digest = OpenSSL::Digest.new('sha1')
  hmac=OpenSSL::HMAC.hexdigest(digest, secret_key, policy)

  # encode base 64
  signature = Base64.strict_encode64(hmac)
  signature
end
private string SignRequest(string request, string secretKey)
{
    // encode base 64
    string policy = System.Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(request));
    // hmac-sha1 with secretKey
    var digest = new HMACSHA1(System.Text.ASCIIEncoding.ASCII.GetBytes(secretKey));
    digest.Initialize();
    var tmp = BitConverter.ToString(digest.ComputeHash(Encoding.ASCII.GetBytes(policy)));
    // remove "-" and downcase
    var hmac = tmp.Replace("-", "").ToLower();
    // encode base64
    string signature = System.Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(hmac));
    return signature;
}

Exemple de fonction permettant de calculer une signature.

Function parameters

Nom Description
request Chaine à crypter
secret_key Clé de cryptage

Function return

Nom Description
retour Chaine cryptée

Headers

def make_hearders_request(request, withshop = false)
  jeton = rand(99999999).to_s
  request["FIDELISA_JETON"] = jeton
  request["FIDELISA_PROVIDER"] = @provider
  request["FIDELISA_PROVIDER_KEY"] = sign_request(@provider + jeton, @provider_key )

  if (withshop)
    request["FIDELISA_APIUSER"] = @shop
    request["FIDELISA_APIUSER_KEY"] = sign_request(@shop + jeton, @shop_key )
  end
end
public void MakeHeadersRequest(HttpWebRequest request, bool withshop = false)
{
    Random rnd = new Random();
    int jeton = rnd.Next(99999999);
    request.Headers.Add("FIDELISA_JETON", jeton.ToString());
    request.Headers.Add("FIDELISA_PROVIDER", provider);
    request.Headers.Add("FIDELISA_PROVIDER_KEY", SignRequest(provider + jeton, providerKey));
    if (withshop)
    {
        request.Headers.Add("FIDELISA_APIUSER", shop);
        request.Headers.Add("FIDELISA_APIUSER_KEY", SignRequest(shop + jeton, shopKey));
    }
}

Fabrique des entêtes Fidelisa d'une requête

Function parameters

Nom Description
request Requête à signer
withshop Requête de type shop ? true/false

Get

def get_programs
  http = Net::HTTP.new(@uri.host, @uri.port)
  http.use_ssl = true

  request = Net::HTTP::Get.new("/api/shops/programs")
  make_hearders_request(request, true)
  response = http.request(request)
  body = JSON.parse(response.body)
  body["programs"]
end
public Programs GetPrograms()
{
    String requestUrl = HOST_FIDELISA + "/api/shops/programs";
    HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest;
    MakeHeadersRequest(request, true);

    using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
    {
        DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(Programs));
        Object objResponse = jsonSerializer.ReadObject(response.GetResponseStream());
        return objResponse as Programs;
    }
}

Exemple d'appel d'une fonction GET (Liste des programmes)

Function parameters

Nom Description

Function return

Nom Description
retour Tableaux de programmes

Post

def init_shop
  http = Net::HTTP.new(@uri.host, @uri.port)
  http.use_ssl = true

  request = Net::HTTP::Post.new("/api/shops/init")
  request['Content-Type'] = 'application/json'
  make_hearders_request(request, false)
  request.body = ({ :shop => { "user_email" => @shop_mail } }).to_json
  response = http.request(request)
  body = JSON.parse(response.body)
end
public Shop InitShop()
{
    String requestUrl = HOST_FIDELISA + "/api/shops/init";
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUrl);
    request.Method = "POST";
    MakeHeadersRequest(request);
    request.ContentType = "application/json; charset=utf-8";

    Shop shop = new Shop { userMail = shopMail };
    DataContractJsonSerializer ser = new DataContractJsonSerializer(shop.GetType());
    MemoryStream ms = new MemoryStream();
    ser.WriteObject(ms, shop);
    String json = Encoding.UTF8.GetString(ms.ToArray());
    StreamWriter writer = new StreamWriter(request.GetRequestStream());
    writer.Write(json);
    writer.Close();

    using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
    {
        DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(Shop));
        Object objResponse = jsonSerializer.ReadObject(response.GetResponseStream());
        return objResponse as Shop;
    }

}

Exemple d'appel d'une fonction POST (Initialisation du shop)

Function parameters

Nom Description

Function return

Nom Description
retour Le shop initialisé

Shops

Initialisation

{
    "shop": {
      "user_email" : "test3@fidelisa.com"
    }
}

Resultat JSON

{
  "title" : "test3",
  "uuid" : "619E8B5AAD5E48138881C5E7774C86B2",
  "key" : "FrZN6UChpqXBRKVExXVB",
  "user_email" : "test3@fidelisa.com"
}

Permet d’initialiser la relation entre le lieu et Fidelisa

Authentification

Type : Provider

HTTP Request

POST /api/shops/init

Query Parameters

Shop

Parameter Type Description
user_email body Email du lieu

Return code

Code Description
200 OK

Visualisation

Resultat JSON

{
  "title" : "test3",
  "uuid" : "619E8B5AAD5E48138881C5E7774C86B2",
  "key" : "FrZN6UChpqXBRKVExXVB",
  "user_email" : "test@test.com"
}

Permet de visualiser un lieu

Authentification

Type : Provider

HTTP Request

GET /api/shops/{ShopId}

Query Parameters

Parameter Type Description
ShopId path UUID du lieu

Return code

Code Description
200 OK

Liste

Resultat JSON

{
  "shops": [
    {
      "title" : "Test 1",
      "uuid" : "FD39A1AA85AC4F3FB977DEA5A5786263",
      "key" : "YAZX2TLVO19DEFVDFF8M",
      "user_email" : "bva7nntn1zfpn4uhvzaw@fidelisa.com"
    },
    {
      "title" : "Test 2",
      "uuid" : "D0114EE251D14C5180991418736A6ACC",
      "key" : "RCGQDPWTRQS2XZCHWEZB",
      "user_email" : "9bpxdq5hzzmuuayovbfx@fidelisa.com"
    }
  ]
}

Permet de récupérer la liste des points de vente attachés au fournisseur

Authentification

Type : Provider

HTTP Request

GET /api/shops

Query Parameters

Parameter Type Description

Return code

Code Description
200 OK

Categories

Resultat JSON

{
  "categories":
  {
    "subtotal1": "SUBTOTAL1",
    "subtotal2": "SUBTOTAL2",
    "subtotal3": "SUBTOTAL3",
    "subtotal4": null,
    "subtotal5": null,
    "subtotal6": null,
    "subtotal7": null,
    "subtotal8": null,
    "subtotal9": null
  }
}

Permet de récupérer un tableau des catégories paramétrées par le lieu

Authentification

Type : Provider

HTTP Request

GET /api/shops/categories

Query Parameters

Parameter Type Description

Return code

Code Description
200 OK

Programmes

Resultat JSON

{
  "programs" : [
    {
      "title" : "Carte VIP",
      "uuid" : "67B222DC2A92672CA8E9D2C6DCB785CB"
    },
    {
      "title" : "Carte Privilèges",
      "uuid" : "8853A37D20967C9E099184814805AC31"
    }
  ]
}

Permet de récupérer la liste des programmes d'un commerce

Authentification

Type : Provider

HTTP Request

GET /api/shops/programs

Query Parameters

Parameter Type Description

Return code

Code Description
200 OK

Customers

Creation

{
  "customer" : {
    "email"  : "client@monmail.com",
    "phone"  : "0123456789",
    "first_name"  : "Pierre",
    "last_name"  : "Martin",
    "birth_day"  : 19,
    "birth_month"  : 10,
    "address1": "SAVOIE TECHNOLAC",
    "address2": "",
    "zipcode": "73370",
    "city": "LE BOURGET DU LAC",
    "country": "FR",
    "points" : 20,
    "replace_points": true,
    "reason" : "Initialisation de la carte"
  }
}

Resultat JSON


{
  "email": "pierre@martin.com",
  "phone": "+33763454341",
  "key": "CKHVAK1G8XZINR73FIKF",
  "created_at": "2016-05-04 15:25:10",
  "updated_at": "2016-05-04 15:25:13",
  "first_name": "Pierre",
  "last_name": "Martin",
  "longitude": null,
  "latitude": null,
  "gender": "Boy",
  "birth_day": 11,
  "birth_month": 5,
  "birth_year": 1985,
  "status": null,
  "country": "FR",
  "local_phone": "0763454341",
  "lot_import": null,
  "has_smartphone": 0,
  "init_sms_sent": false,
  "present_at": null,
  "first_mobil_at": null,
  "init_mail_sent": false,
  "facebook_id": null,
  "locale": "fr",
  "communication_channel": "Mail",
  "interne": false,
  "account_id": "719D4DFD14DE412488A01F9747346D6D",
  "createby_pos": null,
  "disallow_message": true,
  "godfather_id": null,
  "notes": "Notes",
  "external_id": "4F09958289134A21B3009B0AE07731C9",
  "third_id": null,
  "confirmed_at": null,
  "address1": "234 rue de la place",
  "address2": "Allée 34",
  "zipcode": "75014",
  "city": "Paris",
  "country_id": 1,
  "tag1": "REGULIER",
  "tag2": "SERVICES",
  "tag3": "",
  "created_by": "Bo",
  "uuid": "4F09958289134A21B3009B0AE07731C9",
  "status_name": null
}

Permet de créer un client pour le lieu

Authentification

Type : Shop

HTTP Request

POST /api/customers

Query Parameters

Customer

Parameter Type Description
email body Email
phone body Phone
first_name body  Prénom
last_name body Nom
birth_day body Jour anniversaire (facultatif)
birth_month body Mois anniversaire (facultatif)
third_id  body ID tiers géré par le fournisseur

Les paramètres suivants permettent d'initialiser (ou d'ajouter) des points à la carte du client créé (ou existant)

Parameter Type Description
points body Nombre de points (facultatif)
replace_points body Remplace les points existants (facultatif)
reason body Raison de la mise en place des points (facultatif)

Return code

Code Description
201 Created

Visualisation

Resultat JSON

{
  "uuid" : "FD39A1AA85AC4F3FB977DEA5A5786263",
  "email"  : "client@monmail.com",
  "phone"  : "0123456789",
  "first_name"  : "Pierre",
  "last_name"  : "Martin",
  "status_name" : "Premium",
  "created_at": "2015-01-09 16:17:21",
  "updated_at": "2016-04-12 17:22:14",
  "longitude": "2.3028957454648",
  "latitude": "48.83958350613",
  "gender": "Boy",
  "birth_day": 8,
  "birth_month": 11,
  "birth_year": null,
  "status": null,
  "country": "FR",
  "local_phone": "0650835162",
  "lot_import": null,
  "has_smartphone": 1,
  "init_sms_sent": true,
  "present_at": "2015-01-09 16:46:29",
  "first_mobil_at": "2015-01-09 16:25:12",
  "init_mail_sent": true,
  "facebook_id": null,
  "locale": "fr",
  "communication_channel": "Notification",
  "interne": false,
  "account_id": "0BEB6B01BAFA43AA859567F67C4480AB",
  "createby_pos": null,
  "disallow_message": null,
  "godfather_id": null,
  "notes": "",
  "external_id": "9091E19929B54E1FB7C9DCACB5C1DF09",
  "third_id": null,
  "confirmed_at": null,
  "address1": null,
  "address2": null,
  "zipcode": null,
  "city": null,
  "country_id": null,
  "tag1": null,
  "tag2": null,
  "tag3": null,
  "created_by": "None",
  "status_name": null
}

Permet de voir un client pour le lieu

Authentification

Type : Shop

HTTP Request

GET /api/customers/{customer_id}

Query Parameters

Parameter Type Description
customer_id path UUID du client

Return code

Code Description
200 OK

Suppression

Permet de supprimer un client pour le lieu

Authentification

Type : Shop

HTTP Request

DELETE /api/customers/{customer_id}

Query Parameters

Parameter Type Description
customer_id path UUID du client

Return code

Code Description
200 OK

Liste

Resultat JSON

{
  "customers" : [
    {
      "uuid" : "FD39A1AA85AC4F3FB977DEA5A5786263",
      "email" : "client@monmail.com",
      "phone" : "0123456789",
      "first_name" : "Pierre",
      "last_name" : "Martin",
      "status_name" : "Premium"
    }
  ]
}

Resultat JSON (Avec option pages=t)

{
  "pages" : 10
}

Permet de récupérer la liste des clients d’un lieu

Authentification

Type : Shop

HTTP Request

GET /api/customers

Query Parameters

Parameter Type Description Exemple
without_card path Filtre les clients sans carte without_card=t
email path Filtre les clients avec cette email (non sensible à la casse)  email=monemail@mail.com
phone path Filtre les clients avec ce n° de téléphone norme local phone=0123456789
third_id path Filtre les clients par ID tiers third_id=1234567
devices path Filtre les clients qui ont activés les notifications push devices=t
date path Filtre les clients créés depuis la date date=2016-07-02
date_update path Filtre les clients modifiés depuis la date date_update=2016-07-02

Pages Parameters

Parameter Type Description Exemple
page path Renvoie la liste par lot de client, le nombre de clients est définie par le paramètre perpage. page=10
perpage path Permet de définir le nombre de clients par page, la valeur par défaut 50.  perpage=200
pages path Permet de connaitre le nombre total de pages  pages=t

Return code

Code Description
200 OK

Cartes

Resultat JSON

{
  "cards" : [
    {
      "uuid" : "1DA03451947C4B91A0EAE4099AD01E26",
      "title" : "Carte Privilèges",
      "points" : 20,
      "expired_at" : "2015-06-14"
    }
  ]
}

Permet de récupérer la liste des cartes d'un client

Authentification

Type : Shop

HTTP Request

GET /api/customers/{customer_id}/cards

Query Parameters

Parameter Type Description
customer_id path UUID du client

Return code

Code Description
200 OK

Date d'expiration

{
    "id"  : "1DA03451947C4B91A0EAE4099AD01E26",
    "date" : "2014-06-20",
    "reset" : true
}

Permet de modifier la date d'expiration d'une carte d'un client

Authentification

Type : Shop

HTTP Request

POST /api/customers/{customer_id}/cards/expired_at

Query Parameters

Parameter Type Description
customer_id path UUID du client
Parameter Type Description
id body UUID de la carte (facultatif)
date body  Date d'expiration de la carte
reset body Remise à zero des points

Return code

Code Description
200 OK

Parrain

Resultat JSON

{
  "uuid": "D7BE44C125024FD299AFF47156227660",
  "first_name": "Pierre",
  "last_name": "Martin"
}

Permet de récupérer le parrain d'un client.

Authentification

Type : Shop

HTTP Request

GET /api/customers/:customer_id/godfather

Query Parameters

Parameter Type Description
customer_id path UUID du client

Return code

Code Description
200 OK

Filleuls

Resultat JSON

{
  "customers": [
    {
      "uuid": "70A8A8A5E56640456C23A0D922446DF3",
      "first_name": "Martin",
      "last_name": "Sophie",
      "date_gain": null
    }
  ]
}

Permet de récupérer la liste des filleuls d'un client.

Authentification

Type : Shop

HTTP Request

GET /api/customers/:customer_id/godsons

Query Parameters

Parameter Type Description
customer_id path UUID du client

Return code

Code Description
200 OK

Code barre

Exemple avec une carte

{
    "card_id"  : "1DA03451947C4B91A0EAE4099AD01E26",
    "card_number" : "37634676873"
}

Exemple sans carte

{
    "card_number" : "37634676873"
}

Permet de modifier le code barre d'une (ou de toutes les) carte(s) d'un client

Authentification

Type : Shop

HTTP Request

POST /api/customers/{customer_id}/card_number

Query Parameters

Parameter Type Description
customer_id path UUID du client
Parameter Type Description
card_id body UUID de la carte (facultatif)
card_number body  Numéro de la carte

Return code

Code Description
200 OK

Rule Basis

Visualisation

Resultat JSON

{
  "rulebasis" : [
    {
      "type" : "SubTotal1",
      "item" : "N/A",
      "exclude_discount" : "f"
    },
    {
      "type" : "Item",
      "item" : "1234,4567",
      "exclude_discount" : "true"
    }
  ]
}

Permet de récupérer les règles liées aux programmes d'un lieu

Authentification

Type : Shop

HTTP Request

GET /api/rulebasis

Query Parameters

Parameter Type Description
customer_id query UUID d'un client

Return code

Code Description
200 OK

Sales

Creation

{
  "bill" :
  {
    "total" : "123.50",
    "date" : "2013-01-15",
    "customer_id" : "FD39A1AA85AC4F3FB977DEA5A5786263",
    "external_id" : "241367676",
    "details" : [
      {
        "type" : "SubTotal1",
        "amount" : "123.50",
        "quantity" : "2"
       },
      {
        "type"  : "Item",
        "item"  : "1234",
        "amount"  : "12.50",
        "quantity"  : "2"
      }
    ]
  }
}

Resultat JSON

{
  "bill" :
  {
    "date" : "2013-01-15",
    "total" : "123.5"
  },
  "errors" : [
    {
      "type"  : "Item",
      "item"  : "11234",
      "amount"  : "12.50",
      "quantity"  : "2",
      "error"  : "Not Use"
    }
  ]
}

Permet d’ajouter des ventes pour un client.

Le tableau contenant le detail des ventes correspond à l'alimentation des règles des programmes. Si des détails ne correpondent à aucune règle de programme, elles sont ignorées.

Authentification

Type : Shop

HTTP Request

POST /api/sales/

Query Parameters

Bill

Parameter Type Description
total body Montant total l'opération
date  body  Date de l'opération
customer_id body UUID du customer
external_id body Identifiant externe libre
details body Tableau de details

Detail

Parameter Type Description
type body Règle impactée par ce détail
amount body Montant correspondant à la règle
quantity body Quantité correspondant à la règle
item  body  Code de l'élément du détail (types “item” uniquement ) (facultatif)

Return code

Code Description
201 CREATED
404 NOT FOUND

Points

Ajout/Remplace

Permet d'ajouter des points à une carte ou de remplacer les points d'une carte.

Avec un identifiant de carte connu

{
  "correction" : {
    "points" : 20,
    "customer_id" : "FD39A1AA85AC4F3FB977DEA5A5786263",
    "card_id" : "1DA03451947C4B91A0EAE4099AD01E26",
    "replace_points": true    
  }
}

Si le customer n'a qu'une seule carte, celle-ci sera créditée automatiquement

{
  "correction" : {
    "points" : 20,
    "customer_id" : "FD39A1AA85AC4F3FB977DEA5A5786263"
  }
}

Authentification

Type : Shop

HTTP Request

POST /api/corrections

Query Parameters

Correction

Parameter Type Description
points body Nombre de points à créditer sur la carte
customer_id  body  UUID du client
card_id body Carte du client (facultatif)
replace_points body Remplace les points existants (facultatif)
reason body Raison de la mise en place des points (facultatif)

Return code

Code Description
201 CREATED

Notifications

Envoi

Pour un client unique

{
  "customer" : "FD39A1AA85AC4F3FB977DEA5A5786263",
  "alert" : "Message au client"
}

pour un programme

{
  "program" : "FD39A1AA85AC4F3FB977DEA5A5786263",
  "alert" : "Message aux clients"
}

pour un ensemble de clients avec des urls spécifiques

{
  "customers" : {
    "D407587D800ECC6C629A52CD204C6E61" : "http://fidelisa.com/1",
    "FD39A1AA85AC4F3FB977DEA5A5786263" : "http://fidelisa.com/2"
    },
    "alert" : "Message aux clients"
}

Permet d’envoyer une notification à un client ou à tous les clients d’un programme

Authentification

Type : Shop

HTTP Request

POST /api/notifications

Query Parameters

Cas 1 : pour un client unique

Parameter Type Description
customer body  UUID du client
alert  body Texte du message

Cas 2 : pour tous clients d'un programme

Parameter Type Description
program body UUID du programme
alert  body Texte du message

Cas 3 : pour des clients

Parameter Type Description
customers body Tabelau de clients
alert  body Texte du message

Return code

Code Description
200 OK

Gains

Liste

Resultat JSON

[
  {
    "uuid": "EB846456B1979BAB763DB04ECEC481C4",
    "customer_id": "512E811DB8CF4AAC943CACFD84118099",
    "vendor_id": null,
    "type": "GiftGain",
    "gived_at": null,
    "created_at": "2016-03-29 10:06:25",
    "updated_at": "2016-03-29 10:14:02",
    "expired_at": null,
    "account_id": "4C0741AF77EE4410948EA9FB925A0A1A",
    "card_id": "48AA097CFF8146CBA809D12BAD225686",
    "image_id": null,
    "price": "0.0",
    "points": 100,
    "discount": 5,
    "code": "12345",
    "web": false,
    "title": "5% sur prochain achat"
  }
]

Permet de voir la liste des cadeaux (paliers et spéciaux) d'un client

Authentification

Type : Shop

HTTP Request

GET /api/customers/{customer_id}/gains

Query Parameters

Parameter Type Description
customer_id path UUID du client
used query Filtre les gains consommés
web query Filtre les gains consommables uniquement sur le web

Return code

Code Description
200 OK

Consommation

Resultat JSON

{
  "uuid": "EB846456B1979BAB763DB04ECEC481C4",
  "customer_id": "512E811DB8CF4AAC943CACFD84118099",
  "vendor_id": null,
  "type": "GiftGain",
  "gived_at": null,
  "created_at": "2016-03-29 10:06:25",
  "updated_at": "2016-03-29 10:14:02",
  "expired_at": null,
  "account_id": "4C0741AF77EE4410948EA9FB925A0A1A",
  "card_id": "48AA097CFF8146CBA809D12BAD225686",
  "image_id": null,
  "price": "0.0",
  "points": 100,
  "discount": 5,
  "code": "12345",
  "web": false,
  "title": "5% sur prochain achat"
}

Permet de consommer un cadeau

Authentification

Type : Shop

HTTP Request

GET /api/customers/{customer_id}/gains/{gain_id}/valid

Query Parameters

Parameter Type Description
customer_id path UUID du client
gain_id path UUID du cadeau

Return code

Code Description
200 ok

Annuler la consommation

Resultat JSON

{
  "uuid": "EB846456B1979BAB763DB04ECEC481C4",
  "customer_id": "512E811DB8CF4AAC943CACFD84118099",
  "vendor_id": null,
  "type": "GiftGain",
  "gived_at": null,
  "created_at": "2016-03-29 10:06:25",
  "updated_at": "2016-03-29 10:14:02",
  "expired_at": null,
  "account_id": "4C0741AF77EE4410948EA9FB925A0A1A",
  "card_id": "48AA097CFF8146CBA809D12BAD225686",
  "image_id": null,
  "price": "0.0",
  "points": 100,
  "discount": 5,
  "code": "12345",
  "web": false,
  "title": "5% sur prochain achat"
}

Permet d'annuler la consommation d'un cadeau

Authentification

Type : Shop

HTTP Request

GET /api/customers/{customer_id}/gains/{gain_id}/unvalid

Query Parameters

Parameter Type Description
customer_id path UUID du client
gain_id path UUID du cadeau

Return code

Code Description
200 ok

Targets

Creation (avec fichier)

{
  "target" :{
    "title": "Campagne n°1",
    "external_id": "Campagne_201670292",
    "file_id":"EA8C650C379E4D7C921085A39D3084D5"
  }
}

Resultat JSON

{
  "uuid": "CAC539ED500841229765A503715B0312",
  "title": "Campagne n°1",
  "created_at": "2016-07-05 07:29:12",
  "updated_at": "2016-07-05 07:29:12",
  "file_id": "EA8C650C379E4D7C921085A39D3084D5",
  "account_id": "BADAD0FA3EAF46CBA11CF2348F85B8F4",
  "external_id": "Campagne_201670292",
  "status": null,
  "synced_at": null,
  "vendor_id": "D56EFC4B67084B168E9DC723F9D6F77A",
  "customers_count": null
}

Permet de créer une cible à partir d'un fichier téléchargé

Authentification

Type : Shop

HTTP Request

POST /api/targets

Query Parameters

Customer

Parameter Type Description
title body Titre de la campagne
external_id body ID tiers géré par le fournisseur (facultatif)
file_id body  ID du fichier téléchargé

Return code

Code Description
201 Created

Creation (avec filtre)

{
  "target" :{
    "title": "Campagne n°1",
    "external_id": "Campagne_201670292",
    "filter": {   
      "application": "t",
      "with_email":"t"
    }
  }
}

Resultat JSON


{
  "uuid": "50A271F87C934F34BEFAF12008534533",
  "title": "Campagne n°1",
  "created_at": "2016-07-05 15:30:05",
  "updated_at": "2016-07-05 15:30:05",
  "filter": {
    "application": "t",
    "with_email": "t"    
  },
  "file_id": null,
  "account_id": "BADAD0FA3EAF46CBA11CF2348F85B8F4",
  "external_id": "Campagne_201670292",
  "status": null,
  "synced_at": null,
  "vendor_id": "D56EFC4B67084B168E9DC723F9D6F77A",
  "customers_count": null
}

Permet de créer une cible à partir d'un filtre

Authentification

Type : Shop

HTTP Request

POST /api/targets

Query Parameters

Customer

Parameter Type Description
title body Titre de la campagne
external_id body ID tiers géré par le fournisseur (facultatif)
filter body  Filtre à appliquer sur les clients

Filtre

Parameter Description Valeurs/exemples
application Utilise l'applicatoin mobile ’t’
channel Canal de communication ‘Notification’, 'Mail’
gender Sexe 'Boy’, 'Girl’
age_min Age minimum 30
age_max Age maximum 40
city Ville Le Bourget du Lac
country Pays au format ISO3166 FR
zipcode Code postal 78000
notes Mot clé (recherche dans les notes)
tag1 Valeur du tag 1
tag2 Valeur du tag 2
tag3 Valeur du tag 3
last_connexion_max Ne s'est pas connecté depuis le AAAA-MM-DD 2016-07-03
last_visit_max N'est pas venu depuis le AAAA-MM-DD 2016-07-03
with_phone Numéro de téléphone renseigné  ’t’
with_email Adresse mail renseignée ’t’

Return code

Code Description
201 Created

Mise à jour

{
  "json": "idem création"
}

Resultat JSON


{
  "json": "idem création"
}

Permet de modifier une cible

Authentification

Type : Shop

HTTP Request

PUT /api/targets

PATCH /api/targets

Query Parameters

idem création

Return code

Code Description
200 OK

Visualisation

Resultat JSON

{
  "uuid": "CAC539ED500841229765A503715B0312",
  "title": "Campagne n°1",
  "created_at": "2016-07-05 07:29:12",
  "updated_at": "2016-07-05 07:29:12",  
  "file_id": "EA8C650C379E4D7C921085A39D3084D5",
  "account_id": "BADAD0FA3EAF46CBA11CF2348F85B8F4",
  "external_id": "Campagne_201670292",
  "status": null,
  "synced_at": null,
  "vendor_id": "D56EFC4B67084B168E9DC723F9D6F77A",
  "customers_count": null
}

Permet de voir une cible

Authentification

Type : Shop

HTTP Request

GET /api/targets/{target_id}

Query Parameters

Parameter Type Description
target_id path UUID de la cible

Return code

Code Description
200 OK

Suppression

Permet de supprimer une cible

Authentification

Type : Shop

HTTP Request

DELETE /api/targets/{target_id}

Query Parameters

Parameter Type Description
target_id path UUID du client

Return code

Code Description
200 OK

Rafraichissement

Permet de rafraichir une cible

Authentification

Type : Shop

HTTP Request

GET /api/targets/{target_id}/refresh

Query Parameters

Parameter Type Description
target_id path UUID du client

Return code

Code Description
200 OK

Liste

Resultat JSON

{
  "targets" : [
    {
      "uuid": "CAC539ED500841229765A503715B0312",
      "title": "Campagne n°1",
      "created_at": "2016-07-05 07:29:12",
      "updated_at": "2016-07-05 07:29:12",  
      "file_id": "EA8C650C379E4D7C921085A39D3084D5",
      "account_id": "BADAD0FA3EAF46CBA11CF2348F85B8F4",
      "external_id": "Campagne_201670292",
      "status": null,
      "synced_at": null,
      "vendor_id": "D56EFC4B67084B168E9DC723F9D6F77A",
      "customers_count": null
    }
  ]
}

Permet de récupérer la liste des cibles

Authentification

Type : Shop

HTTP Request

GET /api/targets

Query Parameters

Parameter Type Description
search path Filtre les cibles par leur titre

Return code

Code Description
200 OK

Upload

Resultat JSON

{
  "uuid" : "1234587A32784B168E9DC723F9D6F77A"            
}

Permet d'envoyer un fichier contenant des clients.Le fichier doit contenir un UUID par ligne.

La requête retourne un UUID qui peut-être utilisé lors de la création/mise à jour d'une cible (file_id).

Authentification

Type : Shop

HTTP Request

GET /api/targets/upload

Query Parameters

Parameter Type Description
Content-type header multipart/form-data
file body  fichier contenant les uuid clients

Return code

Code Description
200 OK

Gifts (Obsolète)

Client

Resultat JSON

{
  "gifts" : [
    {
      "uuid" : "FD39A1AA85AC4F3FB977DEA5A5786263",
      "title" : "10€ de bon d’achat",
      "points" : 123,
      "price": "25.00",
      "discount": "15",
      "code": "E23X45TT"
    }
  ]
}

Permet de récupérer la liste des cadeaux consommables par le client.

Authentification

Type : Shop

HTTP Request

GET /api/gifts

Query Parameters

Parameter Type Description
customer_id  query  UUID du client
used query Filtrer les cadeaux déjà offerts (facultatif)

Return code

Code Description
201 CREATED
404 NOT FOUND

Consommation

{
  "uuid" : "AZEFDFD39A1AA85AC423JJL34NEZOJ3E",
  "customer_id" : "FD39A1AA85AC4F3FB977DEA5A5786263"
}

Permet d’indiquer que le customer a consommé le cadeau.

Authentification

Type : Shop

HTTP Request

POST /api/gifts/award

Query Parameters

Parameter Type Description
uuid  body  UUID du cadeaux
customer_id  body  UUID du client

Return code

Code Description
200 OK
404 NOT FOUND

Restauration

Permet d’annuler la consommation d’un cadeau

Authentification

Type : Shop

HTTP Request

DELETE /api/gifts/{gift_id}

Query Parameters

Parameter Type Description
gift_id  path  UUID du cadeaux
customer_id  query  UUID du client

Return code

Code Description
200 OK
404 NOT FOUND

Gains Speciaux (Obsolète)

Liste

Resultat JSON

{
  "special_gains": [
    {
      "uuid": "6DB912771BCA41A2ZZZDDA9C02A8B24B8",
      "customer_id": "5EE4E32CA6A4AA31EAAB68C381E4A825E",
      "vendor_id": "84D4B5BB95SSS31C12736ED9779E77E",
      "type": null,
      "title": "Cadeau spécial",
      "gived_at": null,
      "created_at": "2015-09-30 08:00:09",
      "updated_at": "2016-02-24 10:45:18",
      "expired_at": "2015-10-30",
      "account_id": "0BEB6DDDVVAFA43AA859567F67C4480AB",
      "card_id": "A6700E63DDFDFD5A78E12C387845B90E7",
      "image_id": null,
      "price": "20.0",
      "discount": "15",
      "code": "E23X45TT",
      "web": true
    }
  ]
}

Permet de voir la liste des cadeaux spéciaux d'un client

Authentification

Type : Shop

HTTP Request

GET /api/customers/{customer_id}/specialgains

Query Parameters

Parameter Type Description
customer_id path UUID du client
used query Filtre les gains consommés
web query Filtre les gains consommables uniquement sur le web

Return code

Code Description
200 OK

Consommation

Resultat JSON


{
  "uuid" : "FD39A1AA85AC4F3FB977DEA5A5786263",
  "points": 40,
  "price": "20.0",
  "discount": "15",
  "code": "E23X45TT"
}

Permet de consommer un cadeau spécial

Authentification

Type : Shop

HTTP Request

GET api/specialgains/{specialgain_id}/valid

Query Parameters

Parameter Type Description
specialgain_id path UUID du cadeau special

Return code

Code Description
200 ok

Annuler la consommation

Resultat JSON


{
  "uuid" : "FD39A1AA85AC4F3FB977DEA5A5786263",
  "points": 40,
  "price": "20.0",
  "discount": "15",
  "code": "E23X45TT"
}

Permet d'annuler la consommation d'un cadeau spécial

Authentification

Type : Shop

HTTP Request

GET api/specialgains/{specialgain_id}/unvalid

Query Parameters

Parameter Type Description
specialgain_id path UUID du cadeau special

Return code

Code Description
200 ok

Happenings categories

(Coming soon)

Liste

Resultat JSON

[
    {
        "uuid": "0D15F6D525294DED8DCFF3BC6F313ECB",
        "account_id": "719D4DFD14DE412488A01F9747346D6D",
        "vendor_id": null,
        "title": "Sport",
        "image_id": "000009AC12464C9183091F34E003BF85",
        "type": null,
        "created_at": "2016-10-23 14:29:03",
        "updated_at": "2016-10-23 15:15:00",
        "sort_order": 1
    }
]

Permet de voir la liste des catégories d'événements

Authentification

Type : Shop

HTTP Request

GET /api/happenings_categories

Query Parameters

Parameter Type Description
vendor_id query UUID du lieu
search query Filtre les catégories contenant le mot dans le titre
order query ordre de tri (ex: created_at)

Return code

Code Description
200 OK

Visualisation

Resultat JSON

{
    "uuid": "0D15F6D525294DED8DCFF3BC6F313ECB",
    "account_id": "719D4DFD14DE412488A01F9747346D6D",
    "vendor_id": null,
    "title": "Sport",
    "image_id": "000009AC12464C9183091F34E003BF85",
    "type": null,
    "created_at": "2016-10-23 14:29:03",
    "updated_at": "2016-10-23 15:15:00",
    "sort_order": 1
}

Permet de voir une catégorie d'événement

Authentification

Type : Shop

HTTP Request

GET /api/happenings_categories/{categoryId}

Query Parameters

Parameter Type Description
categoryId path UUID de la catégorie

Return code

Code Description
200 ok

Créer

{
    "happenings_category": {
        "title": "Danse",
        "vendor_id": "512E811DB8CF4AAC943CACFD84118099",
        "image_id": "000009AC12464C9183091F34E003BF85",
        "sort_order": 1
    }
}

Resultat JSON

{
    "uuid": "0D15F6D525294DED8DCFF3BC6F313ECB",
    "account_id": "719D4DFD14DE412488A01F9747346D6D",
    "vendor_id": null,
    "title": "Sport",
    "image_id": "000009AC12464C9183091F34E003BF85",
    "type": null,
    "created_at": "2016-10-23 14:29:03",
    "updated_at": "2016-10-23 15:15:00",
    "sort_order": 1
}

Permet de créer une catégorie

Authentification

Type : Shop

HTTP Request

POST /api/happenings_categories

Query Parameters

Category

Parameter Type Description
title body Nom de la catégorie
vendor_id body UUID du lieu (facultatif)
image_id body UUID de l'image (facultatif)
sort_order body Permet de trier les catégories (facultatif)

Return code

Code Description
201 created

Mettre à jour

{
    "happenings_category": {
        "title": "Equitation",
        "vendor_id": "512E811DB8CF4AAC943CACFD84118099",
        "image_id": "000009AC12464C9183091F34E003BF85",
        "sort_order": 1
    }
}

Resultat JSON

{
    "uuid": "0D15F6D525294DED8DCFF3BC6F313ECB",
    "account_id": "719D4DFD14DE412488A01F9747346D6D",
    "vendor_id": null,
    "title": "Sport",
    "image_id": "000009AC12464C9183091F34E003BF85",
    "type": null,
    "created_at": "2016-10-23 14:29:03",
    "updated_at": "2016-10-23 15:15:00",
    "sort_order": 1
}

Permet de mettre à jour une catégorie d'événement

Authentification

Type : Shop

HTTP Request

PUT /api/happenings_categories/{categoryId}

Query Parameters

Parameter Type Description
categoryId path UUID de la catégorie

Category

Parameter Type Description
title body Nom de la catégorie
vendor_id body UUID du lieu (facultatif)
image_id body UUID de l'image (facultatif)
sort_order body Permet de trier les catégories (facultatif)

Return code

Code Description
200 ok

Suppression

Resultat JSON

{}

Permet de supprimer une catégorie d'événement

Authentification

Type : Shop

HTTP Request

DELETE /api/happenings_categories/{categoryId}

Query Parameters

Parameter Type Description
categoryId path UUID de la catégorie

Return code

Code Description
200 ok

Happenings

(Coming soon)

Liste

Resultat JSON

[
  {
      "uuid": "2457B2F6FDAA4625994E5A5A46C71D0D",
      "account_id": "719D4DFD14DE412488A01F9747346D6D",
      "vendor_id": null,
      "title": "Fête du sport",
      "description": "Fête du sport description",
      "image_id": null,
      "happenings_category_id": "A1B878BB9D7E416F87BAB889A755FFCC",
      "started_at": "2017-01-20 00:00:00",
      "quota": 200,
      "reminder_time": 2,
      "created_at": "2016-10-25 07:00:22",
      "updated_at": "2016-10-25 07:00:22",
      "duration": 120,
      "confirmed_customers": 80
  }
]

Permet de voir la liste des événements

Authentification

Type : Shop

HTTP Request

GET /api/happenings

Query Parameters

Parameter Type Description
vendor_id query UUID du lieu
search query Filtre les événements contenant le mot dans le titre
order query ordre de tri (ex: created_at)
happenings_category query UUID de la catégorie
started_at query Filtrer les événements quie commencent après une date
started query Tous les événements en cours
customer_id query Les événements auxquels participe le client

Return code

Code Description
200 OK

Visualisation

Resultat JSON

{
    "uuid": "2457B2F6FDAA4625994E5A5A46C71D0D",
    "account_id": "719D4DFD14DE412488A01F9747346D6D",
    "vendor_id": null,
    "title": "Fête du sport",
    "description": "Fête du sport description",
    "image_id": null,
    "happenings_category_id": "A1B878BB9D7E416F87BAB889A755FFCC",
    "started_at": "2017-01-20 00:00:00",
    "quota": 200,
    "reminder_time": 2,
    "created_at": "2016-10-25 07:00:22",
    "updated_at": "2016-10-25 07:00:22",
    "duration": 120,
    "confirmed_customers": 80
}

Permet de voir un événement

Authentification

Type : Shop

HTTP Request

GET /api/happenings/{happeningId}

Query Parameters

Parameter Type Description
happeningId path UUID de l'événement
with_customers  path Permet de récupérer les clients participant

Return code

Code Description
200 ok

Créer

{
    "happening" : {
        "title": "Fête du sport",
        "description": "Fête du sport description",
        "happenings_category_id": "A1B878BB9D7E416F87BAB889A755FFCC",
        "started_at": "2017-01-20",
        "quota" : 200,
        "reminder_time" : 2
    }
}

Resultat JSON

{
    "uuid": "2457B2F6FDAA4625994E5A5A46C71D0D",
    "account_id": "719D4DFD14DE412488A01F9747346D6D",
    "vendor_id": null,
    "title": "Fête du sport",
    "description": "Fête du sport description",
    "image_id": null,
    "happenings_category_id": "A1B878BB9D7E416F87BAB889A755FFCC",
    "started_at": "2017-01-20 00:00:00",
    "quota": 200,
    "reminder_time": 2,
    "created_at": "2016-10-25 07:00:22",
    "updated_at": "2016-10-25 07:00:22",
    "duration": 120,
    "confirmed_customers": 80
}

Permet de créer un événement

Authentification

Type : Shop

HTTP Request

POST /api/happenings

Query Parameters

Happening

Parameter Type Description
title body Nom de l'événement
happenings_category_id body Catégorie d'événement de référence
description body Description de l'événement
started_at body Date/heure de départ de l'événement
quota body Nombre maximum de participant
reminder_time body Délai (en heure) de rappel de l'événement
vendor_id body UUID du lieu (facultatif)
image_id body UUID de l'image (facultatif)

Return code

Code Description
201 created

Mettre à jour

{
    "happening" : {
        "title": "Fête du sport",
        "description": "Fête du sport description",
        "happenings_category_id": "A1B878BB9D7E416F87BAB889A755FFCC",
        "started_at": "2017-01-20",
        "image_id": "000009AC12464C9183091F34E003BF85",
        "quota" : 200,
        "reminder_time" : 2
    }
}

Resultat JSON

{
    "uuid": "2457B2F6FDAA4625994E5A5A46C71D0D",
    "account_id": "719D4DFD14DE412488A01F9747346D6D",
    "vendor_id": null,
    "title": "Fête du sport",
    "description": "Fête du sport description",
    "image_id": "000009AC12464C9183091F34E003BF85",
    "happenings_category_id": "A1B878BB9D7E416F87BAB889A755FFCC",
    "started_at": "2017-01-20 00:00:00",
    "quota": 200,
    "reminder_time": 2,
    "created_at": "2016-10-25 07:00:22",
    "updated_at": "2016-10-25 07:00:22"
}

Permet de mettre à jour un événement

Authentification

Type : Shop

HTTP Request

PUT /api/happenings/{happeningId}

Query Parameters

Parameter Type Description
happeningId path UUID de l'événément

Happening

Parameter Type Description
title body Nom de l'événement
happenings_category_id body Catégorie d'événement de référence
description body Description de l'événement
started_at body Date/heure de départ de l'événement
quota body Nombre maximum de participant
reminder_time body Délai (en heure) de rappel de l'événement
vendor_id body UUID du lieu (facultatif)
image_id body UUID de l'image (facultatif)

Return code

Code Description
200 ok

Suppression

Resultat JSON

{}

Permet de supprimer un événement

Authentification

Type : Shop

HTTP Request

DELETE /api/happenings/{happeningId}

Query Parameters

Parameter Type Description
happeningId path UUID de l'événément

Return code

Code Description
200 ok

Forums categories

(Coming soon)

Liste

Resultat JSON

[
  {
    "uuid": "6015DB3B0057472B8CB6DF207C4FDDE8",
    "account_id": "69518EF8A3814B1B9A7CBD455585D866",
    "vendor_id": null,
    "title": "Tennis",
    "created_at": "2016-11-03 09:10:07",
    "updated_at": "2016-11-03 09:10:07",
    "sort_order": 1
    "forums": {
      "count": 5,
      "last": "2016-11-03 15:20:03"
    }
  },
  {
    "uuid": "C60EB9C9E485429AB6DE228B8E8F31BC",
    "account_id": "69518EF8A3814B1B9A7CBD455585D866",
    "vendor_id": null,
    "title": "Running",
    "created_at": "2016-11-03 13:12:25",
    "updated_at": "2016-11-03 13:12:25",
    "sort_order": 2
    "forums": {
      "count": 2,
      "last": "2016-11-03 15:56:30"
    }
  }
]

Permet de voir la liste des catégories de forums

Authentification

Type : Shop

HTTP Request

GET /api/forums_categories

Query Parameters

Parameter Type Description
vendor_id query UUID du lieu
search query Filtre les catégories contenant le mot dans le titre
order query ordre de tri (ex: created_at)

Return code

Code Description
200 OK

Visualisation

Resultat JSON

{
    "uuid": "1EC207C1F80F4DCD8796E9ED720E3635",
    "account_id": "69518EF8A3814B1B9A7CBD455585D866",
    "vendor_id": null,
    "title": "Natation",
    "created_at": "2016-11-03 16:41:04",
    "updated_at": "2016-11-03 16:41:04",
    "sort_order": 1
    "forums": {
        "count": 0,
        "last": null
    }
}

Permet de voir une catégorie de forum

Authentification

Type : Shop

HTTP Request

GET /api/forums_categories/{categoryId}

Query Parameters

Parameter Type Description
categoryId path UUID de la catégorie

Return code

Code Description
200 ok

Créer

{
    "forums_category": {
        "title": "Danse",
        "vendor_id": "512E811DB8CF4AAC943CACFD84118099",
        "sort_order": 1
    }
}

Resultat JSON

{
    "uuid": "E27CCB7D9D0C48728F27966A04170DC0",
    "account_id": "69518EF8A3814B1B9A7CBD455585D866",
    "vendor_id": "512E811DB8CF4AAC943CACFD84118099",
    "title": "Danse",
    "created_at": "2016-11-03 16:43:41",
    "updated_at": "2016-11-03 16:43:41",
    "forums": {
        "count": 0,
        "last": null
    }
}

Permet de créer une catégorie

Authentification

Type : Shop

HTTP Request

POST /api/forums_categories

Query Parameters

Category

Parameter Type Description
title body Nom de la catégorie
vendor_id body UUID du lieu (facultatif)
sort_order body Permet de trier les catégories (facultatif)

Return code

Code Description
201 created

Mettre à jour

{
    "forums_category": {
        "title": "Equitation",
        "vendor_id": "512E811DB8CF4AAC943CACFD84118099",
        "sort_order": 1
    }
}

Resultat JSON

{
    "uuid": "E27CCB7D9D0C48728F27966A04170DC0",
    "account_id": "69518EF8A3814B1B9A7CBD455585D866",
    "vendor_id": "512E811DB8CF4AAC943CACFD84118099",
    "title": "Equitation",
    "created_at": "2016-11-03 16:43:41",
    "updated_at": "2016-11-03 16:43:41",
    "sort_order": 1
    "forums": {
        "count": 0,
        "last": null
    }
}

Permet de mettre à jour une catégorie de forum

Authentification

Type : Shop

HTTP Request

PUT /api/forums_categories/{categoryId}

Query Parameters

Parameter Type Description
categoryId path UUID de la catégorie

Category

Parameter Type Description
title body Nom de la catégorie
vendor_id body UUID du lieu (facultatif)
sort_order body Permet de trier les catégories (facultatif)

Return code

Code Description
200 ok

Suppression

Resultat JSON

{}

Permet de supprimer une catégorie de forum

Authentification

Type : Shop

HTTP Request

DELETE /api/forums_categories/{categoryId}

Query Parameters

Parameter Type Description
categoryId path UUID de la catégorie

Return code

Code Description
200 ok

Forums

(Coming soon)

Liste

Resultat JSON

[
  {
      "uuid": "B3CCBF0E28004ECDA60AE54F7B0FB0C3",
      "account_id": "69518EF8A3814B1B9A7CBD455585D866",
      "vendor_id": null,
      "forums_category_id": "6015DB3B0057472B8CB6DF207C4FDDE8",
      "forum_id": null,
      "customer_id": "9018090F497F42EB8396C820034F11AF",
      "title": "test",
      "message": "test rest",
      "created_at": "2016-11-03 10:12:36",
      "updated_at": "2016-11-03 10:12:36",
      "last_answer_at": "2016-11-03 10:12:36"
  },
  {
      "uuid": "3A4101B2AB0B4C8BABCCA947FFC49ACD",
      "account_id": "69518EF8A3814B1B9A7CBD455585D866",
      "vendor_id": null,
      "forums_category_id": "6015DB3B0057472B8CB6DF207C4FDDE8",
      "forum_id": null,
      "customer_id": "9018090F497F42EB8396C820034F11AF",
      "title": "Test2",
      "message": "TEST2",
      "created_at": "2016-11-03 10:15:25",
      "updated_at": "2016-11-03 10:15:25",
      "last_answer_at": "2016-11-03 10:15:25"
  }
]

Permet de voir la liste des forums

Authentification

Type : Shop

HTTP Request

GET /api/forums

Query Parameters

Parameter Type Description
vendor_id query UUID du lieu
search query Filtre les forums contenant le mot dans le titre
order query ordre de tri (ex: created_at)
forums_category query UUID de la catégorie
first_post query Seulement les forums de premier niveau
forum query Un forum en particulier avec ses réponses

Return code

Code Description
200 OK

Visualisation

Resultat JSON

{
    "uuid": "3A4101B2AB0B4C8BABCCA947FFC49ACD",
    "account_id": "69518EF8A3814B1B9A7CBD455585D866",
    "vendor_id": null,
    "forums_category_id": "6015DB3B0057472B8CB6DF207C4FDDE8",
    "forum_id": null,
    "customer_id": "9018090F497F42EB8396C820034F11AF",
    "title": "Test2",
    "message": "TEST2",
    "created_at": "2016-11-03 10:15:25",
    "updated_at": "2016-11-03 10:15:25",
    "last_answer_at": "2016-11-03 10:15:25"
}

Permet de voir un forum

Authentification

Type : Shop

HTTP Request

GET /api/forums/{forumId}

Query Parameters

Parameter Type Description
forumId path UUID de du forum

Return code

Code Description
200 ok

Créer

{
    "forum": {
        "title": "Premier Message",
        "message": "Mon Premier message",
        "forums_category_id": "E27CCB7D9D0C48728F27966A04170DC0",
        "customer_id": "9018090F497F42EB8396C820034F11AF"
    }
}

{
    "forum": {
        "message": "Une réponse à mon Premier message",
        "customer_id": "9018090F497F42EB8396C820034F11AF",
        "forum_id" : "C54C675B947243099A0D8CE09A4512E8"
    }
}

Resultat JSON

{
    "uuid": "C54C675B947243099A0D8CE09A4512E8",
    "account_id": "69518EF8A3814B1B9A7CBD455585D866",
    "vendor_id": null,
    "forums_category_id": "E27CCB7D9D0C48728F27966A04170DC0",
    "forum_id": null,
    "customer_id": "9018090F497F42EB8396C820034F11AF",
    "title": "Premier Message",
    "message": "Mon Premier message",
    "created_at": "2016-11-03 16:49:49",
    "updated_at": "2016-11-03 16:49:49",
    "last_answer_at": "2016-11-03 16:49:49"
}

Permet de créer un forum

Authentification

Type : Shop

HTTP Request

POST /api/forums

Query Parameters

Forum

Parameter Type Description
title body Nom de du forum
forums_category_id body Catégorie d'forum de référence
message body Description de du forum
customer_id body UUID du client

Return code

Code Description
201 created

Mettre à jour

{
    "forum": {
        "title": "Premier Message (corrigé)",
    }
}

Resultat JSON

{
    "uuid": "C54C675B947243099A0D8CE09A4512E8",
    "account_id": "69518EF8A3814B1B9A7CBD455585D866",
    "vendor_id": null,
    "forums_category_id": "E27CCB7D9D0C48728F27966A04170DC0",
    "forum_id": null,
    "customer_id": "9018090F497F42EB8396C820034F11AF",
    "title": "Premier Message (corrigé)",
    "message": "Mon Premier message",
    "created_at": "2016-11-03 16:49:49",
    "updated_at": "2016-11-03 16:49:49",
    "last_answer_at": "2016-11-03 16:49:49"
}

Permet de mettre à jour un forum

Authentification

Type : Shop

HTTP Request

PUT /api/forums/{forumId}

Query Parameters

Parameter Type Description
forumId path UUID de l'événément

Forum

Parameter Type Description
title body Nom de du forum
forums_category_id body Catégorie d'forum de référence
message body Description de du forum
customer_id body UUID du client

Return code

Code Description
200 ok

Suppression

Resultat JSON

{}

Permet de supprimer un forum

Authentification

Type : Shop

HTTP Request

DELETE /api/forums/{forumId}

Query Parameters

Parameter Type Description
forumId path UUID de l'événément

Return code

Code Description
200 ok

Errors

L'API Fidelisa utilise les codes d'erreurs suivants:

Error Code Description
400 Bad Request – Votre requête est erronée
403 Forbidden – Vous n'avez pas les autorisations pour utiliser l'API
404 Not Found – L'élément recherché est introuvable
422 Unprocessable entity – L’entité fournie avec la requête est incompréhensible ou incomplète.
500 Internal Server Error – Un problème est survenu sur le serveur