Présentation
Bienvenue sur la documentation des APIs Rest EBP
Cette documentation a pour but de vous assister dans votre parcours d'utilisation des APIs EBP.
Vous pouvez naviguer dans la documentation à l'aide du sommaire sur la gauche.
Il est également possible d'affiner votre recherche à l'aide du champ de recherche au haut du sommaire.
Schéma général
Présentation de la console APIs REST
Comprendre le parcours d'abonnement aux APIs REST en video :
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
Exemple
curl --location --request GET https://api-developpeurs.ebp.com/gescom/api/v1/Folders\
--header 'ebp-subscription-key: ZZZSUBSCRIPTIONKEYZZZ' \
--header 'Authorization: Bearer ZZZJWTtokenZZZ'
EBP propose des API REST qui sont mises à disposition des développeurs externes (partenaires, revendeurs). Pour effectuer les appels aux API d’EBP, deux informations sont à renseigner dans le Header de chaque requête :
ebp-subscription-key : Clé Primaire ou Secondaire d’API (disponibles sur votre profil) Cette clé est fournie en retour lors d'une demande d'abonnement aux APIs, après validation par nos services.
Authorization: 'Bearer < JWT client >' (Authentication OAuth 2.0 ) Il faut préciser 'Bearer' suivi d'un ACCESS TOKEN à générer en suivant les explications ci-dessous.
Authentification
Généralités concernant l'authentification
Afin de se connecter aux API Developer, EBP propose le protocole d’authentification OAUTH 2.0 en AuthorizationCode (uniquement).
Une explication complète de ce protocole oauth2 est disponible dans la documentation officielle.
En pratique, pour utiliser ce protocole, la procédure consiste à faire une demande de token via les étapes résumées ci-dessous. D'abord via une demande pour récupérer un access Token (à partir des Client ID/Secret, via Authorization Code, étape manuelle d'initialisation), ensuite de réaliser des appels régulierement via des Refresh Token (étape automatisable):
Remarques :
- Pour information, nos API ne prennent pas en charge l'authentification machine-to-machine.
- Actuellement, uniquement le protocole d’authentification OAUTH 2.0 en >>AuthorizationCode<< est disponible avec une étape manuelle via une page d'interface d'identification utilisateur Ebp pour la récupération des Access Token. Cette page d'identification affiche les logos EBP et n'est pas personnalisable.
Etapes de récupération et d'utilisation des tokens
Informations préliminaires à fournir :
Pour obtenir les tokens de l'utilisateur, les informations suivantes sont à fournir. Les clients ID et Secret sont envoyés par mail lors de la validation de la demande d'abonnement aux API.
éléments | valeurs |
---|---|
ClientId | Reçus par mail une fois l'abonnement validé |
ClientSecret | Reçus par mail une fois l'abonnement validé |
authorization_endpoint | https://api-login.ebp.com/connect/authorize |
token_endpoint | https://api-login.ebp.com/connect/ |
RedirectUri autorisées | http://localhost:3333 |
Scopes | openid profile offline_access |
Etapes de récupération d'un ACCESS TOKEN :
Etape 1 : Appel vers l'URL [API]/connect/authorise pour faire une demande d'authorization code (https://api-login.ebp.com/connect/authorize/callback + parametres clientID/Client Secret)
Etape 2 : L'etape 1 redirige vers une page d'identification ou l'utilisateur du dossier doit entrer son login+password EBP, il faut les entrer et valider via cette page pour recevoir un authorization code
Etape 3 : appel vers URL [API]/connect/token (https://api-login.ebp.com/connect/token ) avec l'authorization code reçu pour recevoir un jwt contenant un ACCESS TOKEN et un REFRESH TOKEN
Utilisation ACCESS TOKEN et REFRESH TOKEN :
Exemple d'appel avec les données d'authentification (Etape 4)
curl --location --request GET https://api-developpeurs.ebp.com/gescom/api/v1/Folders\
--header 'ebp-subscription-key: **ZZZSUBSCRIPTIONKEYZZZ**' \
--header 'Authorization: Bearer **ZZZJWTtokenZZZ**'
- Etape 4 : Appels vers les API avec l'access token (attaché pour securiser les appels GetItems, GetClients...etc), Comme stipulé précédemment, il faut passer dans les Header de l'appel le token reçu précédemment Authorization: Bearer < JWT client >.
Exemple de renouvellement sur base d'un refresh token (Etape 5)
curl --location 'https://api-login.ebp.com/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=refresh_token' \
--data-urlencode 'client_id= **client_id** ' \
--data-urlencode 'client_secret= **client_secret** ' \
--data-urlencode 'refresh_token= **ZZZREFRESHTOKENzzz**'
- Etape 5 : En parallèle, demander (renouveller) des access token avec les refresh token dans les delais impartis (Access token valide 1h, refresh token valide 30 jours à usage unique)
En pratique, les 3 premières étapes doivent être réalisées manuellement une seule fois. Dès que le mécanisme de refresh token / access token est initialisé, il suffit de refaire des appels avec le refresh token pour recevoir de nouveaux access tokens (au moins une fois tous les 30 jours).
ATTENTION - Remarques importantes :
- l'authorization code récupéré à l'étape 2 est à usage unique et a une durée de vie de 5min.
- lors des appels pour récupérer un nouvel access token, un nouveau refresh token est renvoyé également, avec une nouvelle durée de validité de 30 jours. Il faut toujours enregistrer et utiliser le dernier refresh token reçu car les précédents sont invalidés.
- 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).
URL de redirection
Si vous avez un serveur à autoriser, veuillez envoyer votre RedirectUri par mail à revendeurs.fr@ebp.com
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 | BaseUrl/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 : BaseUrl/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 "[BaseUrl]/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"
}
Plus d'informations
Lien vers la doc de l'API EBP avec des projets tests téléchargeables :
https://developpeurs-storage.ebp.com/#recuperation-des-tokens
Flux utilisation Authorization code :
https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow
Lien vers la doc oAuth 2 :
https://www.oauth.com/oauth2-servers/server-side-apps/authorization-code/
Liste des librairies certifiées OpenId Connect:
https://openid.net/certified-open-id-developer-tools/
HUBBIX Comptabilité TPE
Contexte
Permet de faire des appels métiers sur vos dossiers de Comptabilité SAAS. (Ne fonctionne pas sur des applications desktop).
Récupération des catégories de comptes de tiers
Exemple
curl --location --request GET https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/auxiliary-account-types
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
Réponse
{
"data": [{
"uuid": "f315e749-ab48-4329-b529-6ed3b8d6b3d6",
"name": "Clients",
"prefix": "C",
"abbreviation": "CL",
"isAutomatic": true,
"nextNumber": 1,
"accounts": 0,
"generalAccount": "411",
"natureCode": 16
}, {
"uuid": "e48f623c-6b1a-4764-a79b-007af60e6ca9",
"name": "Fournisseurs",
"prefix": "F",
"abbreviation": "FO",
"isAutomatic": true,
"nextNumber": 1,
"accounts": 0,
"generalAccount": "401",
"natureCode": 17
}, {
"uuid": "9648764d-07eb-49fd-bae1-efea3acf5d51",
"name": "Salariés",
"prefix": "S",
"abbreviation": "SA",
"isAutomatic": true,
"nextNumber": 1,
"accounts": 0,
"generalAccount": "421",
"natureCode": 18
}, {
"uuid": "7c9ad4b6-3390-4aa3-82c5-92ea1fb444f2",
"name": "Organismes",
"prefix": "O",
"abbreviation": "OR",
"isAutomatic": true,
"nextNumber": 1,
"accounts": 0,
"generalAccount": "437",
"natureCode": 19
}, {
"uuid": "b76bd9e3-c3cd-450f-be59-aa023da30187",
"name": "Autres tiers",
"prefix": "A",
"abbreviation": "AT",
"isAutomatic": true,
"nextNumber": 1,
"accounts": 0,
"generalAccount": "467",
"natureCode": 20
}]
}
Cette requête retourne toutes les catégories de comptes de tiers.
HTTP request
GET /v1/auxiliary-account-types
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Récupérer un tiers
Exemple
curl --location --request GET https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/auxiliary-accounts/{number}
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
Réponse
{
"uuid": "41fef6c0-cbb9-4a39-af1e-5d8f89a40f7e",
"name": "Client 12345",
"number": "C0000001",
"vatNumber": "FR 123 123 123",
"siret": "44306184100120",
"isAutomaticNumber": true,
"isActive": false,
"types": {
"uuid": "f315e749-ab48-4329-b529-6ed3b8d6b3d6",
"name": "Clients",
"prefix": "C",
"abbreviation": "CL",
"isAutomatic": true,
"nextNumber": 1,
"accounts": 1,
"generalAccount": "411",
"natureCode": 16
},
"contact": {
"uuid": "b8573896-7a65-4e59-a10c-7e1b92b920b2",
"civility": "Civilite xxx",
"firstName": "Prénom du contact",
"lastName": "Nom du Contact",
"landlinePhone": "00 009 889 079",
"mobilePhone": "00 009 889 079",
"serviceOrFonction": "Service 29 SF",
"email": "client@gmail.com"
},
"address": {
"uuid": "108f69fc-1b93-4257-9b51-4b01e469059c",
"address": "string",
"address2": "string",
"postalCode": "string",
"city": "string",
"country": null
},
"isMovement": false,
"isOrphan": false,
"msCount": 1
}
Cette requête retourne le tiers dont le numéro est passé en paramètre.
HTTP request
GET /v1/auxiliary-accounts/{number}
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
number | Numéro de compte | string | O |
Récupérer des tiers
Exemple
curl --location --request GET https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/auxiliary-accounts/[?category][&skip][&take][&search][&isActive][&numberFrom][&sortField][&sortDirection]
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
Réponse
{
"data": [
{
"uuid": "41fef6c0-cbb9-4a39-af1e-5d8f89a40f7e",
"name": "Client 12345",
"number": "C0000001",
"vatNumber": "FR 123 123 123",
"siret": "44306184100120",
"isActive": false,
"types": {
"uuid": "f315e749-ab48-4329-b529-6ed3b8d6b3d6",
"name": "Clients",
"prefix": "C",
"abbreviation": "CL",
"isAutomatic": true,
"generalAccount": "411"
}
}
],
"take": 100,
"skip": 0,
"totalRecords": 1
}
Cette requête retourne les tiers selon les filtres.
HTTP request
GET /v1/auxiliary-accounts[?category][&skip][&take][&search][&isActive][&numberFrom][&sortField][&sortDirection]
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Requête
Nom | Description | Type | Défaut | Obligatoire |
---|---|---|---|---|
category | Utilisé pour la catégorie | string | ||
skip | Ce champ pour la pagination par exemple commencer par élément 100 | integer | 0 | |
take | Ce champ pour la pagination par exemple garder 200 éléments à partir de skip | integer | 100 | |
search | Utilisé pour la recherche | string | ||
isActive | Utilisé pour filtrer les comptes actifs et inactifs | boolean | ||
numberFrom | Numéro de compte à partir de | string | ||
sortField | Utilisé pour trier les comptes | string | ||
sortDirection | Utilisé pour trier les comptes | string |
Modifier le statut d'un ou plusieurs tiers
Exemple
curl --location --request PATCH https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/auxiliary-accounts
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
--data-raw '{
"uuids": ["41fef6c0-cbb9-4a39-af1e-5d8f89a40f7e"],
"method": 1,
"active": true
}'
Code 202 : Le ou les tiers ont été modifiés
Réponse
{
"message": "X éléments ont été rendus inactifs",
"totalItems": 1
}
Cette requête modifie le statut d'un ou plusieurs comptes de tiers.
HTTP request
PATCH /v1/auxiliary-accounts
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Corps de la requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
uuids | Identifiant du compte | string[] | |
method | 1 => ne change que les UUIDs 2 => change tout sauf les UUIDs |
integer | |
active | Actif ou non | boolean |
Ajouter un tiers
Exemple
curl --location --request POST https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/auxiliary-accounts
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
--data-raw '{
"type": "f315e749-ab48-4329-b529-6ed3b8d6b3d6",
"number": "12345",
"name": "Client 12345",
"vatNumber": "FR 123 123 123",
"siret": "44306184100120",
"contact": {
"civility": "Civilite xxx",
"firstName": "Prénom du contact",
"lastName": "Nom du Contact",
"landlinePhone": "00 009 889 079",
"mobilePhone": "00 009 889 079",
"serviceOrFonction": "Service 29 SF",
"email": "client@gmail.com"
},
"address": {
"address": "string",
"address2": "string",
"postalCode": "string",
"city": "string",
"country": "string"
}
}'
Code 201 : Le tiers est créé et son numéro est renvoyé
Réponse :
{
"message": "Le compte auxiliaire a été créé avec succès",
"number": "C0000001"
}
Cette requête crée un compte de tiers.
HTTP request
POST /v1/auxiliary-accounts
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Corps de la requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
type | UUID catégorie | string | 0 |
number | Numéro de compte | string | |
name | Nom | string | O |
vatNumber | TVA intracommunautaire | string | |
siret | SIRET | string | |
contact | Contact | ContactDTO | |
address | Adresse | AdresseDTO |
ContactDTO
Nom | Description | Type | Obligatoire |
---|---|---|---|
civility | Civilité | string | |
firstName | Prénom | string | |
lastName | Nom | string | |
landlinePhone | Téléphone fixe | string | |
mobilePhone | Téléphone mobile | string | |
serviceOrFonction | Service ou fonction | string | |
string |
AdresseDTO
Nom | Description | Type | Obligatoire |
---|---|---|---|
address | Rue | string | |
address2 | Complément | string | |
postalCode | Code postal | string | |
city | Ville | string | |
country | Pays | string |
Mettre à jour un tiers
Exemple
curl --location --request PUT https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/auxiliary-accounts/{uuid}
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
--data-raw '{
"uuids": ["41fef6c0-cbb9-4a39-af1e-5d8f89a40f7e"],
"method": 1,
"active": true
}'
Code 200 : Le tiers a été modifié
Réponse
{
"message": "X éléments ont été rendus inactifs",
"totalItems": 1
}
Cette requête modifie un compte de tiers.
HTTP request
PUT /v1/auxiliary-accounts/{uuid}
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Corps de la requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
number | Numéro de compte | string | |
name | Nom | string | O |
vatNumber | TVA intracommunautaire | string | |
siret | SIRET | string | |
isActive | Est actif | boolean | |
contact | Contact | ContactDTO | |
address | Adresse | AdresseDTO |
ContactDTO
Nom | Description | Type | Obligatoire |
---|---|---|---|
uuid | UUID | string | |
civility | Civilité | string | |
firstName | Prénom | string | |
lastName | Nom | string | |
landlinePhone | Téléphone fixe | string | |
mobilePhone | Téléphone mobile | string | |
serviceOrFonction | Service ou fonction | string | |
string |
AdresseDTO
Nom | Description | Type | Obligatoire |
---|---|---|---|
uuid | UUID | string | |
address | Rue | string | |
address2 | Complément | string | |
postalCode | Code postal | string | |
city | Ville | string | |
country | Pays | string |
Récupérer un compte général
Exemple
curl --location --request GET https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/general-account/{number}
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
Réponse
{
"uuid": "3ed6b775-a814-44d2-8997-d8400782c201",
"number": "10100000",
"label": "Capital",
"active": false,
"collective": false,
"racine": false,
"movement": false,
"taxType": null,
"operationType": null,
"calculationOption": null,
"accountUsedForEntryGeneration": null,
"belongsToTransferParameters": false
}
Cette requête retourne le compte général dont le numéro est passé en paramètre.
HTTP request
GET /v1/general-account/{number}
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
number | Numéro de compte | string | O |
Récupérer des comptes généraux
Exemple
curl --location --request GET https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/general-account[?skip][&take][&search][&isActive][&isRacine][&isCollective][&sortField][&sortDirection][&numberFrom][&classNumber][&vatRate][&vatRateUuid][&calculationOption][&territoriality]
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
Réponse
{
"data": [{
"uuid": "1b7b9531-a156-4661-8f64-165be4651360",
"number": "10000000",
"label": "Capital et réserves",
"active": true,
"collective": false,
"racine": true
}, {
"uuid": "3ed6b775-a814-44d2-8997-d8400782c201",
"number": "10100000",
"label": "Capital",
"active": false,
"collective": false,
"racine": false
}, {
"uuid": "3b791851-6bf0-414d-b0f8-af13b2f83aa4",
"number": "10110000",
"label": "Capital souscrit - non appelé",
"active": true,
"collective": false,
"racine": false
}],
"take": 3,
"skip": 0,
"totalRecords": 1063
}
Cette requête retourne les comptes généraux selon les filtres.
HTTP request
GET /v1/general-account[?skip][&take][&search][&isActive][&isRacine][&isCollective][&sortField][&sortDirection][&numberFrom][&classNumber][&vatRate][&vatRateUuid][&calculationOption][&territoriality]
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Requête
Nom | Description | Type | Défaut | Obligatoire |
---|---|---|---|---|
skip | Ce champ pour la pagination par exemple commencer par élément 100 | integer | 0 | |
take | Ce champ pour la pagination par exemple garder 200 éléments à partir de skip | integer | 100 | |
search | Utilisé pour la recherche | string | ||
isActive | Utilisé pour filtrer les comptes actifs et inactifs | boolean | ||
isRacine | Utilisé pour filtrer les comptes racines et non racines | boolean | ||
isCollective | Utilisé pour filtrer les comptes collectifs et non collectifs | boolean | ||
sortField | Utilisé pour trier les comptes | string | ||
sortDirection | Utilisé pour trier les comptes | string | ||
numberFrom | Utilisé pour retourner les comptes dont le numéro est supérieur ou égal | integer | ||
classNumber | Utilisé pour retourner les comptes d'une racine | integer | ||
vatRate | Filtre par la valeur du taux de TVA | float | ||
vatRateUuid | Filtre par l'UUID du taux de TVA | string | ||
calculationOption | Filtre par option de calcul | string | ||
territoriality | Filtre par territorialité | string |
Modifier le statut d'un ou plusieurs comptes généraux
Exemple
curl --location --request PATCH https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/general-account
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
--data-raw '{
"uuids": [
"3ed6b775-a814-44d2-8997-d8400782c201"
],
"method": 1,
"active": false
}'
Code 202 : Le ou les comptes généraux ont été modifiés
Réponse
{
"message": "X éléments ont été rendus inactifs",
"totalItems": 1
}
Cette requête modifie le statut d'un ou plusieurs comptes généraux.
HTTP request
PATCH /v1/general-account
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Corps de la requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
uuids | UUIDs | string[] | |
method | (1 => ne change que les uuids), (2 => change tout sauf les uuids) |
integer | |
active | Mettre true pour rendre actif | boolean | |
isActive | Filtre : est actif | boolean | |
isRacine | Filtre : est un compte racine | boolean | |
isCollective | Filtre : est collectif | boolean | |
search | Filtre : recherche globale | string | |
class | Filtre : classe de comptes | integer |
Ajouter un compte général
Exemple
curl --location --request POST https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/general-account
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
--data-raw '{
"number": "1101",
"label": "Libellé du compte",
"collective": false,
"taxType": "0189abef-09af-409F-ab89-012789abcdef",
"operationType": "Achats en franchise",
"calculationOption": "sur_les_encaissements",
"accountUsedForEntryGeneration": false
}'
Code 201 : Le compte est créé
Réponse :
{
"message": "Compte créé avec succès"
}
Cette requête crée un compte général.
HTTP request
POST /v1/general-account
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Corps de la requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
number | Numéro de compte | string | O |
label | Libellé du compte | string | O |
collective | Collectif | boolean | |
taxType | Nature de taxe | string | |
operationType | Type d'opération | string | |
calculationOption | Option de calcul | string | |
accountUsedForEntryGeneration | Compte utilisé pour la génération d'écritures | boolean |
Mettre à jour un compte général
Exemple
curl --location --request PUT https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/general-account/{uuid}
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
--data-raw '{
"number": "10100000",
"label": "Capital",
"collective": false,
"vatExemption": false,
"taxType": null,
"operationType": null,
"calculationOption": null,
"accountUsedForEntryGeneration": null
}'
Code 201 : Le compte général a été modifié
Réponse
{
"message": "Compte modifié avec succès"
}
Cette requête modifie un compte général.
HTTP request
PUT /v1/general-account/{uuid}
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Corps de la requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
number | Numéro de compte | string | O |
label | Libellé du compte | string | O |
collective | Collectif ou non | boolean | |
taxType | Nature de taxe | string | |
operationType | Type d'opération | string | |
calculationOption | Option de calcul | string | |
accountUsedForEntryGeneration | Compte utilisé pour la génération d'écriture | boolean |
Récupération des informations du domaine
Exemple
curl --location --request GET https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/domain-information
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
Réponse
{
"domainName": "Nom du dossier",
"domainCode": "0993010668",
"version": "1.17.3"
}
Cette requête retourne les informations sur le domaine.
HTTP request
GET /v1/domain-information
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Récupération des écritures
Exemple
curl --location --request GET https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/lines-entries[?skip][&take][&generalAccount][&auxiliaryAccount][&startDate][&endDate][&valid][&lettered][&assigned][&search][&amount][&bankDeposit][&nature][&journals][&sortField][&sortDirection]
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
Réponse
{
"take": 3,
"skip": 0,
"linesEntries": [
{
"uuid": "60be52d8-4130-4395-98d9-ecf371e54e31",
"entry": {
"uuid": "07798d76-a2e0-4a0a-8298-42b9476d5960",
"journal": {
"uuid": "299465f9-37a1-425a-8a16-5e4f2d8d86a3",
"code": "VE",
"name": "Ventes"
},
"entryMode": "Provisoire",
"date": "2024-01-13",
"temporaryIdentifier": "P012",
"validIdentifier": null,
"attachment": null
},
"generalAccount": "41100000",
"auxiliaryAccount": "C0000001",
"label": "Test vente",
"debit": 123.0,
"credit": 0.0,
"piece": "12345",
"document": "54321",
"deadline": "2024-01-13",
"lettering": null,
"letteringDate": null,
"partialLettering": null
},
{
"uuid": "6454b84f-2d49-4ab3-95eb-ba879b923778",
"entry": {
"uuid": "07798d76-a2e0-4a0a-8298-42b9476d5960",
"journal": {
"uuid": "299465f9-37a1-425a-8a16-5e4f2d8d86a3",
"code": "VE",
"name": "Ventes"
},
"entryMode": "Provisoire",
"date": "2024-01-13",
"temporaryIdentifier": "P012",
"validIdentifier": null,
"attachment": null
},
"generalAccount": "70100000",
"auxiliaryAccount": null,
"label": "Test vente",
"debit": 0.0,
"credit": 123.0,
"piece": "12345",
"document": "54321",
"deadline": null,
"lettering": null,
"letteringDate": null,
"partialLettering": null
},
{
"uuid": "9dba8b7f-c080-4e02-8229-f42f85adac0e",
"entry": {
"uuid": "8f0cd9a0-83dc-471f-b7ba-9ff74e2846d5",
"journal": {
"uuid": "299465f9-37a1-425a-8a16-5e4f2d8d86a3",
"code": "VE",
"name": "Ventes"
},
"entryMode": "Provisoire",
"date": "2024-01-13",
"temporaryIdentifier": "P013",
"validIdentifier": null,
"attachment": null
},
"generalAccount": "41100000",
"auxiliaryAccount": "C0000001",
"label": "Test vente",
"debit": 123.0,
"credit": 0.0,
"piece": "12345",
"document": "54321",
"deadline": "2024-01-13",
"lettering": null,
"letteringDate": null,
"partialLettering": null
}
],
"totalRecords": 10
}
Cette requête retourne des écritures selon les filtres.
HTTP request
GET /v1/lines-entries[?skip][&take][&generalAccount][&auxiliaryAccount][&startDate][&endDate][&valid][&lettered][&assigned][&search][&amount][&bankDeposit][&nature][&journals][&sortField][&sortDirection]
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Requête
Nom | Description | Type | Défaut | Obligatoire |
---|---|---|---|---|
skip | Ce champ pour la pagination par exemple commencer par élément 100 | integer | 0 | |
take | Ce champ pour la pagination par exemple garder 200 éléments à partir de skip | integer | 100 | |
generalAccount | Numéro d'un compte général, exemple 40100000 | string | ||
auxiliaryAccount | Numéro d'un tiers, exemple F0000001 | string | ||
startDate | Date d'écriture à partir de cette date, 'Y-m-d' exemple 2021-04-13 | string | ||
endDate | Date d'écriture jusqu'à cette date, 'Y-m-d' exemple 2021-12-31 | string | ||
valid | Vérifie les écritures qui sont validées | boolean | ||
lettered | Vérifie les lignes qui sont lettrées | boolean | ||
assigned | Vérifie les lignes qui sont assignées | boolean | ||
search | Rechercher par Journal, Date d'écriture, N° d'écriture, Libellé, Débit, Crédit, Pièce, Document, Échéance | string | ||
amount | Montant | float | ||
bankDeposit | Remise en banque | boolean | ||
nature | Code nature | string | ||
journals | Codes journaux | string | ||
sortField | Utilisé pour trier les écritures | string | ||
sortDirection | Utilisé pour trier les écritures | string |
Récupération d'une écriture
Exemple
curl --location --request GET https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/entries/{uuid}
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
Réponse
{
"uuid": "07798d76-a2e0-4a0a-8298-42b9476d5960",
"journal": {
"uuid": "299465f9-37a1-425a-8a16-5e4f2d8d86a3",
"code": "VE"
},
"entryMode": "Provisoire",
"date": "2024-01-13",
"temporaryIdentifier": "P012",
"validIdentifier": null,
"lines": [
{
"uuid": "60be52d8-4130-4395-98d9-ecf371e54e31",
"generalAccount": "41100000",
"auxiliaryAccount": "C0000001",
"label": "Test vente",
"debit": 123.0,
"credit": 0.0,
"piece": "12345",
"document": "54321",
"deadline": "2024-01-13",
"lettering": null,
"letteringDate": null,
"partialLettering": null
},
{
"uuid": "6454b84f-2d49-4ab3-95eb-ba879b923778",
"generalAccount": "70100000",
"auxiliaryAccount": null,
"label": "Test vente",
"debit": 0.0,
"credit": 123.0,
"piece": "12345",
"document": "54321",
"deadline": null,
"lettering": null,
"letteringDate": null,
"partialLettering": null
}
],
"attachment": null,
"origin": "Saisie journal"
}
Cette requête retourne une écritures à partir de son UUID.
HTTP request
GET /v1/entries/{uuid}
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
uuid | UUID | string | O |
Récupération les paramètres du domaine
Exemple
curl --location --request GET https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/folder-settings
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
Réponse
{
"exercices": [{
"uuid": "348e3568-8537-4a6c-88f8-e7a1156891f7",
"startDate": "2024-01-01",
"endDate": "2024-12-31",
"exerciceNumber": 1,
"closingDate": null,
"attachmentUuid": "",
"archiveDate": null,
"printsAttachmentUuid": "",
"printsDate": null
}, {
"uuid": "1f2bbf85-0b59-4cdc-9516-4be40795ec1b",
"startDate": "2025-01-01",
"endDate": "2025-12-31",
"exerciceNumber": 2,
"closingDate": null,
"attachmentUuid": "",
"archiveDate": null,
"printsAttachmentUuid": "",
"printsDate": null
}],
"generalAccount": {
"accountLength": 8,
"accountNumbersMaxLength": 7
},
"entry": {
"mode": "Provisoire"
},
"auxiliaryAccount": {
"length": 8,
"types": [{
"uuid": "f315e749-ab48-4329-b529-6ed3b8d6b3d6",
"name": "Clients",
"prefix": "C",
"abbreviation": "CL",
"isAutomatic": true,
"nextNumber": 1,
"accounts": 1,
"generalAccount": "411",
"natureCode": 16
}, {
"uuid": "e48f623c-6b1a-4764-a79b-007af60e6ca9",
"name": "Fournisseurs",
"prefix": "F",
"abbreviation": "FO",
"isAutomatic": true,
"nextNumber": 1,
"accounts": 0,
"generalAccount": "401",
"natureCode": 17
}, {
"uuid": "9648764d-07eb-49fd-bae1-efea3acf5d51",
"name": "Salariés",
"prefix": "S",
"abbreviation": "SA",
"isAutomatic": true,
"nextNumber": 1,
"accounts": 0,
"generalAccount": "421",
"natureCode": 18
}, {
"uuid": "7c9ad4b6-3390-4aa3-82c5-92ea1fb444f2",
"name": "Organismes",
"prefix": "O",
"abbreviation": "OR",
"isAutomatic": true,
"nextNumber": 1,
"accounts": 0,
"generalAccount": "437",
"natureCode": 19
}, {
"uuid": "b76bd9e3-c3cd-450f-be59-aa023da30187",
"name": "Autres tiers",
"prefix": "A",
"abbreviation": "AT",
"isAutomatic": true,
"nextNumber": 1,
"accounts": 0,
"generalAccount": "467",
"natureCode": 20
}]
}
}
Cette requête retourne les paramètres du domaine.
HTTP request
GET /v1/folder-settings
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Modifier les paramètres du domaine
Exemple
curl --location --request PUT https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/folder-settings
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
--data-raw '{
"exercices": {
"startDate": "2024-01-01",
"endDate": "2024-12-31",
"endNextDate": "2025-12-31"
},
"generalAccount": {
"accountLength": 8
},
"auxiliaryAccount": {
"length": 8,
"types": [{
"uuid": "f315e749-ab48-4329-b529-6ed3b8d6b3d6",
"prefix": "C",
"isAutomatic": true,
"nextNumber": 1,
"generalAccount": "411"
}, {
"uuid": "e48f623c-6b1a-4764-a79b-007af60e6ca9",
"prefix": "F",
"isAutomatic": true,
"nextNumber": 1,
"generalAccount": "401"
}, {
"uuid": "9648764d-07eb-49fd-bae1-efea3acf5d51",
"prefix": "S",
"isAutomatic": true,
"nextNumber": 1,
"generalAccount": "421"
}, {
"uuid": "7c9ad4b6-3390-4aa3-82c5-92ea1fb444f2",
"prefix": "O",
"isAutomatic": true,
"nextNumber": 1,
"generalAccount": "437"
}, {
"uuid": "b76bd9e3-c3cd-450f-be59-aa023da30187",
"prefix": "A",
"isAutomatic": true,
"nextNumber": 1,
"generalAccount": "467"
}]
}
}'
Réponse
{
"message": "Paramètres modifiés avec succès"
}
Cette requête modifie les paramètres du domaine.
HTTP request
PUT /v1/folder-settings
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Corps de la requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
exercices | Exercices | ExercicesDTO | O |
generalAccount | Compte général | ParametresGenerauxDTO | O |
auxiliaryAccount | Tiers | ParametresTiersDTO | O |
ExercicesDTO
Nom | Description | Type | Obligatoire |
---|---|---|---|
startDate | Date de début | datetime | O |
endDate | Date de fin | datetime | O |
endNextDate | Date de fin exercice suivant | datetime | O |
ParametresGenerauxDTO
Nom | Description | Type | Obligatoire |
---|---|---|---|
accountLength | Longueur des numéros de comptes | integer | O |
ParametresTiersDTO
Nom | Description | Type | Obligatoire |
---|---|---|---|
length | Longueur | integer | O |
types | Catégories | CategoriesDeTiersDTO | O |
CategoriesDeTiersDTO
Nom | Description | Type | Obligatoire |
---|---|---|---|
uuid | UUID | string | O |
prefix | Préfixe | string | O |
isAutomatic | Est Automatique | integer | |
nextNumber | Prochain numéro | integer | O |
generalAccount | Compte général | string |
Récupération d'un journal par son code
Exemple
curl --location --request GET https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/journals/{code}
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
Réponse
{
"uuid": "b2c75637-44a8-4737-8186-8704ca0237e0",
"code": "AC",
"name": "Achats",
"counterpartAccount": null,
"journalType": {
"name": "Achats"
},
"numberingPartType": {
"name": "Automatique"
},
"prefix": "MMAA",
"complement": "",
"isMovement": false,
"belongsToTransferParameters": false,
"isADefaultANJournal": false
}
Cette requête retourne un journal par son code.
HTTP request
GET /v1/journals/{code}
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
code | Code journal | string | O |
Récupération des journaux
Exemple
curl --location --request GET https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/journals[?filter][&order]
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
Réponse
{
"data": [
{
"uuid": "b2c75637-44a8-4737-8186-8704ca0237e0",
"code": "AC",
"name": "Achats",
"counterpartAccount": null,
"journalType": {
"name": "Achats"
},
"numberingPartType": {
"name": "Automatique"
},
"prefix": "MMAA",
"complement": "",
"isMovement": false,
"belongsToTransferParameters": false,
"isADefaultANJournal": false
},
{
"uuid": "a5e1afc1-5d0b-4598-9493-530c75423996",
"code": "ACH",
"name": "Achats2",
"counterpartAccount": null,
"journalType": {
"name": "Achats"
},
"numberingPartType": {
"name": "Automatique"
},
"prefix": "AAAA",
"complement": null,
"isMovement": false,
"belongsToTransferParameters": false,
"isADefaultANJournal": false
},
{
"uuid": "895e607f-f9ef-4560-a76d-a028f89e61aa",
"code": "AN",
"name": "À Nouveaux",
"counterpartAccount": null,
"journalType": {
"name": "À Nouveaux"
},
"numberingPartType": {
"name": "Automatique"
},
"prefix": "MMAA",
"complement": "",
"isMovement": false,
"belongsToTransferParameters": false,
"isADefaultANJournal": true
},
{
"uuid": "54031191-b1d0-4fb8-ac4f-09445f8b1138",
"code": "BQ",
"name": "Banque",
"counterpartAccount": {
"uuid": "e591542c-e53d-4cfb-95ce-81b287a795ea",
"number": "51210000",
"label": "Comptes en monnaie nationale "
},
"journalType": {
"name": "Trésorerie"
},
"numberingPartType": {
"name": "Automatique"
},
"prefix": "MMAA",
"complement": "",
"isMovement": false,
"belongsToTransferParameters": false,
"isADefaultANJournal": false
},
{
"uuid": "c57a3eda-fcd0-47f8-9e56-1216941c1ba4",
"code": "CA",
"name": "Caisse",
"counterpartAccount": {
"uuid": "4d151a7a-40f6-4a6d-a34a-88a2fa22dd22",
"number": "53110000",
"label": "Caisse en monnaie nationale "
},
"journalType": {
"name": "Trésorerie"
},
"numberingPartType": {
"name": "Automatique"
},
"prefix": "MMAA",
"complement": "",
"isMovement": false,
"belongsToTransferParameters": false,
"isADefaultANJournal": false
},
{
"uuid": "486a8db5-6a1b-486c-842f-30824ff83af8",
"code": "OD",
"name": "Opérations diverses",
"counterpartAccount": null,
"journalType": {
"name": "Opérations diverses"
},
"numberingPartType": {
"name": "Automatique"
},
"prefix": "MMAA",
"complement": "",
"isMovement": false,
"belongsToTransferParameters": false,
"isADefaultANJournal": false
},
{
"uuid": "299465f9-37a1-425a-8a16-5e4f2d8d86a3",
"code": "VE",
"name": "Ventes",
"counterpartAccount": null,
"journalType": {
"name": "Ventes"
},
"numberingPartType": {
"name": "Automatique"
},
"prefix": "MMAA",
"complement": "",
"isMovement": true,
"belongsToTransferParameters": true,
"isADefaultANJournal": false
}
]
}
Cette requête retourne les journaux filtrés.
HTTP request
GET /v1/journals[?filter][&order]
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
filter | Les données pour filtrer le résultat. ^: commence par %: contient !%: ne contient pas gte: supérieur ou égal à gt: supérieur à lte: inférieur ou égal à lt: inférieur à $: fini par lneq: La longueur de la valeur du champ égal à |
string | |
order | Permet de trier la requête | string |
Ajouter un journal
Exemple
curl --location --request POST https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/journals
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
--data-raw '{
"code": "string",
"name": "string",
"journalType": "À Nouveaux",
"numberingPartType": "Automatique",
"prefix": "AAAA",
"complement": "string",
"counterpartAccount": "string"
}'
Code 201 : Le journal est créé
Réponse :
{
"message": "Journal ajouté avec succès"
}
Cette requête crée un journal.
HTTP request
POST /v1/journals
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Corps de la requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
code | Code | string | O |
name | Nom | string | O |
journalType | Type de journal | string | O |
numberingPartType | Type de numérotation par pièce | string | O |
prefix | Préfixe | string | |
complement | Complément | string | |
counterpartAccount | Compte de contrepartie | string |
Modifier un journal
Exemple
curl --location --request PUT https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/journals/{journalUuid}
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
--data-raw '{
"code": "AC",
"name": "Achats",
"journalType": "Achats",
"numberingPartType": "Automatique",
"prefix": "MMAA",
"complement": "",
"counterpartAccount": null
}'
Réponse
{
"message": "Journal modifié avec succès"
}
Cette requête modifie un journal.
HTTP request
PUT /v1/journals/{journalUuid}
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
journalUuid | Identifiant du journal | string | O |
Récupération des opérations bancaires
Exemple
curl --location --request GET https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/bank-transactions[?take][&skip][&startDate][&endDate][&status][&bankAccount][&bankAccounts][&uuid][&sort][&withAssignmentSuggestion]
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
Réponse
{
"data": [
{
"uuid": "13c269d8-2d3d-4d78-a151-2b5e02f2a93a",
"label": "CB DEBIT IMMEDIAT GOOGLE *BUDGEA",
"account": {
"uuid": "ae23cab6-9c96-49db-9d93-66f6457553fa",
"bankName": "Connecteur de test",
"accountName": "Compte chèque",
"accountNumber": "3002900000",
"iban": "EX6713000000000300290000028",
"synchronize": true,
"alreadySynchronized": true,
"bankSyncId": "7213",
"connectionId": "1854",
"journal": {
"uuid": "54031191-b1d0-4fb8-ac4f-09445f8b1138",
"code": "BQ",
"name": "Banque",
"counterpartAccount": {
"uuid": "e591542c-e53d-4cfb-95ce-81b287a795ea",
"number": "51210000",
"label": "Comptes en monnaie nationale "
},
"journalType": {
"name": "Trésorerie"
}
},
"startDate": null,
"operationsCount": 62,
"synchronizationDate": "2024-02-06 08:36:33",
"balance": 1299.26,
"deleted": false,
"state": "normal",
"errorMessage": []
},
"operationDate": "2024-02-04",
"valueDate": "2024-02-04",
"debit": 35.59,
"credit": null,
"reference": "380058",
"status": "0",
"entry": null
}
]
}
Cette requête retourne des opérations bancaires selon les filtres.
HTTP request
GET /v1/bank-transactions[?take][&skip][&startDate][&endDate][&status][&bankAccount][&bankAccounts][&uuid][&sort][&withAssignmentSuggestion]
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Requête
Nom | Description | Type | Défaut | Obligatoire |
---|---|---|---|---|
skip | Utilisé pour la pagination, indique combien d'éléments il faut ignorer | integer | 0 | |
take | Utilisé pour la pagination, indique combien d'éléments il faut retourner | integer | 100 | |
startDate | Date des écritures à partir de laquelle on retourne des éléments | string | ||
endDate | Date des écritures à partir de laquelle on ne retourne plus d'éléments | string | ||
status | Statut de l'opération bancaire (0, 1, 2) | integer | ||
bankAccount | Filtre par UUID du compte bancaire | string | ||
bankAccounts | Filtre par UUIDs des comptes bancaires | string | ||
uuid | Filtre par UUID | string | ||
sort | Tri chronologique ou antéchronologique (chronological/reverse-chronological) | string | chronological | |
withAssignmentSuggestion | Récupère les propositions d'affectation, si le statut de l'opération le permet | boolean | false |
Récupération d'une pièce jointe par son Identifiant
Exemple
curl --location --request GET https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/pieces-jointes/{uuidMs}
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
Réponse
PNG
IHDRçiÁN4sBIT|dtEXtSoftwaregnome-screenshotï¿>)tEXtCreation Timelun. 05 févr. 2024 11:28:27zpIDATxí}TSg¾ï?#$¡c#VD¡§ª
*SÎ!]0W*k¤º|[ä\/ÜvйõØÖ9R\WèÌÁÛ{Ñ®AÑV£Ò;@½
Q+´¾t@î,=¡T 5R$ aHûGÂBj5<XÙÏÞûùeï~^öþ}Í?ÿ?¸Oü8$/ïWuÁ):@06.....
Cette requête retourne une pièce jointe par son Identifiant.
HTTP request
GET /v1/pieces-jointes/{uuidMs}
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
uuidMs | Identifiant de pièce jointe | string | O |
Ajouter une pièce jointe
Exemple
curl --location --request POST https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/pieces-jointes/add
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
--header 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundarygSTKag9jHJjEJffe'
--data-raw '
------WebKitFormBoundarygSTKag9jHJjEJffe
Content-Disposition: form-data; name="attachmentName"
Capture d’écran du 2024-02-05 11-28-27.png
------WebKitFormBoundarygSTKag9jHJjEJffe
Content-Disposition: form-data; name="data"; filename="Capture d’écran du 2024-02-05 11-28-27.png"
Content-Type: loadend
PNG
IHDRçiÁN4sBIT|dtEXtSoftwaregnome-screenshotï¿>)tEXtCreation Timelun. 05 févr. 2024 11:28:27zpIDATxí}TSg¾ï?#$¡c#VD¡§ª
*SÎ!]0W*k¤º|[ä\/ÜvйõØÖ9R\WèÌÁÛ{Ñ®AÑV£Ò;@½
Q+´¾t@î,=¡T 5R$ aHûGÂBj5<XÙÏÞûùeï~^öþ}Í?ÿ?¸Oü8$/ïWuÁ):@06:ïX´ûWÓ´6éoB~2¶µ°¼³é¢9rÒ2ñi% ,;ðõéki´:$íB±´Ó3´ÑL[Ñrʪom¾âëoâàM\èê¤oÖ"§·
¥´ãu3ý1¯äß9ØÂò*H´lã_·c`Âý¥ø¯Ø
6nøªð>¿ÂQ{ÈS6+}3XWÆ®¼r'Î;SI~ÈùHý,éíóf½ýâ{(Ñhô°)¾màf{¥ª
¼úÔÃ(ù%ºì¼ HXÅÇ|{Åô-:þ9UÝ£k:/·Sæb9ÿ1ÙUF'bõ""&5(¦oØÓóåN×éâü¾v¯Ó9©7¿G.kè¦ÍÓéó9°.° â¡»ù_yt+ß¡/ÞD 5N
ÈáðZ,é=~:Éê¾~üÔbjxsÏUx¡Y¦aCä5r.ÜE¯þTJÙ¡2ªzA©bûs!4¿w¶yl»Áoß«âËüÛ âÒÍIÐÃôʹTßÍG¶ÛÈýÃiÚ$,XÏ«KdègêÄÍÅé¡^MÊæõÐNþ4éBÿ$²×3שz'%Å%I$îÌf62¾
üwêxÀ°#[Ò
éK^'ñ¥äÖVê~ÿ:çë&nÁ¦'ªU·Bþ5§aH,q{øoÚïø«%@2JßÌåi.ÚÆêuÑÈ|çÐrõkR+è8´%ÝäìåiµOß9ôëÓ¤S¾h#«b.áI7WöoâxuÓ$®ðø®ØÉ®UeeR¬¿ûó}Yõ97±µ£}\jíã¾^À
Tê@͵TõÄúFÎÅDãs÷¾>GV+XíºÝé1JJPdó¿øÝDñÌh¦âÇW5Ò6¬\ªiÆD\r¢Npq~Fe>k;oeÃPÌÙëáðJ
uM &~×Ç}ÇE+©h¹²¸¨%'+¨Ôs<³$I¤XN]Ö-ÝÚÀ5$§©ÈJÆ`3HÏ{ÃÚl{5%:ì9[j©ÈÚDºÊ3).vû7ñwSÿZ2ÖiçvââÇ_ÿÂëì» Å?³´P5·´»íÉ4"Å?³í-ö÷å×ò1Õ¤ï\ÏÜj'ºÚI·#ÒVzr9ÐÐ}[|ýâGAÕU'N6ÄMÎýåÌ71µâ~ë¨2ëÐlqH¹t¦>aê¶05$b{÷\Àhö"Ht¦° d&¯Ï
÷ZjÖ<ÒÁCF¬ÎÆ)'@~£"4?çתFr0MU¡ò&¨ÓÓÉ`ûÚw}Ió멯´o³Ö`0ñ:LAÀºBxC?2¦û*øF.GåðW°ý}9íøùÂëõTOÐ~C
ßYnðu]+Þæs3=Òdpb<=D0OüsÓ1Ó
?ßv¼$3clS]&6º:Ç(¾\NÑåIbÇÚÛkk]zikihû)ßå¯o*êÕÎk§ÐÖËm7"Â#Ê˪¯xçHý+z·TñL% à¶cüxyU<ñ
ûwª?Å/Oê&ÎTògmý³Æv¬:ajX,»é⼤gnãýJönfYp±.ïXô]ÌçÀXã>ɽqòôL¼Ï0ÑÄn\I¾C-C=F¦bMr$Aús¼QÓA¯}óµÎ¿!÷ÂÀ
Û(e}\xõL¿ëùÝæ¡I¤©óÂÑÒ@î×ãÝ:x÷Gx÷¶í}´¦%µ÷_(BÞÛGûP9v½õ§YUïÎR¬µ|ÝFX¼ý~( Ãßgx@á)Ñßc¶}Gàû`£Ó.¥+ôÂümXuË6¿`þ á)5Ócÿ{¨bº÷½;»üÑ$23S¿GFâĦÔp$çOóæa´ë[0
3ÕöY9/¨+Tu2%)ËbIê®åÒÑ"¤DîÊ5¼¨aS¤a)Ð tÚF#óoom§° 2es38®s$nÜr6ñ×Â]ÌÛ|ìö !]XÐï/$|óûdh»1wÖr©º¨ì|Âr²©ï¬µ4^Ì&~g)O-ïSw®BJsIΫàiÌ`i¥®hÍÛmB(E;ï9x{G^´÷ù·¼ôÝé×\´Õë"ùÎAI!ëâÌRºuÌ°Oç`ù"3]º×9RrêýËIÍ« ¬§³¾ú±Äÿf5÷AÊ5*<¼Õ(½ç°NÅ~Ê1Oø>þ,Z®º»BÔO©èø4"ûV¹w×q©»wÎ,dCªtOÀtÃ6Ò(C"IãÅ5Eo
Ï®ô4%§td¨%`M²sä8ñ(ÅX½ªÅlZj{ÒÞÈo?´u]Ö9bð#ñ@à¸o·V pq8ES pQ8ES pQ8ES pQ8ES pQÜ@±h÷ï!LÌâ¥,o?)ay5¤ÆIÇÛa4ÞCȼ̾ÿR¡guJ°ÓxÄíáW[ð¸ê`áy§HÚ£#cÿ)2öƯ*êùÕþS¶Ï;·0ÛÙS?ºrñj'÷ßÂê"ë?ã×Å[ð¿mgÿ_DNAª,-«"X0T aAd«´ÕR¸b!1áÃ$ª ^y1¢UZVÅó²Úk¸LÈË©J¤h-üz[ÅÓHYÂÑ
1Ä8ùÏS
,dû*;¿[{·Ü©ÙñѪN!O@^²Û©÷nï·ÝsnÐX ±½M,ÚÃ1ä$O>M¿Ò·Ê09ä P˾L p#ë¶:¹ü½"qèJ $=1ëÉlµ"-©Qh¾=®w*ÄÇQÖ|LfcÈfñÊIo-ãÝ9ªª°Hb:¯Pãë5~#áÚàÖâ|0N,ïæ¼ømÍ Äg75C/;½øE*Ì))8F×`±÷RbóÖßî0^¬¶yexÍ×Æ2f÷ÔòIÎ&ÞBܺ'(}ë9ý{áiÑxsÒµhRo$-;92së)]vv8Îqã¹H±ùÀoxüâ[¬Í«¾ëÕ+j._±£Õ
@÷tß$AWßKùÑ
ØsFÍ\ê¥WíÛd¤GZ))¹J:È©xFº6¸8]È Á
<ª%³| ÿý6¢PSnK²xù^¼TÌ]±ÿctÙcß a¼XÛ¨ÏK¦~0õZ×9lÝ@ÍÖdj$/öÁzÈæÀKÙûϡÌ|<Oên9v¼xîæÿeÇÚÂÉceZôf{ÿCíævÐ6Êd<WB¹BÍöUá\+ý?õZQúÈ#ÜÎ;WÌ%FÑAUëÍ¡sEÄ,@^s*³1N9ÒµÁ
ÄéBN)þñÑP÷:n`¬®'Y¼|&¦ð¤]
ýG÷Wç:÷¸Nw«ÓXôÔëjoùî*qþ_C¨>\Dµ³±a¥Ýîn×Þ}sòÛ] ¦º¿âÃ×0]¿*hC§°!9ãJtöDRê'¤û6ó»}5Q0èv`«£{*)Ú«ÿÜÄy'|ON¶hÞÒdAªÀÓWÚguwÚ¹»XÂb3±üÅsÏÛÀÚý7:e^ȹI[û
`
!S%[Û쩪^M íD%{[³n§¢]ªâÒÊqÝne¤kÌÖÃpBPk ö® díRv¯Ó°û¥åèôa=9¸Á×õø-IÀV¿¤-Dª'=v&Ö»÷ugâ¹süY².uq÷h×+A{3µóIcoCsÑ<|svÛz!ÿ¢QræS# LÉÅCDüì)xQCAZ$?Í$=-ãpFº6¸qËyÿüâ¢ñ¾¸aK6+õ<Lw®c¯óÉ?m#½8ÛVÜò>eººNÄÊw´UµòdöQÖYk¼6ÑP0á[yÒ_ÒWAâÎRú0s¥x%, Î -GJoþ;KyÚÚ@åkǸ
ôÌhdR3fÁ²¢húg©ÈÊuÊÕI K4b.çÐÉ»rìJ`äÀñF6h¥Èö½æÔYÊ»üXñÌ?0+=Ë
ûÖrN4»§y¸6½DÕ¡*ª&ºKpmNâ¾ÝZÀÅâ\!NÀEâ\!NÀEâ\!NÀEâ\!NÀEq×÷bÑî_MÓÚ\¦¿]ùÉ|Úò}×9ð¼2%L"Eënâ§É'ÙCÚßY˧ù©klݱh÷gÑ:"Çt|ä)GH˾¬+cW^ù=xWŵ!Ôü¡©áø_(±gH¬ÑüÈ©çmuóÛô"AúHWè|áÙÓ|Å{jù»À«O=°¯Q¢»ÀÉN[v£2*
PB<<5Uò®ÞþÌÍB4öqÛêjøí
vû
g^DÄD±æ
m!£oØÓó¥ý9ªE¯,[èâ|å<ð=¢ÞIJ¤|@c'Èä¹ýæ}÷Áeá~1ó@¿ÊÒã쵯]°èglQ´Ñ£ÜªzA©bûs!4¿wfGe¦µt11×ÏUjÄê1Ô¥lèüz+Ê°
d<ÜFîNÓ6 aÁÒx^]j$ëDVu¶©Ôü:1k§Î¹³8¥o>ÍÓ^ZU ßËoî¶%IÍ/ÅÅ^´q*¼çÊÐÿþ}¼´kðn§îÍÿáùÿéÀy øâL¿ÐwxÓ}Í´ý1Êí«SË£ÌÞȶ,Óå½/<FÃ:Sgõ&;m-¥©:âêáïé§É%qE´-3ÆT˧
©Ó[)ÓãòIÍÆóz+jaäMeÜx#pÅNvp,+â»^æÏóÏ.ÐhoañPgJÚ±2Ú]@âF}#çb¢ñ¹)hü²fOGN~ÄÌ3¡û£+S`àý¿nBf"ÑKD_Õ|JÛH°r©¦cj!tpÍA<¢ÊãTµ+ÜA2ëeÈià`În dëûhWÀ]ÀáðæÉG W·sdýSt
fLè< À³aÚÀ?ôYè2i´N#8sóª×S|²
ApÎQSj9PÒä N)!i*LÇ\³I^'²rŲðm¤çlÂA¾ÄÌêrb9ßbÁ#0ÖcwI·#ÒVzr9ÐÐ}[öúÅ(+ª«LùË@ÿºG9ph¿Ú>´½òP"®7cït(Öx°wÏf/äË$2N2/}ú¬Yõ,Q_LVs(ä( ¿ÑókU#9GL¦ªPyê´¶¶Qeÿn NGõfºjì?ª6ô'õ$k#ÑÙ©lþn¾Ñ
Ó)ÚiÓÛSp
µzî"yäÉ9øÏ-$}P r[ÕÀȸ'W§|Q4òÝ6¯!À\WÆ7Þ[ëÀ§ð3TpÜ>6hiÀØ3h9âD<¦&ºLmt1F5].§è²sqsc·}L×Ý;ö.c8£$)RAí©ÑV$`sxíðÚzA;2ÇNF~®×³nµ ¼É¥3¼áÙG[ÿíéæëÄ-Äy'8Íß/ç{,üõÔ ðF×i¡ËÐ|
ÆÍ»?'ã¹í<0¢|^(ñý¼Ù:lE2Ò] ¹@RÖÇ5ã2«ÙÙc¿rOèí4ÒL{A· #}´¦%µ÷_(BÞÛGûã:GâæRdL
³[¼ Scl°yåÜm6ÿäg-kø¢AAøóÑCñgï!>|â%î4ýK2ñ±»¤uy«¦º³ô
&0Wn+óxTËlËY®ýgü ´×ÒûîãDþh)Ë>Ä!ã:áEü*k¾ué. BÔÀª:9vB¸FÕ×r4)m>@Óx6LAcã5¬X©m42ÿ±ùØ|6¦° 2es3Ä37N¶:JO`,þ·LÙl3×àg±g󷵨Êthö§búÜ9pUOL's9tøìÐÙýRÞcVaë9D_¼¾s¢I(Þq³½uGóäÆ-<(£07좴ð]VÛÐøu~BO-OúøiòI^j³?15ðiáêô7)Ó5ù¤®³OÕÕB\úõöG)ãÆãܾ·B~løÏÿH&Læá[ÍyàªÍkVÏyðî>çÒ-wÇ
lxêaéG<ºpT&Q©íRÀö(å,ïêí}i)ÑøÚn_m_\àªv{wÚ¨¥yQ-·=Jiod÷CRÆSõ(Ûç£ÄC3êBt7t0Ám¸y·V p]ÜxBÈBSÞSå*¸¢å\!NÀEâ\!NÀEâ\!NÀEâ\7xÎyNxúô[ÈÉ;!LOÚCZ-«ÁËw^=-EϹk©q&æG·ñv4Yçª'X`_¥{n;'Òou@¶µà2-)#ößs¨ü»ñÎæ$JBפ°<J
°®pr÷Î|éü"îónvhòN]åkÙ] %,¯ðÚÉ¿V¨ßKé[eZ®0ÙWé&Äý'W×¢ôÁßxÿUÏu+ø&eòß×>ÁÅ×Î!^¢{Ó?Äë-1`8ÍéÂ\zHÜioQ|øïÔñ4a/G¶¤k\Â6ïrà/½9CY.ÇËk'ÈbqìPI6iÙ È¡[Oé²³ÃnP³·ðZ2G9¿Ã=ñ/ñA·ìÀ¼öR!uÎbü%¼PÌô¤»¿ÝpþÎpߥÈýUôÚñô&ûòéRfgW ¹ºÆ³)E¾o}ÅðWDêåÔÝÚõf®´+#\¼
Fv%níÖF¿3cþjZ, &~ç6(ÔRyyp¿Á3zÓîpeGÆÊ<Oê¨ûEæp¼`f¡®¤ÌÍ® öÊJLª²µWÇ0öòð Æ«§>ï`¼,MFZB`Ü*´þ9tøNxÙ äçÛSYàä«¿ðnî)'5lpÜ åÏ ÁB×ÅZd/mCë[K¾o.~æ\âK¨ßg}WTFÇ,\v6k{îVðÙHl-íËË_¬ÇùÄìÎ&IØàß[NÞr²"'C¦
?¿ö;þA/®aÍ+ì¨ÝÚ[pqéd6»Ï2ûñPfÆ·
¾âå|PíhÒÃy1¹~²¬×¹sɸ/È4[H¬à÷ÚV×^Wʲ»¨ûÞÒG³®îíaÌÔÑ ZÏQ¸ñ£ÌNÊ Ä[Ï7ÕǨ;¼ÊfüBU£ökÑ1ÇW*¸B,O.a?6ø;¾GNc"¥o@þjÕLêäÆe½b>Ná«Iã^ä¡ÁÏQ!øµ·Ø£p1çøÈm$aU~3He`8ME~.WOmÞËÓfú÷)É;Hz<lêíÇíêHÌ^OÜ1{ÒQBc9'pBPg£Eå?(èû÷Vú¬
T¾¶&bYü-<ácÆdjçÊï{>o
µoH qûzfKdxÏCÿU=}vê
Ös^ïLó|BSËXF|ÈC6'½køó;åÔcèθµ8WÆ»µk#Ä)¸(B"Ä)¸(÷uBH 8h9ES pQ8ES pQîëïþ6jfT¥2Í%ÎZîÇ
ϦH{¬¼jÄûÎÁØ<n¿:!LÀ÷_>25W)>t×6
×ÜqúâßÙþxØ¿xøøøl½¯5v~)òeþyݳÄ<µ«Ñwß×÷ߦäÑçYá[ÆúuåcxÒAî·öò!ö_'sÑ÷éÍ!üðy³µTëZPkGrÿ+~0Üßâ²ÉÖú#EJKå1ñ(E pH\ñn@à¢q
.§@à¢q
.§@à¢q
.§@à¢üèèÑÿûþêN±âÀeS@õÕI,ø(î¢[+¸(B"Ä)¸(B"Ä)¸(B"Ä)¸(S
2 §ñ¤S p-@à¢n@à¢q
.Êÿ4¿4ΧKIEND®B`
------WebKitFormBoundarygSTKag9jHJjEJffe--
'
Code 200 : La pièce jointe a été ajoutée
Réponse :
{
"attachmentName": "Capture d’écran du 2024-02-05 11-28-27.png",
"data": "http://api-compta-web.ebp.com/api/v1/pieces-jointes/471b54ec-30c1-4b6b-88aa-503407740f2d",
"uuidMs": "471b54ec-30c1-4b6b-88aa-503407740f2d",
"folder": "documents",
"tag": "autre_document",
"exercise": null,
"entry": null
}
Cette requête permets d'ajouter une pièce jointe.
HTTP request
POST /v1/pieces-jointes/add
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Content-Type | Type de requête | string | O |
Corps de la requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
attachmentName | Nom de la pièce jointe | string | O |
data | Données | File | O |
folder | Répertoire | string |
Rechercher des écritures
Exemple
curl --location --request GET https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/search-entries/entries?uuids=07798d76-a2e0-4a0a-8298-42b9476d5960,8f0cd9a0-83dc-471f-b7ba-9ff74e2846d5
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
Réponse
[{
"uuid": "07798d76-a2e0-4a0a-8298-42b9476d5960",
"temporaryIdentifier": "P012",
"validIdentifier": null,
"date": "2024-01-13",
"journal": {
"code": "VE"
},
"piece": "12345",
"lines": [{
"generalAccount": "411",
"thirdAccount": "C0000001",
"date": "2024-01-13",
"label": "Test vente",
"debit": 123.0,
"credit": 0.0
}, {
"generalAccount": "701",
"thirdAccount": null,
"date": "2024-01-13",
"label": "Test vente",
"debit": 0.0,
"credit": 123.0
}]
}, {
"uuid": "8f0cd9a0-83dc-471f-b7ba-9ff74e2846d5",
"temporaryIdentifier": "P013",
"validIdentifier": null,
"date": "2024-01-13",
"journal": {
"code": "VE"
},
"piece": "12345",
"lines": [{
"generalAccount": "411",
"thirdAccount": "C0000001",
"date": "2024-01-13",
"label": "Test vente",
"debit": 123.0,
"credit": 0.0
}, {
"generalAccount": "701",
"thirdAccount": null,
"date": "2024-01-13",
"label": "Test vente",
"debit": 0.0,
"credit": 123.0
}]
}]
Cette requête effectue une recherche d'écritures.
HTTP request
GET /v1/search-entries/entries?uuids={uuids}
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
uuids | Identifiants des écritures séparés par des virgules | string | O |
Ajouter une saisie journal
Exemple
curl --location --request POST https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/journal-entry
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
--data-raw '{
"entryMode": "Provisoire",
"journal": "VE",
"linesEdition": [{
"temporaryIdentifier": "7baaa886-97f1-49fc-b7b9-29109af95c30",
"date": "2024-01-13",
"generalAccount": "411",
"auxiliaryAccount": "C0000001",
"label": "Test vente",
"debit": "123",
"credit": "0",
"piece": "12345",
"documentNumber": "54321",
"deadline": "2024-01-13"
}, {
"temporaryIdentifier": "7baaa886-97f1-49fc-b7b9-29109af95c30",
"date": "2024-01-13",
"generalAccount": "701",
"label": "Test vente",
"debit": "0",
"credit": "123",
"piece": "12345",
"documentNumber": "54321"
}],
"linesDeletion": [],
"verification": true,
"avoidLettering": "true"
}'
Code 200 : L'écriture est créée et son UUID est renvoyé
Réponse :
{
"uuids": [
"d8e271e0-a57a-45eb-810a-30351e3f51c8"
]
}
Cette requête crée une écriture via la saisie journal.
HTTP request
POST /v1/journal-entry
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
Corps de la requête
Nom | Description | Type | Obligatoire |
---|---|---|---|
entryMode | Mode de saisie (Provisoire, Validé) | string | O |
journal | Code journal | string | O |
linesEdition | Lignes modifiées | LigneSaisieEcrituresRequest[] | |
linesDeletion | Identifiants des lignes à supprimer | string[] | |
verification | Vérification des lignes | boolean | |
transaction | Identifiant de la transaction | string | |
accountedLinesUuids | Identifiants des lignes affectées à la transaction | string[] | |
avoidLettering | Ne pas lettrer | boolean |
LigneSaisieEcrituresRequest
Nom | Description | Type | Obligatoire |
---|---|---|---|
uuid | Identifiant de la ligne, utilisé en édition seulement | string | |
identifiantProvisoireEcriture | Sert à identifier l'écriture de la ligne | string | O |
date | Date d'écriture | datetime | O |
generalAccount | Compte général | string | O |
auxiliaryAccount | Compte de tiers | string | |
label | Libellé | string | O |
debit | Débit | float | |
credit | Crédit | float | |
piece | Numéro de pièce | string | |
documentNumber | Numéro de document | string | |
deadline | Date d'échéance | datetime | |
attachmentUuid | Identifiant de pièce jointe | string |
Récupération des taux de TVA
Exemple
curl --location --request GET https://api-developpeurs-preprod.ebp.com/hubbix-cpttpe/api/v1/vat-rate
--header 'ebp-Subscription-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
--header 'Authorization: Bearer eyManQuePasaxxxxxxxxxxxxxxxxxxxx'
--header 'tenantid: 0189abef-09af-409F-ab89-012789abcdef'
Réponse
{
"data": [{
"uuid": "0a043acb-5e40-4566-a6fd-cf4104aa70b1",
"designation": "France taux réduit 2,10 %",
"rate": 2.1,
"isActive": true,
"territoriality": {
"uuid": "5eb87d68-e200-443e-b9e2-b478ba831cae",
"label": "France"
}
}, {
"uuid": "87df83b7-229f-4ac1-b0e4-9fe301dcf63f",
"designation": "France taux réduit 5,50 %",
"rate": 5.5,
"isActive": true,
"territoriality": {
"uuid": "5eb87d68-e200-443e-b9e2-b478ba831cae",
"label": "France"
}
}]
}
Cette requête retourne tous les taux de TVA.
HTTP request
GET /v1/vat-rate
Headers
Nom | Description | Type | Obligatoire |
---|---|---|---|
ebp-Subscription-Key | Clé de l'abonnement | string | O |
Authorization | Bearer token | string | O |
tenantid | UUID du dossier | string | O |
SAAS 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) - Batiment
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 - Batiment
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é - Batiment
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 |
Annexe 3 - Exporter le schéma des tables
Il est possible de récupérer le schéma des tables dans l'application Gescom:
- Voici la marche à suivre
- Aller dans le damier en haut à gauche, cliquer sur Mes paramètres :
- Aller dans Outils Avancés
- Cliquer sur Exporter le schéma de l'application
SAAS 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 - 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 - Batiment
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 - Batiment
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 - Batiment
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 - Batiment
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 - Batiment
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 - Batiment
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) - Batiment
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 - Batiment
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) - Batiment
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 - Batiment
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 - Batiment
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) - Batiment
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 - Batiment
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) - Batiment
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) - Batiment
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 - Batiment
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 - Batiment
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é - Batiment
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 |
Annexe 3 - Exporter le schéma des tables
Il est possible de récupérer le schéma des tables dans l'application Gescom:
- Voici la marche à suivre
- Aller dans le damier en haut à gauche, cliquer sur Mes paramètres :
- Aller dans Outils Avancés
- Cliquer sur Exporter le schéma de l'application
SAAS 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 |
SAAS 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.
Relancer un import
Nous avons un CRON qui récupère toutes les heures les imports en attente. Ils sont relancés automatiquement, et ce jusqu'à 5 fois par import.
Afin d'éviter les problèmes de doublon, nous vous invitons à ne pas relancer d'import manuellement.
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 |
Annexe 4 - Flux d'import
Voici le flux d'import :
SAAS 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",
"folderId": "3691"
}'
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 | |
folderId | Identifiant du dossier | 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 |
Relancer un export
Nous avons un CRON qui récupère toutes les heures les exports en attente. Ils sont relancés automatiquement, et ce jusqu'à 5 fois par export.
Afin d'éviter les problèmes de doublon, nous vous invitons à ne pas relancer d'export manuellement.
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 |
---|---|
Assemblies | Bons de fabrication |
AssemblyRequests | Ordres de fabrication |
ClassificationGroups | Groupes GeographicSectors Secteurs géographiques |
ColleagueFamilies | Familles commerciaux/collaborateurs |
Colleagues | Commerciaux/collaborateurs |
Competences | Compétences |
Contacts | Contacts |
Currencies | Devises |
Customer | Clients/Prospects |
CustomerFamilies | Familles clients/prospects |
CustomerPriceListCategories | Catégorie tarifaire client |
CustomerPriceLists | Tarif/Promotion client |
CustomerProduct | Produit client |
CustomerProductFamily | Famille produit client |
CustomersAddresses | Adresses clients/Prospects |
CustomerSubFamilies | Sous-familles clients/prospects |
Deal | Affaires |
EcotaxCalculationBase | Base de calcul de l'éco-contribution |
Ecotaxes | Barème des éco-contributions |
EcotaxFurniture | Eco-contribution mobilier |
Equipments | Matériels |
EquipmentsFamilies | Familles matériels |
EquipmentTypes | Types de matériels |
GuaranteeType | Type de garantie |
Incidents Suivis incident | MaintenanceContracts Contrats de maintenance |
Inventories | Inventaires |
Item | Articles |
ItemFamilies | Familles articles |
ItemSubFamilies | Sous-familles articles |
Location | Emplacements |
MaintenanceContractFamily | Famille de contrat de maintenance |
MaintenanceContractTemplates | Modèles de contrat de maintenance |
PayrollScheduleTimeEvent | Saisie des temps et variables de paie |
PickUp | Bons de sortie |
Prospect | Prospect |
PurchaseCorrectiveInvoice | Facture rectificative d'achat (ES) |
PurchaseCreditMemo | Avoir d'achat |
PurchaseDeliveryOrder | Bon de réception |
PurchaseDepositInvoice | Facture d'acompte d'achat |
PurchaseDepositCreditMemo | Avoir d'acompte d'achat |
PurchaseReturnOrder | Bon de retour d'achat |
PurchaseInvoice | Facture d'achat |
PurchaseOrder | Commande (Achat) |
PurchaseQuote | Demande de prix (Achat) |
PurchaseReceipt | Bons de réception (Achat) |
PurchaseSettlements | Règlements fournisseur |
PutAways | Bon d’entrée |
Range | Types Gammes |
RangeItems | Articles gammes |
RecoveredPurchaseDocuments | Historique de récupération (Achat) |
RecoveredSaleDocuments | Historique de récupération (Vente) |
SaleAmendments | Avenants (vente) |
SaleCreditMemo | Avoir (Vente) |
SaleDeliveryOrder | Bon de livraison(Vente) |
SaleDepositInvoice | Facture d'acompte |
SaleDepositCreditMemo | Avoir d'acompte |
SaleCorrectiveInvoice | Facture rectificative (ES) |
SaleInvoice | Facture (vente) |
SaleOrder | Commande (Vente) |
SaleQuote | Devis (Vente) |
SaleReturnOrder | Bon de retour |
SaleSettlements | Règlements client |
ScheduleEvent | Evènements |
ScheduleEventTemplates | Modèles d'évènements |
Shipping | Frais de port |
StandardTexts | Textes standards |
StockItem | Article en stock |
Storehouse | Dépôts |
Supplier | Fournisseur |
SupplierFamilies | Familles fournisseurs |
SupplierItemPrices | Articles (informations fournisseurs) |
SupplierPriceListCategories | Catégorie tarifaire fournisseur |
SupplierPriceLists | Tarif/Promotion fournisseur |
SuppliersAdresses | Adresses fournisseurs |
SupplierSubFamilies | Sous-familles fournisseurs |
SupplierThirdReference | Références article/fournisseur |
TemporarySaleCreditMemo | Avoirs en cours de rédaction (Vente) |
TemporarySaleInvoices | Factures en cours de rédaction (vente) |
ThirdReference | Références article/client |
TransferOrders | Bons de transfert |
TransferRequests | Ordres de transfert |
UserGroups | Groupes d’utilisateurs |
Users | Utilisateurs |
Vats | Taux de TVA |
Annexe 2 - Flux d'export
Voici le flux d'export :
Annexe 3 - Détail des valeurs du champs statut - Exports
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 |
HUBBIX Gestion Commerciale TPE
Contexte
Permet de faire des appels métiers sur l'ensemble de votre application Hubbix Gestion commerciale TPE SAAS. (Ne fonctionne pas sur des applications desktop).
Obtenir une liste des familles de client
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/customer-groups?take=1&skip=0' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Exemple de récupération de familles de client
{
"take": 10,
"skip": 0,
"total": 1,
"elements": [
{
"id": 2,
"label": "Restauration",
"discountRate": 5.50,
"settlementTermId": null,
"comment": "",
"canDelete": true
}
]
}
Retourne la liste des familles de clients que vous pouvez filtrer et/ou paginer à votre convenance.
URL de la requête HTTP
GET /public/v1/customer-groups
Requête
Le tableau ci-dessous vous indique les différents paramètres à fournir en paramètre de la requête de récupération de données. Les noms des paramètres sont à fournir en CamelCase. Plus de détails sur ce lien.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
take | Nombre d'éléments à retourner. | N | |
skip | Nombre d'éléments à ignorer avant de commencer à retourner. | N | |
sortingOrder.property | Nom du champ utilisé pour le tri. | N | |
sortingOrder.sortType | Sens de tri (Croissant / décroissant). Doit être une valeur du type SortType. Par défaut : Croissant. | N | |
filter.query | Terme recherché pour le filtrage. | N |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans un tableau dans la propriété elements
décrit ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant de la famille de client. |
label | string | Libellé de la famille de client. |
discountRate | decimal | Remise en pourcentage. |
settlementTermId | integer / null | Identifiant de la condition de règlement. |
comment | string | Commentaires. |
canDelete | boolean | Indique si la famille de client peut être supprimée. |
Obtenir une famille de client
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/customer-groups/{IdCustomerGroup}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération d'une famille d'article
{
"id": 12,
"label": "Taux réduit de 5%",
"discountRate": 5,
"settlementTermId": 1,
"comment": "Ut luctus, ultricies sem, auctor, nisi, sociosqu odio donec maecenas sollicitudin habitasse velit neque, eros.",
"canDelete": false
}
Récupère une famille de clients
URL de la requête HTTP
GET /public/v1/customer-groups/{IdCustomerGroup}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdCustomerGroup | Identifiant de la famille de client. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant de la famille de client. |
label | string | Libellé de la famille de client. |
discountRate | decimal | Remise en pourcentage. |
settlementTermId | integer / null | Identifiant de la condition de règlement. |
comment | string | Commentaires. |
canDelete | boolean | Indique si la famille de client peut être supprimée. |
Créer une famille de client
curl --location --request POST 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/customer-groups' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer JWTtoken' \
--data '{
"label": "Etablissement de santé",
"discountRate": 1.99,
"settlementTermId": null,
"comment": "Hôpitaux, cliniques, etc"
}'
Retour de la création d'une famille de client
3
Crée une nouvelle famille de clients
URL de la requête HTTP
POST /public/v1/customer-groups
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Label | Libellé de la famille de client. | O | |
DiscountRate | Pourcentage de remise. | O | |
SettlementTermId | Identifiant de la condition de règlement. | N | |
Comment | Commentaires. | N |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Modifier une famille de client
curl --location --request PUT 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/customer-groups/3' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer JWTtoken' \
--data '{
"label": "Etablissement de santé",
"discountRate": 1.99,
"settlementTermId": null,
"comment": "Hôpitaux, cliniques, etc"
}'
Retour de la modification d'une famille de client
3
Modifie une famille de clients
URL de la requête HTTP
PUT /public/v1/customer-groups/{IdCustomerGroup}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdCustomerGroup | Identifiant de la famille de client. | O | |
Label | Libellé de la famille de client. | O | |
DiscountRate | Pourcentage de remise. | O | |
SettlementTermId | Identifiant de la condition de règlement. | N | |
Comment | Commentaires. | N |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Supprimer une famille de client
curl --location --request DELETE 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/customer-groups/{IdCustomerGroup}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la suppression d'une famille de client
1
Si la famille de client n'existe pas, une erreur HTTP 404 est retournée avec un retour JSON spécifique.
Retour en erreur
json { "status": 404, "errorCode": "CustomerGroup.NotFound", "data": {}, "message": "EntityId : 1. La famille de client est introuvable." }
Supprime une famille de clients
URL de la requête HTTP
DELETE /public/v1/customer-groups/{IdCustomerGroup}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdCustomerGroup | Identifiant de la famille de client. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Obtenir un client
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/customers/{IdCustomer}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour sur la récupération d'un client
{
"id": 1,
"code": "CL00000001",
"name": "KRAP'S",
"legalForm": "",
"discountRate": 0.0000000000000000000000000000,
"settlementTermId": null,
"intracommunityVatNumber": "",
"siret": "",
"customerGroupId": null,
"customerTypeId": 2,
"website": "",
"priceCategoryId": 1,
"account": "CL00000001",
"contactsDetail": {
"invoicing": {
"address": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
},
"contact": {
"civility": "",
"lastname": "",
"firstname": "",
"phone": "",
"mobile": "",
"email": "",
"service": ""
}
},
"deliveryAddressIsTheSameAsInvoicing": true,
"headOfficeAddressIsTheSameAsInvoicing": true,
"deliveryContactIsTheSameAsInvoicing": true,
"deliveryAddress": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
},
"deliveryContact": {
"civility": "",
"lastname": "",
"firstname": "",
"phone": "",
"mobile": "",
"email": "",
"service": ""
},
"headOfficeAddress": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
}
},
"anteriorDueAmount": 0.0,
"anteriorDate": null,
"anteriorHasSettlement": false,
"balanceDue": 42363.370000000000000000000000,
"pastDueBalance": 41863.370000000000000000000000
}
Récupère un client
URL de la requête HTTP
GET /public/v1/customers/{IdCustomer}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdCustomer | Identifiant du client. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant du client. |
code | string | Code du client. |
name | string | Nom ou raison sociale. |
legalForm | string | |
discountRate | decimal | |
settlementTermId | integer / null | |
intracommunityVatNumber | string | |
siret | string | |
customerGroupId | integer / null | |
customerTypeId | integer | |
website | string | |
priceCategoryId | integer | |
account | string | |
contactsDetail.invoicing.address.street | string | |
contactsDetail.invoicing.address.additionalStreet | string | |
contactsDetail.invoicing.address.postCode | string | |
contactsDetail.invoicing.address.city | string | |
contactsDetail.invoicing.address.country | string | |
contactsDetail.invoicing.contact.civility | string | |
contactsDetail.invoicing.contact.lastname | string | |
contactsDetail.invoicing.contact.firstname | string | |
contactsDetail.invoicing.contact.phone | string | |
contactsDetail.invoicing.contact.mobile | string | |
contactsDetail.invoicing.contact.email | string | |
contactsDetail.invoicing.contact.service | string | |
contactsDetail.deliveryAddressIsTheSameAsInvoicing | boolean | |
contactsDetail.headOfficeAddressIsTheSameAsInvoicing | boolean | |
contactsDetail.deliveryContactIsTheSameAsInvoicing | boolean | |
contactsDetail.deliveryAddress.street | string | |
contactsDetail.deliveryAddress.additionalStreet | string | |
contactsDetail.deliveryAddress.postCode | string | |
contactsDetail.deliveryAddress.city | string | |
contactsDetail.deliveryAddress.country | string | |
contactsDetail.deliveryContact.civility | string | |
contactsDetail.deliveryContact.lastname | string | |
contactsDetail.deliveryContact.firstname | string | |
contactsDetail.deliveryContact.phone | string | |
contactsDetail.deliveryContact.mobile | string | |
contactsDetail.deliveryContact.email | string | |
contactsDetail.deliveryContact.service | string | |
contactsDetail.headOfficeAddress.street | string | |
contactsDetail.headOfficeAddress.additionalStreet | string | |
contactsDetail.headOfficeAddress.postCode | string | |
contactsDetail.headOfficeAddress.city | string | |
contactsDetail.headOfficeAddress.country | string | |
anteriorDueAmount | decimal | |
anteriorDate | datetime | |
anteriorHasSettlement | boolean | |
balanceDue | decimal | |
pastDueBalance | decimal |
Créer un client
curl --location --request POST 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/customers' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer JWTtoken' \
--data-raw '{
"name": "Dupont Jean",
"code": "CL00000001",
"type": "Particulier",
"legalForm": "SARL",
"discountRate": 0,
"settlementTermId": null,
"intracommunityVatNumber": "FR49330838947",
"siret": "33083894700043",
"customerGroupId": null,
"customerTypeId": 0,
"website": "https://voila.com",
"priceCategoryId": null,
"account": "C0000001",
"contactsDetail": {
"invoicing": {
"address": {
"street": "string",
"additionalStreet": "string",
"postCode": "string",
"city": "string",
"country": "string"
},
"contact": {
"civility": "string",
"lastname": "string",
"firstname": "string",
"phone": "string",
"mobile": "string",
"email": "toto@free.fr",
"service": "string"
}
},
"deliveryAddress": {
"street": "string",
"additionalStreet": "string",
"postCode": "string",
"city": "string",
"country": "string"
},
"deliveryContact": {
"civility": "string",
"lastname": "string",
"firstname": "string",
"phone": "string",
"mobile": "string",
"email": "",
"service": "string"
},
"headOfficeAddress": {
"street": "string",
"additionalStreet": "string",
"postCode": "string",
"city": "string",
"country": "string"
}
},
"anteriorDueAmount": null,
"anteriorDate": null
}'
Retour de la création d'un client
3
Crée un client
URL de la requête HTTP
POST /public/v1/customers
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
name | Nom ou raison sociale du client. | O | |
code | Code unique. | O | |
type | Type du client. Particulier, Entreprise ou Entité publique. | O | |
legalForm | Forme juridique. | ||
discountRate | Taux de remise en pourcentage. | ||
settlementTermId | Identifiant de la condition de règlement. | ||
intracommunityVatNumber | N° de TVA intracommunautaire. | ||
siret | Numéro de SIRET. | ||
customerGroupId | Identifiant de la famille de client. | ||
customerTypeId | Identifiant du type de client. | ||
website | Site internet. | ||
priceCategoryId | Identifiant de la catégorie tarifaire. | ||
account | Compte comptable. | ||
contactsDetail.invoicing.address.street | Adresse de facturation. | ||
contactsDetail.invoicing.address.additionalStreet | Complément d'adresse de facturation. | ||
contactsDetail.invoicing.address.postCode | Code postal de l'adresse de facturation. | ||
contactsDetail.invoicing.address.city | Ville de l'adresse de facturation. | ||
contactsDetail.invoicing.address.country | Pays de l'adresse de facturation. | ||
contactsDetail.invoicing.contact.civility | Civilité du contact de l'adresse de facturation. | ||
contactsDetail.invoicing.contact.firstname | Nom du contact de l'adresse de facturation. | ||
contactsDetail.invoicing.contact.lastname | Prénom du contact de l'adresse de facturation. | ||
contactsDetail.invoicing.contact.phone | Téléphone fixe du contact de l'adresse de facturation. | ||
contactsDetail.invoicing.contact.mobile | Téléphone portable du contact de l'adresse de facturation. | ||
contactsDetail.invoicing.contact.email | Adresse email du contact de l'adresse de facturation. | ||
contactsDetail.invoicing.contact.service | Service du contact de l'adresse de facturation. | ||
contactsDetail.deliveryAddress.street | Adresse de livraison. | ||
contactsDetail.deliveryAddress.additionalStreet | Complément d'adresse de livraison. | ||
contactsDetail.deliveryAddress.postCode | Code postal de l'adresse de livraison. | ||
contactsDetail.deliveryAddress.city | Ville de l'adresse de livraison. | ||
contactsDetail.deliveryAddress.country | Pays de l'adresse de livraison. | ||
contactsDetail.deliveryContact.civility | Civilité du contact de l'adresse de livraison. | ||
contactsDetail.deliveryContact.firstname | Nom du contact de l'adresse de livraison. | ||
contactsDetail.deliveryContact.lastname | Prénom du contact de l'adresse de livraison. | ||
contactsDetail.deliveryContact.phone | Téléphone fixe du contact de l'adresse de livraison. | ||
contactsDetail.deliveryContact.mobile | Téléphone portable du contact de l'adresse de livraison. | ||
contactsDetail.deliveryContact.email | Adresse email du contact de l'adresse de livraison. | ||
contactsDetail.deliveryContact.service | Service du contact de l'adresse de livraison. | ||
contactsDetail.headOfficeAddress.street | Adresse du siège social. | ||
contactsDetail.headOfficeAddress.additionalStreet | Complément d'adresse du siège social. | ||
contactsDetail.headOfficeAddress.postCode | Code postal de l'adresse du siège social. | ||
contactsDetail.headOfficeAddress.city | Ville de l'adresse du siège social. | ||
contactsDetail.headOfficeAddress.country | Pays de l'adresse du siège social. | ||
anteriorDueAmount | Montant restant dû de l'antériorité. | ||
anteriorDate | Date d'antériorité. |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Modifier un client
curl --location --request PUT 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/customers/3' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer JWTtoken' \
--data-raw '{
"name": "TOTO",
"code": "TOTO",
"type": "string",
"legalForm": "SARL",
"discountRate": {
"percent": 0
},
"settlementTermId": null,
"intracommunityVatNumber": "FR49330838947",
"siret": "33083894700043",
"customerGroupId": null,
"customerTypeId": 0,
"website": "string",
"priceCategoryId": null,
"account": "string",
"contactsDetail": {
"invoicing": {
"address": {
"street": "string",
"additionalStreet": "string",
"postCode": "string",
"city": "string",
"country": "string"
},
"contact": {
"civility": "string",
"lastname": "string",
"firstname": "string",
"phone": "string",
"mobile": "string",
"email": "toto@free.fr",
"service": "string"
}
},
"deliveryAddress": {
"street": "string",
"additionalStreet": "string",
"postCode": "string",
"city": "string",
"country": "string"
},
"deliveryContact": {
"civility": "string",
"lastname": "string",
"firstname": "string",
"phone": "string",
"mobile": "string",
"email": "",
"service": "string"
},
"headOfficeAddress": {
"street": "string",
"additionalStreet": "string",
"postCode": "string",
"city": "string",
"country": "string"
}
},
"anteriorDueAmount": null,
"anteriorDate": null
}'
Retour de la modification d'un client
3
Modifie un client
URL de la requête HTTP
PUT /public/v1/customers/{IdCustomer}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
id | Identifiant du client. | O | |
name | Nom ou raison sociale du client. | O | |
code | Code unique. | O | |
type | Type du client. Particulier, Entreprise ou Entité publique. | ||
legalForm | Forme juridique. | ||
discountRate | Taux de remise en pourcentage. | ||
settlementTermId | Identifiant de la condition de règlement. | ||
intracommunityVatNumber | N° de TVA intracommunautaire. | ||
siret | Numéro de SIRET. | ||
customerGroupId | Identifiant de la famille de client. | ||
customerTypeId | Identifiant du type de client. | ||
website | Site internet. | ||
priceCategoryId | Identifiant de la catégorie tarifaire. | ||
account | Compte comptable. | ||
contactsDetail.invoicing.address.street | Adresse de facturation. | ||
contactsDetail.invoicing.address.additionalStreet | Complément d'adresse de facturation. | ||
contactsDetail.invoicing.address.postCode | Code postal de l'adresse de facturation. | ||
contactsDetail.invoicing.address.city | Ville de l'adresse de facturation. | ||
contactsDetail.invoicing.address.country | Pays de l'adresse de facturation. | ||
contactsDetail.invoicing.contact.civility | Civilité du contact de l'adresse de facturation. | ||
contactsDetail.invoicing.contact.firstname | Nom du contact de l'adresse de facturation. | ||
contactsDetail.invoicing.contact.lastname | Prénom du contact de l'adresse de facturation. | ||
contactsDetail.invoicing.contact.phone | Téléphone fixe du contact de l'adresse de facturation. | ||
contactsDetail.invoicing.contact.mobile | Téléphone portable du contact de l'adresse de facturation. | ||
contactsDetail.invoicing.contact.email | Adresse email du contact de l'adresse de facturation. | ||
contactsDetail.invoicing.contact.service | Service du contact de l'adresse de facturation. | ||
contactsDetail.deliveryAddress.street | Adresse de livraison. | ||
contactsDetail.deliveryAddress.additionalStreet | Complément d'adresse de livraison. | ||
contactsDetail.deliveryAddress.postCode | Code postal de l'adresse de livraison. | ||
contactsDetail.deliveryAddress.city | Ville de l'adresse de livraison. | ||
contactsDetail.deliveryAddress.country | Pays de l'adresse de livraison. | ||
contactsDetail.deliveryContact.civility | Civilité du contact de l'adresse de livraison. | ||
contactsDetail.deliveryContact.firstname | Nom du contact de l'adresse de livraison. | ||
contactsDetail.deliveryContact.lastname | Prénom du contact de l'adresse de livraison. | ||
contactsDetail.deliveryContact.phone | Téléphone fixe du contact de l'adresse de livraison. | ||
contactsDetail.deliveryContact.mobile | Téléphone portable du contact de l'adresse de livraison. | ||
contactsDetail.deliveryContact.email | Adresse email du contact de l'adresse de livraison. | ||
contactsDetail.deliveryContact.service | Service du contact de l'adresse de livraison. | ||
contactsDetail.headOfficeAddress.street | Adresse du siège social. | ||
contactsDetail.headOfficeAddress.additionalStreet | Complément d'adresse du siège social. | ||
contactsDetail.headOfficeAddress.postCode | Code postal de l'adresse du siège social. | ||
contactsDetail.headOfficeAddress.city | Ville de l'adresse du siège social. | ||
contactsDetail.headOfficeAddress.country | Pays de l'adresse du siège social. | ||
anteriorDueAmount | Montant restant dû de l'antériorité. | ||
anteriorDate | Date d'antériorité. |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Nom | Type | Description |
---|---|---|
IsCustomer | integer | Identifiant du client. |
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Supprimer un client
curl --location --request DELETE 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/customers/{IdCustomer}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la suppression d'un client
1
Si le client n'existe pas, une erreur HTTP 404 est retournée avec un retour JSON spécifique.
Retour en erreur
{
"status": 404,
"errorCode": "Customer.NotFound",
"data": {},
"message": "EntityId : 1. Le client est introuvable."
}
Supprime un article
URL de la requête HTTP
DELETE /public/v1/customers/{IdCustomer}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdCustomer | Identifiant l'article. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Obtenir l'indicateur du palmarès des meilleurs clients
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/dashboards/best-customers-indicator' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour sur l'indicateur du palmarès des meilleurs clients
{
"totalAmount": 34831.970000000000000000000000,
"bestCustomers": [
{
"name": "KRAP'S",
"totalAmount": 34831.970000000000000000000000
}
]
}
Récupère le palmarès des meilleurs clients
URL de la requête HTTP
GET /public/v1/dashboards/best-customers-indicator
Requête
Cette API ne prend aucun paramètre.
Si vous saisissez néanmoins des paramètres, ils seront ignorés.
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description | -------------- | -------------- | totalAmount | decimal | Montant total, tout client confondu. | bestCustomers.name | string | Nom du client. | bestCustomers.totalAmount | decimal | Montant total pour ce client. |
Obtenir l'indicateur de l'encours clients
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/dashboards/commitment-customer-indicator' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour sur l'indicateur de l'encours client
{
"totalAmount": 41798.370000000000000000000000,
"totalOverdueAmount": 0.0000000000000000000000000000,
"totalFallingDueAmount": 41798.370000000000000000000000
}
Récupère le détail de l'encours client
URL de la requête HTTP
GET /public/v1/dashboards/commitment-customer-indicator
Requête
Cette API ne prend aucun paramètre.
Si vous saisissez néanmoins des paramètres, ils seront ignorés.
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
totalAmount | decimal | Montant total, tout client confondu. |
totalOverdueAmount | decimal | Montant total à venir. |
totalFallingDueAmount | decimal | Montant total en retard. |
Obtenir l'indicateur du détail de l'encours client
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/dashboards/sale-amount-indicator' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour sur l'indicateur du montant HT mensuel
Format : text
34831.970000000000000000000000
Récupère le détail de l'encours client
URL de la requête HTTP
GET /public/v1/dashboards/sale-amount-indicator
Requête
Cette API ne prend aucun paramètre.
Si vous saisissez néanmoins des paramètres, ils seront ignorés.
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
TotalAmount | decimal | Montant total HT mensuel. |
Obtenir l'indicateur du taux de transformation des devis
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/dashboards/sale-quote-indicator' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de l'indicateur sur les devis
{
"rate": 100,
"invoicedSaleQuotesCount": 13,
"totalSaleQuotesCount": 13
}
Récupère le détail du taux de transformation des devis
URL de la requête HTTP
GET /public/v1/dashboards/sale-quote-indicator
Requête
Cette API ne prend aucun paramètre.
Si vous saisissez néanmoins des paramètres, ils seront ignorés.
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
rate | decimal | Taux de transformation en pourcentage. |
invoicedSaleQuotesCount | integer | Nombre de devis facturés |
totalSaleQuotesCount | integer | Nombre total de devis |
Obtenir un article de type [Marchandise]
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/items/goods/{IdItem}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération d'un article de type [Marchandise]
{
"id": 1,
"code": "ARTBIEN",
"label": "Article bien",
"natureId": 1,
"itemGroupId": null,
"priceVatExcluded": 1545.0000000000000000000000000,
"vatId": 5,
"vatRate": 20.000000000000000000000000000,
"priceVatIncluded": 1854.0000000000000000000000000,
"description": "",
"salesQuantity": 1.0000000000000000000000000000,
"saleUnitId": 6,
"canDelete": false,
"costPriceAndMargin": {
"costPriceVatExcluded": 0.0000000000000000000000000000,
"marginAmount": 1545.0000000000000000000000000,
"marginRate": 100.00000000000000000000000000
}
}
Récupère un article de type [Marchandise]
URL de la requête HTTP
GET /public/v1/items/goods/{IdItem}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdItem | Identifiant de l'article. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant de l'article. |
code | string | Code unique de l'article. |
label | string | Libellé ou désignation de l'article. |
natureId | integer / null | Identifiant de la nature d'article. |
itemGroupId | integer / null | Identifiant de la famille d'article. |
prixVatExcluded | decimal | Prix HT de l'article. |
vatId | integer | Identifiant du taux de TVA. |
vatRate | decimal | Taux de TVA associé. |
priceVatIncluded | decimal | Prix TTC de l'article. |
description | string | Description détaillée de l'article. |
salesQuantity | decimal | Quantité de vente de l'article. |
saleUnitId | integer / null | Identifiant de l'unité de vente de l'article. |
canDelete | boolean | Indique si l'article peut être supprimé. |
costPriceAndMargin.costPriceVatExcluded | decimal | Prix de revient HT de l'article. |
costPriceAndMargin.marginAmount | decimal | Montant de la marge de l'article. |
costPriceAndMargin.marginRate | decimal | Taux de la marge de l'article en pourcentage. |
Créer un article de type [Marchandise]
curl --location --request POST 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/items/goods' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
-form 'file=@"/path/to/file"' \
--form 'code="ART0001"' \
--form 'label="Doudou teddy bear"' \
--form 'priceVatExcluded="199,99"' \
--form 'description="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam pellentesque finibus eros at semper. Fusce a venenatis sem. In euismod consectetur massa, in placerat sapien condimentum ut. Aliquam varius quam sit amet metus tempor vestibulum. Nulla congue et magna sit amet viverra. Quisque ullamcorper ligula vitae vestibulum facilisis. Suspendisse pharetra cursus massa eu egestas.
"' \
--form 'vatId="5"' \
--form 'natureId="2"' \
--form 'priceVatIncluded="239,99"' \
--form 'salesQuantity="1"' \
--form 'costPriceAndMargin.costPriceVatExcluded="130,50"' \
--form 'costPriceAndMargin.marginAmount="69,49"' \
--form 'costPriceAndMargin.marginRate="53,25"' \
--form 'ecoContribution.label="Appareil éléctrique"' \
--form 'ecoContribution.amountVatExcluded="5,00"' \
--form 'ecoContribution.amountVatIncluded="5,00"' \
--form 'ecoContribution.includeAmountInSalePrice="false"'
Retour de la création d'un article de type [Bien]
7
Crée un nouvel article de type [Marchandise]
URL de la requête HTTP
POST /public/v1/items/goods
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
file | Chemin vers le fichier source de l'image de l'article sur votre ordinateur. | N | |
code | Code de l'article. | N | |
label | Désignation de l'article. | N | |
priceVatExcluded | Prix HT de l'article. | O | |
description | Description détaillée de l'article. | O | |
vatId | Identifiant du taux de TVA de l'article. | O | |
natureId | Identifiant de la nature de l'article. | O | |
priceVatExcluded | Prix TTC de l'article. | O | |
salesQuantity | Quantité de vente de l'article. | O | |
costPriceAndMargin.costPriceVatExcluded | Prix de revient HT de l'article. | O | |
costPriceAndMargin.marginAmount | Marge en montant de l'article. | O | |
costPriceAndMargin.marginRate | Marge en pourcentage de l'article. | O | |
ecoContribution.amountVatExcluded | Montant HT de l'éco-contribution de l'article. | O | |
ecoContribution.amountVatIncluded | Montant TTC de l'éco-contribution de l'article. | O | |
ecoContribution.includeAmountInSalePrice | Indique si le montant doit être inclus dans le prix de vente de l'article. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Modifier un article de type [Marchandise]
curl --location --request PUT 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/items/goods/{IdItem}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
-form 'file=@"/path/to/file"' \
--form 'code="ART0001"' \
--form 'label="Doudou teddy bear"' \
--form 'priceVatExcluded="199,99"' \
--form 'description="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam pellentesque finibus eros at semper. Fusce a venenatis sem. In euismod consectetur massa, in placerat sapien condimentum ut. Aliquam varius quam sit amet metus tempor vestibulum. Nulla congue et magna sit amet viverra. Quisque ullamcorper ligula vitae vestibulum facilisis. Suspendisse pharetra cursus massa eu egestas.
"' \
--form 'vatId="5"' \
--form 'natureId="2"' \
--form 'priceVatIncluded="239,99"' \
--form 'salesQuantity="1"' \
--form 'costPriceAndMargin.costPriceVatExcluded="130,50"' \
--form 'costPriceAndMargin.marginAmount="69,49"' \
--form 'costPriceAndMargin.marginRate="53,25"' \
--form 'ecoContribution.label="Appareil éléctrique"' \
--form 'ecoContribution.amountVatExcluded="5,00"' \
--form 'ecoContribution.amountVatIncluded="5,00"' \
--form 'ecoContribution.includeAmountInSalePrice="false"'
Retour de la modification d'un article de type [Marchandise]
7
Modifie un nouvel article de type [Marchandise]
URL de la requête HTTP
PUT /public/v1/items/goods
Form
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
file | Chemin vers le fichier source de l'image de l'article sur votre ordinateur. | N | |
code | Code de l'article. | N | |
label | Désignation de l'article. | N | |
priceVatExcluded | Prix HT de l'article. | O | |
description | Description détaillée de l'article. | O | |
vatId | Identifiant du taux de TVA de l'article. | O | |
natureId | Identifiant de la nature de l'article. | O | |
priceVatExcluded | Prix TTC de l'article. | O | |
salesQuantity | Quantité de vente de l'article. | O | |
costPriceAndMargin.costPriceVatExcluded | Prix de revient HT de l'article. | O | |
costPriceAndMargin.marginAmount | Marge en montant de l'article. | O | |
costPriceAndMargin.marginRate | Marge en pourcentage de l'article. | O | |
ecoContribution.amountVatExcluded | Montant HT de l'éco-contribution de l'article. | O | |
ecoContribution.amountVatIncluded | Montant TTC de l'éco-contribution de l'article. | O | |
ecoContribution.includeAmountInSalePrice | Indique si le montant doit être inclus dans le prix de vente de l'article. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Supprimer une article de type [Marchandise]
curl --location --request DELETE 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/items/goods/{IdItem}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la suppression d'un article de type [Marchandise]
1
Si l'article n'existe pas, une erreur HTTP 404 est retournée avec un retour JSON spécifique.
Retour en erreur
json { "status": 404, "errorCode": "Item.NotFound", "data": {}, "message": "EntityId : 1. L'article est introuvable." }
Supprime un article de type [Marchandise]
URL de la requête HTTP
DELETE /public/v1/items/goods/{IdItem}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdItem | Identifiant l'article. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Obtenir une liste des familles de client
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/item-groups?take=1&skip=0' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération de la liste des familles d'articles
{
"take": null,
"skip": null,
"total": 1,
"elements": [
{
"id": 1,
"label": "Matériel informatique",
"vatId": 0,
"canDelete": true
}
]
}
Récupère la liste des familles d'articles
URL de la requête HTTP
GET /public/v1/item-groups
Requête
Le tableau ci-dessous vous indique les différents paramètres à fournir en paramètre de la requête de récupération de données. Les noms des paramètres sont à fournir en CamelCase. Plus de détails sur ce lien.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
take | Nombre d'éléments à retourner. | N | |
skip | Nombre d'éléments à ignorer avant de commencer à retourner. | N | |
sortingOrder.property | Nom du champ utilisé pour le tri. | N | |
sortingOrder.sortType | Sens de tri (Croissant / décroissant). Doit être une valeur du type SortType. Par défaut : Croissant. | N | |
filter.query | Terme recherché pour le filtrage. | N |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans un tableau dans la propriété elements
décrit ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant de la famille d'articles. |
label | string | Libellé. |
vatId | integer | Identifiant du taux de TVA. |
canDelete | boolean | Indique si le moyen peut être supprimé. |
Obtenir une famille d'article
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/item-groups/{IdItemGroup}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération d'une famille d'article
{
"id": 1,
"label": "Pros.",
"vatId": 5,
"canDelete": false
}
Récupère une famille d'articles
URL de la requête HTTP
GET /public/v1/item-groups/{IdItemGroup}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdItemGroup | Identifiant de la famille d'article. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant de la famille d'articles. |
label | string | Libellé. |
vatId | integer | Identifiant du taux de TVA. |
canDelete | boolean | Indique si le moyen peut être supprimé. |
Créer une famille d'article
curl --location --request POST 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/item-groups' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer JWTtoken' \
--data '{
"label": "Clients VIP",
"vatId": 1
}'
Retour de la création d'une famille d'article
3
Crée une nouvelle famille d'articles
URL de la requête HTTP
POST /public/v1/item-groups
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Label | Libellé de la famille d'article. | O | |
VatId | Identifiant du taux de TVA à appliquer. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Modifier une famille d'article
curl --location --request PUT 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/item-groups/3' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer JWTtoken' \
--data '{
"label": "Etablissement de santé",
"VatId": 1
}'
Retour de la modification d'une famille d'article
3
Modifie une famille d'articles
URL de la requête HTTP
PUT /public/v1/item-groups/{IdItemGroup}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdItemGroup | Identifiant de la famille d'article. | O | |
Label | Libellé de la famille d'article. | O | |
VatId | Identifiant du taux de TVA à appliquer. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Supprimer une famille d'article
curl --location --request DELETE 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/item-groups/{IdItemGroup}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la suppression d'une famille d'article
1
Si la famille d'article n'existe pas, une erreur HTTP 404 est retournée avec un retour JSON spécifique.
Retour en erreur
json { "status": 404, "errorCode": "ItemGroup.NotFound", "data": {}, "message": "EntityId : 100. La famille d'articles est introuvable." }
Supprime une famille d'article
URL de la requête HTTP
DELETE /public/v1/item-groups/{IdItemGroup}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdItemGroup | Identifiant de la famille d'article. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Obtenir une liste des articles
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/items?take=1&skip=0' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération de la liste des articles
{
"take": 5,
"skip": 0,
"total": 4,
"elements": [
{
"id": 1,
"code": "ARTBIEN",
"label": "Article bien",
"itemType": "GoodItem",
"vatRate": 20.000000000000000000000000000,
"priceVatExcluded": 1545.0000000000000000000000000,
"priceVatIncluded": 1545.0000000000000000000000000,
"canDelete": false,
"itemStatus": 0
},
{
"id": 2,
"code": "ARTSERV",
"label": "Article service",
"itemType": "ServiceItem",
"vatRate": 20.000000000000000000000000000,
"priceVatExcluded": 316.66000000000000000000000000,
"priceVatIncluded": 316.66000000000000000000000000,
"canDelete": true,
"itemStatus": 0
},
{
"id": 3,
"code": "AR00000001",
"label": "Pédale gauche pour VTT",
"itemType": "GoodItem",
"vatRate": 20.000000000000000000000000000,
"priceVatExcluded": 45.990000000000000000000000000,
"priceVatIncluded": 45.990000000000000000000000000,
"canDelete": false,
"itemStatus": 0
},
{
"id": 4,
"code": "AR00000002",
"label": "Pédale droite pour VTT",
"itemType": "GoodItem",
"vatRate": 20.000000000000000000000000000,
"priceVatExcluded": 44.990000000000000000000000000,
"priceVatIncluded": 44.990000000000000000000000000,
"canDelete": false,
"itemStatus": 0
}
]
}
Récupère la liste des articles (tout type confondu)
URL de la requête HTTP
GET /public/v1/items
Requête
Le tableau ci-dessous vous indique les différents paramètres à fournir en paramètre de la requête de récupération de données. Les noms des paramètres sont à fournir en CamelCase. Plus de détails sur ce lien.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
take | Nombre d'éléments à retourner. | N | |
skip | Nombre d'éléments à ignorer avant de commencer à retourner. | N | |
sortingOrder.property | Nom du champ utilisé pour le tri. | N | |
sortingOrder.sortType | Sens de tri (Croissant / décroissant). Doit être une valeur du type SortType. Par défaut : Croissant. | N | |
filter.query | Terme recherché pour le filtrage. | N |
Récupère la liste des articles que vous pouvez filter et/ou paginer à votre convenance.
URL de la requête HTTP
GET /public/v1/items
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Take | Nombre d'éléments à retourner. | N | |
Skip | Nombre d'éléments à ignorer avant de commencer à retourner. | N | |
SortingOrder.Property | Nom du champ utilisé pour le tri. | N | |
SortingOrder.SortType | Sens de tri (Croissant / décroissant). | N | |
Filter.Query | Terme recherché pour le filtrage. | N |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans un tableau dans la propriété elements
décrit ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant de l'article. |
code | string | Code unique de l'article. |
label | string | Libellé ou désignation de l'article. |
itemType | GoodItem (Marchandises) /ServiceItem (Services) | Type de l'article. |
vatRate | decimal | Taux de TVA applicable à l'article. |
prixVatExcluded | decimal | Prix HT de l'article. |
prixVaIIncluded | decimal | Prix TTC de l'article. |
canDelete | boolean | L'article peut être supprimé. |
itemStatus | ItemStatus | Etat de disponibilité de l'article. |
Obtenir une liste des moyens de paiement
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/payment-modes?take=1&skip=0&filter.query=bancaire' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération de la liste des moyens de paiement
{
"take": 2,
"skip": null,
"total": 1,
"elements": [
{
"id": 1,
"label": "Carte bancaire",
"paymentModeType": 3,
"isDefault": true,
"canDelete": false
}
]
}
Récupère la liste des moyens de paiement que vous pouvez filter et/ou paginer à volonté.
URL de la requête HTTP
GET /public/v1/payment-modes
Requête
Le tableau ci-dessous vous indique les différents paramètres à fournir en paramètre de la requête de récupération de données. Les noms des paramètres sont à fournir en CamelCase. Plus de détails sur ce lien.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
take | Nombre d'éléments à retourner. | N | |
skip | Nombre d'éléments à ignorer avant de commencer à retourner. | N | |
sortingOrder.property | Nom du champ utilisé pour le tri. | N | |
sortingOrder.sortType | Sens de tri (Croissant / décroissant). Doit être une valeur du type SortType. Par défaut : Croissant. | N | |
filter.query | Terme recherché pour le filtrage. | N |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans un tableau dans la propriété elements
décrit ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant du moyen de paiement. |
label | string | Libellé du moyen de paiement. |
paymentModeType | PaymentMode | Type de paiement. |
isDefault | boolean | Indique s'il s'agit du moyen par défaut. |
canDelete | boolean | Indique si le moyen peut être supprimé. |
Obtenir un moyen de paiement
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/payment-modes/{IdPaymentMode}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération d'un moyen de paiement
{
"id": 1,
"label": "Carte bancaire",
"paymentModeType": 3,
"isDefault": true,
"canDelete": false
}
Récupère un moyen de paiement
URL de la requête HTTP
GET /public/v1/payment-modes/{IdPaymentMode}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdPaymentMode | Identifiant du moyen de paiement. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
La réponse est retournée dans un tableau dans la propriété elements
décrit ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant du moyen de paiement. |
label | string | Libellé du moyen de paiement. |
paymentModeType | PaymentMode | Type de paiement. |
isDefault | boolean | Indique s'il s'agit du moyen par défaut. |
canDelete | boolean | Indique si le moyen peut être supprimé. |
Créer un moyen de paiement
curl --location --request POST 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/payment-modes' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer JWTtoken' \
--data '{
"label": "Pesos",
"paymentModeType": 6
}'
Retour de la création d'un moyen de paiement
3
Crée un moyen de paiement
URL de la requête HTTP
POST /public/v1/payment-modes
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
label | Libellé du moyen de paiement | O | |
paymentModeType | PaymentMode | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Modifier un moyen de paiement
curl --location --request PUT 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/payment-modes/{idPaymentMode}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer JWTtoken' \
--data '{
"label": "Pesos",
"paymentModeType": 6
}'
Retour de la modification d'un moyen de paiement
3
Modifie un moyen de paiement
URL de la requête HTTP
PUT /public/v1/payment-modes
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
idPaymentMode | Identifiant du moyen de paiement | O | |
label | Libellé du moyen de paiement. | O | |
paymentModeType | PaymentMode | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Supprimer un moyen de paiement
curl --location --request DELETE 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/payment-modes/{IdPaymentMode}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la suppression d'un moyen de paiement
1
Si le moyen de paiement n'existe pas, une erreur HTTP 404 est retournée avec un retour JSON spécifique.
Retour en erreur
json { "status": 404, "errorCode": "PaymentMode.NotFound", "data": {}, "message": "EntityId : 1. Le moyen de paiement est introuvable." }
Supprime un moyen de paiement
URL de la requête HTTP
DELETE /public/v1/payment-modes/{IdPaymentMode}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdPaymentMode | Identifiant du moyen de paiement. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Obtenir un nom du modèle d'impression par défaut
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/printing-models/default-name' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération du nom du modèle d'impression par défaut
{
"id": 4,
"type": 2,
"name": "Marge en couleur (personnalisé)"
}
Récupère le nom du modèle d'impression par défaut
URL de la requête HTTP
GET /public/v1/printing-models/default-name
Requête
Cette API ne prend aucun paramètre.
Si vous saisissez néanmoins des paramètres, ils seront ignorés.
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant du modèle d'impression. |
type | PrintingModelType | Type du modèle d'impression. |
name | string | Nom du modèle d'impression. |
Obtenir une liste des modèles d'impression
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/printing-models/get-list' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération de la liste des modèles d'impression
[
{
"id": 1,
"type": 0,
"name": "Épuré",
"parentId": 0,
"customization": {
"color": {
"theme": "#888888",
"contrast": "White",
"type": "Custom"
},
"fontFamily": "Roboto",
"sellerInfos": null,
"columnCustomizations": null
},
"isDefault": false
},
{
"id": 2,
"type": 1,
"name": "Classique",
"parentId": 0,
"customization": {
"color": {
"theme": "#888888",
"contrast": "White",
"type": "Custom"
},
"fontFamily": "Roboto",
"sellerInfos": null,
"columnCustomizations": null
},
"isDefault": false
},
{
"id": 3,
"type": 2,
"name": "Marge en couleur",
"parentId": 0,
"customization": {
"color": {
"theme": "#F9B249",
"contrast": "Black",
"type": "Custom"
},
"fontFamily": "Roboto",
"sellerInfos": null,
"columnCustomizations": null
},
"isDefault": false
},
{
"id": 4,
"type": 2,
"name": "Marge en couleur (personnalisé)",
"parentId": 3,
"customization": {
"color": {
"theme": "#42A5F5",
"contrast": "Black",
"type": "Theme"
},
"fontFamily": "Roboto",
"sellerInfos": [
{
"label": "Adresse",
"isVisible": true
},
{
"label": "Adresse e-mail",
"isVisible": true
},
{
"label": "Numéro de téléphone",
"isVisible": true
}
],
"columnCustomizations": [
{
"id": null,
"label": "Code article",
"isVisible": true
},
{
"id": null,
"label": "Description",
"isVisible": true
},
{
"id": null,
"label": "Quantité",
"isVisible": true
},
{
"id": null,
"label": "Prix HT",
"isVisible": true
},
{
"id": null,
"label": "Prix TTC",
"isVisible": true
},
{
"id": null,
"label": "Montant HT",
"isVisible": true
},
{
"id": null,
"label": "Montant TTC",
"isVisible": true
},
{
"id": null,
"label": "Remise",
"isVisible": true
},
{
"id": null,
"label": "TVA",
"isVisible": true
}
]
},
"isDefault": true
},
{
"id": 5,
"type": 2,
"name": "Marge en couleur (personnalisé) 1",
"parentId": 3,
"customization": {
"color": {
"theme": "#BE85FF",
"contrast": "Black",
"type": "Theme"
},
"fontFamily": "Roboto",
"sellerInfos": [
{
"label": "Adresse",
"isVisible": true
},
{
"label": "Adresse e-mail",
"isVisible": true
},
{
"label": "Numéro de téléphone",
"isVisible": true
}
],
"columnCustomizations": [
{
"id": null,
"label": "Code article",
"isVisible": true
},
{
"id": null,
"label": "Description",
"isVisible": true
},
{
"id": null,
"label": "Quantité",
"isVisible": true
},
{
"id": null,
"label": "Prix HT",
"isVisible": true
},
{
"id": null,
"label": "Prix TTC",
"isVisible": true
},
{
"id": null,
"label": "Montant HT",
"isVisible": true
},
{
"id": null,
"label": "Montant TTC",
"isVisible": true
},
{
"id": null,
"label": "Remise",
"isVisible": true
},
{
"id": null,
"label": "TVA",
"isVisible": true
}
]
},
"isDefault": false
}
]
Récupère la liste des modèles d'impression que vous pouvez filter et/ou paginer à votre convenance.
URL de la requête HTTP
GET /public/v1/printing-models
Requête
Cette API ne prend aucun paramètre.
Si vous saisissez néanmoins des paramètres, ils seront ignorés.
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans un tableau dans la propriété elements
décrit ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant du modèle d'impression. |
type | PrintingModelType | Type du modèle d'impression. |
name | string | Nom du modèle d'impression. |
parentId | integer / null | Identifiant du modèle d'impression d'origine (pour les modèles personnalisés). |
customization | string | Personnalisation au format JSON. |
isDefault | boolean | Indique si le modèle est défini par défaut. |
Obtenir une liste des noms des modèles d'impression
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/printing-models/default-name' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la liste des noms des modèles d'impression
[
{
"id": 1,
"type": 0,
"name": "Épuré"
},
{
"id": 2,
"type": 1,
"name": "Classique"
},
{
"id": 3,
"type": 2,
"name": "Marge en couleur"
},
{
"id": 4,
"type": 2,
"name": "Marge en couleur (personnalisé)"
},
{
"id": 5,
"type": 2,
"name": "Marge en couleur (personnalisé) 1"
}
]
Récupère la liste des noms modèles d'impression
URL de la requête HTTP
GET /public/v1/printing-models/names
Requête
Cette API ne prend aucun paramètre.
Si vous saisissez néanmoins des paramètres, ils seront ignorés.
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans un tableau décrit ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant du modèle d'impression. |
type | PrintingModelType | Type du modèle d'impression. |
name | string | Nom du modèle d'impression. |
Obtenir une liste des échéances
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-commitments?take=10&skip=0&filer.query=krap%27s%' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération de la liste des échéances
{
"take": 2,
"skip": 0,
"total": 36,
"elements": [
{
"id": "08dbfa2d-5a37-4121-8099-b0dd1d7350b2",
"date": "2023-12-10T00:00:00Z",
"customer": {
"id": 1,
"name": "KRAP'S",
"code": "CL00000001"
},
"document": {
"id": 8,
"number": "FA00000001",
"documentStatus": 1,
"documentType": 2,
"commitmentAssociationId": 0
},
"paymentMode": "Carte bancaire",
"amount": 11.100000000000000000000000000,
"remainingAmount": 0.0000000000000000000000000000
},
{
"id": "08dbfa35-a7a4-487c-8d02-3abb7978fcdc",
"date": "2023-12-10T00:00:00Z",
"customer": {
"id": 1,
"name": "KRAP'S",
"code": "CL00000001"
},
"document": {
"id": 18,
"number": "FA00000002",
"documentStatus": 1,
"documentType": 2,
"commitmentAssociationId": 0
},
"paymentMode": "Paypal",
"amount": 4.4400000000000000000000000000,
"remainingAmount": 0.0000000000000000000000000000
}
]
}
Récupère la liste des échéances que vous pouvez filter et/ou paginer à votre convenance.
URL de la requête HTTP
GET /public/v1/sale-commitments
Requête
Le tableau ci-dessous vous indique les différents paramètres à fournir en paramètre de la requête de récupération de données. Les noms des paramètres sont à fournir en CamelCase. Plus de détails sur ce lien.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
take | Nombre d'éléments à retourner. | N | |
skip | Nombre d'éléments à ignorer avant de commencer à retourner. | N | |
sortingOrder.property | Nom du champ utilisé pour le tri. | N | |
sortingOrder.sortType | Sens de tri (Croissant / décroissant). Doit être une valeur du type SortType. Par défaut : Croissant. | N | |
filter.query | Terme recherché pour le filtrage. | N |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans un tableau dans la propriété elements
décrit ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant de l'échéance. |
date | datetime | Date de l'échéance. |
customer.id | integer | Identifiant du client. |
customer.name | string | Nom du client. |
customer.code | string | Code du client. |
document.id | integer | Identifiant du document. |
document.number | string | Référence du document. |
document.documentStatus | SaleDocumentStatus | Etat du document. |
document.documentType | SaleDocumentType | Type de document. |
document.commitmentAssociationId | string | Identifiant de l'association entre l'échéance et le document. |
paymentMode | PaymentMode | Moyen de paiement. |
amount | decimal | Montant de l'échéance. |
remainingAmount | decimal | Restant dû. |
Obtenir un avoir validé
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-credits/validated/{IdSaleCredit}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération d'un avoir validé
{
"priceCategoryId": 1,
"commitments": [
{
"date": "2023-12-20T00:00:00Z",
"percent": 100.00000000000000000000000000,
"amount": -53.990000000000000000000000000,
"remainingAmount": -53.990000000000000000000000000,
"paymentModeId": 1
}
],
"id": 37,
"name": "KRAP'S",
"siret": "",
"intracommunityVatNumber": "",
"isExemptionVat": false,
"territoriality": 0,
"customerId": 1,
"customerTypeId": 2,
"date": "2023-12-20T00:00:00Z",
"title": "",
"number": "AV00000004",
"exemptionNoticeId": 4,
"useVatIncludedInvoicingMode": false,
"vatPayabilityType": 2,
"informationsToPrint": "",
"addresses": {
"invoicing": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
},
"delivery": null,
"headOffice": null,
"deliveryIsTheSameAsInvoicing": false,
"headOfficeIsTheSameAsInvoicing": false
},
"lines": [
{
"costPriceVatExcluded": 0.0000000000000000000000000000,
"vatRateId": null,
"saleUnitId": null,
"id": 38,
"description": "Pédale droite pour VTT",
"itemId": 4,
"applyMargin": false,
"lineType": 0,
"quantity": 1.0000000000000000000000000000,
"unitPrice": 44.990000000000000000000000000,
"vatRate": 20.000000000000000000000000000,
"totalAmountVatExcluded": 44.990000000000000000000000000,
"totalVatAmount": 9.000000000000000000000000000,
"totalAmountVatIncluded": 53.990000000000000000000000000,
"discountRate": 0.0000000000000000000000000000,
"discountAmount": null,
"detailedDescription": "",
"lineOrder": 0,
"ecoContribution": null
}
],
"footer": {
"totalAmountVatExcluded": 44.990000000000000000000000000,
"totalAmountVatIncluded": 53.990000000000000000000000000,
"totalDepositsAmountVatIncluded": 0.0000000000000000000000000000,
"netAmountVatIncluded": 53.990000000000000000000000000,
"totalVatAmount": 9.000000000000000000000000000,
"shippingCost": 0.0000000000000000000000000000,
"shippingVatRateId": 5,
"shippingVatRate": 20.000000000000000000000000000,
"discountRate": 0.0000000000000000000000000000,
"discountAmount": 0.0000000000000000000000000000,
"totalAmountNetVatExcluded": 44.990000000000000000000000000,
"totalAmountNetVatIncluded": 53.990000000000000000000000000,
"ecoContribution": null
},
"vatSummaryLines": [
{
"id": 117,
"rate": 20.000000000000000000000000000,
"baseAmountExcludedVat": 44.990000000000000000000000000,
"debitVatAmount": 0.0000000000000000000000000000,
"cashVatAmount": 9.000000000000000000000000000,
"totalVatAmount": 9.000000000000000000000000000,
"discountAmount": null
}
]
}
Récupère un avoir validé
URL de la requête HTTP
GET /public/v1/sale-credits/validated/{IdSaleCredit}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdSaleCredit | Identifiant de l'avoir. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
priceCategoryId | decimal | Identifiant de la catégorie tarifaire. |
commitments.date | string | Date de l'engagement. |
commitments.percent | decimal | Pourcentage de l'engagement. |
commitments.amount | decimal | Montant de l'engagement. |
commitments.remainingAmount | decimal | Montant restant de l'engagement. |
commitments.paymentModeId | decimal | Identifiant du mode de paiement de l'engagement. |
id | decimal | Identifiant. |
name | string | Nom. |
siret | string | Numéro de SIRET. |
intracommunityVatdecimal | string | N° de TVA intracommunautaire. |
isExemptionVat | boolean | Indique si une exonération de TVA est appliquée. |
territoriality | decimal | Territorialité. |
customerId | decimal | Identifiant du client. |
customerTypeId | decimal | Identifiant du type de client. |
date | string | Date du document. |
title | string | Titre du document. |
decimal | string | Numéro du document. |
exemptionNoticeId | decimal | Identifiant de l'exemption de TVA. |
useVatIncludedInvoicingMode | boolean | Indique si le mode de facturation inclut la TVA. |
vatPayabilityType | decimal | Type de redevabilité de la TVA. |
informationsToPrint | string | Informations à imprimer. |
addresses.invoicing.street | string | Adresse de facturation. |
addresses.invoicing.additionalStreet | string | Complément d'adresse de facturation. |
addresses.invoicing.postCode | string | Code postal de l'adresse de facturation. |
addresses.invoicing.city | string | Ville de l'adresse de facturation. |
addresses.invoicing.country | string | Pays de l'adresse de facturation. |
addresses.delivery.street | string | Adresse de livraison. |
addresses.delivery.additionalStreet | string | Complément d'adresse de livraison. |
addresses.delivery.postCode | string | Code postal de l'adresse de livraison. |
addresses.delivery.city | string | Ville de l'adresse de livraison. |
addresses.delivery.country | string | Pays de l'adresse de livraison. |
addresses.headOffice.street | string | Adresse du siège social. |
addresses.headOffice.additionalStreet | string | Complément d'adresse du siège social. |
addresses.headOffice.postCode | string | Code postal de l'adresse du siège social. |
addresses.headOffice.city | string | Ville de l'adresse du siège social. |
addresses.headOffice.country | string | Pays de l'adresse du siège social. |
lines.costPriceVatExcluded | decimal | Prix de revient HT. |
lines.vatRateId | decimal | Identifiant du taux de TVA de la ligne. |
lines.saleUnitId | integer | Identifiant de l'unité de vente de la ligne. |
lines.id | decimal | Identifiant de la ligne. |
lines.description | string | Description de la ligne d'article. |
lines.itemId | decimal | Identifiant de l'article. |
lines.applyMargin | boolean | Indique si la marge est appliquée à la ligne. |
lines.lineType | decimal | Type de ligne. |
lines.quantity | decimal | Quantité de la ligne. |
lines.unitPrice | decimal | Prix unitaire de la ligne. |
lines.vatRate | decimal | Taux de TVA de la ligne. |
lines.totalAmountVatExcluded | decimal | Montant total HT de la ligne. |
lines.totalVatAmount | decimal | Montant total de la TVA de la ligne. |
lines.totalAmountVatIncluded | decimal | Montant total TTC de la ligne. |
lines.discountRate | decimal | Taux de remise de la ligne. |
lines.discountAmount | decimal | Montant de remise de la ligne. |
lines.detailedDescription | string | Description détaillée de la ligne. |
lines.lineOrder | decimal | Ordre d'affichage de la ligne. |
lines.ecoContribution | null | Contribution écologique de la ligne. |
footer.totalAmountVatExcluded | decimal | Montant total HT du document. |
footer.totalAmountVatIncluded | decimal | Montant total TTC du document. |
footer.totalDepositsAmountVatIncluded | decimal | Montant total des acomptes TTC. |
footer.netAmountVatIncluded | decimal | Montant net TTC du document. |
footer.totalVatAmount | decimal | Montant total de la TVA du document. |
footer.shippingCost | decimal | Coût d'expédition. |
footer.shippingVatRateId | decimal | Identifiant du taux de TVA pour l'expédition. |
footer.shippingVatRate | decimal | Taux de TVA pour l'expédition. |
footer.discountRate | decimal | Taux de remise du document. |
footer.discountAmount | decimal | Montant de remise du document. |
footer.totalAmountNetVatExcluded | decimal | Montant total net HT du document. |
footer.totalAmountNetVatIncluded | decimal |
Obtenir un avoir provisoire
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-credits/{IdSaleCredit}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération d'un avoir provisoire
{
"priceCategoryId": 1,
"commitments": [
{
"date": "2023-12-20T00:00:00Z",
"percent": 100.00000000000000000000000000,
"amount": -53.990000000000000000000000000,
"remainingAmount": -53.990000000000000000000000000,
"paymentModeId": 1
}
],
"id": 36,
"name": "KRAP'S",
"siret": "",
"intracommunityVatdecimal": "",
"isExemptionVat": false,
"territoriality": 0,
"customerId": 1,
"customerTypeId": 2,
"date": "2023-12-20T00:00:00Z",
"title": "",
"decimal": "TMP00000017",
"exemptionNoticeId": 4,
"useVatIncludedInvoicingMode": false,
"vatPayabilityType": 2,
"informationsToPrint": "",
"addresses": {
"invoicing": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
},
"delivery": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
},
"headOffice": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
},
"deliveryIsTheSameAsInvoicing": true,
"headOfficeIsTheSameAsInvoicing": true
},
"lines": [
{
"costPriceVatExcluded": 0.0000000000000000000000000000,
"vatRateId": 5,
"saleUnitId": null,
"id": 37,
"description": "Pédale droite pour VTT",
"itemId": 4,
"applyMargin": false,
"lineType": 0,
"quantity": 1.0000000000000000000000000000,
"unitPrice": 44.990000000000000000000000000,
"vatRate": 20.000000000000000000000000000,
"totalAmountVatExcluded": 44.990000000000000000000000000,
"totalVatAmount": 9.000000000000000000000000000,
"totalAmountVatIncluded": 53.990000000000000000000000000,
"discountRate": 0.0000000000000000000000000000,
"discountAmount": null,
"detailedDescription": "",
"lineOrder": 0,
"ecoContribution": null
}
],
"footer": {
"totalAmountVatExcluded": 44.990000000000000000000000000,
"totalAmountVatIncluded": 53.990000000000000000000000000,
"totalDepositsAmountVatIncluded": 0.0000000000000000000000000000,
"netAmountVatIncluded": 53.990000000000000000000000000,
"totalVatAmount": 9.000000000000000000000000000,
"shippingCost": 0.0000000000000000000000000000,
"shippingVatRateId": 5,
"shippingVatRate": 20.000000000000000000000000000,
"discountRate": 0.0000000000000000000000000000,
"discountAmount": 0.0000000000000000000000000000,
"totalAmountNetVatExcluded": 44.990000000000000000000000000,
"totalAmountNetVatIncluded": 53.990000000000000000000000000,
"ecoContribution": null
},
"vatSummaryLines": [
{
"id": 116,
"rate": 20.000000000000000000000000000,
"baseAmountExcludedVat": 44.990000000000000000000000000,
"debitVatAmount": 0.0000000000000000000000000000,
"cashVatAmount": 9.000000000000000000000000000,
"totalVatAmount": 9.000000000000000000000000000,
"discountAmount": null
}
]
}
Récupère un avoir provisoire
URL de la requête HTTP
GET /public/v1/sale-credits/{IdSaleCredit}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdSaleCredit | Identifiant de l'avoir. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
priceCategoryId | decimal | Identifiant de la catégorie tarifaire. |
commitments.date | string | Date de l'engagement. |
commitments.percent | decimal | Pourcentage de l'engagement. |
commitments.amount | decimal | Montant de l'engagement. |
commitments.remainingAmount | decimal | Montant restant de l'engagement. |
commitments.paymentModeId | decimal | Identifiant du mode de paiement de l'engagement. |
id | decimal | Identifiant. |
name | string | Nom. |
siret | string | Numéro de SIRET. |
intracommunityVatdecimal | string | N° de TVA intracommunautaire. |
isExemptionVat | boolean | Indique si une exonération de TVA est appliquée. |
territoriality | decimal | Territorialité. |
customerId | decimal | Identifiant du client. |
customerTypeId | decimal | Identifiant du type de client. |
date | string | Date du document. |
title | string | Titre du document. |
decimal | string | Numéro du document. |
exemptionNoticeId | decimal | Identifiant de l'exemption de TVA. |
useVatIncludedInvoicingMode | boolean | Indique si le mode de facturation inclut la TVA. |
vatPayabilityType | decimal | Type de redevabilité de la TVA. |
informationsToPrint | string | Informations à imprimer. |
addresses.invoicing.street | string | Adresse de facturation. |
addresses.invoicing.additionalStreet | string | Complément d'adresse de facturation. |
addresses.invoicing.postCode | string | Code postal de l'adresse de facturation. |
addresses.invoicing.city | string | Ville de l'adresse de facturation. |
addresses.invoicing.country | string | Pays de l'adresse de facturation. |
addresses.delivery.street | string | Adresse de livraison. |
addresses.delivery.additionalStreet | string | Complément d'adresse de livraison. |
addresses.delivery.postCode | string | Code postal de l'adresse de livraison. |
addresses.delivery.city | string | Ville de l'adresse de livraison. |
addresses.delivery.country | string | Pays de l'adresse de livraison. |
addresses.headOffice.street | string | Adresse du siège social. |
addresses.headOffice.additionalStreet | string | Complément d'adresse du siège social. |
addresses.headOffice.postCode | string | Code postal de l'adresse du siège social. |
addresses.headOffice.city | string | Ville de l'adresse du siège social. |
addresses.headOffice.country | string | Pays de l'adresse du siège social. |
lines.costPriceVatExcluded | decimal | Prix de revient HT. |
lines.vatRateId | decimal | Identifiant du taux de TVA de la ligne. |
lines.saleUnitId | integer | Identifiant de l'unité de vente de la ligne. |
lines.id | decimal | Identifiant de la ligne. |
lines.description | string | Description de la ligne d'article. |
lines.itemId | decimal | Identifiant de l'article. |
lines.applyMargin | boolean | Indique si la marge est appliquée à la ligne. |
lines.lineType | decimal | Type de ligne. |
lines.quantity | decimal | Quantité de la ligne. |
lines.unitPrice | decimal | Prix unitaire de la ligne. |
lines.vatRate | decimal | Taux de TVA de la ligne. |
lines.totalAmountVatExcluded | decimal | Montant total HT de la ligne. |
lines.totalVatAmount | decimal | Montant total de la TVA de la ligne. |
lines.totalAmountVatIncluded | decimal | Montant total TTC de la ligne. |
lines.discountRate | decimal | Taux de remise de la ligne. |
lines.discountAmount | decimal | Montant de remise de la ligne. |
lines.detailedDescription | string | Description détaillée de la ligne. |
lines.lineOrder | decimal | Ordre d'affichage de la ligne. |
lines.ecoContribution | null | Contribution écologique de la ligne. |
footer.totalAmountVatExcluded | decimal | Montant total HT du document. |
footer.totalAmountVatIncluded | decimal | Montant total TTC du document. |
footer.totalDepositsAmountVatIncluded | decimal | Montant total des acomptes TTC. |
footer.netAmountVatIncluded | decimal | Montant net TTC du document. |
footer.totalVatAmount | decimal | Montant total de la TVA du document. |
footer.shippingCost | decimal | Coût d'expédition. |
footer.shippingVatRateId | decimal | Identifiant du taux de TVA pour l'expédition. |
footer.shippingVatRate | decimal | Taux de TVA pour l'expédition. |
footer.discountRate | decimal | Taux de remise du document. |
footer.discountAmount | decimal | Montant de remise du document. |
footer.totalAmountNetVatExcluded | decimal | Montant total net HT du document. |
footer.totalAmountNetVatIncluded | decimal |
Créer un avoir
curl --location --request POST 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-credits' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
--data '{
"Name": "Nom du client",
"Siret": "12345678901234",
"IntracommunityVatNumber": "FR12345678901",
"Territoriality": 0,
"DeliveryDate": "2023-11-07T12:00:00Z",
"ValidUntil": "2023-12-07T12:00:00Z",
"CustomerId": 2,
"QuoteStatus": 3,
"SettlementTermId": 2,
"Date": "2023-11-07T12:00:00Z",
"Title": "Titre du document",
"PriceCategoryId": 1,
"ExemptionNoticeId": 4,
"UseVatIncludedInvoicingMode": true,
"VatPayabilityType": 1,
"InformationsToPrint": "Informations à imprimer",
"Addresses": {
"Invoicing": {
"Street": "123 Rue de la Facturation",
"AdditionalStreet": "Appartement 5",
"PostCode": "75001",
"City": "Paris",
"Country": "France"
},
"Delivery": {
"Street": "456 Rue de la Livraison",
"AdditionalStreet": "",
"PostCode": "75002",
"City": "Paris",
"Country": "France"
},
"HeadOffice": {
"Street": "789 Rue du Siège Social",
"AdditionalStreet": "",
"PostCode": "75003",
"City": "Paris",
"Country": "France"
},
"DeliveryIsTheSameAsInvoicing": true,
"HeadOfficeIsTheSameAsInvoicing": true
},
"Lines": [
{
"ItemId": 3,
"Description": "Produit 1",
"LineType": 1,
"Quantity": 5.0,
"UnitPrice": 100.0,
"VatRate": 20.0,
"TotalAmountVatExcluded": 500.0,
"TotalVatAmount": 100.0,
"TotalAmountVatIncluded": 600.0,
"DiscountRate": 0.0,
"DiscountAmount": null,
"DetailedDescription": "",
"LineOrder": 0,
"VatRateId": 5,
"EcoContribution": null
},
{
"ItemId": 2,
"Description": "Produit 2",
"LineType": 1,
"Quantity": 3.0,
"UnitPrice": 50.0,
"VatRate": 10.0,
"TotalAmountVatExcluded": 150.0,
"TotalVatAmount": 15.0,
"TotalAmountVatIncluded": 165.0,
"DiscountRate": 0.0,
"DiscountAmount": null,
"DetailedDescription": "Description détaillée du produit 2",
"LineOrder": 1,
"VatRateId": 5,
"EcoContribution": null
}
],
"Commitments": [
{
"Date": "2023-11-07T12:00:00Z",
"Amount": 630.0,
"Rate": 0.0,
"RemainingAmount": 0.0,
"PaymentModeId": 1
}
],
"Footer": {
"TotalAmountVatExcluded": 650.0,
"TotalAmountVatIncluded": 765.0,
"TotalDepositsAmountVatIncluded": 50.0,
"NetAmountVatIncluded": 715.0,
"TotalVatAmount": 65.0,
"ShippingCost": 10.0,
"ShippingVatRateId": 5,
"ShippingVatRate": 20.0,
"DiscountRate": 5.0,
"DiscountAmount": 30.0,
"TotalAmountNetVatExcluded": 620.0,
"TotalAmountNetVatIncluded": 735.0,
"EcoContribution": null
}
}'
Retour de la création d'un avoir
64
Crée un avoir
URL de la requête HTTP
POST /public/v1/sale-credits
Requête
Nom de la propriété | Description | Défaut | Obligatoire |
---|---|---|---|
Name | Nom du client | O | |
Siret | Siret du client | ||
IntracommunityVatNumber | Numéro de TVA intracommunautaire | ||
Territoriality | Territorialité | ||
DeliveryDate | Date de livraison | ||
ValidUntil | Date de validité | ||
CustomerId | ID du client | ||
QuoteStatus | Statut du devis | ||
SettlementTermId | ID du terme de règlement | ||
Date | Date du document | ||
Title | Titre du document | ||
PriceCategoryId | ID de la catégorie de prix | ||
ExemptionNoticeId | ID de l'avis d'exonération | ||
UseVatIncludedInvoicingMode | Mode de facturation TVA incluse | ||
VatPayabilityType | Type de paiement de la TVA | ||
InformationsToPrint | Informations à imprimer | ||
Addresses.Invoicing.Street | Rue de facturation | ||
Addresses.Invoicing.AdditionalStreet | Rue de facturation (complément) | ||
Addresses.Invoicing.PostCode | Code postal de facturation | ||
Addresses.Invoicing.City | Ville de facturation | ||
Addresses.Invoicing.Country | Pays de facturation | ||
Addresses.Delivery.Street | Rue de livraison | ||
Addresses.Delivery.AdditionalStreet | Rue de livraison (complément) | ||
Addresses.Delivery.PostCode | Code postal de livraison | ||
Addresses.Delivery.City | Ville de livraison | ||
Addresses.Delivery.Country | Pays de livraison | ||
Addresses.HeadOffice.Street | Rue du siège social | ||
Addresses.HeadOffice.AdditionalStreet | Rue du siège social (complément) | ||
Addresses.HeadOffice.PostCode | Code postal du siège social | ||
Addresses.HeadOffice.City | Ville du siège social | ||
Addresses.HeadOffice.Country | Pays du siège social | ||
Addresses.DeliveryIsTheSameAsInvoicing | Livraison identique à la facturation | ||
Addresses.HeadOfficeIsTheSameAsInvoicing | Siège social identique à la facturation | ||
Lines.ItemId | ID du produit (ligne 1) | ||
Lines.Description | Description du produit (ligne 1) | ||
Lines.LineType | Type de ligne (ligne 1) | ||
Lines.Quantity | Quantité (ligne 1) | ||
Lines.UnitPrice | Prix unitaire (ligne 1) | ||
Lines.VatRate | Taux de TVA (ligne 1) | ||
Commitments.Date | Date d'engagement (1er engagement) | ||
Commitments.Amount | Montant d'engagement (1er engagement) | ||
Commitments.Rate | Pourcentage d'engagement (1er engagement) | ||
Commitments.RemainingAmount | Montant restant (1er engagement) | ||
Commitments.PaymentModeId | Mode de paiement (1er engagement) | ||
Footer.TotalAmountVatExcluded | Montant total HT | ||
Footer.TotalAmountVatIncluded | Montant total TTC | ||
Footer.TotalDepositsAmountVatIncluded | Montant total des dépôts TTC | ||
Footer.NetAmountVatIncluded | Montant net TTC | ||
Footer.TotalVatAmount | Montant total de la TVA | ||
Footer.ShippingCost | Frais de livraison | ||
Footer.ShippingVatRateId | ID du taux de TVA pour les frais de livraison | ||
Footer.ShippingVatRate | Taux de TVA pour les frais de livraison | ||
Footer.DiscountRate | Taux de remise | ||
Footer.DiscountAmount | Montant de remise | ||
Footer.TotalAmountNetVatExcluded | Montant total net HT | ||
Footer.TotalAmountNetVatIncluded | Montant total net TTC | ||
Footer.EcoContribution | Contribution écologique |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Modifier un avoir
curl --location --request PUT 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-credits/{IdSaleCredit}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
--data '{
"Name": "Nom du client",
"Siret": "12345678901234",
"IntracommunityVatNumber": "FR12345678901",
"Territoriality": 0,
"DeliveryDate": "2023-11-07T12:00:00Z",
"ValidUntil": "2023-12-07T12:00:00Z",
"CustomerId": 2,
"QuoteStatus": 3,
"SettlementTermId": 2,
"Date": "2023-11-07T12:00:00Z",
"Title": "Titre du document",
"PriceCategoryId": 1,
"ExemptionNoticeId": 4,
"UseVatIncludedInvoicingMode": true,
"VatPayabilityType": 1,
"InformationsToPrint": "Informations à imprimer",
"Addresses": {
"Invoicing": {
"Street": "123 Rue de la Facturation",
"AdditionalStreet": "Appartement 5",
"PostCode": "75001",
"City": "Paris",
"Country": "France"
},
"Delivery": {
"Street": "456 Rue de la Livraison",
"AdditionalStreet": "",
"PostCode": "75002",
"City": "Paris",
"Country": "France"
},
"HeadOffice": {
"Street": "789 Rue du Siège Social",
"AdditionalStreet": "",
"PostCode": "75003",
"City": "Paris",
"Country": "France"
},
"DeliveryIsTheSameAsInvoicing": true,
"HeadOfficeIsTheSameAsInvoicing": true
},
"Lines": [
{
"ItemId": 3,
"Description": "Produit 1",
"LineType": 1,
"Quantity": 5.0,
"UnitPrice": 100.0,
"VatRate": 20.0,
"TotalAmountVatExcluded": 500.0,
"TotalVatAmount": 100.0,
"TotalAmountVatIncluded": 600.0,
"DiscountRate": 0.0,
"DiscountAmount": null,
"DetailedDescription": "",
"LineOrder": 0,
"VatRateId": 5,
"EcoContribution": null
},
{
"ItemId": 2,
"Description": "Produit 2",
"LineType": 1,
"Quantity": 3.0,
"UnitPrice": 50.0,
"VatRate": 10.0,
"TotalAmountVatExcluded": 150.0,
"TotalVatAmount": 15.0,
"TotalAmountVatIncluded": 165.0,
"DiscountRate": 0.0,
"DiscountAmount": null,
"DetailedDescription": "Description détaillée du produit 2",
"LineOrder": 1,
"VatRateId": 5,
"EcoContribution": null
}
],
"Commitments": [
{
"Date": "2023-11-07T12:00:00Z",
"Amount": 630.0,
"Rate": 0.0,
"RemainingAmount": 0.0,
"PaymentModeId": 1
}
],
"Footer": {
"TotalAmountVatExcluded": 650.0,
"TotalAmountVatIncluded": 765.0,
"TotalDepositsAmountVatIncluded": 50.0,
"NetAmountVatIncluded": 715.0,
"TotalVatAmount": 65.0,
"ShippingCost": 10.0,
"ShippingVatRateId": 5,
"ShippingVatRate": 20.0,
"DiscountRate": 5.0,
"DiscountAmount": 30.0,
"TotalAmountNetVatExcluded": 620.0,
"TotalAmountNetVatIncluded": 735.0,
"EcoContribution": null
}
}'
Retour de la modification d'un avoir
64
Modifie un avoir
URL de la requête HTTP
PUT /public/v1/sale-credits/{IdSaleCredit}
Requête
Nom de la propriété | Description | Défaut | Obligatoire |
---|---|---|---|
IdSaleCredit | Identifiant de l'avoir | O | |
Name | Nom du client | O | |
Siret | Siret du client | ||
IntracommunityVatNumber | Numéro de TVA intracommunautaire | ||
Territoriality | Territorialité | ||
DeliveryDate | Date de livraison | ||
ValidUntil | Date de validité | ||
CustomerId | ID du client | ||
QuoteStatus | Statut du devis | ||
SettlementTermId | ID du terme de règlement | ||
Date | Date du document | ||
Title | Titre du document | ||
PriceCategoryId | ID de la catégorie de prix | ||
ExemptionNoticeId | ID de l'avis d'exonération | ||
UseVatIncludedInvoicingMode | Mode de facturation TVA incluse | ||
VatPayabilityType | Type de paiement de la TVA | ||
InformationsToPrint | Informations à imprimer | ||
Addresses.Invoicing.Street | Rue de facturation | ||
Addresses.Invoicing.AdditionalStreet | Rue de facturation (complément) | ||
Addresses.Invoicing.PostCode | Code postal de facturation | ||
Addresses.Invoicing.City | Ville de facturation | ||
Addresses.Invoicing.Country | Pays de facturation | ||
Addresses.Delivery.Street | Rue de livraison | ||
Addresses.Delivery.AdditionalStreet | Rue de livraison (complément) | ||
Addresses.Delivery.PostCode | Code postal de livraison | ||
Addresses.Delivery.City | Ville de livraison | ||
Addresses.Delivery.Country | Pays de livraison | ||
Addresses.HeadOffice.Street | Rue du siège social | ||
Addresses.HeadOffice.AdditionalStreet | Rue du siège social (complément) | ||
Addresses.HeadOffice.PostCode | Code postal du siège social | ||
Addresses.HeadOffice.City | Ville du siège social | ||
Addresses.HeadOffice.Country | Pays du siège social | ||
Addresses.DeliveryIsTheSameAsInvoicing | Livraison identique à la facturation | ||
Addresses.HeadOfficeIsTheSameAsInvoicing | Siège social identique à la facturation | ||
Lines.ItemId | ID du produit (ligne 1) | ||
Lines.Description | Description du produit (ligne 1) | ||
Lines.LineType | Type de ligne (ligne 1) | ||
Lines.Quantity | Quantité (ligne 1) | ||
Lines.UnitPrice | Prix unitaire (ligne 1) | ||
Lines.VatRate | Taux de TVA (ligne 1) | ||
Commitments.Date | Date d'engagement (1er engagement) | ||
Commitments.Amount | Montant d'engagement (1er engagement) | ||
Commitments.Rate | Pourcentage d'engagement (1er engagement) | ||
Commitments.RemainingAmount | Montant restant (1er engagement) | ||
Commitments.PaymentModeId | Mode de paiement (1er engagement) | ||
Footer.TotalAmountVatExcluded | Montant total HT | ||
Footer.TotalAmountVatIncluded | Montant total TTC | ||
Footer.TotalDepositsAmountVatIncluded | Montant total des dépôts TTC | ||
Footer.NetAmountVatIncluded | Montant net TTC | ||
Footer.TotalVatAmount | Montant total de la TVA | ||
Footer.ShippingCost | Frais de livraison | ||
Footer.ShippingVatRateId | ID du taux de TVA pour les frais de livraison | ||
Footer.ShippingVatRate | Taux de TVA pour les frais de livraison | ||
Footer.DiscountRate | Taux de remise | ||
Footer.DiscountAmount | Montant de remise | ||
Footer.TotalAmountNetVatExcluded | Montant total net HT | ||
Footer.TotalAmountNetVatIncluded | Montant total net TTC | ||
Footer.EcoContribution | Contribution écologique |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Supprimer un avoir
curl --location --request DELETE 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-credits/{IdSaleCredit}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la suppression d'un avoir
1
Si l'avoir n'existe pas, une erreur HTTP 404 est retournée avec un retour JSON spécifique.
Retour en erreur
json { "status": 404, "errorCode": "SaleCredit.NotFound", "data": {}, "message": "EntityId : 1. L'avoir est introuvable." }
Supprime un avoir
URL de la requête HTTP
DELETE /public/v1/sale-credits/{IdSaleCredit}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdSaleCredit | Identifiant de l'avoir. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Obtenir un avoir d'acompte
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-deposit-credits/{IdSaleDepositCredit}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour d'un avoir d'acompte
{
"id": 38,
"fromSaleQuoteId": 1,
"number": "AV00000001",
"date": "2023-12-11T00:00:00Z",
"customerId": 1,
"customerTypeId": 2,
"name": "KRAP'S",
"addresses": {
"invoicing": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
},
"delivery": null,
"headOffice": null,
"deliveryIsTheSameAsInvoicing": false,
"headOfficeIsTheSameAsInvoicing": false
},
"siret": "",
"intracommunityVatNumber": "",
"territoriality": 0,
"orderNumber": "",
"deliveryDate": "2023-12-11T00:00:00Z",
"commitmentDate": "2023-12-10T00:00:00Z",
"commitmentId": "08dbfa56-5cc3-4d5a-89d1-aadb2c672f05",
"saleQuoteTotalAmountVatIncluded": 222.00000000000000000000000000,
"saleDepositMaxPossibleAmountVatIncluded": 4.4400000000000000000000000000,
"amountVatIncluded": 4.4400000000000000000000000000,
"rateVatIncluded": 2.0000000000000000000000000000,
"vatRate": 20.000000000000000000000000000,
"vatAmount": 0.7400000000000000000000000000,
"amountVatExcluded": 3.7000000000000000000000000000,
"detailedDescription": "",
"accountingTransferStatus": null,
"exemptionNoticeId": 4,
"isExemptionVat": false
}
Récupère un avoir d'acompte
URL de la requête HTTP
GET /public/v1/sale-deposit-credits/{IdSaleDepositCredit}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdSaleDepositCredit | Identifiant de l'avoir d'acompte. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Description |
---|---|
id | Identifiant de l'avoir d'acompte. |
fromSaleQuoteId | Identifiant du devis d'origine. |
number | Numéro de la facture d'acompte. |
date | Date et heure. |
customerId | Identifiant du client. |
customerTypeId | Identifiant du type de client. |
name | Nom ou raison sociale du client. |
addresses.invoicing.street | Adresse de facturation. |
addresses.invoicing.additionalStreet | Complément d'adresse de facturation. |
addresses.invoicing.postCode | Code postal de l'adresse de facturation. |
addresses.invoicing.city | Ville de l'adresse de facturation. |
addresses.invoicing.country | Pays de l'adresse de facturation. |
addresses.delivery.street | Adresse de livraison. |
addresses.delivery.additionalStreet | Complément d'adresse de livraison. |
addresses.delivery.postCode | Code postal de l'adresse de livraison. |
addresses.delivery.city | Ville de l'adresse de livraison. |
addresses.delivery.country | Pays de l'adresse de livraison. |
addresses.headOffice.street | Adresse du siège social. |
addresses.headOffice.additionalStreet | Complément d'adresse du siège social. |
addresses.headOffice.postCode | Code postal de l'adresse du siège social. |
addresses.headOffice.city | Ville de l'adresse du siège social. |
addresses.headOffice.country | Pays de l'adresse du siège social. |
siret | N° de siret. |
intracommunityVatNumber | N° de TVA intracommunautaire. |
territoriality | Territorialité. |
orderNumber | N° de commande client. |
deliveryDate | Date de livraison / d'exécution. |
commitmentDate | Date de l'échéance. |
commitmentId | Identifiant de l'échéance. |
saleQuoteTotalAmountVatIncluded | Montant TTC total du devis. |
saleDepositMaxPossibleAmountVatIncluded | Montant TTC maximum possible pour l'acompte. |
amountVatIncluded | Montant net TTC. |
rateVatIncluded | Montant net de TVA. |
vatRate | Taux de TVA. |
vatAmount | Montant de la TVA. |
amountVatExcluded | Montant net HT. |
detailedDescription | Description détaillée. |
accountingTransferStatus | Etat du transfert comptable de la pièce. |
exemptionNoticeId | Identifiant de l'exemption de TVA. |
isExemptionVat | Avoir exempté de TVA ? |
Créer un avoir d'acompte
curl --location --request POST 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-deposit-credits' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
--data '{
"fromSaleDepositInvoiceId": 23,
"date": "2023-11-16T06:34:56.789Z",
"siret": "12345678901234",
"intracommunityVatNumber": "FR12345678901",
"orderNumber": "ORD123456",
"deliveryDate": "2023-11-24T12:34:56.789Z",
"paymentModeId": 1,
"exemptionNoticeId": null,
"commitmentDate": "2023-12-17T12:34:56.789Z",
"amountVatIncluded": 500.0,
"rateVatIncluded": 20.0,
"vatRate": 20.0,
"vatRateId": 5,
"detailedDescription": "Description détaillée de la facture d'\''acompte",
"addresses": {
"invoicing": {
"street": "123 Rue de la Facturation",
"additionalStreet": "Appartement 5",
"postCode": "75001",
"city": "Paris",
"country": "France"
},
"delivery": {
"street": "456 Rue de la Livraison",
"additionalStreet": "",
"postCode": "75002",
"city": "Paris",
"country": "France"
},
"headOffice": {
"street": "789 Rue du Siège Social",
"additionalStreet": "",
"postCode": "75003",
"city": "Paris",
"country": "France"
},
"deliveryIsTheSameAsInvoicing": true,
"headOfficeIsTheSameAsInvoicing": true
}
}
'
Retour de la création d'un avoir d'acompte
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Crée un avoir d'acompte
URL de la requête HTTP
POST /public/v1/sale-deposit-credits
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
fromSaleDepositInvoiceId | Identifiant du devis d'origine de l'avoir d'acompte. | O | |
date | Date/heure du document. | O | |
siret | N° de SIRET. | ||
intracommunityVatNumber | N° de TVA intracommunautaire. | ||
orderNumber | Numéro de commande client. | ||
deliveryDate | Date de livraison/exécution. | ||
paymentModeId | Identifiant du moyen de paiement. | ||
exemptionNoticeId | Identifiant de l'exemption de TVA. | ||
commitmentDate | Date de l'échéance. | ||
amountVatIncluded | Montant total de l'acompte incluant la TVA. | ||
rateVatIncluded | Montant total de la TVA. | ||
vatRate | Taux de TVA. | ||
vatRateId | Identifiant de la TVA. | ||
detailedDescription | Description détaillée. | ||
addresses.invoicing.street | Adresse de facturation. | ||
addresses.invoicing.additionalStreet | Complément d'adresse de facturation. | ||
addresses.invoicing.postCode | Code postal de l'adresse de facturation. | ||
addresses.invoicing.city | Ville de l'adresse de facturation. | ||
addresses.invoicing.country | Pays de l'adresse de facturation. | ||
addresses.deliveryAddress.street | Adresse de livraison. | ||
addresses.deliveryAddress.additionalStreet | Complément d'adresse de livraison. | ||
addresses.deliveryAddress.postCode | Code postal de l'adresse de livraison. | ||
addresses.deliveryAddress.city | Ville de l'adresse de livraison. | ||
addresses.deliveryAddress.country | Pays de l'adresse de livraison. | ||
addresses.headOfficeAddress.street | Adresse du siège social. | ||
addresses.headOfficeAddress.additionalStreet | Complément d'adresse du siège social. | ||
addresses.headOfficeAddress.postCode | Code postal de l'adresse du siège social. | ||
addresses.headOfficeAddress.city | Ville de l'adresse du siège social. | ||
addresses.headOfficeAddress.country | Pays de l'adresse du siège social. |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Obtenir une facture d'acompte
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-deposit-invoices/{IdSaleDepositInvoice}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour d'une facture d'acompte
{
"cashReceiptTotalAmount": 4.4400000000000000000000000000,
"lateAmount": 0.0000000000000000000000000000,
"paymentModeId": 4,
"remainingAmount": 0.0000000000000000000000000000,
"id": 18,
"fromSaleQuoteId": 1,
"number": "FA00000002",
"date": "2023-12-11T00:00:00Z",
"customerId": 1,
"customerTypeId": 2,
"name": "KRAP'S",
"addresses": {
"invoicing": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
},
"delivery": null,
"headOffice": null,
"deliveryIsTheSameAsInvoicing": false,
"headOfficeIsTheSameAsInvoicing": false
},
"siret": "",
"intracommunityVatNumber": "",
"territoriality": 0,
"orderNumber": "",
"deliveryDate": "2023-12-11T00:00:00Z",
"commitmentDate": "2023-12-10T00:00:00Z",
"commitmentId": "08dbfa35-a7a4-487c-8d02-3abb7978fcdc",
"saleQuoteTotalAmountVatIncluded": 222.00000000000000000000000000,
"saleDepositMaxPossibleAmountVatIncluded": 184.26000000000000000000000000,
"amountVatIncluded": 4.4400000000000000000000000000,
"rateVatIncluded": 2.0000000000000000000000000000,
"vatRate": 20.000000000000000000000000000,
"vatAmount": 0.7400000000000000000000000000,
"amountVatExcluded": 3.7000000000000000000000000000,
"detailedDescription": "",
"accountingTransferStatus": null,
"exemptionNoticeId": 4,
"isExemptionVat": false
}
Récupère un avoir d'acompte
URL de la requête HTTP
GET /public/v1/sale-deposit-invoices/{IdSaleDepositInvoice}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdSaleDepositInvoice | Identifiant de la facture d'acompte. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Description |
---|---|
cashReceiptTotalAmount | Montant total des encaissements. |
lateAmount | Montant en retard. |
paymentModeId : Identifiant du moyen de paiement. remainingAmount | Montant restant dû. id | Identifiant de l'avoir d'acompte. fromSaleQuoteId | Identifiant du devis d'origine. number | Numéro de la facture d'acompte. date | Date et heure. customerId | Identifiant du client. customerTypeId | Identifiant du type de client. name | Nom ou raison sociale du client. addresses.invoicing.street | Adresse de facturation. addresses.invoicing.additionalStreet | Complément d'adresse de facturation. addresses.invoicing.postCode | Code postal de l'adresse de facturation. addresses.invoicing.city | Ville de l'adresse de facturation. addresses.invoicing.country | Pays de l'adresse de facturation. addresses.delivery.street | Adresse de livraison. addresses.delivery.additionalStreet | Complément d'adresse de livraison. addresses.delivery.postCode | Code postal de l'adresse de livraison. addresses.delivery.city | Ville de l'adresse de livraison. addresses.delivery.country | Pays de l'adresse de livraison. addresses.headOffice.street | Adresse du siège social. addresses.headOffice.additionalStreet | Complément d'adresse du siège social. addresses.headOffice.postCode | Code postal de l'adresse du siège social. addresses.headOffice.city | Ville de l'adresse du siège social. addresses.headOffice.country | Pays de l'adresse du siège social. siret | N° de siret. intracommunityVatNumber | N° de TVA intracommunautaire. territoriality | Territorialité. orderNumber | N° de commande client. deliveryDate | Date de livraison / d'exécution. commitmentDate | Date de l'échéance. commitmentId | Identifiant de l'échéance. saleQuoteTotalAmountVatIncluded | Montant TTC total du devis. saleDepositMaxPossibleAmountVatIncluded | Montant TTC maximum possible pour l'acompte. amountVatIncluded | Montant net TTC. rateVatIncluded | Montant net de TVA. vatRate | Taux de TVA. vatAmount | Montant de la TVA. amountVatExcluded | Montant net HT. detailedDescription | Description détaillée. accountingTransferStatus | Etat du transfert comptable de la pièce. exemptionNoticeId | Identifiant de l'exemption de TVA. isExemptionVat | Avoir exempté de TVA ?
Créer une facture d'acompte
curl --location --request POST 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-deposit-invoices' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
--data '{
"fromSaleDepositInvoiceId": 23,
"date": "2023-11-16T06:34:56.789Z",
"siret": "12345678901234",
"intracommunityVatNumber": "FR12345678901",
"orderNumber": "ORD123456",
"deliveryDate": "2023-11-24T12:34:56.789Z",
"paymentModeId": 1,
"exemptionNoticeId": null,
"commitmentDate": "2023-12-17T12:34:56.789Z",
"amountVatIncluded": 500.0,
"rateVatIncluded": 20.0,
"vatRate": 20.0,
"vatRateId": 5,
"detailedDescription": "Description détaillée de la facture d'\''acompte",
"addresses": {
"invoicing": {
"street": "123 Rue de la Facturation",
"additionalStreet": "Appartement 5",
"postCode": "75001",
"city": "Paris",
"country": "France"
},
"delivery": {
"street": "456 Rue de la Livraison",
"additionalStreet": "",
"postCode": "75002",
"city": "Paris",
"country": "France"
},
"headOffice": {
"street": "789 Rue du Siège Social",
"additionalStreet": "",
"postCode": "75003",
"city": "Paris",
"country": "France"
},
"deliveryIsTheSameAsInvoicing": true,
"headOfficeIsTheSameAsInvoicing": true
}
}
'
Retour de la création d'une facture d'acompte
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Crée une facture d'acompte
URL de la requête HTTP
POST /public/v1/sale-deposit-invoices
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
fromSaleQuoteId | Identifiant du devis d'origine de l'avoir d'acompte. | O | |
date | Date/heure du document. | O | |
siret | N° de SIRET. | ||
intracommunityVatNumber | N° de TVA intracommunautaire. | ||
orderNumber | Numéro de commande client. | ||
deliveryDate | Date de livraison/exécution. | ||
paymentModeId | Identifiant du moyen de paiement. | ||
exemptionNoticeId | Identifiant de l'exemption de TVA. | ||
commitmentDate | Date de l'échéance. | ||
amountVatIncluded | Montant total de l'acompte incluant la TVA. | ||
rateVatIncluded | Montant total de la TVA. | ||
vatRate | Taux de TVA. | ||
vatRateId | Identifiant de la TVA. | ||
detailedDescription | Description détaillée. | ||
addresses.invoicing.street | Adresse de facturation. | ||
addresses.invoicing.additionalStreet | Complément d'adresse de facturation. | ||
addresses.invoicing.postCode | Code postal de l'adresse de facturation. | ||
addresses.invoicing.city | Ville de l'adresse de facturation. | ||
addresses.invoicing.country | Pays de l'adresse de facturation. | ||
addresses.deliveryAddress.street | Adresse de livraison. | ||
addresses.deliveryAddress.additionalStreet | Complément d'adresse de livraison. | ||
addresses.deliveryAddress.postCode | Code postal de l'adresse de livraison. | ||
addresses.deliveryAddress.city | Ville de l'adresse de livraison. | ||
addresses.deliveryAddress.country | Pays de l'adresse de livraison. | ||
addresses.headOfficeAddress.street | Adresse du siège social. | ||
addresses.headOfficeAddress.additionalStreet | Complément d'adresse du siège social. | ||
addresses.headOfficeAddress.postCode | Code postal de l'adresse du siège social. | ||
addresses.headOfficeAddress.city | Ville de l'adresse du siège social. | ||
addresses.headOfficeAddress.country | Pays de l'adresse du siège social. |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Obtenir une liste des documents de vente
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-documents?take=10&skip=0' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération de la liste des documents de vente
{
"take": 5,
"skip": 8,
"total": 36,
"elements": [
{
"id": 17,
"documentType": 0,
"documentStatus": 1,
"name": "KRAP'S",
"date": "2023-12-14T00:00:00Z",
"city": "Ploufragan",
"number": "FA00000019",
"totalAmountVatExcluded": 1545.0000000000000000000000000,
"totalAmountVatIncluded": 1854.0000000000000000000000000,
"netAmountVatIncluded": 1761.3000000000000000000000000,
"dueAmount": 1761.3000000000000000000000000,
"accountingTransferStatus": null,
"title": ""
},
{
"id": 19,
"documentType": 0,
"documentStatus": 1,
"name": "KRAP'S",
"date": "2023-12-14T00:00:00Z",
"city": "Ploufragan",
"number": "FA00000021",
"totalAmountVatExcluded": 1545.0000000000000000000000000,
"totalAmountVatIncluded": 1854.0000000000000000000000000,
"netAmountVatIncluded": 1761.3000000000000000000000000,
"dueAmount": 1761.3000000000000000000000000,
"accountingTransferStatus": null,
"title": ""
},
{
"id": 21,
"documentType": 0,
"documentStatus": 1,
"name": "KRAP'S",
"date": "2023-12-14T00:00:00Z",
"city": "Ploufragan",
"number": "FA00000023",
"totalAmountVatExcluded": 1545.0000000000000000000000000,
"totalAmountVatIncluded": 1854.0000000000000000000000000,
"netAmountVatIncluded": 1761.3000000000000000000000000,
"dueAmount": 1761.3000000000000000000000000,
"accountingTransferStatus": null,
"title": ""
},
{
"id": 24,
"documentType": 0,
"documentStatus": 1,
"name": "KRAP'S",
"date": "2023-12-14T00:00:00Z",
"city": "Ploufragan",
"number": "FA00000024",
"totalAmountVatExcluded": 1545.0000000000000000000000000,
"totalAmountVatIncluded": 1854.0000000000000000000000000,
"netAmountVatIncluded": 1854.0000000000000000000000000,
"dueAmount": 1854.0000000000000000000000000,
"accountingTransferStatus": null,
"title": ""
},
{
"id": 25,
"documentType": 0,
"documentStatus": 1,
"name": "KRAP'S",
"date": "2023-12-14T00:00:00Z",
"city": "Ploufragan",
"number": "FA00000025",
"totalAmountVatExcluded": 1545.0000000000000000000000000,
"totalAmountVatIncluded": 1854.0000000000000000000000000,
"netAmountVatIncluded": 1854.0000000000000000000000000,
"dueAmount": 1854.0000000000000000000000000,
"accountingTransferStatus": null,
"title": ""
}
]
}
Récupère la liste des documents de vente que vous pouvez filtrer et/ou paginer à votre convenance.
URL de la requête HTTP
GET /public/v1/sale-documents
Requête
Le tableau ci-dessous vous indique les différents paramètres à fournir en paramètre de la requête de récupération de données. Les noms des paramètres sont à fournir en CamelCase. Plus de détails sur ce lien.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
take | Nombre d'éléments à retourner. | N | |
skip | Nombre d'éléments à ignorer avant de commencer à retourner. | N | |
sortingOrder.property | Nom du champ utilisé pour le tri. | N | |
sortingOrder.sortType | Sens de tri (Croissant / décroissant). Doit être une valeur du type SortType. Par défaut : Croissant. | N | |
filter.query | Terme recherché pour le filtrage. | N |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans un tableau dans la propriété elements
décrit ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant du document de vente. |
documentType | SaleDocumentType | Type de document. |
documentStatus | SaleDocumentStatus | Statut du document. |
name | string | Nom ou raison sociale du client. |
date | datetime | Date du document. |
city | string | Ville. |
number | string | N° du document. Ex : FA00000019. |
totalAmountVatExcluded | decimal | Montant total HT. |
totalAmountVatIncluded | decimal | Montant total TTC. |
netAmountVatIncluded | decimal | ontant total Net. |
dueAmount | decimal | Restant dû. |
accountingTransferStatus | AccountingTransferStatus | Statut du transfert comptable. |
title | string / null | Titre du document. |
Obtenir une facture validée
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-invoices/validated/{IdSaleInvoice}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour sur la récupération d'une facture validée
{
"deliveryDate": "2023-12-20T00:00:00Z",
"saleQuoteId": null,
"settlementTermId": null,
"commitments": [
{
"date": "2023-12-20T00:00:00Z",
"percent": 100.00000000000000000000000000,
"amount": 53.990000000000000000000000000,
"remainingAmount": 53.990000000000000000000000000,
"paymentModeId": 1
}
],
"profitability": {
"costPriceVatExcluded": 0.0000000000000000000000000000,
"marginAmount": 0.0000000000000000000000000000,
"marginRate": 0.0000000000000000000000000000
},
"id": 38,
"name": "KRAP'S",
"priceCategoryId": 1,
"siret": "",
"intracommunityVatNumber": "",
"isExemptionVat": false,
"territoriality": 0,
"customerId": 1,
"customerTypeId": 2,
"date": "2023-12-20T00:00:00Z",
"title": "",
"number": "TMP00000019",
"exemptionNoticeId": 4,
"useVatIncludedInvoicingMode": false,
"vatPayabilityType": 2,
"informationsToPrint": "",
"addresses": {
"invoicing": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
},
"delivery": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
},
"headOffice": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
},
"deliveryIsTheSameAsInvoicing": true,
"headOfficeIsTheSameAsInvoicing": true
},
"lines": [
{
"costPriceVatExcluded": 0.0000000000000000000000000000,
"vatRateId": 5,
"saleUnitId": null,
"id": 39,
"description": "Pédale droite pour VTT",
"itemId": 4,
"applyMargin": false,
"lineType": 0,
"quantity": 1.0000000000000000000000000000,
"unitPrice": 44.990000000000000000000000000,
"vatRate": 20.000000000000000000000000000,
"totalAmountVatExcluded": 44.990000000000000000000000000,
"totalVatAmount": 9.000000000000000000000000000,
"totalAmountVatIncluded": 53.990000000000000000000000000,
"discountRate": 0.0000000000000000000000000000,
"discountAmount": null,
"detailedDescription": "",
"lineOrder": 0,
"ecoContribution": null
}
],
"footer": {
"totalAmountVatExcluded": 44.990000000000000000000000000,
"totalAmountVatIncluded": 53.990000000000000000000000000,
"totalDepositsAmountVatIncluded": 0.0000000000000000000000000000,
"netAmountVatIncluded": 53.990000000000000000000000000,
"totalVatAmount": 9.000000000000000000000000000,
"shippingCost": 0.0000000000000000000000000000,
"shippingVatRateId": 5,
"shippingVatRate": 20.000000000000000000000000000,
"discountRate": 0.0000000000000000000000000000,
"discountAmount": 0.0000000000000000000000000000,
"totalAmountNetVatExcluded": 44.990000000000000000000000000,
"totalAmountNetVatIncluded": 53.990000000000000000000000000,
"ecoContribution": null
},
"vatSummaryLines": [
{
"id": 118,
"rate": 20.000000000000000000000000000,
"baseAmountExcludedVat": 44.990000000000000000000000000,
"debitVatAmount": 0.0000000000000000000000000000,
"cashVatAmount": 9.000000000000000000000000000,
"totalVatAmount": 9.000000000000000000000000000,
"discountAmount": null
}
]
}
Récupère une facture validée
URL de la requête HTTP
GET /public/v1/sale-invoices/validated/{IdSaleInvoice}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdSaleInvoice | Identifiant de la facture. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
deliveryDate | string | Date de livraison. |
saleQuoteId | integer | Identifiant du devis de vente associé. |
settlementTermId | integer | Identifiant de la condition de règlement. |
commitments.date | string | Date de l'engagement. |
commitments.percent | decimal | Pourcentage de l'engagement. |
commitments.amount | decimal | Montant de l'engagement. |
commitments.remainingAmount | decimal | Montant restant de l'engagement. |
commitments.paymentModeId | decimal | Identifiant du mode de paiement de l'engagement. |
profitability | object | Indicateurs de rentabilité. |
profitability.costPriceVatExcluded | decimal | Prix de revient HT. |
profitability.marginAmount | decimal | Montant de marge. |
profitability.marginRate | decimal | Taux de marge. |
id | decimal | Identifiant du document. |
name | string | Nom du document. |
priceCategoryId | decimal | Identifiant de la catégorie tarifaire. |
siret | string | Numéro de SIRET. |
intracommunityVatNumber | string | N° de TVA intracommunautaire. |
isExemptionVat | boolean | Indique si une exonération de TVA est appliquée. |
territoriality | decimal | Territorialité. |
customerId | decimal | Identifiant du client. |
customerTypeId | decimal | Identifiant du type de client. |
date | string | Date du document. |
title | string | Titre du document. |
decimal | string | Numéro du document. |
exemptionNoticeId | decimal | Identifiant de l'exemption de TVA. |
useVatIncludedInvoicingMode | boolean | Indique si le mode de facturation inclut la TVA. |
vatPayabilityType | decimal | Type de redevabilité de la TVA. |
informationsToPrint | string | Informations à imprimer. |
addresses.invoicing.street | string | Adresse de facturation. |
addresses.invoicing.additionalStreet | string | Complément d'adresse de facturation. |
addresses.invoicing.postCode | string | Code postal de l'adresse de facturation. |
addresses.invoicing.city | string | Ville de l'adresse de facturation. |
addresses.invoicing.country | string | Pays de l'adresse de facturation. |
addresses.delivery.street | string | Adresse de livraison. |
addresses.delivery.additionalStreet | string | Complément d'adresse de livraison. |
addresses.delivery.postCode | string | Code postal de l'adresse de livraison. |
addresses.delivery.city | string | Ville de l'adresse de livraison. |
addresses.delivery.country | string | Pays de l'adresse de livraison. |
addresses.headOffice.street | string | Adresse du siège social. |
addresses.headOffice.additionalStreet | string | Complément d'adresse du siège social. |
addresses.headOffice.postCode | string | Code postal de l'adresse du siège social. |
addresses.headOffice.city | string | Ville de l'adresse du siège social. |
addresses.headOffice.country | string | Pays de l'adresse du siège social. |
lines.costPriceVatExcluded | decimal | Prix de revient HT. |
lines.vatRateId | decimal | Identifiant du taux de TVA de la ligne. |
lines.saleUnitId | integer | Identifiant de l'unité de vente de la ligne. |
lines.id | decimal | Identifiant de la ligne. |
lines.description | string | Description de la ligne d'article. |
lines.itemId | decimal | Identifiant de l'article. |
lines.applyMargin | boolean | Indique si la marge est appliquée à la ligne. |
lines.lineType | decimal | Type de ligne. |
lines.quantity | decimal | Quantité de la ligne. |
lines.unitPrice | decimal | Prix unitaire de la ligne. |
lines.vatRate | decimal | Taux de TVA de la ligne. |
lines.totalAmountVatExcluded | decimal | Montant total HT de la ligne. |
lines.totalVatAmount | decimal | Montant total de la TVA de la ligne. |
lines.totalAmountVatIncluded | decimal | Montant total TTC de la ligne. |
lines.discountRate | decimal | Taux de remise de la ligne. |
lines.discountAmount | decimal | Montant de remise de la ligne. |
lines.detailedDescription | string | Description détaillée de la ligne. |
lines.lineOrder | decimal | Ordre d'affichage de la ligne. |
lines.ecoContribution | decimal | Contribution écologique de la ligne. |
footer.totalAmountVatExcluded | decimal | Montant total HT du document. |
footer.totalAmountVatIncluded | decimal | Montant total TTC du document. |
footer.totalDepositsAmountVatIncluded | decimal | Montant total des acomptes TTC. |
footer.netAmountVatIncluded | decimal | Montant net TTC du document. |
footer.totalVatAmount | decimal | Montant total de la TVA du document. |
footer.shippingCost | decimal | Coût d'expédition. |
footer.shippingVatRateId | decimal | Identifiant du taux de TVA pour l'expédition. |
footer.shippingVatRate | decimal | Taux de TVA pour l'expédition. |
footer.discountRate | decimal | Taux de remise du document. |
footer.discountAmount | decimal | Montant de remise du document. |
footer.totalAmountNetVatExcluded | decimal | Montant total net HT du document. |
footer.totalAmountNetVatIncluded | decimal | Montant total net TTC du document. |
ecoContribution | decimal | Contribution écologique. |
vatSummaryLines.id | decimal | Identifiant de la ligne de récapitulatif de la TVA. |
vatSummaryLines.rate | decimal | Taux de TVA de la ligne de récapitulatif. |
vatSummaryLines.baseAmountExcludedVat | decimal | Montant HT de la base de la TVA. |
vatSummaryLines.debitVatAmount | decimal | Montant de la TVA à débiter. |
vatSummaryLines.cashVatAmount | decimal | Montant de la TVA encaissée. |
vatSummaryLines.totalVatAmount | decimal | Montant total de la TVA. |
vatSummaryLines.discountAmount | decimal | Montant de remise de la TVA. |
Obtenir une facture provisoire
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-invoices/{IdSaleInvoice}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour sur la récupération d'une facture provisoire
{
"deliveryDate": "2023-12-20T00:00:00Z",
"saleQuoteId": null,
"settlementTermId": null,
"commitments": [
{
"date": "2023-12-20T00:00:00Z",
"percent": 100.00000000000000000000000000,
"amount": 53.990000000000000000000000000,
"remainingAmount": 53.990000000000000000000000000,
"paymentModeId": 1
}
],
"profitability": {
"costPriceVatExcluded": 0.0000000000000000000000000000,
"marginAmount": 0.0000000000000000000000000000,
"marginRate": 0.0000000000000000000000000000
},
"id": 38,
"name": "KRAP'S",
"priceCategoryId": 1,
"siret": "",
"intracommunityVatNumber": "",
"isExemptionVat": false,
"territoriality": 0,
"customerId": 1,
"customerTypeId": 2,
"date": "2023-12-20T00:00:00Z",
"title": "",
"number": "TMP00000019",
"exemptionNoticeId": 4,
"useVatIncludedInvoicingMode": false,
"vatPayabilityType": 2,
"informationsToPrint": "",
"addresses": {
"invoicing": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
},
"delivery": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
},
"headOffice": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
},
"deliveryIsTheSameAsInvoicing": true,
"headOfficeIsTheSameAsInvoicing": true
},
"lines": [
{
"costPriceVatExcluded": 0.0000000000000000000000000000,
"vatRateId": 5,
"saleUnitId": null,
"id": 39,
"description": "Pédale droite pour VTT",
"itemId": 4,
"applyMargin": false,
"lineType": 0,
"quantity": 1.0000000000000000000000000000,
"unitPrice": 44.990000000000000000000000000,
"vatRate": 20.000000000000000000000000000,
"totalAmountVatExcluded": 44.990000000000000000000000000,
"totalVatAmount": 9.000000000000000000000000000,
"totalAmountVatIncluded": 53.990000000000000000000000000,
"discountRate": 0.0000000000000000000000000000,
"discountAmount": null,
"detailedDescription": "",
"lineOrder": 0,
"ecoContribution": null
}
],
"footer": {
"totalAmountVatExcluded": 44.990000000000000000000000000,
"totalAmountVatIncluded": 53.990000000000000000000000000,
"totalDepositsAmountVatIncluded": 0.0000000000000000000000000000,
"netAmountVatIncluded": 53.990000000000000000000000000,
"totalVatAmount": 9.000000000000000000000000000,
"shippingCost": 0.0000000000000000000000000000,
"shippingVatRateId": 5,
"shippingVatRate": 20.000000000000000000000000000,
"discountRate": 0.0000000000000000000000000000,
"discountAmount": 0.0000000000000000000000000000,
"totalAmountNetVatExcluded": 44.990000000000000000000000000,
"totalAmountNetVatIncluded": 53.990000000000000000000000000,
"ecoContribution": null
},
"vatSummaryLines": [
{
"id": 118,
"rate": 20.000000000000000000000000000,
"baseAmountExcludedVat": 44.990000000000000000000000000,
"debitVatAmount": 0.0000000000000000000000000000,
"cashVatAmount": 9.000000000000000000000000000,
"totalVatAmount": 9.000000000000000000000000000,
"discountAmount": null
}
]
}
Récupère une facture provisoire
URL de la requête HTTP
GET /public/v1/sale-invoices/{IdSaleInvoice}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdSaleInvoice | Identifiant de la facture. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
deliveryDate | string | Date de livraison. |
saleQuoteId | integer | Identifiant du devis de vente associé. |
settlementTermId | integer | Identifiant de la condition de règlement. |
commitments.date | string | Date de l'engagement. |
commitments.percent | decimal | Pourcentage de l'engagement. |
commitments.amount | decimal | Montant de l'engagement. |
commitments.remainingAmount | decimal | Montant restant de l'engagement. |
commitments.paymentModeId | decimal | Identifiant du mode de paiement de l'engagement. |
profitability | object | Indicateurs de rentabilité. |
profitability.costPriceVatExcluded | decimal | Prix de revient HT. |
profitability.marginAmount | decimal | Montant de marge. |
profitability.marginRate | decimal | Taux de marge. |
id | decimal | Identifiant du document. |
name | string | Nom du document. |
priceCategoryId | decimal | Identifiant de la catégorie tarifaire. |
siret | string | Numéro de SIRET. |
intracommunityVatNumber | string | N° de TVA intracommunautaire. |
isExemptionVat | boolean | Indique si une exonération de TVA est appliquée. |
territoriality | decimal | Territorialité. |
customerId | decimal | Identifiant du client. |
customerTypeId | decimal | Identifiant du type de client. |
date | string | Date du document. |
title | string | Titre du document. |
decimal | string | Numéro du document. |
exemptionNoticeId | decimal | Identifiant de l'exemption de TVA. |
useVatIncludedInvoicingMode | boolean | Indique si le mode de facturation inclut la TVA. |
vatPayabilityType | decimal | Type de redevabilité de la TVA. |
informationsToPrint | string | Informations à imprimer. |
addresses.invoicing.street | string | Adresse de facturation. |
addresses.invoicing.additionalStreet | string | Complément d'adresse de facturation. |
addresses.invoicing.postCode | string | Code postal de l'adresse de facturation. |
addresses.invoicing.city | string | Ville de l'adresse de facturation. |
addresses.invoicing.country | string | Pays de l'adresse de facturation. |
addresses.delivery.street | string | Adresse de livraison. |
addresses.delivery.additionalStreet | string | Complément d'adresse de livraison. |
addresses.delivery.postCode | string | Code postal de l'adresse de livraison. |
addresses.delivery.city | string | Ville de l'adresse de livraison. |
addresses.delivery.country | string | Pays de l'adresse de livraison. |
addresses.headOffice.street | string | Adresse du siège social. |
addresses.headOffice.additionalStreet | string | Complément d'adresse du siège social. |
addresses.headOffice.postCode | string | Code postal de l'adresse du siège social. |
addresses.headOffice.city | string | Ville de l'adresse du siège social. |
addresses.headOffice.country | string | Pays de l'adresse du siège social. |
lines.costPriceVatExcluded | decimal | Prix de revient HT. |
lines.vatRateId | decimal | Identifiant du taux de TVA de la ligne. |
lines.saleUnitId | integer | Identifiant de l'unité de vente de la ligne. |
lines.id | decimal | Identifiant de la ligne. |
lines.description | string | Description de la ligne d'article. |
lines.itemId | decimal | Identifiant de l'article. |
lines.applyMargin | boolean | Indique si la marge est appliquée à la ligne. |
lines.lineType | decimal | Type de ligne. |
lines.quantity | decimal | Quantité de la ligne. |
lines.unitPrice | decimal | Prix unitaire de la ligne. |
lines.vatRate | decimal | Taux de TVA de la ligne. |
lines.totalAmountVatExcluded | decimal | Montant total HT de la ligne. |
lines.totalVatAmount | decimal | Montant total de la TVA de la ligne. |
lines.totalAmountVatIncluded | decimal | Montant total TTC de la ligne. |
lines.discountRate | decimal | Taux de remise de la ligne. |
lines.discountAmount | decimal | Montant de remise de la ligne. |
lines.detailedDescription | string | Description détaillée de la ligne. |
lines.lineOrder | decimal | Ordre d'affichage de la ligne. |
lines.ecoContribution | decimal | Contribution écologique de la ligne. |
footer.totalAmountVatExcluded | decimal | Montant total HT du document. |
footer.totalAmountVatIncluded | decimal | Montant total TTC du document. |
footer.totalDepositsAmountVatIncluded | decimal | Montant total des acomptes TTC. |
footer.netAmountVatIncluded | decimal | Montant net TTC du document. |
footer.totalVatAmount | decimal | Montant total de la TVA du document. |
footer.shippingCost | decimal | Coût d'expédition. |
footer.shippingVatRateId | decimal | Identifiant du taux de TVA pour l'expédition. |
footer.shippingVatRate | decimal | Taux de TVA pour l'expédition. |
footer.discountRate | decimal | Taux de remise du document. |
footer.discountAmount | decimal | Montant de remise du document. |
footer.totalAmountNetVatExcluded | decimal | Montant total net HT du document. |
footer.totalAmountNetVatIncluded | decimal | Montant total net TTC du document. |
ecoContribution | decimal | Contribution écologique. |
vatSummaryLines.id | decimal | Identifiant de la ligne de récapitulatif de la TVA. |
vatSummaryLines.rate | decimal | Taux de TVA de la ligne de récapitulatif. |
vatSummaryLines.baseAmountExcludedVat | decimal | Montant HT de la base de la TVA. |
vatSummaryLines.debitVatAmount | decimal | Montant de la TVA à débiter. |
vatSummaryLines.cashVatAmount | decimal | Montant de la TVA encaissée. |
vatSummaryLines.totalVatAmount | decimal | Montant total de la TVA. |
vatSummaryLines.discountAmount | decimal | Montant de remise de la TVA. |
Créer une facture
curl --location --request POST 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-invoices \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
--data '{
"Name": "Nom du client",
"Siret": "12345678901234",
"IntracommunityVatNumber": "FR12345678901",
"Territoriality": 0,
"DeliveryDate": "2023-11-07T12:00:00Z",
"ValidUntil": "2023-12-07T12:00:00Z",
"CustomerId": 1,
"OrderNumber": "ORD000001",
"QuoteStatus": 3,
"SettlementTermId": 2,
"Date": "2023-11-07T12:00:00Z",
"Title": "Titre du document",
"PriceCategoryId": 1,
"ExemptionNoticeId": 4,
"UseVatIncludedInvoicingMode": true,
"VatPayabilityType": 1,
"InformationsToPrint": "Informations à imprimer",
"Addresses": {
"Invoicing": {
"Street": "123 Rue de la Facturation",
"AdditionalStreet": "Appartement 5",
"PostCode": "75001",
"City": "Paris",
"Country": "France"
},
"Delivery": {
"Street": "456 Rue de la Livraison",
"AdditionalStreet": "",
"PostCode": "75002",
"City": "Paris",
"Country": "France"
},
"HeadOffice": {
"Street": "789 Rue du Siège Social",
"AdditionalStreet": "",
"PostCode": "75003",
"City": "Paris",
"Country": "France"
},
"DeliveryIsTheSameAsInvoicing": true,
"HeadOfficeIsTheSameAsInvoicing": true
},
"Lines": [
{
"ItemId": 3,
"Description": "Produit 1",
"LineType": 1,
"Quantity": 5.0,
"UnitPrice": 100.0,
"VatRate": 20.0,
"TotalAmountVatExcluded": 500.0,
"TotalVatAmount": 100.0,
"TotalAmountVatIncluded": 600.0,
"DiscountRate": 0.0,
"DiscountAmount": null,
"DetailedDescription": "",
"LineOrder": 0,
"VatRateId": 5,
"EcoContribution": null
},
{
"ItemId": 2,
"Description": "Produit 2",
"LineType": 1,
"Quantity": 3.0,
"UnitPrice": 50.0,
"VatRate": 10.0,
"TotalAmountVatExcluded": 150.0,
"TotalVatAmount": 15.0,
"TotalAmountVatIncluded": 165.0,
"DiscountRate": 0.0,
"DiscountAmount": null,
"DetailedDescription": "Description détaillée du produit 2",
"LineOrder": 1,
"VatRateId": 5,
"EcoContribution": null
}
],
"Commitments": [
{
"Date": "2023-11-07T12:00:00Z",
"Amount": 630.0,
"Rate": 0.0,
"RemainingAmount": 0.0,
"PaymentModeId": 1
}
],
"Footer": {
"TotalAmountVatExcluded": 650.0,
"TotalAmountVatIncluded": 765.0,
"TotalDepositsAmountVatIncluded": 50.0,
"NetAmountVatIncluded": 715.0,
"TotalVatAmount": 65.0,
"ShippingCost": 10.0,
"ShippingVatRateId": 5,
"ShippingVatRate": 20.0,
"DiscountRate": 5.0,
"DiscountAmount": 30.0,
"TotalAmountNetVatExcluded": 620.0,
"TotalAmountNetVatIncluded": 735.0,
"EcoContribution": null
}
}'
Retour de la création d'une facture
45
Crée une facture
URL de la requête HTTP
POST /public/v1/sale-invoices
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdItemGroup | Identifiant de la famille d'article. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Nom de la propriété | Description | Défaut | Obligatoire |
---|---|---|---|
Name | Nom du client | O | |
Siret | Siret du client | ||
IntracommunityVatNumber | Numéro de TVA intracommunautaire | ||
Territoriality | Territorialité | ||
DeliveryDate | Date de livraison | ||
ValidUntil | Date de validité | ||
CustomerId | ID du client | ||
OrderNumber | Numéro de commande | ||
QuoteStatus | Statut du devis | ||
SettlementTermId | ID du terme de règlement | ||
Date | Date du document | ||
Title | Titre du document | ||
PriceCategoryId | ID de la catégorie de prix | ||
ExemptionNoticeId | ID de l'avis d'exonération | ||
UseVatIncludedInvoicingMode | Mode de facturation TVA incluse | ||
VatPayabilityType | Type de paiement de la TVA | ||
InformationsToPrint | Informations à imprimer | ||
Addresses.Invoicing.Street | Rue de facturation | ||
Addresses.Invoicing.AdditionalStreet | Rue de facturation (complément) | ||
Addresses.Invoicing.PostCode | Code postal de facturation | ||
Addresses.Invoicing.City | Ville de facturation | ||
Addresses.Invoicing.Country | Pays de facturation | ||
Addresses.Delivery.Street | Rue de livraison | ||
Addresses.Delivery.AdditionalStreet | Rue de livraison (complément) | ||
Addresses.Delivery.PostCode | Code postal de livraison | ||
Addresses.Delivery.City | Ville de livraison | ||
Addresses.Delivery.Country | Pays de livraison | ||
Addresses.HeadOffice.Street | Rue du siège social | ||
Addresses.HeadOffice.AdditionalStreet | Rue du siège social (complément) | ||
Addresses.HeadOffice.PostCode | Code postal du siège social | ||
Addresses.HeadOffice.City | Ville du siège social | ||
Addresses.HeadOffice.Country | Pays du siège social | ||
Addresses.DeliveryIsTheSameAsInvoicing | Livraison identique à la facturation | ||
Addresses.HeadOfficeIsTheSameAsInvoicing | Siège social identique à la facturation | ||
Lines.ItemId | ID du produit (ligne 1) | ||
Lines.Description | Description du produit (ligne 1) | ||
Lines.LineType | Type de ligne (ligne 1) | ||
Lines.Quantity | Quantité (ligne 1) | ||
Lines.UnitPrice | Prix unitaire (ligne 1) | ||
Lines.VatRate | Taux de TVA (ligne 1) | ||
Commitments.Date | Date d'engagement (1er engagement) | ||
Commitments.Amount | Montant d'engagement (1er engagement) | ||
Commitments.Rate | Pourcentage d'engagement (1er engagement) | ||
Commitments.RemainingAmount | Montant restant (1er engagement) | ||
Commitments.PaymentModeId | Mode de paiement (1er engagement) | ||
Footer.TotalAmountVatExcluded | Montant total HT | ||
Footer.TotalAmountVatIncluded | Montant total TTC | ||
Footer.TotalDepositsAmountVatIncluded | Montant total des dépôts TTC | ||
Footer.NetAmountVatIncluded | Montant net TTC | ||
Footer.TotalVatAmount | Montant total de la TVA | ||
Footer.ShippingCost | Frais de livraison | ||
Footer.ShippingVatRateId | ID du taux de TVA pour les frais de livraison | ||
Footer.ShippingVatRate | Taux de TVA pour les frais de livraison | ||
Footer.DiscountRate | Taux de remise | ||
Footer.DiscountAmount | Montant de remise | ||
Footer.TotalAmountNetVatExcluded | Montant total net HT | ||
Footer.TotalAmountNetVatIncluded | Montant total net TTC | ||
Footer.EcoContribution | Contribution écologique |
Modifier une facture
curl --location --request PUT 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-invoices/{IdSaleInvoice} \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
--data '{
"Name": "Nom du client",
"Siret": "12345678901234",
"IntracommunityVatNumber": "FR12345678901",
"Territoriality": 0,
"DeliveryDate": "2023-11-07T12:00:00Z",
"ValidUntil": "2023-12-07T12:00:00Z",
"CustomerId": 1,
"OrderNumber": "ORD000001",
"QuoteStatus": 3,
"SettlementTermId": 2,
"Date": "2023-11-07T12:00:00Z",
"Title": "Titre du document",
"PriceCategoryId": 1,
"ExemptionNoticeId": 4,
"UseVatIncludedInvoicingMode": true,
"VatPayabilityType": 1,
"InformationsToPrint": "Informations à imprimer",
"Addresses": {
"Invoicing": {
"Street": "123 Rue de la Facturation",
"AdditionalStreet": "Appartement 5",
"PostCode": "75001",
"City": "Paris",
"Country": "France"
},
"Delivery": {
"Street": "456 Rue de la Livraison",
"AdditionalStreet": "",
"PostCode": "75002",
"City": "Paris",
"Country": "France"
},
"HeadOffice": {
"Street": "789 Rue du Siège Social",
"AdditionalStreet": "",
"PostCode": "75003",
"City": "Paris",
"Country": "France"
},
"DeliveryIsTheSameAsInvoicing": true,
"HeadOfficeIsTheSameAsInvoicing": true
},
"Lines": [
{
"ItemId": 3,
"Description": "Produit 1",
"LineType": 1,
"Quantity": 5.0,
"UnitPrice": 100.0,
"VatRate": 20.0,
"TotalAmountVatExcluded": 500.0,
"TotalVatAmount": 100.0,
"TotalAmountVatIncluded": 600.0,
"DiscountRate": 0.0,
"DiscountAmount": null,
"DetailedDescription": "",
"LineOrder": 0,
"VatRateId": 5,
"EcoContribution": null
},
{
"ItemId": 2,
"Description": "Produit 2",
"LineType": 1,
"Quantity": 3.0,
"UnitPrice": 50.0,
"VatRate": 10.0,
"TotalAmountVatExcluded": 150.0,
"TotalVatAmount": 15.0,
"TotalAmountVatIncluded": 165.0,
"DiscountRate": 0.0,
"DiscountAmount": null,
"DetailedDescription": "Description détaillée du produit 2",
"LineOrder": 1,
"VatRateId": 5,
"EcoContribution": null
}
],
"Commitments": [
{
"Date": "2023-11-07T12:00:00Z",
"Amount": 630.0,
"Rate": 0.0,
"RemainingAmount": 0.0,
"PaymentModeId": 1
}
],
"Footer": {
"TotalAmountVatExcluded": 650.0,
"TotalAmountVatIncluded": 765.0,
"TotalDepositsAmountVatIncluded": 50.0,
"NetAmountVatIncluded": 715.0,
"TotalVatAmount": 65.0,
"ShippingCost": 10.0,
"ShippingVatRateId": 5,
"ShippingVatRate": 20.0,
"DiscountRate": 5.0,
"DiscountAmount": 30.0,
"TotalAmountNetVatExcluded": 620.0,
"TotalAmountNetVatIncluded": 735.0,
"EcoContribution": null
}
}'
Retour de la création d'une facture
45
Modifie une facture
URL de la requête HTTP
PUT /public/v1/sale-invoices/{IdSaleInvoice}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdSaleInvoice | Identifiant de la facture. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Nom de la propriété | Description | Défaut | Obligatoire |
---|---|---|---|
Name | Nom du client | O | |
Siret | Siret du client | ||
IntracommunityVatNumber | Numéro de TVA intracommunautaire | ||
Territoriality | Territorialité | ||
DeliveryDate | Date de livraison | ||
ValidUntil | Date de validité | ||
CustomerId | ID du client | ||
OrderNumber | Numéro de commande | ||
QuoteStatus | Statut du devis | ||
SettlementTermId | ID du terme de règlement | ||
Date | Date du document | ||
Title | Titre du document | ||
PriceCategoryId | ID de la catégorie de prix | ||
ExemptionNoticeId | ID de l'avis d'exonération | ||
UseVatIncludedInvoicingMode | Mode de facturation TVA incluse | ||
VatPayabilityType | Type de paiement de la TVA | ||
InformationsToPrint | Informations à imprimer | ||
Addresses.Invoicing.Street | Rue de facturation | ||
Addresses.Invoicing.AdditionalStreet | Rue de facturation (complément) | ||
Addresses.Invoicing.PostCode | Code postal de facturation | ||
Addresses.Invoicing.City | Ville de facturation | ||
Addresses.Invoicing.Country | Pays de facturation | ||
Addresses.Delivery.Street | Rue de livraison | ||
Addresses.Delivery.AdditionalStreet | Rue de livraison (complément) | ||
Addresses.Delivery.PostCode | Code postal de livraison | ||
Addresses.Delivery.City | Ville de livraison | ||
Addresses.Delivery.Country | Pays de livraison | ||
Addresses.HeadOffice.Street | Rue du siège social | ||
Addresses.HeadOffice.AdditionalStreet | Rue du siège social (complément) | ||
Addresses.HeadOffice.PostCode | Code postal du siège social | ||
Addresses.HeadOffice.City | Ville du siège social | ||
Addresses.HeadOffice.Country | Pays du siège social | ||
Addresses.DeliveryIsTheSameAsInvoicing | Livraison identique à la facturation | ||
Addresses.HeadOfficeIsTheSameAsInvoicing | Siège social identique à la facturation | ||
Lines.ItemId | ID du produit (ligne 1) | ||
Lines.Description | Description du produit (ligne 1) | ||
Lines.LineType | Type de ligne (ligne 1) | ||
Lines.Quantity | Quantité (ligne 1) | ||
Lines.UnitPrice | Prix unitaire (ligne 1) | ||
Lines.VatRate | Taux de TVA (ligne 1) | ||
Commitments.Date | Date d'engagement (1er engagement) | ||
Commitments.Amount | Montant d'engagement (1er engagement) | ||
Commitments.Rate | Pourcentage d'engagement (1er engagement) | ||
Commitments.RemainingAmount | Montant restant (1er engagement) | ||
Commitments.PaymentModeId | Mode de paiement (1er engagement) | ||
Footer.TotalAmountVatExcluded | Montant total HT | ||
Footer.TotalAmountVatIncluded | Montant total TTC | ||
Footer.TotalDepositsAmountVatIncluded | Montant total des dépôts TTC | ||
Footer.NetAmountVatIncluded | Montant net TTC | ||
Footer.TotalVatAmount | Montant total de la TVA | ||
Footer.ShippingCost | Frais de livraison | ||
Footer.ShippingVatRateId | ID du taux de TVA pour les frais de livraison | ||
Footer.ShippingVatRate | Taux de TVA pour les frais de livraison | ||
Footer.DiscountRate | Taux de remise | ||
Footer.DiscountAmount | Montant de remise | ||
Footer.TotalAmountNetVatExcluded | Montant total net HT | ||
Footer.TotalAmountNetVatIncluded | Montant total net TTC | ||
Footer.EcoContribution | Contribution écologique |
Supprimer une facture
curl --location --request DELETE 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-invoices/{IdSaleInvoice}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la suppression d'une facture
1
Si la facture n'existe pas, une erreur HTTP 404 est retournée avec un retour JSON spécifique.
Retour en erreur
json { "status": 404, "errorCode": "SaleInvoice.NotFound", "data": {}, "message": "EntityId : 1. La facture est introuvable." }
Supprime une facture
URL de la requête HTTP
DELETE /public/v1/sale-invoices/{IdSaleInvoice}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdSaleInvoice | Identifiant de la facture. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Obtenir un devis facturé
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-quotes/invoiced/{IdSaleQuote}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la recherche d'un devis facturé
{
"id": 12,
"label": "Balai d'essuie glaces",
"vatId": 1,
"canDelete": false
}
Récupère un devis facturé
URL de la requête HTTP
GET /public/v1/sale-quotes/invoiced/{IdSaleQuote}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdSaleQuote | Identifiant du devis. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
validUntil | string | Date de validité. |
deliveryDate | string | Date de livraison. |
profitability.costPriceVatExcluded | number | Prix de revient HT. |
profitability.marginAmount | number | Montant de la marge. |
profitability.marginRate | number | Taux de marge en pourcentage. |
id | number | Identifiant. |
name | string | Nom. |
priceCategoryId | null | Identifiant de la catégorie tarifaire. |
siret | string | Numéro de SIRET. |
intracommunityVatNumber | string | N° de TVA intracommunautaire. |
isExemptionVat | boolean | Indique si une exonération de TVA est appliquée. |
territoriality | number | Territorialité. |
customerId | number | Identifiant du client. |
customerTypeId | number | Identifiant du type de client. |
date | string | Date du document. |
title | string | Titre du document. |
number | string | Numéro du document. |
exemptionNoticeId | number | Identifiant de l'exemption de TVA. |
useVatIncludedInvoicingMode | boolean | Indique si le mode de facturation inclut la TVA. |
vatPayabilityType | number | Type de redevabilité de la TVA. |
informationsToPrint | string | Informations à imprimer. |
addresses.invoicing.street | string | Adresse de facturation. |
addresses.invoicing.additionalStreet | string | Complément d'adresse de facturation. |
addresses.invoicing.postCode | string | Code postal de l'adresse de facturation. |
addresses.invoicing.city | string | Ville de l'adresse de facturation. |
addresses.invoicing.country | string | Pays de l'adresse de facturation. |
lines.description | string | Description de la ligne d'article. |
lines.itemId | null | Identifiant de l'article. |
lines.applyMargin | boolean | Indique si la marge est appliquée à la ligne. |
lines.lineType | number | Type de ligne. |
lines.quantity | number | Quantité de la ligne. |
lines.unitPrice | number | Prix unitaire de la ligne. |
lines.vatRate | number | Taux de TVA de la ligne. |
lines.totalAmountVatExcluded | number | Montant total HT de la ligne. |
lines.totalVatAmount | number | Montant total de la TVA de la ligne. |
lines.totalAmountVatIncluded | number | Montant total TTC de la ligne. |
lines.discountRate | number | Taux de remise de la ligne. |
lines.discountAmount | null | Montant de remise de la ligne. |
lines.detailedDescription | string | Description détaillée de la ligne. |
lines.lineOrder | number | Ordre d'affichage de la ligne. |
lines.ecoContribution | null | Contribution écologique de la ligne. |
footer.totalAmountVatExcluded | number | Montant total HT du document. |
footer.totalAmountVatIncluded | number | Montant total TTC du document. |
footer.totalDepositsAmountVatIncluded | number | Montant total des acomptes TTC. |
footer.netAmountVatIncluded | number | Montant net TTC du document. |
footer.totalVatAmount | number | Montant total de la TVA du document. |
footer.shippingCost | number | Coût d'expédition. |
footer.shippingVatRateId | number | Identifiant du taux de TVA pour l'expédition. |
footer.shippingVatRate | number | Taux de TVA pour l'expédition. |
footer.discountRate | number | Taux de remise du document. |
footer.discountAmount | number | Montant de remise du document. |
footer.totalAmountNetVatExcluded | number | Montant total net HT du document. |
footer.totalAmountNetVatIncluded | number | Montant total net TTC du document. |
footer.ecoContribution | null | Contribution écologique du document. |
vatSummaryLines.rate | number | Taux de TVA de la ligne récapitulative. |
vatSummaryLines.baseAmountExcludedVat | number | Montant total HT de la ligne récapitulative. |
vatSummaryLines.debitVatAmount | number | Montant total de la TVA à débiter. |
vatSummaryLines.cashVatAmount | number | Montant total de la TVA encaissée. |
vatSummaryLines.totalVatAmount | number | Montant total de la TVA de la ligne récapitulative. |
vatSummaryLines.discountAmount | null | Montant de remise de la ligne récapitulative. |
Obtenir un devis provisoire
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-quotes/{IsSaleQuote}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la recherche d'un devis provisoire
{
"validUntil": "2024-01-13T00:00:00Z",
"deliveryDate": "2023-12-14T00:00:00Z",
"profitability": {
"costPriceVatExcluded": 0.0000000000000000000000000000,
"marginAmount": 1545.0000000000000000000000000,
"marginRate": 0.0000000000000000000000000000
},
"id": 6,
"name": "KRAP'S",
"priceCategoryId": null,
"siret": "",
"intracommunityVatNumber": "",
"isExemptionVat": false,
"territoriality": 0,
"customerId": 1,
"customerTypeId": 2,
"date": "2023-12-14T00:00:00Z",
"title": "",
"number": "DE00000004",
"exemptionNoticeId": 4,
"useVatIncludedInvoicingMode": false,
"vatPayabilityType": 2,
"informationsToPrint": "",
"addresses": {
"invoicing": {
"street": "Rue des Bosses",
"additionalStreet": "",
"postCode": "22440",
"city": "Ploufragan",
"country": "France"
},
"delivery": null,
"headOffice": null,
"deliveryIsTheSameAsInvoicing": false,
"headOfficeIsTheSameAsInvoicing": false
},
"lines": [
{
"id": 6,
"description": "Article bien",
"itemId": null,
"applyMargin": false,
"lineType": 0,
"quantity": 1.0000000000000000000000000000,
"unitPrice": 1545.0000000000000000000000000,
"vatRate": 20.000000000000000000000000000,
"totalAmountVatExcluded": 1545.0000000000000000000000000,
"totalVatAmount": 309.00000000000000000000000000,
"totalAmountVatIncluded": 1854.0000000000000000000000000,
"discountRate": 0.0000000000000000000000000000,
"discountAmount": null,
"detailedDescription": "",
"lineOrder": 0,
"ecoContribution": null
}
],
"footer": {
"totalAmountVatExcluded": 1545.0000000000000000000000000,
"totalAmountVatIncluded": 1854.0000000000000000000000000,
"totalDepositsAmountVatIncluded": 92.70000000000000000000000000,
"netAmountVatIncluded": 1761.3000000000000000000000000,
"totalVatAmount": 309.00000000000000000000000000,
"shippingCost": 0.0000000000000000000000000000,
"shippingVatRateId": 5,
"shippingVatRate": 20.000000000000000000000000000,
"discountRate": 0.0000000000000000000000000000,
"discountAmount": 0.0000000000000000000000000000,
"totalAmountNetVatExcluded": 1545.0000000000000000000000000,
"totalAmountNetVatIncluded": 1854.0000000000000000000000000,
"ecoContribution": null
},
"vatSummaryLines": [
{
"id": 61,
"rate": 20.000000000000000000000000000,
"baseAmountExcludedVat": 1545.0000000000000000000000000,
"debitVatAmount": 0.0000000000000000000000000000,
"cashVatAmount": 309.00000000000000000000000000,
"totalVatAmount": 309.00000000000000000000000000,
"discountAmount": null
}
]
}
Récupère un devis provisoire
URL de la requête HTTP
GET /public/v1/sale-quotes/{IdSaleQuote}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IsSaleQuote | Identifiant du devis. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
fromSaleQuoteId | integer | Identifiant du devis d'origine de l'avoir d'acompte. |
date | datetime | Date/heure du document. |
siret | string | N° de SIRET. |
intracommunityVatNumber | string | N° de TVA intracommunautaire. |
orderNumber | string | Numéro de commande client. |
deliveryDate | date | Date de livraison/exécution. |
paymentModeId | integer | Identifiant du moyen de paiement. |
exemptionNoticeId | integer | Identifiant de l'exemption de TVA. |
commitmentDate | date | Date de l'échéance. |
amountVatIncluded | decimal | Montant total de l'acompte incluant la TVA. |
rateVatIncluded | decimal | Montant total de la TVA. |
vatRate | decimal | Taux de TVA. |
vatRateId | decimal | Identifiant de la TVA. |
detailedDescription | string | Description détaillée. |
addresses.invoicing.street | string | Adresse de facturation. |
addresses.invoicing.additionalStreet | string | Complément d'adresse de facturation. |
addresses.invoicing.postCode | string | Code postal de l'adresse de facturation. |
addresses.invoicing.city | string | Ville de l'adresse de facturation. |
addresses.invoicing.country | string | Pays de l'adresse de facturation. |
addresses.deliveryAddress.street | string | Adresse de livraison. |
addresses.deliveryAddress.additionalStreet | string | Complément d'adresse de livraison. |
addresses.deliveryAddress.postCode | string | Code postal de l'adresse de livraison. |
addresses.deliveryAddress.city | string | Ville de l'adresse de livraison. |
addresses.deliveryAddress.country | string | Pays de l'adresse de livraison. |
addresses.headOfficeAddress.street | string | Adresse du siège social. |
addresses.headOfficeAddress.additionalStreet | string | Complément d'adresse du siège social. |
addresses.headOfficeAddress.postCode | string | Code postal de l'adresse du siège social. |
addresses.headOfficeAddress.city | string | Ville de l'adresse du siège social. |
addresses.headOfficeAddress.country | string | Pays de l'adresse du siège social. |
Créer un devis
curl --location --request POST 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-quotes' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
--data '{
"Name": "Nom du client",
"Siret": "12345678901234",
"IntracommunityVatNumber": "FR12345678901",
"Territoriality": 0,
"DeliveryDate": "2023-11-07T12:00:00Z",
"ValidUntil": "2023-12-07T12:00:00Z",
"CustomerId": 1,
"QuoteStatus": 0,
"SettlementTermId": 2,
"Date": "2023-11-07T12:00:00Z",
"Title": "Titre du document",
"PriceCategoryId": 1,
"ExemptionNoticeId": 4,
"UseVatIncludedInvoicingMode": true,
"VatPayabilityType": 1,
"InformationsToPrint": "Informations à imprimer",
"Addresses": {
"Invoicing": {
"Street": "123 Rue de la Facturation",
"AdditionalStreet": "Appartement 5",
"PostCode": "75001",
"City": "Paris",
"Country": "France"
},
"Delivery": {
"Street": "456 Rue de la Livraison",
"AdditionalStreet": "",
"PostCode": "75002",
"City": "Paris",
"Country": "France"
},
"HeadOffice": {
"Street": "789 Rue du Siège Social",
"AdditionalStreet": "",
"PostCode": "75003",
"City": "Paris",
"Country": "France"
},
"DeliveryIsTheSameAsInvoicing": true,
"HeadOfficeIsTheSameAsInvoicing": true
},
"Lines": [
{
"ItemId": 1,
"Description": "Produit 1",
"LineType": 1,
"Quantity": 5.0,
"UnitPrice": 100.0,
"VatRate": 20.0,
"TotalAmountVatExcluded": 500.0,
"TotalVatAmount": 100.0,
"TotalAmountVatIncluded": 600.0,
"DiscountRate": 0.0,
"DiscountAmount": null,
"DetailedDescription": "",
"LineOrder": 0,
"VatRateId": 5,
"EcoContribution": null
},
{
"ItemId": 2,
"Description": "Produit 2",
"LineType": 1,
"Quantity": 3.0,
"UnitPrice": 50.0,
"VatRate": 10.0,
"TotalAmountVatExcluded": 150.0,
"TotalVatAmount": 15.0,
"TotalAmountVatIncluded": 165.0,
"DiscountRate": 0.0,
"DiscountAmount": null,
"DetailedDescription": "Description détaillée du produit 2",
"LineOrder": 1,
"VatRateId": 5,
"EcoContribution": null
}
],
"Footer": {
"TotalAmountVatExcluded": 650.0,
"TotalAmountVatIncluded": 765.0,
"TotalDepositsAmountVatIncluded": 50.0,
"NetAmountVatIncluded": 715.0,
"TotalVatAmount": 65.0,
"ShippingCost": 10.0,
"ShippingVatRateId": 5,
"ShippingVatRate": 20.0,
"DiscountRate": 5.0,
"DiscountAmount": 30.0,
"TotalAmountNetVatExcluded": 620.0,
"TotalAmountNetVatIncluded": 735.0,
"EcoContribution": null
}
}'
Retour de la création d'un devis
64
Crée un nouveau devis
URL de la requête HTTP
POST /public/v1/sale-quotes
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Name | Nom du client | O | |
Siret | N° de SIRET | ||
IntracommunityVatNumber | N° de TVA intracommunautaire | ||
Territoriality | Territorialité | ||
DeliveryDate | Date de livraison/exécution | ||
ValidUntil | Date de validité | ||
CustomerId | Identifiant du client | O | |
QuoteStatus | Statut du devis | O | |
SettlementTermId | Identifiant du terme de règlement | ||
Date | Date/heure du document | O | |
Title | Titre du document | ||
PriceCategoryId | Identifiant de la catégorie de prix | ||
ExemptionNoticeId | Identifiant de l'exemption de TVA | ||
UseVatIncludedInvoicingMode | Utiliser le mode de facturation TTC | ||
VatPayabilityType | Type de paiement de la TVA | ||
InformationsToPrint | Informations à imprimer | ||
Addresses.Invoicing.Street | Rue de l'adresse de facturation | ||
Addresses.Invoicing.AdditionalStreet | Complément d'adresse de facturation | ||
Addresses.Invoicing.PostCode | Code postal de l'adresse de facturation | ||
Addresses.Invoicing.City | Ville de l'adresse de facturation | ||
Addresses.Invoicing.Country | Pays de l'adresse de facturation | ||
Addresses.Delivery.Street | Rue de l'adresse de livraison | ||
Addresses.Delivery.AdditionalStreet | Complément d'adresse de livraison | ||
Addresses.Delivery.PostCode | Code postal de l'adresse de livraison | ||
Addresses.Delivery.City | Ville de l'adresse de livraison | ||
Addresses.Delivery.Country | Pays de l'adresse de livraison | ||
Addresses.HeadOffice.Street | Rue de l'adresse du siège social | ||
Addresses.HeadOffice.AdditionalStreet | Complément d'adresse du siège social | ||
Addresses.HeadOffice.PostCode | Code postal de l'adresse du siège social | ||
Addresses.HeadOffice.City | Ville de l'adresse du siège social | ||
Addresses.HeadOffice.Country | Pays de l'adresse du siège social | ||
DeliveryIsTheSameAsInvoicing | La livraison est la même que la facturation | ||
HeadOfficeIsTheSameAsInvoicing | Le siège social est le même que la facturation | ||
Lines.ItemId | Identifiant de l'article (Ligne 1) | ||
Lines.Description | Description de l'article (Ligne 1) | ||
Lines.LineType | Type de ligne de l'article (Ligne 1) | ||
Footer.TotalAmountVatExcluded | Montant total HT | ||
Footer.TotalAmountVatIncluded | Montant total TTC | ||
Footer.TotalDepositsAmountVatIncluded | Montant total des acomptes TTC | ||
Footer.NetAmountVatIncluded | Montant net TTC | ||
Footer.TotalVatAmount | Montant total de la TVA | ||
Footer.ShippingCost | Frais de livraison | ||
Footer.ShippingVatRateId | Identifiant du taux de TVA des frais de livraison | ||
Footer.ShippingVatRate | Taux de TVA des frais de livraison | ||
Footer.DiscountRate | Taux de remise | ||
Footer.DiscountAmount | Montant de la remise | ||
Footer.TotalAmountNetVatExcluded | Montant total net HT | ||
Footer.TotalAmountNetVatIncluded | Montant total net TTC | ||
Footer.EcoContribution | Éco-contribution |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Modifier un devis
curl --location --request PUT 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-quotes/{IdSaleQuote}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
--data '{
"Name": "Nom du client",
"Siret": "12345678901234",
"IntracommunityVatNumber": "FR12345678901",
"Territoriality": 0,
"DeliveryDate": "2023-11-07T12:00:00Z",
"ValidUntil": "2023-12-07T12:00:00Z",
"CustomerId": 2,
"QuoteStatus": 3,
"SettlementTermId": 2,
"Date": "2023-11-07T12:00:00Z",
"Title": "Titre du document",
"PriceCategoryId": 1,
"ExemptionNoticeId": 4,
"UseVatIncludedInvoicingMode": true,
"VatPayabilityType": 1,
"InformationsToPrint": "Informations à imprimer",
"Addresses": {
"Invoicing": {
"Street": "123 Rue de la Facturation",
"AdditionalStreet": "Appartement 5",
"PostCode": "75001",
"City": "Paris",
"Country": "France"
},
"Delivery": {
"Street": "456 Rue de la Livraison",
"AdditionalStreet": "",
"PostCode": "75002",
"City": "Paris",
"Country": "France"
},
"HeadOffice": {
"Street": "789 Rue du Siège Social",
"AdditionalStreet": "",
"PostCode": "75003",
"City": "Paris",
"Country": "France"
},
"DeliveryIsTheSameAsInvoicing": true,
"HeadOfficeIsTheSameAsInvoicing": true
},
"Lines": [
{
"ItemId": 3,
"Description": "Produit 1",
"LineType": 1,
"Quantity": 5.0,
"UnitPrice": 100.0,
"VatRate": 20.0,
"TotalAmountVatExcluded": 500.0,
"TotalVatAmount": 100.0,
"TotalAmountVatIncluded": 600.0,
"DiscountRate": 0.0,
"DiscountAmount": null,
"DetailedDescription": "",
"LineOrder": 0,
"VatRateId": 5,
"EcoContribution": null
},
{
"ItemId": 2,
"Description": "Produit 2",
"LineType": 1,
"Quantity": 3.0,
"UnitPrice": 50.0,
"VatRate": 10.0,
"TotalAmountVatExcluded": 150.0,
"TotalVatAmount": 15.0,
"TotalAmountVatIncluded": 165.0,
"DiscountRate": 0.0,
"DiscountAmount": null,
"DetailedDescription": "Description détaillée du produit 2",
"LineOrder": 1,
"VatRateId": 5,
"EcoContribution": null
}
],
"Commitments": [
{
"Date": "2023-11-07T12:00:00Z",
"Amount": 630.0,
"Rate": 0.0,
"RemainingAmount": 0.0,
"PaymentModeId": 1
}
],
"Footer": {
"TotalAmountVatExcluded": 650.0,
"TotalAmountVatIncluded": 765.0,
"TotalDepositsAmountVatIncluded": 50.0,
"NetAmountVatIncluded": 715.0,
"TotalVatAmount": 65.0,
"ShippingCost": 10.0,
"ShippingVatRateId": 5,
"ShippingVatRate": 20.0,
"DiscountRate": 5.0,
"DiscountAmount": 30.0,
"TotalAmountNetVatExcluded": 620.0,
"TotalAmountNetVatIncluded": 735.0,
"EcoContribution": null
}
}'
Retour de la modification d'un devis
64
Modifie un devis
URL de la requête HTTP
PUT /public/v1/sale-quotes/{IdSaleQuote}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdSaleQuote | Identifiant du devis | O | |
Name | Nom du client | O | |
Siret | N° de SIRET | ||
IntracommunityVatNumber | N° de TVA intracommunautaire | ||
Territoriality | Territorialité | ||
DeliveryDate | Date de livraison/exécution | ||
ValidUntil | Date de validité | ||
CustomerId | Identifiant du client | O | |
QuoteStatus | Statut du devis | O | |
SettlementTermId | Identifiant du terme de règlement | ||
Date | Date/heure du document | O | |
Title | Titre du document | ||
PriceCategoryId | Identifiant de la catégorie de prix | ||
ExemptionNoticeId | Identifiant de l'exemption de TVA | ||
UseVatIncludedInvoicingMode | Utiliser le mode de facturation TTC | ||
VatPayabilityType | Type de paiement de la TVA | ||
InformationsToPrint | Informations à imprimer | ||
Addresses.Invoicing.Street | Rue de l'adresse de facturation | ||
Addresses.Invoicing.AdditionalStreet | Complément d'adresse de facturation | ||
Addresses.Invoicing.PostCode | Code postal de l'adresse de facturation | ||
Addresses.Invoicing.City | Ville de l'adresse de facturation | ||
Addresses.Invoicing.Country | Pays de l'adresse de facturation | ||
Addresses.Delivery.Street | Rue de l'adresse de livraison | ||
Addresses.Delivery.AdditionalStreet | Complément d'adresse de livraison | ||
Addresses.Delivery.PostCode | Code postal de l'adresse de livraison | ||
Addresses.Delivery.City | Ville de l'adresse de livraison | ||
Addresses.Delivery.Country | Pays de l'adresse de livraison | ||
Addresses.HeadOffice.Street | Rue de l'adresse du siège social | ||
Addresses.HeadOffice.AdditionalStreet | Complément d'adresse du siège social | ||
Addresses.HeadOffice.PostCode | Code postal de l'adresse du siège social | ||
Addresses.HeadOffice.City | Ville de l'adresse du siège social | ||
Addresses.HeadOffice.Country | Pays de l'adresse du siège social | ||
DeliveryIsTheSameAsInvoicing | La livraison est la même que la facturation | ||
HeadOfficeIsTheSameAsInvoicing | Le siège social est le même que la facturation | ||
Lines.ItemId | Identifiant de l'article (Ligne 1) | ||
Lines.Description | Description de l'article (Ligne 1) | ||
Lines.LineType | Type de ligne de l'article (Ligne 1) | ||
Footer.TotalAmountVatExcluded | Montant total HT | ||
Footer.TotalAmountVatIncluded | Montant total TTC | ||
Footer.TotalDepositsAmountVatIncluded | Montant total des acomptes TTC | ||
Footer.NetAmountVatIncluded | Montant net TTC | ||
Footer.TotalVatAmount | Montant total de la TVA | ||
Footer.ShippingCost | Frais de livraison | ||
Footer.ShippingVatRateId | Identifiant du taux de TVA des frais de livraison | ||
Footer.ShippingVatRate | Taux de TVA des frais de livraison | ||
Footer.DiscountRate | Taux de remise | ||
Footer.DiscountAmount | Montant de la remise | ||
Footer.TotalAmountNetVatExcluded | Montant total net HT | ||
Footer.TotalAmountNetVatIncluded | Montant total net TTC | ||
Footer.EcoContribution | Éco-contribution |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Supprimer un devis
curl --location --request DELETE 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-quotes/{IdSaleQuote}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la suppression d'un devis
1
Si le devis n'existe pas, une erreur HTTP 404 est retournée avec un retour JSON spécifique.
Retour en erreur
json { "status": 404, "errorCode": "SaleQuote.NotFound", "data": {}, "message": "EntityId : 1. Le devis est introuvable." }
Supprime un devis
URL de la requête HTTP
DELETE /public/v1/sale-quotes/{IdSaleQuote}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdSaleQuote | Identifiant du devis. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Obtenir une liste des unités de vente
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-units?skip=1&take=2' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour sur la récupération de la liste des unités de vente
{
"take": 2,
"skip": 1,
"total": 55,
"elements": [
{
"id": 2,
"unit": "nm",
"label": "nanomètre",
"unitType": 5,
"decimalPrecision": 2,
"equivalence": 1.00000000,
"comment": null,
"isActive": false
},
{
"id": 3,
"unit": "µm",
"label": "micromètre",
"unitType": 5,
"decimalPrecision": 2,
"equivalence": 1.00000000,
"comment": null,
"isActive": false
}
]
}
Récupère la liste des unités de vente de l'application. Les unités peuvent ne pas être actives, un champ booléen prévu à cet effet vous indique s'il l'est ou non.
URL de la requête HTTP
GET /public/v1/sale-units
Requête
Le tableau ci-dessous vous indique les différents paramètres à fournir en paramètre de la requête de récupération de données. Les noms des paramètres sont à fournir en CamelCase. Plus de détails sur ce lien.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
take | Nombre d'éléments à retourner. | N | |
skip | Nombre d'éléments à ignorer avant de commencer à retourner. | N | |
sortingOrder.property | Nom du champ utilisé pour le tri. | N | |
sortingOrder.sortType | Sens de tri (Croissant / décroissant). Doit être une valeur du type SortType. Par défaut : Croissant. | N | |
filter.query | Terme recherché pour le filtrage. | N |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans un tableau dans la propriété elements
décrit ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant de l'unité de vente. |
unit | string | Nom de l'unité (symbole). |
label | string | Libellé ou description de l'unité. |
unitType | UnitType | Type d'unité. |
decimalPrecision | integer | Précision ou nombre de décimales. |
equivalence | decimal | Equivalence dans son unité d'origine. |
comment | string | Commentaires. |
isActive | boolean | Indique si l'unité est active. |
Réponse en erreur
Code HTTP de réponse : 400 (Bad request).
Nom | Type | Défaut | Description |
---|---|---|---|
status | integer | 400 | Code d'erreur HTTP. |
errorCode | string | Code de l'erreur. | |
message | string | Message de l'erreur. |
Obtenir une unité de vente
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/sale-units/{IdSaleUnit}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour sur la récupération d'une unité de vente
{
"id": 3,
"unit": "µm",
"label": "micromètre",
"unitType": 5,
"decimalPrecision": 2,
"equivalence": 1.00000000,
"comment": null,
"isActive": false,
"take": null,
"skip": null,
"filter": null,
"sortingOrder": null
}
Retour en échec
{
"status": 400,
"errorCode": "SaleUnit.NotFound",
"message": "EntityId : 8016. L'unité est introuvable."
}
Récupère une unité de vente avec son détail.
URL de la requête HTTP
GET /public/v1/sale-units/{IdSaleUnit}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdSaleUnit | Identifiant de l'unité de vente. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
Nom | Type | Description |
---|---|---|
id | integer | Identifiant de l'unité de vente. |
unit | string | Nom de l'unité (symbole). |
label | string | Libellé ou description de l'unité. |
unitType | UnitType | Type d'unité. |
decimalPrecision | integer | Précision ou nombre de décimales. |
equivalence | decimal | Equivalence dans son unité d'origine. |
comment | string | Commentaires. |
isActive | boolean | Indique si l'unité est active. |
Réponse en erreur
Code HTTP de réponse : 400 (Bad request).
Nom | Type | Défaut | Description |
---|---|---|---|
status | integer | 400 | Code d'erreur HTTP. |
errorCode | string | Code de l'erreur. | |
message | string | Message de l'erreur. |
Obtenir un article de type [Service]
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/items/services/{IdItem}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour sur la récupération d'un article de type [Service]
{
"id": 2,
"code": "ARTSERV",
"label": "Article service",
"natureId": 3,
"itemGroupId": null,
"priceVatExcluded": 316.66000000000000000000000000,
"vatId": 5,
"vatRate": 20.000000000000000000000000000,
"priceVatIncluded": 379.99000000000000000000000000,
"description": "",
"salesQuantity": 1.0000000000000000000000000000,
"saleUnitId": null,
"canDelete": true,
"costPriceAndMargin": null
}
Récupère un article de type [Service]
URL de la requête HTTP
GET /public/v1/items/services/{IdItem}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdItem | Identifiant de l'article. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant de l'article. |
code | string | Code unique de l'article. |
label | string | Libellé ou désignation de l'article. |
natureId | integer / null | Identifiant de la nature d'article. |
itemGroupId | integer / null | Identifiant de la famille d'article. |
prixVatExcluded | decimal | Prix HT de l'article. |
vatId | integer | Identifiant du taux de TVA. |
vatRate | decimal | Taux de TVA associé. |
priceVatIncluded | decimal | Prix TTC de l'article. |
description | string | Description détaillée de l'article. |
salesQuantity | decimal | Quantité de vente de l'article. |
saleUnitId | integer / null | Identifiant de l'unité de vente de l'article. |
canDelete | boolean | Indique si l'article peut être supprimé. |
costPriceAndMargin.costPriceVatExcluded | decimal | Prix de revient HT de l'article. |
costPriceAndMargin.marginAmount | decimal | Montant de la marge de l'article. |
costPriceAndMargin.marginRate | decimal | Taux de la marge de l'article en pourcentage. |
Créer un article de type [Service]
curl --location --request POST 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/items/services' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
-form 'file=@"/path/to/file"' \
--form 'code="ART0001"' \
--form 'label="Doudou teddy bear"' \
--form 'priceVatExcluded="199,99"' \
--form 'description="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam pellentesque finibus eros at semper. Fusce a venenatis sem. In euismod consectetur massa, in placerat sapien condimentum ut. Aliquam varius quam sit amet metus tempor vestibulum. Nulla congue et magna sit amet viverra. Quisque ullamcorper ligula vitae vestibulum facilisis. Suspendisse pharetra cursus massa eu egestas.
"' \
--form 'vatId="5"' \
--form 'natureId="2"' \
--form 'priceVatIncluded="239,99"' \
--form 'salesQuantity="1"' \
--form 'costPriceAndMargin.costPriceVatExcluded="130,50"' \
--form 'costPriceAndMargin.marginAmount="69,49"' \
--form 'costPriceAndMargin.marginRate="53,25"' \
--form 'ecoContribution.label="Appareil éléctrique"' \
--form 'ecoContribution.amountVatExcluded="5,00"' \
--form 'ecoContribution.amountVatIncluded="5,00"' \
--form 'ecoContribution.includeAmountInSalePrice="false"'
Retour de la création d'un article de type [Service]
7
Crée un nouvel article de type [Service]
URL de la requête HTTP
POST /public/v1/items/services
Form
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
file | Chemin vers le fichier source de l'image de l'article sur votre ordinateur. | N | |
code | Code de l'article. | N | |
label | Désignation de l'article. | N | |
priceVatExcluded | Prix HT de l'article. | O | |
description | Description détaillée de l'article. | O | |
vatId | Identifiant du taux de TVA de l'article. | O | |
natureId | Identifiant de la nature de l'article. | O | |
priceVatExcluded | Prix TTC de l'article. | O | |
salesQuantity | Quantité de vente de l'article. | O | |
costPriceAndMargin.costPriceVatExcluded | Prix de revient HT de l'article. | O | |
costPriceAndMargin.marginAmount | Marge en montant de l'article. | O | |
costPriceAndMargin.marginRate | Marge en pourcentage de l'article. | O | |
ecoContribution.amountVatExcluded | Montant HT de l'éco-contribution de l'article. | O | |
ecoContribution.amountVatIncluded | Montant TTC de l'éco-contribution de l'article. | O | |
ecoContribution.includeAmountInSalePrice | Indique si le montant doit être inclus dans le prix de vente de l'article. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Créer un article
curl --location --request PUT 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/items/services/{IdItem}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
-form 'file=@"/path/to/file"' \
--form 'code="ART0001"' \
--form 'label="Doudou teddy bear"' \
--form 'priceVatExcluded="199,99"' \
--form 'description="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam pellentesque finibus eros at semper. Fusce a venenatis sem. In euismod consectetur massa, in placerat sapien condimentum ut. Aliquam varius quam sit amet metus tempor vestibulum. Nulla congue et magna sit amet viverra. Quisque ullamcorper ligula vitae vestibulum facilisis. Suspendisse pharetra cursus massa eu egestas.
"' \
--form 'vatId="5"' \
--form 'natureId="2"' \
--form 'priceVatIncluded="239,99"' \
--form 'salesQuantity="1"' \
--form 'costPriceAndMargin.costPriceVatExcluded="130,50"' \
--form 'costPriceAndMargin.marginAmount="69,49"' \
--form 'costPriceAndMargin.marginRate="53,25"' \
--form 'ecoContribution.label="Appareil éléctrique"' \
--form 'ecoContribution.amountVatExcluded="5,00"' \
--form 'ecoContribution.amountVatIncluded="5,00"' \
--form 'ecoContribution.includeAmountInSalePrice="false"'
Retour de la modification d'un article de type [Service]
7
Modifie nouvel article de type [Service]
URL de la requête HTTP
PUT /public/v1/items/services/{IdItem}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
file | Chemin vers le fichier source de l'image de l'article sur votre ordinateur. | N | |
code | Code de l'article. | N | |
label | Désignation de l'article. | N | |
priceVatExcluded | Prix HT de l'article. | O | |
description | Description détaillée de l'article. | O | |
vatId | Identifiant du taux de TVA de l'article. | O | |
natureId | Identifiant de la nature de l'article. | O | |
priceVatExcluded | Prix TTC de l'article. | O | |
salesQuantity | Quantité de vente de l'article. | O | |
costPriceAndMargin.costPriceVatExcluded | Prix de revient HT de l'article. | O | |
costPriceAndMargin.marginAmount | Marge en montant de l'article. | O | |
costPriceAndMargin.marginRate | Marge en pourcentage de l'article. | O | |
ecoContribution.amountVatExcluded | Montant HT de l'éco-contribution de l'article. | O | |
ecoContribution.amountVatIncluded | Montant TTC de l'éco-contribution de l'article. | O | |
ecoContribution.includeAmountInSalePrice | Indique si le montant doit être inclus dans le prix de vente de l'article. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Supprimer une article de type [Service]
curl --location --request DELETE 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/items/services/{IdItem}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la suppression d'un article de type [Service]
1
Si l'article n'existe pas, une erreur HTTP 404 est retournée avec un retour JSON spécifique.
Retour en erreur
json { "status": 404, "errorCode": "Item.NotFound", "data": {}, "message": "EntityId : 1. L'article est introuvable." }
Supprime un article de type [Service]
URL de la requête HTTP
DELETE /public/v1/items/services/{IdItem}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdItem | Identifiant l'article. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Obtenir une liste des règlements
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/settlements?take=1&skip=0' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération de la liste des règlements
{
"take": 2,
"skip": 0,
"total": 1,
"elements": [
{
"id": 4,
"code": "RE00000001",
"date": "2023-12-14T00:00:00Z",
"customerName": "KRAP'S",
"amount": 500.00000000000000000000000000,
"stillToBeDistributedAmount": 500.00000000000000000000000000,
"paymentModeLabel": "Carte bancaire",
"paymentReference": "",
"settlementType": 0
}
]
}
Retourne l'ensemble des règlements de l'application. Vous pouvez paginer les résultats et éventuellement les filtrer.
URL de la requête HTTP
GET /public/v1/settlements
Requête
Le tableau ci-dessous vous indique les différents paramètres à fournir en paramètre de la requête de récupération de données. Les noms des paramètres sont à fournir en CamelCase. Plus de détails sur ce lien.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
take | Nombre d'éléments à retourner. | N | |
skip | Nombre d'éléments à ignorer avant de commencer à retourner. | N | |
sortingOrder.property | Nom du champ utilisé pour le tri. | N | |
sortingOrder.sortType | Sens de tri (Croissant / décroissant). Doit être une valeur du type SortType. Par défaut : Croissant. | N | |
filter.query | Terme recherché pour le filtrage. | N |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans un tableau dans la propriété elements
décrit ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant du règlement. |
code | string | Code unique du règlement. |
date | date | Date du règlement. |
customerName | string | Nom du client. |
amount | decimal | Montant TTC du règlement. |
stillToBeDistributedAmount | decimal | Montant TTC restant dû du règlement. |
paymentModeLabel | string | Moyen de paiement. |
paymentReference | string | N° de référence du règlement. |
settlementType | Type de règlement. | Type de règlement. |
Réponse en erreur
Code HTTP de réponse : 400 (Bad request).
Nom | Type | Défaut | Description |
---|---|---|---|
status | integer | 400 | Code d'erreur HTTP. |
errorCode | string | Code de l'erreur. | |
message | string | Message de l'erreur. |
Obtenir une liste des conditions de règlement
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/settlement-terms?take=1&skip=0&filter.query=bancaire' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération de la liste des conditions de règlement
{
"take": null,
"skip": null,
"total": 8,
"elements": [
{
"id": 5,
"label": "Paiement à 30 jours fin de décade",
"lines": [
{
"id": 8,
"percent": 0.0,
"numberOfDays": 30,
"settlementTermLineType": 9,
"dayOfMonth": null,
"paymentModeId": null
}
],
"canDelete": true
},
{
"id": 4,
"label": "Paiement à 30 jours fin de mois le 10",
"lines": [
{
"id": 7,
"percent": 0.0,
"numberOfDays": 30,
"settlementTermLineType": 3,
"dayOfMonth": 10,
"paymentModeId": null
}
],
"canDelete": true
},
{
"id": 6,
"label": "Paiement à 30 jours nets",
"lines": [
{
"id": 9,
"percent": 0.0,
"numberOfDays": 30,
"settlementTermLineType": 1,
"dayOfMonth": null,
"paymentModeId": null
}
],
"canDelete": true
},
{
"id": 1,
"label": "Paiement comptant",
"lines": [
{
"id": 1,
"percent": 0.0,
"numberOfDays": null,
"settlementTermLineType": 0,
"dayOfMonth": null,
"paymentModeId": null
}
],
"canDelete": false
},
{
"id": 2,
"label": "Paiement en 2 fois (50% comptant, 50% à 30 jours fin de mois le 10)",
"lines": [
{
"id": 2,
"percent": 0.0,
"numberOfDays": null,
"settlementTermLineType": 0,
"dayOfMonth": null,
"paymentModeId": null
},
{
"id": 3,
"percent": 0.0,
"numberOfDays": 30,
"settlementTermLineType": 3,
"dayOfMonth": 10,
"paymentModeId": null
}
],
"canDelete": true
},
{
"id": 3,
"label": "Paiement en 3 fois (40% comptant, 30% à 30 jours fin de mois le 10, 30% à 45 jours nets le 10)",
"lines": [
{
"id": 4,
"percent": 0.0,
"numberOfDays": null,
"settlementTermLineType": 0,
"dayOfMonth": null,
"paymentModeId": null
},
{
"id": 5,
"percent": 0.0,
"numberOfDays": 30,
"settlementTermLineType": 3,
"dayOfMonth": 10,
"paymentModeId": null
},
{
"id": 6,
"percent": 0.0,
"numberOfDays": 45,
"settlementTermLineType": 4,
"dayOfMonth": 10,
"paymentModeId": null
}
],
"canDelete": true
},
{
"id": 7,
"label": "Paiement fin de mois",
"lines": [
{
"id": 10,
"percent": 0.0,
"numberOfDays": 0,
"settlementTermLineType": 2,
"dayOfMonth": null,
"paymentModeId": null
}
],
"canDelete": true
},
{
"id": 8,
"label": "Paiement fin de mois le 10",
"lines": [
{
"id": 11,
"percent": 0.0,
"numberOfDays": 0,
"settlementTermLineType": 3,
"dayOfMonth": 10,
"paymentModeId": null
}
],
"canDelete": true
}
]
}
Récupère la liste des conditions de règlement que vous pouvez filtrer et/ou paginer à votre convenance.
URL de la requête HTTP
GET /public/v1/settlement-terms
Requête
Le tableau ci-dessous vous indique les différents paramètres à fournir en paramètre de la requête de récupération de données. Les noms des paramètres sont à fournir en CamelCase. Plus de détails sur ce lien.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
take | Nombre d'éléments à retourner. | N | |
skip | Nombre d'éléments à ignorer avant de commencer à retourner. | N | |
sortingOrder.property | Nom du champ utilisé pour le tri. | N | |
sortingOrder.sortType | Sens de tri (Croissant / décroissant). Doit être une valeur du type SortType. Par défaut : Croissant. | N | |
filter.query | Terme recherché pour le filtrage. | N |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans un tableau dans la propriété elements
décrit ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant du moyen de paiement. |
label | string | Libellé du moyen de paiement. |
lines.id | integer | Identifiant de la répartition. |
lines.percent | decimal | Pourcentage du montant de la répartition. |
lines.numberOfDays | integer | Nombre de jours de la répartition. |
lines.settlementTermLineType | SettlementTermLineType | Type de la ligne de la répartition. |
lines.dayOfMonth | integer | N° du jour dans le mois de la répartition. |
lines.paymentModeId | integer | Moyen de paiement de la répartition. |
canDelete | boolean | Indique si le moyen peut être supprimé. |
Obtenir une condition de règlement
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/settlement-terms/{idSettlementTerm}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération d'une condition de règlement
{{
"id": 3,
"label": "Paiement en 3 fois (40% comptant, 30% à 30 jours fin de mois le 10, 30% à 45 jours nets le 10)",
"lines": [
{
"id": 4,
"percent": 40.000000000000000000000000000,
"numberOfDays": null,
"settlementTermLineType": 0,
"dayOfMonth": null,
"paymentModeId": null
},
{
"id": 5,
"percent": 30.000000000000000000000000000,
"numberOfDays": 30,
"settlementTermLineType": 3,
"dayOfMonth": 10,
"paymentModeId": null
},
{
"id": 6,
"percent": 30.000000000000000000000000000,
"numberOfDays": 45,
"settlementTermLineType": 4,
"dayOfMonth": 10,
"paymentModeId": null
}
],
"canDelete": true
}
Récupère une condition de règlement
URL de la requête HTTP
GET /public/v1/settlement-terms/{idSettlementTerm}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
idSettlementTerm | Identifiant de la condition de règlement. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant du moyen de paiement. |
label | string | Libellé du moyen de paiement. |
lines.id | integer | Identifiant de la répartition. |
lines.percent | decimal | Pourcentage du montant de la répartition. |
lines.numberOfDays | integer | Nombre de jours de la répartition. |
lines.settlementTermLineType | SettlementTermLineType | Type de la ligne de la répartition. |
lines.dayOfMonth | integer | N° du jour dans le mois de la répartition. |
lines.paymentModeId | integer | Moyen de paiement de la répartition. |
canDelete | boolean | Indique si le moyen peut être supprimé. |
Créer une condition de règlement
curl --location --request POST 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/settlement-terms' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer JWTtoken' \
--data '{
"label": "Test de condition",
"lines": [
{
"percent": 30,
"numberOfDays": 2,
"dayOfMonth": 30,
"settlementTermLineType": 1,
"paymentModeId": 1
},
{
"percent": 30,
"numberOfDays": 2,
"dayOfMonth": 30,
"settlementTermLineType": 1,
"paymentModeId": 1
},
{
"percent": 40,
"numberOfDays": 2,
"dayOfMonth": 30,
"settlementTermLineType": 1,
"paymentModeId": 1
}
]
}'
Retour de la création d'une condition de règlement
3
Crée un moyen de paiement
URL de la requête HTTP
POST /public/v1/settlement-terms
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
label | Libellé du moyen de paiement. | O | |
lines.percent | Pourcentage du montant total du règlement. | O | |
lines.numberOfDays | Nombre de jours pour l'exigibilité du règlement. | O | |
lines.dayOfMonth | N° du jour dans le mois. | O | |
lines.settlementTermLineType | Type de la ligne de la condition de règlement. | O | |
lines.paymentModeId | Identifiant du moyen de paiement. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Modifier une condition de règlement
curl --location --request PUT 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/settlement-terms/{IdSetllementTerm}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer JWTtoken' \
--data '{
"label": "Test de condition",
"lines": [
{
"percent": 30,
"numberOfDays": 2,
"dayOfMonth": 30,
"settlementTermLineType": 1,
"paymentModeId": 1
},
{
"percent": 30,
"numberOfDays": 2,
"dayOfMonth": 30,
"settlementTermLineType": 1,
"paymentModeId": 1
},
{
"percent": 40,
"numberOfDays": 2,
"dayOfMonth": 30,
"settlementTermLineType": 1,
"paymentModeId": 1
}
]
}'
Retour de la modification d'une condition de règlement
3
Modifie une condition de règlement
URL de la requête HTTP
PUT /public/v1/settlement-terms/{IdSetllementTerm}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdSetllementTerm | Identifiant de la condition de règlement à modifier. | O | |
label | Libellé du moyen de paiement. | O | |
lines.percent | Pourcentage du montant total du règlement. | O | |
lines.numberOfDays | Nombre de jours pour l'exigibilité du règlement. | O | |
lines.dayOfMonth | N° du jour dans le mois. | O | |
lines.settlementTermLineType | Type de la ligne de la condition de règlement. | O | |
lines.paymentModeId | Identifiant du moyen de paiement. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Supprimer une condition de règlement
curl --location --request DELETE 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/settlement-terms/{IdSetllementTerm}' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la suppression d'une condition de règlement
1
Si la condition de règlement n'existe pas, une erreur HTTP 404 est retournée avec un retour JSON spécifique.
Retour en erreur
json { "status": 404, "errorCode": "settlementTerm.NotFound", "data": {}, "message": "EntityId : 1. La condition de règlement est introuvable." }
Supprime une condition de règlement
URL de la requête HTTP
DELETE /public/v1/settlement-terms/{IdSetllementTerm}
Requête
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
IdSetllementTerm | Identifiant de la condition de règlement. | O |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans une structure décrite ci-dessous.
3
Obtenir une liste des taux de TVA
curl --location 'https://api-developpeurs.ebp.com/hubbix-gctpe/api/public/v1/vat-rates?take=1&skip=0&filter.query=bancaire' \
--header 'ebp-subscription-key: 33badXXXXXXXXXXXXXXXXXXXX' \
--header 'DomainId: DomainId' \
--header 'Authorization: Bearer JWTtoken'
Retour de la récupération de la liste des taux de TVA
[
{
"id": 1,
"territoriality": 0,
"label": "France exonération",
"rate": 0.0000000000000000000000000000,
"status": true,
"isDefault": false
},
{
"id": 6,
"territoriality": 1,
"label": "Corse exonération",
"rate": 0.0000000000000000000000000000,
"status": true,
"isDefault": false
},
{
"id": 12,
"territoriality": 2,
"label": "DOM exonération",
"rate": 0.0000000000000000000000000000,
"status": true,
"isDefault": false
},
{
"id": 17,
"territoriality": 5,
"label": "Monaco exonération",
"rate": 0.0000000000000000000000000000,
"status": true,
"isDefault": false
},
{
"id": 22,
"territoriality": 4,
"label": "Intracommunautaire exonération",
"rate": 0.0000000000000000000000000000,
"status": true,
"isDefault": true
},
{
"id": 29,
"territoriality": 3,
"label": "Importation/Exportation exonération",
"rate": 0.0000000000000000000000000000,
"status": true,
"isDefault": true
}
]
Retourne l'ensemble des taux de TVA. Vous pouvez filtrer et paginer les résultats à votre convenance.
URL de la requête HTTP
GET /public/v1/vat-rates
Requête
Le tableau ci-dessous vous indique les différents paramètres à fournir en paramètre de la requête de récupération de données. Les noms des paramètres sont à fournir en CamelCase. Plus de détails sur ce lien.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
take | Nombre d'éléments à retourner. | N | |
skip | Nombre d'éléments à ignorer avant de commencer à retourner. | N | |
sortingOrder.property | Nom du champ utilisé pour le tri. | N | |
sortingOrder.sortType | Sens de tri (Croissant / décroissant). Doit être une valeur du type SortType. Par défaut : Croissant. | N | |
filter.query | Terme recherché pour le filtrage. | N |
Entêtes
Le tableau ci-dessous indique la liste des données d'entête à fournir dans l'appel.
Nom | Description | Défaut | Obligatoire |
---|---|---|---|
Accept-Language | Langue pour la traduction des ressources. | fr-FR | |
ebp-subscription-key | La clé de l'abonnement. | O | |
DomainId | Identifiant du domaine. | O | |
JWTtoken | Jeton d'authentification. | O |
Réponse avec succès
Code HTTP de réponse : 200 (OK).
La réponse est retournée dans un tableau dans la propriété elements
décrit ci-dessous.
Nom | Type | Description |
---|---|---|
id | integer | Identifiant du taux de TVA. |
territoriality | Territoriality | Territorialité. |
label | string | Libellé du taux de TVA. |
rate | decimal | Taux de TVA appliqué. |
status | decimal | Indique si le taux est applicable (géré dans l'application). |
isDefault | boolean | Indique si le taux est celui activé par défaut. |
Annexe 1 - Définition des types
Le tableau ci-dessous recense l'ensemble des types utilisés dans les APIs pour vous aider à vous y retrouver.
Type de données | Description |
---|---|
null | Représente une absence de données. |
string | Chaîne de caractère représentant un texte. |
integer | Entier non signé sur 32 bits. |
decimal | Nombre décimal non signé. |
date | Date seule (sans les heures). |
datetime | Date et heure. |
boolean | Valeur booléenne (Vrai / Faux) |
Si une donnée peut être NULL, vous aurez par exemple string | null dans le type de données correspondant.
Cela signifie que vous pouvez envoyer la donnée avec null
en valeur ou ne pas l'envoyer du tout.
Annexe 2 - Listing des énumérations
Cette annexe liste l'ensemble des énumérations utilisables dans les API avec leur explication, et leur valeur.
UnitType - Types d'unités
Nom | Valeur | Description |
---|---|---|
Time | 1 | Unité temporelle base sur l'heure |
Weight | 2 | Unité de poids |
Area | 3 | Unité de surface |
Volume | 4 | Unité de volume |
Size | 5 | Unité de taille |
Other | 6 | Unité autre |
Unit | 7 | Unité basique |
SettlementType - Types de règlement
Nom | Valeur | Description |
---|---|---|
CashReceipt | 1 | Encaissement |
Reimbursement | 2 | Remboursement |
SortType - Ordres de tri
Nom | Valeur | Description |
---|---|---|
Ascending | 0 | Croissant / ordre alphabétique |
Descending | 1 | Décroissant / order alphabétique inversé |
Territoriality - Types de territorialité
Nom | Valeur | Description |
---|---|---|
France | 0 | France métropolitaine |
Corse | 1 | Corse |
Dom | 2 | Départements d'outre-mer |
ImportExport | 3 | Import/Export |
Intracommunautaire | 4 | Territoire intracommunautaire |
Monaco | 5 | Monaco |
HorsFrance | 6 | Tous les autres territoires |
SettlementTermLineType - Type de ligne de condition de règlement
Nom | Valeur | Description |
---|---|---|
Cash | 0 | Comptant |
NumberOfDaysNet | 1 | Nombre de jours net |
NumberOfDaysEndOfMonth | 2 | Nombre de jours fin de mois |
NumberOfDaysEndOfMonthOn | 3 | Nombre de jours fin de mois, le |
NumberOfDaysNetOn | 4 | Nombre de jours nets, le |
NumberOfDaysBeginningOfMonth | 5 | Nombre de jours début de mois |
NumberOfDaysBeginningOfMonthOn | 6 | Nombre de jours début de mois, le |
BeginningOfMonthWithNumberOfDays | 7 | Début de mois + nombre de jours |
BeginningOfMonthWithNumberOfDaysOn | 8 | Début de mois + nombre de jours, le |
NumberOfDaysEndOfDecade | 9 | Nombre de jours fin de décade |
EndMonthWithNumberOfDays | 10 | Fin de mois + nombre de jours |
EndMonthWithNumberOfDaysOn | 11 | Fin de mois + nombre de jours, le |
SaleDocumentType - Types de document
Nom | Valeur | Description |
---|---|---|
SaleInvoice | 0 | Facture |
SaleCredit | 1 | Avoir |
SaleDepositInvoice | 2 | Facture d'acompte |
SaleDepositCredit | 3 | Avoir d'acompte |
SaleQuote | 4 | Devis |
SaleDocumentStatus - Statut de document
Nom | Valeur | Description |
---|---|---|
Provisional | 0 | Document provisoire |
Validated | 1 | Document validé ou facturé selon le contexte |
AccountingTransferStatus - Statut du transfert comptable
Nom | Valeur | Description |
---|---|---|
SentForAccounting | 0 | Envoyé en comptabilité |
Accounted | 1 | Comptabilisé |
EntryGenerationFailure | 2 | Génération des écritures en échec |
PaymentMode - Modes de paiement
Nom | Valeur | Description |
---|---|---|
Other | 1 | Autres |
Bor | 2 | BOR et LCR |
CreditCard | 3 | Carte de crédit |
Check | 4 | Chèque |
Cesu | 5 | CESU |
Cash | 6 | Espèces |
Paypal | 7 | Paypal |
Debit | 8 | Prélèvement |
Tip | 9 | TIP |
Transfer | 10 | Virement |
PrintingModelType - Type de modèle d'impression
Nom | Valeur | Description |
---|---|---|
Epure | 0 | Modèle épuré |
Classic | 1 | Modèle classique |
ColoredMargin | 2 | Modèle épuré en dégradé de couleur |
ItemStatus - Etat de disponibilité d'un article
Nom | Valeur | Description |
---|---|---|
Active | 0 | L'article est actif et peut être utilisé |
Inactive | 1 | L'article est inactif, il ne peut plus être intégré dans un document par exemple |
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.