curl

Portail des APIs

Inscription et confirmation Email

Rendez-vous sur le portail et cliquez sur le bouton “S'inscrire gratuitement” pour vous inscrire.

Ensuite, il faut entrer ses identifiants EBP.

Ajout d’un abonnement

Rendez-vous sur la page Produits et sélectionnez un produit (Gestion Commerciale SAAS pour l’exemple) :

Veuillez renseigner le nom de votre société (ex : EBP), lire les conditions et cocher la case "I agree to the Terms of Use" si vous êtes d'accord.

Une fois votre abonnement confirmé, vous serez en attente de validation.

Confirmation de votre demande

Une fois que vous aurez reçu un mail de validation de notre part, vous pourrez constater que vos clés Primaires et Secondaires ont été ajoutées à votre profil.

Tester une requête sur le portail

1) Rendez-vous sur la page des APIS et sélectionnez celle que vous voulez tester

2) Sélectionnez une requête

3) Cliquez sur le bouton “Try it”

4) Sélectionnez “Code d’autorisation” dans le champ “Authentification EBP” pour vous connecter à votre base SAAS

5) Renseigner la “Subscription Key” (Principale ou Secondaire)

6) Cliquez sur le bouton “Envoyer” en fin de page

Si vous recevez une réponse 200, bravo votre test est réussi !

Guide du développeur

EBP propose des API REST qui sont mises à disposition des développeurs externes (partenaires, revendeurs). Pour pouvoir effectuer les appels aux API d’EBP, il faudra renseigner deux informations dans le Header de la requête :

Authentification

EBP utilise le protocole d’authentification OAUTH 2.0 en AuthorizationCode.

Pour obtenir le JWT du client, voici les éléments :

éléments valeurs
ClientId A demander par mail à revendeurs.fr@ebp.com
ClientSecret A demander par mail à revendeurs.fr@ebp.com
Url du serveur https://api-login.ebp.com/.well-known/openid-configuration
jwks_uri https://api-login.ebp.com/.well-known/openid-configuration/jwks
authorization_endpoint https://api-login.ebp.com/connect/authorize
token_endpoint https://api-login.ebp.com/connect/token
userinfo_endpoint https://api-login.ebp.com/connect/userinfo
RedirectUri autorisées http://localhost:3333
Scopes openid profile offline_access

Note : Si vous avez un serveur à autoriser envoyer par mail votre RedirectUri à revendeurs.fr@ebp.com

Récupération des tokens

Principe de récupération de l’access token et du refresh Token

L'Access Token permet à l'application cliente d'accèder aux API. Il est valide 1 heure.

Le Refresh Token permet à l'application cliente d'obtenir un nouveau Access Token sans intervention de l'utilisateur.

Pour récupérer le refresh token, il faut ajouter le scope offline_access. Le refresh token peut être sauvegardé par l’application partenaire (pour améliorer l’expérience utilisateur sans qu’il se reconnecte).

Pour s’authentifier, nous utilisons le flux Authorization code avec PKCE (utilisation du code challenge et du code vérifier).

Exemple de projet demandant un access token en C# (compilé avec visual studio 2022)

Pour que ces projets fonctionnent, il faut récupérer le clientId et clientSecret.

Télécharger le projet avec utilisation de la lib IdentityModel.OidcClient 2.0

Télécharger le projet sans utilisation de librairie

Liste des librairies certifiées OpenId Connect

Exemple de requête vers Login EBP

Etape Verbe Exemple de requête
3 Get https://api-login.ebp.com/connect/authorize/callback?client_id={clientId}&redirect_uri=https://localhost:3333/api/login/SigninRedirect&response_type=code&scope=openid%20profile%20offline_access&state=4e2a15864f564bd19375999c394baa01&code_challenge=PftW-9veHL-GTcp9ReDTVhLzWYnRUGsy7fnRaAKCGMA&code_challenge_method=S256&response_mode=query
6 Post url : https://api-login.ebp.com/connect/token body (application/x-www-form-urlencoded): client_id={clientId}&redirect_uri=https://localhost:3333/api/login/SigninRedirect&grant_type=authorization_code&code=swWZ-eNBDn8rpiTrvzuZVZ-ZwrdOplLPM6vaegaDOho&code_verifier=DI2UV-tPcBg7WDJIoJgLl6mMIUekMJ3prE4QWz8ce-A

Une fois l’Access Token récupéré, il faut l’ajouter dans le Header : Authorization Bearer

curl --location --request GET https://api-developpeurs.ebp.com/gescom/api/v1/Folders  \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Claims dans l’Access Token

Nom du claims Description
ebp.email email de l’utilisateur du dossier
family_name nom de famille
given_name prénom

Obtenir un Access token depuis un Refresh token

Principe de récupération d’un access token à partir d’un refresh token

Lorsque nous avons récupéré un refresh token, nous n’avons plus besoin de faire le flux vu plus haut.

Il suffit de faire une requête Post à l’url https://api-login.ebp.com/connect/token

Documentation oauth.com

Le body doit être urlencoded

curl --location --request POST "https://api-login.ebp.com/connect/token" \
  --header 'Content-Type: application/json' \
  --data-raw '{
        "grant_type": "refresh_token",
        "client_id": "jupiter",
        "client_secret", "valeur du client secret"
        "refresh_token": "valeur du refresh token récupéré plus haut",    
    }'

Le retour de la requête contiendra :

{
    "refresh_token": "valeur du nouveau refresh token",
    "access_token": "valeur du nouveau access token"
  }

API Gescom

Contexte

Permet de faire des appels métiers sur vos dossiers de Gescom SAAS. (Ne fonctionne pas sur des applications desktop).

Obtenir les dossiers de gestion

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/gescom/api/v1/Folders
                                ?Offset=0&Limit=100&Accept-Language=fr-FR  \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
  "folders": [
    {
      "id": "3691",
      "name": "INV40V12_C3",
      "shortName": "INV40"
    }
  ],
  "paging": {
    "total": 1,
    "returned": 1,
    "offset": 0,
    "limit": 100
  }
}

Cette action permet de récupérer tous les dossiers de gestion commerciale pour un utilisateur donné (identifié via le JWT).

HTTP request

GET /v1/Folders

Query

Nom Description Défaut
Offset Permet de définir le décalage, les "Offset" premiers résultats à ignorer - Format : int32. 0
Limit Permet de définir le nombre d'éléments à afficher - Format : int32. 100

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Obtenir le résultat d'une requête générique

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/gescom/api/v1/Folders/3691/GenericQuery
                                ?TableName=customer&Columns=civility,name&FromModifiedDate=2019-07-22T11:33:02&Offset=30&Limit=10 \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
  "results":{},
  "paging": {
    "offset": 0,
    "limit": 0,
    "total": 0,
    "returned": 0
  }
}

Exemple Customer avec Civility, Name et SysModifiedDate (pagination de 5)

{
  "results": [
    {
      "civility": null,
      "name": "Clients et comptes rattachés",
      "sysModifiedDate": "2019-07-22T11:33:02"
    },
    {
      "civility": null,
      "name": "Clients",
      "sysModifiedDate": "2019-09-28T13:50:09"
    },
    {
      "civility": null,
      "name": "ECCA SARL",
      "sysModifiedDate": "2019-07-22T14:29:17"
    },
    {
      "civility": null,
      "name": "GESPI",
      "sysModifiedDate": "2019-07-22T14:29:17"
    },
    {
      "civility": null,
      "name": "PICOSO",
      "sysModifiedDate": "2020-04-29T14:09:52"
    }
  ],
  "paging": {
    "total": 56,
    "returned": 5,
    "offset": 0,
    "limit": 5
  }
}

Cette requête permet d’aller interroger une table de la base d’un dossier client parmi une liste de tables autorisées.

HTTP request

GET /v1/Folders/{FolderId}/GenericQuery

Query

Nom Description Défaut Obligatoire
FolderId Identifiant du dossier. O
TableName Nom de la table O
Columns Permet de définir les colonnes de la table "TableName" pour l'obtention des résultats. null
FromModifiedDate Permet de filtrer les résultats modifiés après cette date - Format : date-time (as date-time in RFC3339). null
OrderByValue Permet de définir une colonne pour trier les résultats - Obligatoire pour la pagination.
WhereCondition Permet de filtrer les résultats en insérant un filtre générique - Se reporter à la documentation en ligne pour le format de ce filtre. Lien
Offset Permet de définir le décalage, les "Offset" premiers résultats à ignorer - Format : int32.
Limit Permet de définir le nombre d'éléments à afficher - Format : int32. 100

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Obtenir le résultat d'une requête générique pour un identifiant de table spécifique

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/gescom/api/v1/Folders/3691/GenericQuery/CL00001
                                                ?TableName=cutomer&Columns=civility&Columns=name \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
   "results":{}
}

Exemple Customer avec Civility, Name et pour la clé CL00001

{
    "result": {
        "civility": "EIRL",
        "name": "client test"
    }
}

Cette requête permet d’aller interroger une table de la base d’un dossier client parmi une liste de tables autorisées pour un id sur la clé primaire de la table.

HTTP request

GET /v1/Folders/{FolderId}/GenericQuery/{id}

Query

Nom Description Défaut Obligatoire
FolderId Valeur de l'identifiant. O
TableName Nom de la table. O
Columns Permet de définir les colonnes de la table "TableName" pour l'obtention des résultats. null
Id Valeur de l'identifiant.

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Obtenir les tables secondaires autorisées

Exemple d'une requête pour récupérer des dépendances

curl --location --request GET https://api-developpeurs.ebp.com/gescom/api/v1/Dependencies/Item \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
    "linkedTables": [
        "Unit",
        "VolumeUnit",
        "Vat",
        "...",
        "..."
    ]
}

Exemple d’une requête générique avec dépendances (v1/GenericQuery)

curl --location --request GET https://ebp-api-isv.azure-api.net/gescom/api/v1/Folders/3691/GenericQuery
                                ?TableName=Item.Caption,Unit.Caption,VolumeUnit.Caption \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
  "results": [
    {
       "Caption": "Art1",
       "Unit_Caption": "Heures",
       "VolumeUnit_Caption": "Jours"
    },
    {
       "Caption": "Art2",
       "Unit_Caption": null,
       "VolumeUnit_Caption": null
    }

  ],
  "paging": {
    "offset": 0,
    "limit": 100,
    "total": 1,
    "returned": 1
  }
}

Vous avez la possibilité depuis les requêtes génériques de faire appel aux dépendances de la table principale.

Pour faire l’ appel à ses dépendances, il suffit d’indiquer dans le nom des colonnes un préfixe indiquant de quelle dépendance nous avons besoin.

HTTP request

GET /v1/Dependencies/{TableName}

Exemple : on veut pour une requête sur les articles la dépendance des unités en récupérant le libellé de ceux-ci. Il suffit donc de rajouter une colonne : “Unit.Caption”.

Query

Nom Description Défaut Obligatoire
TableName Nom de la table. O

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Vous recevez liste des dépendances disponibles.

Ensuite dans vos colonnes des requêtes génériques, il vous suffit de préfixer ces valeurs.

Unit.Caption, VolumUnit.Caption, Vat.Caption.

Dans le cas où vous voulez utilisez les dépendances, nous vous conseillons également d’utiliser un le préfixe pour les colonnes de la table principale

Obtenir les clients (customer)

Exemple d'une requête pour récupérer des dépendances

curl --location --request GET https://api-developpeurs.ebp.com/gescom/api/v1/Folders/3691/Clients?Limit=2&typeClient=client&searchTerm=mairie \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
  "clients": [
    {
      "code": {
        "value": "string",
        "hasRight": true
      },
      "name": {
        "value": "string",
        "hasRight": true
      },
      "homePhoneNumber": {
        "value": "string",
        "hasRight": true
      },
      "mobilePhoneNumber": {
        "value": "string",
        "hasRight": true
      },
      "email": {
        "value": "string",
        "hasRight": true
      },
      "soldeEchu": {
        "value": 0,
        "hasRight": true,
        "displayName": "string",
        "currency": "string"
      },
      "clientType": {
        "value": "string",
        "hasRight": true
      }
    }
  ],
  "paging": {
    "offset": 0,
    "limit": 0,
    "total": 0,
    "returned": 0
  }
}

Exemple de retour avec le type Client et searchterm renseigné à mairie :

{
  "clients": [
    {
      "code": {
        "value": "CL00009",
        "hasRight": true
      },
      "name": {
        "value": "MAIRIE DE SAINT DENIS",
        "hasRight": true
      },
      "homePhoneNumber": {
        "value": null,
        "hasRight": true
      },
      "mobilePhoneNumber": {
        "value": null,
        "hasRight": true
      },
      "email": {
        "value": null,
        "hasRight": true
      },
      "soldeEchu": {
        "displayName": "1 103.66",
        "currency": "€",
        "value": 1103.66,
        "hasRight": true
      },
      "clientType": {
        "value": "CL",
        "hasRight": true
      }
    }
  ],
  "paging": {
    "total": 1,
    "returned": 1,
    "offset": 0,
    "limit": 100
  }
}

Cette requête récupère tous les clients d’un dossier avec gestion des droits. C’est une requête mise à disposition et optimisée pour des appels dans des interfaces utilisateurs (exemple Mobilité).

HTTP request

GET /v1/Folders/{FolderId}/Clients

Query

Nom Description Défaut Obligatoire
FolderId Identifiant du dossier. O
TypeClient Permet de filtrer en fonction du type de client - (null pour les avoir tous). null
SearchTerm Permet de filtrer en fonction de la colonne "Id" ou de la colonne "Name". null
Offset Permet de définir le décalage, les "Offset" premiers résultats à ignorer - Format : int32. 0
Limit Permet de définir le nombre d'éléments à afficher - Format : int32. 100

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Gestion des droits

Pour visualiser les clients, il faut avoir les droits client et pour visualiser les droits prospect il faut avoir les droits prospects.

Si vous n’avez pas ces droits, vous aurez en retour un code retour Bad Request (status code 400).

Obtenir les clients filtrés

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/gescom/api/v1/Folders/3691/Clients/ExtendedQuery \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
  "results":{},
  "paging": {
    "offset": 0,
    "limit": 0,
    "total": 0,
    "returned": 0
  }
}

Cette requête permet de récupérer la liste des clients “brut” d’un dossier avec des filtre paramétrables.

HTTP request

GET /v1/Folders/{FolderId}/Clients/ExtendedQuery

Query

Nom Description Défaut Obligatoire
FolderId Identifiant du dossier. O
Columns Permet de définir les colonnes de la table "Customer" pour l'obtention des résultats. null
FromModifiedDate Permet de filtrer les résultats modifiés après cette date - Format : date-time (as date-time in RFC3339). null
OrderByValue Permet de définir une colonne pour trier les résultats - Obligatoire pour la pagination. en fonction de la table
Offset Permet de définir le décalage, les "Offset" premiers résultats à ignorer - Format : int32. 0
Limit Permet de définir le nombre d'éléments à afficher - Format : int32. 100
Accept-Language Langue pour la traduction des ressources. fr-FR
CustomerType Permet de filtrer en fonction du type de client - (null pour les avoir tous). null
CustomerActiveState Permet de filtrer les clients avec les statuts définis. null
FamilyIdNotIN Permet de filtrer les résultats non liés à la liste des familles. ex : 'FA1', 'FA2'. null
FamilyIdIN Permet de filtrer les résultats liés à la liste des familles. ex : 'FA1', 'FA2'. null
FamilyIdValueNull Permet de filtrer les résultats sans famille. false
SubFamilyIdNotIN Permet de filtrer les résultats non liés à la liste des sous familles. ex : 'SFA1', 'SFA2'.
SubFamilyIdIN Permet de filtrer les résultats liés à la liste des sous familles. ex : 'SFA1', 'SFA2'.
SubFamilyIdValueNull Permet de filtrer les résultats sans sous familles. false
WhereCondition Permet de filtrer les résultats en insérant un filtre générique - Se reporter à la documentation en ligne pour le format de ce filtre. Lien

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Exemple de filtres

Paramètre Valeurs Résultat
FamilyId "Fam1","Fam2"
Where (FamilyId IN ('Fam1','Fam2') OR FamilyId is Null)
FamilyIdValueNull true
FamilyId "Fam1","Fam2"
Where (FamilyId IN ('Fam1','Fam2'))
FamilyIdValueNull false
FamilyIdNotIN "Fam1","Fam2"
Where (FamilyId NOT IN ('Fam1','Fam2'))
FamilyIdValueNull false
SubFamilyIdIN "Fam1","Fam2"
Where (SubFamilyId IN ('Fam1','Fam2'))
SubFamilyIdValueNull false
SubFamilyIdNotIN "Fam1","Fam2"
Where (SubFamilyId NOT IN ('Fam1','Fam2') OR SubFamilyId is Null)
SubFamilyIdValueNull true

Obtenir les clients filtrés et ses adresses

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/gescom/api/v1/Folders/3691/Clients/ExtendedQuery/WithAddress \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
  "results":{},
  "paging": {
    "offset": 0,
    "limit": 0,
    "total": 0,
    "returned": 0
  }
}

Cette requête permet de récupérer la liste des clients et des adresses associées en fonction des filtres renseignées.

Cette requête fonctionne de la même manière que Clients/ExtendedQuery.

HTTP request

GET /v1/Folders/{FolderId}/Clients/ExtendedQuery/WithAddress

Obtenir les documents de ventes filtrés (SaleDocument)

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/gescom/api/v1/Folders/3691/Documents/SaleDocument?Duration=30 \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
  "results":{},
  "paging": {
    "offset": 0,
    "limit": 0,
    "total": 0,
    "returned": 0
  }
}

Cette requête permet de récupérer la liste des documents de vente “brut” d’un dossier avec des filtres paramétrables.

HTTP request

GET /v1/Folders/{FolderId}/Documents/SaleDocument

Query

Nom Description Défaut Obligatoire
FolderId Identifiant du dossier. O
Columns Permet de définir les colonnes de la table "SaleDocument" pour l'obtention des résultats. null
SysModifiedDate Permet de filtrer les résultats modifiés après cette date - Format : date-time (as date-time in RFC3339). null
OrderByValue Permet de définir une colonne pour trier les résultats - Obligatoire pour la pagination. en fonction de la table
Offset Permet de définir le décalage, les "Offset" premiers résultats à ignorer - Format : int32. 0
Limit Permet de définir le nombre d'éléments à afficher - Format : int32. 100
ToDate Permet de filtrer en renseignant une date de fin, par défaut date du jour - Format : date-time (as date-time in RFC3339). Now
Duration Permet de filtrer les documents entre "ToDate" et la date de création du document, inférieur à "Duration" jour(s) - Format : int32. O
WhereCondition Permet de filtrer les résultats en insérant un filtre générique - Se reporter à la documentation en ligne pour le format de ce filtre. Lien
DocumentType Permet de filtrer en fonction du type de document - (null pour les avoir tous).

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Exemple de filtres

Paramètre Valeurs Résultat
ToDate "2020-12-23 10:03:56.000"
WHERE( DATEDIFF(day, DocumentDate,'2020-12-23T10:03:56') < 30
Duration 30
SysModifiedDate "2020-11-08" WHERE SaleDocument.sysModifiedDate > '2020-11-08T00:00:00’

Obtenir les documents de ventes filtrés et ses lignes

Cette requête permet de récupérer la liste des documents de vente et les lignes associées en fonction des filtres renseignées.

Cette requête fonctionne de la même manière que SaleDocument.

HTTP request

GET /v1/Folders/{FolderId}/Documents/SaleDocument/WithLines

Obtenir les documents d'achats filtrés (PurchaseDocument)

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/gescom/api/v1/Folders/3691/Documents/PurchaseDocument?Duration=30 \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
  "results":{},
  "paging": {
    "offset": 0,
    "limit": 0,
    "total": 0,
    "returned": 0
  }
}

Cette requête permet de récupérer la liste des documents d'achats “brut” d’un dossier avec des filtres paramétrables.

HTTP request

GET /v1/Folders/{FolderId}/Documents/PurchaseDocument

Query

Nom Description Défaut Obligatoire
FolderId Identifiant du dossier. O
Columns Permet de définir les colonnes de la table "PurchaseDocument" pour l'obtention des résultats. null
SysModifiedDate Permet de filtrer les résultats modifiés après cette date - Format : date-time (as date-time in RFC3339). null
OrderByValue Permet de définir une colonne pour trier les résultats - Obligatoire pour la pagination. en fonction de la table
Offset Permet de définir le décalage, les "Offset" premiers résultats à ignorer - Format : int32. 0
Limit Permet de définir le nombre d'éléments à afficher - Format : int32. 100
ToDate Permet de filtrer en renseignant une date de fin, par défaut date du jour - Format : date-time (as date-time in RFC3339). Now
Duration Permet de filtrer les documents entre "ToDate" et la date de création du document, inférieur à "Duration" jour(s) - Format : int32. O
WhereCondition Permet de filtrer les résultats en insérant un filtre générique - Se reporter à la documentation en ligne pour le format de ce filtre. Lien
DocumentType Permet de filtrer en fonction du type de document - (null pour les avoir tous).

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Exemple de filtres

Paramètre Valeurs Résultat
ToDate "2020-12-23 10:03:56.000"
WHERE( DATEDIFF(day, DocumentDate,'2020-12-23T10:03:56') < 30
Duration 30
SysModifiedDate "2020-11-08" WHERE PurchaseDocument.sysModifiedDate > '2020-11-08T00:00:00’

Obtenir les documents d'achats filtrés et ses lignes

Cette requête permet de récupérer la liste des documents d'achats et les lignes associées en fonction des filtres renseignées.

Cette requête fonctionne de la même manière que PurchaseDocument.

HTTP request

GET /v1/Folders/{FolderId}/Documents/PurchaseDocument/WithLines

Envoyer une demande de transfert de document

Exemple

curl --location --request POST https://api-developpeurs.ebp.com/gescom/api/v1/Folders/3691/Documents/Transfert \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'
--data-raw '{
  "documentTypeName": "SALE",
  "originDocumentNumber": "DOC01"
}'

Si tout s’est bien passé alors retour 200 Cette requête permet de transférer un document de vente

HTTP request

POST /v1/Folders/{FolderId}/Documents/Transfert

Query

Nom Description Défaut Obligatoire
FolderId Identifiant du dossier. O

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Corps de la requête

Nom Description Défaut Obligatoire
documentTypeName Type de document à transférer. O
originDocumentNumber Code du document à transférer. O
targetDocumentSubTypeName Type de document à créer. null
targetDocumentDate Date du document à créer. null

Obtenir les articles filtrés (Item)

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/gescom/api/v1/Folders/3691/Items/ItemsExtendedQuery \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
  "results":{},
  "paging": {
    "offset": 0,
    "limit": 0,
    "total": 0,
    "returned": 0
  }
}

Cette requête permet de récupérer la liste des articles “brut” d’un dossier avec des filtre paramétrables.

HTTP request

GET /v1/Folders/{FolderId}/Items/ItemsExtentedQuery

Query

Nom Description Défaut Obligatoire
FolderId Identifiant du dossier. O
Columns Permet de définir les colonnes de la table "Item" pour l'obtention des résultats. null
SysModifiedDate Permet de filtrer les résultats modifiés après cette date - Format : date-time (as date-time in RFC3339). null
OrderByValue Permet de définir une colonne pour trier les résultats - Obligatoire pour la pagination. en fonction de la table
Offset Permet de définir le décalage, les "Offset" premiers résultats à ignorer - Format : int32. 0
Limit Permet de définir le nombre d'éléments à afficher - Format : int32. 100
FamilyIdNotIN Permet de filtrer les résultats non liés à la liste des familles. ex : 'FA1', 'FA2'. null
FamilyIdIN Permet de filtrer les résultats liés à la liste des familles. ex : 'FA1', 'FA2'. null
FamilyIdValueNull Permet de filtrer les résultats sans famille. false
SubFamilyIdNotIN Permet de filtrer les résultats non liés à la liste des sous familles. ex : 'SFA1', 'SFA2'.
SubFamilyIdIN Permet de filtrer les résultats liés à la liste des sous familles. ex : 'SFA1', 'SFA2'.
SubFamilyIdValueNull Permet de filtrer les résultats sans sous familles.
WhereCondition Permet de filtrer les résultats en insérant un filtre générique - Se reporter à la documentation en ligne pour le format de ce filtre. Lien
ActiveStateExcluded Permet de filtrer les articles qui ne sont pas dans les statuts définis. null

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Exemple de filtres

Paramètre Valeurs Résultat
FamilyId "Fam1","%8"
WHERE (FamilyId IN ('Fam1') OR FamilyId is Null) AND (FamilyId LIKE ('%8') OR FamilyId is Null)
FamilyIdValueNull true
FamilyId "%9","%8"
WHERE (FamilyId LIKE ('%9','%8'))
FamilyIdValueNull false
FamilyIdNotIN "Fam1","%6"
WHERE (FamilyId NOT LIKE ('%6')) AND (FamilyId NOT IN ('Fam1')
FamilyIdValueNull false
SubFamilyIdIN "%3","Fam1"
WHERE (SubFamilyId IN ('Fam1')) AND (SubFamilyId LIKE ('%3'))
SubFamilyIdValueNull false
SubFamilyIdNotIN "%3"
WHERE (SubFamilyId NOT LIKE ('%3') OR SubFamilyId is Null)
SubFamilyIdValueNull true

Obtenir les articles filtrés et ses suivis de stocks

Cette requête permet de récupérer la liste des articles et les lignes associées en fonction des filtres renseignées.

Cette requête fonctionne de la même manière que ItemsExtentedQuery.

HTTP request

GET /v1/Folders/{FolderId}/Items/ItemsExtentedQuery/WithTrackingStock

Obtenir les affaires filtrées (Deal)

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/gescom/api/v1/Folders/3691/Deals/DealsExtendedQuery?Duration=5 \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
  "results":{},
  "paging": {
    "offset": 0,
    "limit": 0,
    "total": 0,
    "returned": 0
  }
}

Cette requête permet de récupérer la liste des affaires filtrés.

HTTP request

GET /v1/Folders/{FolderId}/Deals/DealsExtendedQuery

Query

Nom Description Défaut Obligatoire
FolderId Identifiant du dossier. O
Columns Permet de définir les colonnes de la table "Deal" pour l'obtention des résultats. null
DealStateExcluded Permet de filtrer les affaires qui ne sont pas dans les statuts définis.
OrderByValue Permet de trier la requête avec cette valeur par ordre ascendant en fonction de la table
Offset Permet de définir le décalage, les "Offset" premiers résultats à ignorer - Format : int32. 0
Limit Permet de définir le nombre d'éléments à afficher - Format : int32. 100
ToDate Permet de filtrer en renseignant une date de fin, par défaut date du jour - Format : date-time (as date-time in RFC3339). Now
Duration Permet de filtrer les affaires entre "ToDate" et la date de création de l'affaire, inférieur à "Duration" jour(s) - Format : int32. 0 O
WhereCondition Permet de filtrer les résultats en insérant un filtre générique - Se reporter à la documentation en ligne pour le format de ce filtre. Lien

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Exemple de filtres

Paramètre Valeurs Résultat
ToDate 2020-12-06
WHERE (DATEDIFF(day, DealDate,'2020-12-06T00:00:00') < 90
Duration 90
DealStateExcluded "Finished","Canceled" WHERE (DealState NOT IN (4,5))

Obtenir les affaires filtrées et ses partenaires (Deal)

Cette requête permet de récupérer la liste des affaires filtrées et ses partenaires.

Cette requête fonctionne de la même manière que DealsExtendedQuery.

HTTP request

GET /v1/Folders/{FolderId}/Deals/DealsExtendedQuery/WithColleagues

Obtenir les champs personnalisés

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/gescom/api/v1/Folders/3691/CustomFields \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
  "schema": [
    {
      "tables": [
        {
          "indexes": "string",
          "options": [
            {
              "ebpSystemTable": "string",
              "editCounter": "string",
              "lockable": "string",
              "recordSynchronizationInfo": "string",
              "recordSynchronizationVersionInfo": "string",
              "systemInfo": "string",
              "treeCategories": "string",
              "userDefinedColumnsCount": "string",
              "userDefinedVisible": "string",
              "userDefinedTableCount": "string",
              "allowCalculatedUserFields": "string",
              "isAlwaysEditable": "string"
            }
          ],
          "columns": [
            {
              "description": "string",
              "defaultExpression": "string",
              "columnValues": "string",
              "program": "string",
              "options": [
                {
                  "ebpSystemTable": "string",
                  "editCounter": "string",
                  "lockable": "string",
                  "recordSynchronizationInfo": "string",
                  "recordSynchronizationVersionInfo": "string",
                  "systemInfo": "string",
                  "treeCategories": "string",
                  "userDefinedColumnsCount": "string",
                  "userDefinedVisible": "string",
                  "userDefinedTableCount": "string",
                  "allowCalculatedUserFields": "string",
                  "isAlwaysEditable": "string"
                }
              ],
              "type": "string",
              "name": "string",
              "nullable": "string",
              "autoIncrement": "string",
              "label": "string",
              "system": "string",
              "userDefinedNullable": "string",
              "fromLinkTablesToCopyUserDefined": "string",
              "characterCasing": "string",
              "length": "string",
              "userDefinedLookupTableName": "string",
              "internalColumnId": "string",
              "allowDisplayZerosAsEmpty": "string",
              "minValue": "string",
              "maxValue": "string",
              "associatedClearMemo": "string",
              "displayTime": "string",
              "useSeconds": "string",
              "precision": "string",
              "scale": "string",
              "decimalNumber": "string",
              "displayDecimalNumber": "string",
              "tableName": "string"
            }
          ],
          "relations": [
            {
              "associations": [
                {
                  "column": [
                    {
                      "description": "string",
                      "defaultExpression": "string",
                      "columnValues": "string",
                      "program": "string",
                      "options": [
                        {
                          "ebpSystemTable": "string",
                          "editCounter": "string",
                          "lockable": "string",
                          "recordSynchronizationInfo": "string",
                          "recordSynchronizationVersionInfo": "string",
                          "systemInfo": "string",
                          "treeCategories": "string",
                          "userDefinedColumnsCount": "string",
                          "userDefinedVisible": "string",
                          "userDefinedTableCount": "string",
                          "allowCalculatedUserFields": "string",
                          "isAlwaysEditable": "string"
                        }
                      ],
                      "type": "string",
                      "name": "string",
                      "nullable": "string",
                      "autoIncrement": "string",
                      "label": "string",
                      "system": "string",
                      "userDefinedNullable": "string",
                      "fromLinkTablesToCopyUserDefined": "string",
                      "characterCasing": "string",
                      "length": "string",
                      "userDefinedLookupTableName": "string",
                      "internalColumnId": "string",
                      "allowDisplayZerosAsEmpty": "string",
                      "minValue": "string",
                      "maxValue": "string",
                      "associatedClearMemo": "string",
                      "displayTime": "string",
                      "useSeconds": "string",
                      "precision": "string",
                      "scale": "string",
                      "decimalNumber": "string",
                      "displayDecimalNumber": "string",
                      "tableName": "string"
                    }
                  ],
                  "relatedColumn": [
                    {
                      "tableName": "string",
                      "name": "string"
                    }
                  ],
                  "name": "string"
                }
              ],
              "label": "string",
              "useInIntegrity": "string"
            }
          ],
          "name": "string",
          "label": "string",
          "description": "string"
        }
      ],
      "name": "string",
      "label": "string"
    }
  ],
  "version": "string"
}}

Cette requête récupère tous les champs personnalisés de la base cliente.

HTTP request

GET /v1/Folders/{FolderId}/CustomFields

Query

Nom Description Défaut Obligatoire
FolderId Identifiant du dossier. O

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Annexe 1 - Tables autorisées

Voici la liste des tables autorisées pour les requêtes génériques :

Nom de la table (pas case sensitive) Valeur OrderBy par défaut
Customer id
Address id
Deal id
DealColleague id
Item id
TrackingStockItem itemid
SaleDocument id
SaleDocumentLine id
RangeItem id
LinkedItem id
StandardText id
ConstructionSite id
Colleague id
PurchaseDocument id
PurchaseDocumentLine id
Contact id
Ecotax id
EbpSysOptions optionHashCode
ItemFamily id
CustomerFamily id
SupplierFamily id
Supplier id
RangeType id
RangeTypeElement id
ClassificationGroup id
CustomerProduct id
ScheduleEvent id
ScheduleEventCustomerProduct id
StockDocument id
StockDocumentLine id
ScheduleEventType id
TravelExpense id
Colleague id
Equipment id
Storehouse id
PriceList id
SettlementMode id
PaymentType id
MaintenanceContract id
MaintenanceContractCustomerProduct id
Incident id
GeographicSector id
StockItem itemid
PriceListCategory id
Unit id
Vat id
SupplierItem id
Civility id
ItemComponent id
ItemSubFamily id
CustomerSubFamily id
UnitType id
CustomerAssociatedFiles id
CustomerProductAssociatedFiles id
ItemAssociatedFiles id
MaintenanceContractAssociatedFiles id
PurchaseDocumentAssociatedFiles id
SaleDocumentAssociatedFiles id
ScheduleEventAssociatedFiles id
SupplierAssociatedFiles id
Shipping id
ThirdReference id
EcotaxCalculationBase id
EcotaxFurniture id
DocumentSerial id
CurrencyTable id
SaleDocumentLineTrackingDispatch id
ItemVatTerritoriality id
EbpSysGenericImportSettings categoryId

Annexe 2 - Filtre personnalisé

Exemple d'un noeud Custom filter
  type: CustomFilter
  column: sysModifiedDate
  operator: Equal
  valueType : Date
  value:
  - '2021-07-12 13:43:32.000'

Résultat SQL : 
Where sysModifiedDate = '2021-07-12 13:43:32.000'

URL-ENCODED :
%20%20type%3A%20CustomFilter%0A%20%20column%3A%20sysModifiedDate%0A%20%20operator%3A%20Equal%0A%20%20valueType%20%3A%20Date%0A%20%20value%3A%0A%20%20-%20'2021-07-12%2013%3A43%3A32.000'

Exemple d'un filtre avecBetween
 type: CustomFilter
 column: UseInvoicingAddressAsDeliveryAddress
 operator: Between
 valueType : Int
 value:
 - 1
 - 5

Résultat SQL : 
Where UseInvoicingAddressAsDeliveryAddress Between 1 And 5

  left:
     type: CustomFilter
     column: Id
     operator: Equal
     valueType : string
     value:
     - 'ANIM0001'
  operator: or
  type: ImbricationFilter
  right:
      type: CustomFilter
      column: Id
      operator: Equal
      valueType : string
      value:
      - 'BUZZ0001'


Résultat SQL : 
Where (Id = 'ANIM0001' Or Id = 'BUZZ0001')

URL-ENCODED :
%20%20left%3A%0A%20%20%20%20%20type%3A%20CustomFilter%0A%20%20%20%20%20column%3A%20Id%0A%20%20%20%20%20operator%3A%20equal%0A%20%20%20%20%20valueType%20%3A%20string%0A%20%20%20%20%20value%3A%0A%20%20%20%20%20-%20'ANIM0001'%0A%20%20operator%3A%20or%0A%20%20type%3A%20ImbricationFilter%0A%20%20right%3A%0A%20%20%20%20%20%20type%3A%20customFilter%0A%20%20%20%20%20%20column%3A%20Id%0A%20%20%20%20%20%20operator%3A%20equal%0A%20%20%20%20%20%20valueType%20%3A%20string%0A%20%20%20%20%20%20value%3A%0A%20%20%20%20%20%20-%20'BUZZ0001'

Nous avons ajouter la possibilité d'ajouter à certaines requêtes des filtres personnalisés. C'est à dire de rajouter une clause where aux commandes SQL.

Le format choisi est le YAML qui sera en url-encoded.

Il y a deux types de noeuds :

Nom Description
Left Noeud gauche de type ImbricationFilter ou CustomFilter
Right Noeud droite de type ImbricationFilter ou CustomFilter
Operator Opérateur (Or, And)
Nom Description
column Nom de la colonne
operator Opérateur (In, NotIn, Like, Equal, Different, Lower, LowerOrEqual, Upper, UpperOrEqual, IsNull, IsNotNull, Between)
valueType Type des valeurs du champ value (String, Int, Decimal, Date, Column pour un nom de column)
value Liste des valeurs

API Maintenance

Contexte

Permet de faire des appels de maintenance sur l’ensemble de vos dossiers EBP en SAAS. Par exemple, déconnecter des utilisateurs et supprimer des verrous.

Obtenir les dossiers

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/maintenance/api/v1/Folders
                                ?Offset=0&Limit=100&Accept-Language=fr-FR  \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
  "folders": [
    {
      "id": "3691",
      "name": "INV40V12_C3",
      "shortName": "INV40"
    }
  ],
  "paging": {
    "total": 1,
    "returned": 1,
    "offset": 0,
    "limit": 100
  }
}

Cette action permet de récupérer tous les dossiers pour un utilisateur donné (identifié via le JWT).

HTTP request

GET /v1/Folders

Query

Nom Description Défaut
Offset Permet de définir le décalage, les "Offset" premiers résultats à ignorer - Format : int32. 0
Limit Permet de définir le nombre d'éléments à afficher - Format : int32. 100

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Envoyer une demande pour déconnecter tous les utilisateurs

Exemple

curl --location --request POST https://api-developpeurs.ebp.com/maintenance/api/v1/Folders/3691/UnlogAll \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Si tout s’est bien passé alors retour 200 sans donnée supplémentaire. Cette action permet de déconnecter tous les utilisateurs

HTTP request

POST /v1/Folders/{FolderId}/UnlogAll

Query

Nom Description Défaut Obligatoire
FolderId Identifiant du dossier. O

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Envoyer une demande pour supprimer les verrous pour tous les utilisateurs

Exemple

curl --location --request POST https://api-developpeurs.ebp.com/maintenance/api/v1/Folders/3691/UnlockAll \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Si tout s’est bien passé alors retour 200 sans donnée supplémentaire. Cette action permet supprimer les verrous de tous les utilisateurs.

HTTP request

POST /v1/Folders/{FolderId}/UnlockAll

Query

Nom Description Défaut Obligatoire
FolderId Identifiant du dossier. O

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

API Import

Contexte

Permet de faire des imports de fichiers paramétrables et des imports de modèles.

Envoyer une demande d'import paramétrable

Exemple

curl --location --request POST https://api-developpeurs.ebp.com/import/api/v1/createImport
                                    ?folderId=3691&ImportCategory=ITEMS&ImportSettings=testModel \
--form 'file=@"/C:/import/importtest.csv"'
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Si tout s’est bien passé alors retour 202

{
  "importId" : "string"
}

Permet de faire des imports de fichiers paramétrables et des imports de modèles.

HTTP request

POST /v1/CreateImport

Query

Nom Description Défaut Obligatoire
FolderId Identifiant du dossier. O
ImportCategory Catégorie liée à l'import - Se reporter à la documentation en ligne. O
ImportSettings Nom du modèle d'import. O

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Corps de la requête

Nom Description Défaut Obligatoire
file Fichier à importer (multipart/form-data) O

Obtenir le statut de l'exécution d'un import paramétrable

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/import/api/v1/StatutResultImport?importId=12 \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
  "importId": "string",
  "fileId": "string",
  "status": "Waiting",
  "importInfos": {
    "itemTotal": 0,
    "itemCreated": 0,
    "itemUpdated": 0,
    "itemError": 0,
    "details": [
      {
        "lineNumber": 0,
        "errors": [
          {
            "code": "string",
            "message": "string"
          }
        ],
        "created": {
          "id": "string"
        },
        "updated": {
          "id": "string"
        }
      }
    ]
  }
}

Cette action permet de récupérer le statut et le résultat de l’import.

HTTP request

GET /v1/StatutResultImport

Query

Nom Description Défaut Obligatoire
importId Identifiant de l'import paramétrable. O

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O
Nom Description
Waiting En attente de traitement
Starting Le traitement a commencé
Completed Le traitement est terminé
OperationError Une erreur s’est produite (mauvais fichier d’import ...)
EbpOperationException Une erreur s’est produite côté EBP
EbpOpenDataBaseError Une erreur s’est produite en tentant d’ouvrir le dossier client chez EBP
EbpOlapiError Une erreur s’est produite à l'exécution de la commande

Envoyer une demande pour créer ou mettre à jour un modèle d'import

Exemple

curl --location --request POST https://api-developpeurs.ebp.com/import/api/v1/ModelSettings \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'
--data-raw '{
  "folderId": "string",
  "importSettings": "string",
  "importCategory": "string",
  "contentXml": "string"
}'

Si tout s’est bien passé alors retour 200 Cette action permet d’importer un modèle de fichier d’import paramétrable dans la base SAAS.

HTTP request

POST /v1/ModelSettings

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Corps de la requête

Nom Description Défaut Obligatoire
folderId Identifiant du dossier. O
importSettings Nom du modèle d'import. O
importCategory Catégorie liée à l'import - Se reporter à la documentation en ligne. O
contentXml Modèle au format xml O

Obtenir les modèles d'import

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/import/api/v1/ModelSettings?folderId=3691 \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
  "settings": [
    {
      "importSettings": "string",
      "importCategory": "string",
      "createdAt": "2021-08-30T12:56:30.740Z",
      "updatedAt": "2021-08-30T12:56:30.740Z",
      "createdBy": "string"
    }
  ]
}

Cette action permet de récupérer la liste des modèles d’import.

HTTP request

GET /v1/ModelSettings

Query

Nom Description Défaut Obligatoire
FolderId Identifiant du dossier. O

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Obtenir un modèle d'import

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/import/api/v1/ModelSettings/ModelTest/?folderId=3691 \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retour

{
  "importSettings": "string",
  "importCategory": "string",
  "contentXml": "string"
}

Cette action permet de récupérer le modèle d’import spécifié.

HTTP request

GET /v1/ModelSettings/{ImportSettings}

Query

Nom Description Défaut Obligatoire
FolderId Identifiant du dossier. O
ImportSettings Nom du modèle d'import. O

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Annexe 1 - Catégories d'import

Voici la liste des catégories d'import :

Catégorie Description
Items Articles
StockItem Article en stock
ItemFamilies Familles articles
ItemSubFamilies Sous-familles articles
RangeItems Articles gammes
Customers Clients/Prospects
CustomersAddresses Adresses clients/Prospects
CustomerFamilies Familles clients/prospects
CustomerSubFamilies Sous-familles clients/prospects
ThirdReference Références article/client
Suppliers Fournisseurs
SuppliersAdresses Adresses fournisseurs
SupplierItemPrices Articles (informations fournisseurs)
SupplierFamilies Familles fournisseurs
SupplierSubFamilies Sous-familles fournisseurs
SupplierThirdReference Références article/fournisseur
Contacts Contacts
Colleagues Commerciaux/collaborateurs
ColleagueFamilies Familles commerciaux/collaborateurs
SaleQuotes Devis (Vente)
SaleOrders Commandes (Vente)
SaleDelivery Bons de livraison(Vente)
SaleAmendments Avenants (vente)
SaleInvoices Factures (vente)
TemporarySaleInvoices Factures en cours de rédaction (vente)
SaleCreditMemo Avoirs (Vente)
TemporarySaleCreditMemo Avoirs en cours de rédaction (Vente)
PurchaseQuotes Demandes de prix (Achat)
PurchaseOrders Commandes (Achat)
PurchaseReceipt Bons de réception (Achat)
PurchaseInvoices Factures (Achat)
PurchaseCreditMemo Avoirs (Achat)
PutAways Bon d’entrée
PickUp Bons de sortie
Inventories Inventaires
AssemblyRequests Ordres de fabrication
Assemblies Bons de fabrication
TransferRequests Ordres de transfert
TransferOrders Bons de transfert
SaleSettlements Règlements client
PurchaseSettlements Règlements fournisseur
Currencies Devises
Ecotaxes Barème des éco-contributions
ClassificationGroups Groupes GeographicSectors Secteurs géographiques
RecoveredSaleDocuments Historique de récupération (Vente)
RecoveredPurchaseDocuments Historique de récupération (Achat)
CustomerPriceListCategories Catégorie tarifaire client
SupplierPriceListCategories Catégorie tarifaire fournisseur
CustomerPriceLists Tarif/Promotion client
SupplierPriceLists Tarif/Promotion fournisseur
EcotaxCalculationBase Base de calcul de l'éco-contribution
EcotaxFurniture Eco-contribution mobilier
CustomerProduct Produit client
CustomerProductFamily Famille produit client
GuaranteeType Type de garantie
MaintenanceContractFamily Famille de contrat de maintenance
MaintenanceContractTemplates Modèles de contrat de maintenance
Incidents Suivis incident MaintenanceContracts Contrats de maintenance
PayrollScheduleTimeEvent Saisie des temps et variables de paie
ScheduleEventTemplates Modèles d'évènements
ScheduleEvent Evènements
StandardTexts Textes standards
Shipping Frais de port
Vats Taux de TVA
Range Types Gammes
Competences Compétences
EquipmentTypes Types de matériels
Equipments Matériels
EquipmentsFamilies Familles matériels
Location Emplacements
Storehouse Dépôts
Users Utilisateurs
UserGroups Groupes d’utilisateurs
Deal Affaires

API Export

Contexte

Permet de faire des exports de fichiers.

Envoyer une demande de création d'export

Exemple

curl --location --request POST https://api-developpeurs.ebp.com/export/api/v1/CreateExport/Csv \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'
--data-raw '{
  "kind": "Item",
  "entityId": "CODE01"
}'

Si tout s’est bien passé alors retour 202 avec l'identifiant de l'export

{
  "exportId" : "string"
}

Cette action permet de créer une demande d'export.

HTTP request

POST /v1/CreateExport/{format}

Query

Nom Description Défaut
format Type d'export (Pdf, Csv)

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

Corps de la requête

Nom Description Défaut Obligatoire
kind Type de fiche à exporter O
entityId Code de la fiche à exporter O
reportId Identifiant du modèle à utiliser null

Obtenir le statut de l'exécution d'un export

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/export/api/v1/Status?exportId=aa843573-5368-49d3-93e8-fdc5260220bc \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Si tout s’est bien passé alors retour 200

{
  "exportId": "string",
  "fileId": "string",
  "status": "Waiting",
  "exportType": "Pdf",
  "exportInfos": {
    "returnCode": 0,
    "message": "string",
    "response": {
      "report": "string"
    }
  }
}

Cette action permet d'obtenir le statut d'un export.

HTTP request

GET v1/Status?exportId={exportId}

Query

Nom Description Défaut Obligatoire
exportId Identifiant de l'export O

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O
Nom Description
Waiting En attente de traitement
Starting Le traitement a commencé
Completed Le traitement est terminé
OperationError Une erreur s’est produite (mauvais fichier d’import ...)
EbpOperationException Une erreur s’est produite côté EBP
EbpOpenDataBaseError Une erreur s’est produite en tentant d’ouvrir le dossier client chez EBP
EbpOlapiError Une erreur s’est produite à l'exécution de la commande

Obtenir le résultat de l'export

Exemple

curl --location --request GET https://api-developpeurs.ebp.com/export/api/v1/Result?exportId=99497f15-f351-477d-8157-76598089199d \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'

Retourne le fichier d'export dans le format demandé

Cette action permet d'obtenir le résultat de l'export.

HTTP request

GET /v1/Result?exportId={exportid}

Query

Nom Description Défaut Obligatoire
exportId Identifiant de l'export O

Headers

Nom Description Défaut Obligatoire
Accept-Language Langue pour la traduction des ressources. fr-FR
ebp-subscription-key La clé de l'abonnement. O

FAQ

Comment gérer la pagination ?

Vous pouvez gérer la pagination grâce aux paramètres Limit et offset. Limit fixe le nombre d'éléments retournés par la requête et offset le nombre d'éléments à ignorer.

Exemple :

Est-ce qu’il y a une limite de nombre d'éléments par page ?

Oui, la limite est de 100 par page. Au-dessus, une erreur est envoyée.

Comment changer la clé partenaire ? (Subscription Key)

1) Aller dans son profil (menu en haut à droite)

2) Cliquez sur Régénérer

Est-ce qu’il y a une limite d’appel API ?

Oui, la limite est de 1 appel / seconde et 10 000 appels par jour pour la phase d’Early Adopters. Cette limite pourra être modifiée ultérieurement.

Mes appels API sont extrêmement long sur le portail

Si vous faites des appels depuis le portail, vérifiez que les traces sont à “false”.

Erreurs

Description du message d’erreur

{
  "title": "string",
  "message": "string",
  "errorType": "string",
  "errors": [
    {
      "errorCode": "string",
      "errorMessage": "string"
    }
  ],
  "origin": "string",
  "systemMessage": "string"
}

Description des champs :

Nom Description
title titre de l’erreur pouvant être affiché dans la partie appelante
message message de l’erreur pouvant être affiché dans la partie appelante
systemMessage message remontée par l'exception pour donner des détails sur l’erreur
origin permet de cibler l’erreur (API, OLAPI ...)
errors liste d’erreur supplémentaire pour aider à la compréhension du problème (liste des champs qui ne respecte le contrat DTO)

Numéro des retours des requêtes d’erreurs possible :

Nom Description
400 Erreur dans un paramètre d’entrée
401 Mauvais JWT
404 Votre dossier ou utilisateur n’existe pas
403 Authentifié mais les droits sont mauvais
429 Limite de requête atteinte
500 Soucis dans l’API

Charte d'utilisation EBP

ARTICLE 1. DÉFINITIONS

ARTICLE 2. OBJET

La présente Charte (ci-après la “Charte”) a pour objet de définir les conditions selon lesquelles l’Utilisateur pourra utiliser l’API Rest afin d’accéder aux produits EBP Informatique en SaaS via le portail développeur d’EBP. La Charte vient encadrer les conditions d'accessibilité et d’utilisation de cette API Rest.

ARTICLE 3. GARANTIES

EBP garantit que l’API Rest est conforme aux besoins des Utilisateurs. Ainsi, de nombreuses fonctionnalités ont été développées par EBP afin de répondre au mieux au besoin de l’utilisateur.

Toutefois, le fonctionnement ininterrompu et exempt de toute erreur n’est pas garanti par EBP.

ARTICLE 4. RÈGLES GÉNÉRALES D’UTILISATION

ARTICLE 5. ACCESSIBILITÉ

Afin de garantir une utilisation optimale et conforme, EBP Informatique a établi un accès limité et contrôlé de son API Rest.

Dans un premier temps, le Client devra s’inscrire ou se connecter sur le portail EBP développeur. A l’issue de cette étape, le Client sera enregistré et disposera d’un compte client EBP (Identifiant/Mot de passe).

Par la suite, le Client devra se connecter sur le portail développeur d’EBP à l’adresse suivante : https://developpeurs.ebp.com/ .

Pour se connecter au portail développeur EBP , une demande d’abonnement à EBP doit être faite par le Client via son compte client.

La demande d'abonnement sera traitée par EBP dans un délai de 72 heures. Cette demande est subordonnée à la validation par le Client de la présente Charte. Lorsque le client a validé la Charte, EBP devra communiquer les codes d'accès au client à l’API Rest.

Dès lors, le Client aura la possibilité de partager ses codes d’accès à son revendeur afin que ce dernier puisse gérer ses dossiers.

ARTICLE 6. MESURES DE SÉCURITÉ

EBP met en œuvre une série de mesures afin d’assurer la sécurité de son système et des données traitées, en particulier des données personnelles. Cependant, EBP ne peut en cas être tenu responsable d’une quelconque violation. Le Client est et demeure seul propriétaire et responsable de l’ensemble des données qu’il traite au moyen du Saas. EBP Informatique agit en qualité de support technique.

6.1 Principe général de responsabilité et obligation de prudence

6.2 Obligation générale de confidentialité

ARTICLE 7. RESPONSABILITÉ

Les services fournis par EBP le sont dans le cadre d’une obligation de moyens. EBP ne peut être rendu responsable d’un fonctionnement non conforme aux attentes de l’utilisateur, d’un dysfonctionnement mineur, d’une inaptitude particulière à un besoin spécifique ou d’une absence de fonctionnalité non substantielle dans son API Rest.

En outre, le Client reconnaît que EBP ne sera responsable d’aucun manque à gagner subi par un tiers et d’aucune réclamation ou action en justice dirigée ou intentée contre le Client par un tiers.

ARTICLE 8. SANCTIONS

Les manquements aux règles édictées par la présente Charte peuvent engager la responsabilité de l’utilisateur et entraîner des sanctions à son encontre telles que la limitation de l’usage de l’API Rest ou bien encore la réparation intégrale du préjudice subi par EBP Informatique.