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 :
ebp-subscription-key : Clé Primaire ou Secondaire d’API (disponibles sur votre profil)
Authorization: Bearer
(Authentication OAuth 2.0 )
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&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 |
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
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 |
SaleSettlement | id |
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 :
- ImbricationFilter => (Left Operator right)
Nom | Description |
---|---|
Left | Noeud gauche de type ImbricationFilter ou CustomFilter |
Right | Noeud droite de type ImbricationFilter ou CustomFilter |
Operator | Opérateur (Or, And) |
- left et right peuvent être du type ImbricationFilter ou CustomFilter
- CustomFilter => condition (ex : client between 1 and 2)
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 Batiment
Contexte
Permet de faire des appels métiers sur vos dossiers de Batiment SAAS. (Ne fonctionne pas sur des applications desktop).
Obtenir les dossiers de batiment
Exemple
curl --location --request GET https://api-developpeurs.ebp.com/batiment/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 batiment 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/batiment/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/ba/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/batiment/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/batiment/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
Exemple d'une requête pour récupérer des dépendances
curl --location --request GET https://api-developpeurs.ebp.com/batiment/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/batiment/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 leurs adresses
Exemple
curl --location --request GET https://api-developpeurs.ebp.com/batiment/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/batiment/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 leurs 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/batiment/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 leurs 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/batiment/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/batiment/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 leurs intervenants (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/batiment/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 |
Country | isocode |
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 :
- ImbricationFilter => (Left Operator right)
Nom | Description |
---|---|
Left | Noeud gauche de type ImbricationFilter ou CustomFilter |
Right | Noeud droite de type ImbricationFilter ou CustomFilter |
Operator | Opérateur (Or, And) |
- left et right peuvent être du type ImbricationFilter ou CustomFilter
- CustomFilter => condition (ex : client between 1 and 2)
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 |
Détail des valeurs du champs statut ci-dessous - Se reporter à la documentation en ligne.
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 |
Envoyer une demande d'ajout d'une pièce jointe
Exemple
curl --location --request POST https://api-developpeurs.ebp.com/associatedfile/api/v1/AddAssociatedFile
?folderId=3691&Kind=ITEM&Type=file&entityId=AR00002 \
--form 'file=@"/C:/import/importtest.csv"'
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'
Si tout s’est bien passé alors retour 202
{
"associatedFileId" : "string"
}
Permet d'ajouter une pièce jointe a un article.
HTTP request
POST /v1/AddAssociatedFile
Query
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
FolderId | Identifiant du dossier. | O | |
Kind | Catégorie liée à l'import - Se reporter à la documentation en ligne. | O | |
Type | Fichier ou Url. | O | |
EntityId | Identifiant de l'article. | 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 à associer (multipart/form-data) | O |
Obtenir le statut de l'exécution du fichier associé
Exemple
curl --location --request GET https://api-developpeurs.ebp.com/associatedFile/api/v1/AssociatedFileResult?associatedFileId=12 \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'
Retour
{
"associatedFileId": "string",
"fileId": "string",
"status": "Waiting",
"report": "string"
}
Cette action permet de récupérer le statut et le résultat de l'ajout de la pièce jointe.
HTTP request
GET /v1/AssociatedFileResult
Query
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
associatedFileId | Identifiant du fichier associé. | 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 |
Détail des valeurs du champs statut ci-dessous - Se reporter à la documentation en ligne.
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 |
Annexe 2 - Catégories du document associé
Voici la liste des catégories du document associé :
Catégorie | Description |
---|---|
Item | Article |
Customer | Client/Prospect |
Supplier | Fournisseur |
MaintenanceContract | Maintenance / SAV |
SaleQuote | Devis (Vente) |
SaleOrder | Commande (Vente) |
SaleAmendment | Avenant (vente) |
SaleInvoice | Facture (vente) |
SaleCreditMemo | Avoirs (Vente) |
ScheduleEvent | Evènements |
SaleDepositCreditMemo | Avoir d'acompte |
SaleProgressState | Situation de projet |
SaleReturnOrder | Bon de retour |
SaleDeliveryOrder | Bon de livraison |
SaleOrder | Commandes |
SaleExecutionQuote | Devis d'étude |
Annexe 3 - Détail des valeurs du champs statut
Voici les différents statuts qu'on peut obtenir suite a un import ou a un ajout de document associé :
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 |
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 |
Envoyer une demande de création d'export paramétrable
Exemple
curl --location --request POST https://api-developpeurs.ebp.com/export/api/v1/CreateConfigurableExport \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'Authorization: Bearer JWTtoken'
--data-raw '{
"kind": "Item",
"modelName": "model"
}'
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 paramétrable.
HTTP request
POST /v1/CreateConfigurableExport
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 | |
modelName | Nom du modèle d’export qui a été créé dans le dossier | 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 |
Annexe 1 - Catégories d'export
Voici la liste des catégories d'export :
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 |
Annexe 2 - Flux d'export
Voici le flux d'export :
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 :
Nous voulons paginer avec 25 éléments par page. Il faut renseigner la limit à 25
Nous voulons afficher les données de la troisième page. Nous devons donc ignorer les données des deux première pages, nous devons renseigner la valeur offset avec 50 (2 * 25)
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
- API Rest désigne une interface de programmation d’application respectant certaines contraintes et permettant d'interagir avec les services web.
- Utilisateur désigne une personne physique ou morale utilisant l’API Rest.
- Client désigne une personne physique ou morale à l’origine de la demande d’abonnement de l’API Rest via le portail développeur EBP.
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
- L’API Rest permettant d’accéder aux produits EBP Informatique SaaS doit être utilisé par l’utilisateur à des fins professionnelles, conformément aux objectifs prévus par les présentes.
- L’utilisateur ne peut en aucune manière utiliser l’API Rest pour se livrer à des activités concurrentes, et/ou susceptibles de porter préjudice à EBP Informatique de quelque manière que ce soit.
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.
- Des mesures de filtrages sont effectuées en amont par EBP.
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
- L’Utilisateur est responsable de l’utilisation qui est faite du produit EBP SaaS via le portail EBP développeur.
- L’Utilisateur doit faire preuve de prudence dans l’utilisation de l’API Rest.
- L’Utilisateur doit s’assurer d’utiliser l’API Rest mise à sa disposition de manière raisonnable, conformément à ses missions.
6.2 Obligation générale de confidentialité
- L’utilisateur s’engage à préserver la confidentialité des informations, et en particulier de ses données personnelles qui sont utilisées via le portail EBP développeurs.
- L’utilisateur s’engage à prendre toutes les précautions utiles pour éviter que ne soient divulguées de son fait, ou du fait de personnes dont il a la responsabilité, ces informations confidentielles.
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.