curl

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 :

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 :

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 :

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**'

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**'

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 :

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

Documentation oauth.com

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
email Email 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
email Email 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ÁN4ˆsBIT|dˆtEXtSoftwaregnome-screenshotï¿>)tEXtCreation Timelun. 05 févr. 2024 11:28:27•“zpIDATxœí}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ÁN4ˆsBIT|dˆtEXtSoftwaregnome-screenshotï¿>)tEXtCreation Timelun. 05 févr. 2024 11:28:27•“zpIDATxœí}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ʪom™¾âëŸoâàŠM\™èœê¤oÖ"—‚§·
¥´ãu3ý˜1¯äƒ“ß9ØÂò*H´lã_·c`Âý¥ø¯Ø…6nøªð>¿‰Â‚ŠQ{ÈSŽ6+—}3XWÆ®¼r'Î;SˆI~ŽÈšù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Šƒ,é=~:Éê¾~üÔb’jxsÏUŒx¡Y¦aCä5r.ÜE¯þTJÙ¡2ªzA©Žbûs!4¿w™¶y‘l»Áoß«âˈü۟ âÒÍIÐÏôŸÊ¹Tß͏ŒG¶Œ‡ÛÈýÃiÚ$,XÏ«KdègêÄÍÅé¡^MÊæõÐN‡þ4éˆBÿ$²×3א‚©z'%Ř%IÌf62”¾
üwêxÀ°—#[҅”éK^'ñ¥äÖVê~ÿ:çë&nÁ¦'‘ªUƒ·Š†Bþ5§aH,q{øoÚïø«%”@ž†2JßÌåŠi‚“.ÚÆêuÑÈ|çÐrõkˆR+è8´’%݄äìåiµOß9ôë–Ó¤ŽS¾h#‰«b™.‘áI7WöoâxuÓðø®ØÉ®UŽeeR¬¿ûó}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ÐÐ}[‹|ýâG”•AÕU'N6ÄMÎýå—Ì71µŸâ~ë¨2ëНlqH¹t¦€™>aê¶05$†b{÷\Àhö"Ht‹¦° d&–¯Ï
÷ZjÖ<ÒÁCF¬‘ÎÆ)'@~£"4?çתFrŽ˜0MU¡ò&¨ÓŽˆÓ‚É`ûÚ†w}Ió멯´o³Ö`0˜ñ:LAÀºB–xC?2¦û*øF.Gå‹ðW°ýˆ}‹9íøù•ëõTOЭ~C
ßYnðu]+ދæˆs3=Òdpb<=D0OüsÓ1ӏ
?ßv¼3clS]&€6º:Ç(¾\NÑåI„bÇÚÛkk]zikihžû)‘ߞ卯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ûP‹9v½õ§YUïΏR¬µ|ÝFX¼ý~(  Ãßgx@á)•Ñßc¶}Gàû`£ŒÓš.œ¥+ôÂümXuË6¿`þ á)5Ócÿ{¨Ÿbº÷½;»üÑ$23S¿GFâĦÔpOóæa´ë[0…3ÕöY9/„¨+Tu2%)ËbIê®åÒÑ"™¤Dîʖ5¼¨aS¤‚™a‹)Ð t•ÚF#ó›oom§° 2es38®s$nÜr6ñ×Â]ÌÛ|”ìö  !“]ŒXÐï/$|óûdh»1wÖr©º•¨ì|Âr²©ï¬µ4^Ì&~g)O-ïS’w®–BJŠsIΫà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 pq„8EˆS pQ„8EˆS pQ„8EˆS pQ„8EˆS 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‘¢UZŠVÅó²Ú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^¬¶y‹ex͝ƒ×Æ2f÷ÔòIÎ&ÞB‰Üºƒ'(}ë9ý{áiÑxsšÒµ›hRo$-;92”së)]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Ž×9›lÝ@ÍÖdj$/öÁzÈæÀKÙûœÏ¡Ì|<OêŸn9v¼xîæÿeÇÚÂÉceZô“f{ÿCíævÐ6Êd<W‰BŽ¹“BÍöUá\+ý?”õZQúÈ#ÜÎ;WÌ%FÑAUëÍ¡sEÄ,@^sš*³1N†9ÒµÁ
ÄéBN)þñÑP÷:n`¬®'Y“€¼|&¦ð¤š]…ýG÷WçŽ:÷¸Nw«ÓXôÔëjoùî*žqþ_C¨>\Dµ³±a¥Ýîn×Þ}sŒòÛ]    †¦º¿âÃ×0]¿‰*hŒC§°!9ã™JtöDR‰ê'¤û6ó»}Œ5Q0èv`«£ƒ{*)‘„Ú«ÿÜÄy'|ON„¶hÞÒd›AªÀÓW†Úguwڍ¹»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µóIšcoCsÑ<|ƒsvÛ•z!ÿ¢QræƒS#„   LÉÅCDüì)xQCAZ$?‘Í$=-–•ãpFº6¸qËyÿüâ¢ñ¾¸“aKš6+õ<—€Lw®c¯óÉ?m#½8ÛVÜò>eº‰º‚NÄÊw´UµòdöQÖYkŸ¼6фP0á[yÒ_ÒWAâÎRú0s¥x%, Î -G‹Joþ;KyÚÚ@åk›Ç¸…ôÌhdR3fÁ²¢hú­g©ÈÊuÊÕI K4b.žçÐɖ»žrìJ`äÀñF6hž¥Èö½æÔYÊ»üXñÌ?0+–=Ë
û‘–ÖrN4“»§y¸6½DÕ¡*ª&ºKŽpmN‹â¾ÝZÀÅâ\!NÀEâ\!NÀEâ\!NÀEâ\!NÀEqƒ×÷bÑî_MÓÚ¿]ùÉ|Úò}×9ð¼2%L"Eënâ§É'ٞCÚßY˧ù©k™lݱh÷gі•:"Çt|ä)GH›•Ë¾‹¬+cW^ù=x‡Wņµ!Ôü¡†™©‹áø_(±g“H¬Ñü„È©€ç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¿w™fGe¦µt11×ϐUjÄê1”Ô¥lèüˆz+Ê°…d<ÜFîNÓ6 aÁÒx^]jDVu¶©Ôü:1ˆk§Î¹³8¥o>ÍÓ^ŒZU ßËoî¶%I›Í/ÅÅ^´q*¼çÊÐÿþ}¼´kðn§îÍÿŠáùÿéÀy ‚øâL¿Ð€wxÓ}Í´ý1›Êí«SË£‰ÌÞȁ¶,Óå½/<F—Ã:—S‹gõ&;m-¥©:›âêáïé§É%qE´-3ÆT˧…©Ó[)ÓãòI͌Æóz+jaäMeÜxœ#pÅNv­’p,+“â»^æϑ󀕚Ï.ÐhoañP‘gJÚ±2Ú]@âF}#çb¢ˆñ¹Œ)hü²fOGN~ÄÌ3¡û£+S`àý¿n’Bf"ÑKDˆ_Õ|JÛH°r©¦cj!tpÍA<¢Êã•Tµ+ÜAœŽ2ëeÈià`În dëûhWžÀ]À‚áð‹æɝG   W·sdýSt
fšLè< À³aŠÚÀ?ƒôY„è2i´N#8sóª×S|²
˜ApÎQ’Sj9PÒä N)!i*LdzI^'²–rŲðm¤çl™‹A¾œÄÌêrb9ßbÁ#0ƒ†Öcw€I·‰#ÒVzr9ÐÐ}[—öúŏ(+ƒª«L‚ùË@ÿºG9ph¿Ú>´½ò‘P"®7’c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<¦&ºLmt1F5].§è²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úÜ9pUOL's9tøìÐÙýRÞc™Vaë9D_¼¾­ƒs¢I(ވq³½u’GóäÆ-<(£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÷‡CRÆ­Sõ(Ûç£ÄCˆ3êB‡t7t0Ám¸y·V p]ÜxBÈBSÞSŒåŒ*¸¢å\!NÀEâ\!NÀEâ\!NÀEâ\7xÎyN’–xúô[ȝÉ;!LOÚCZš-«ÁËw^=­-€EϹ­k©q&æG·‘ñv4Y窕'‘X`_¥{n;'Òou@¶µ‚à2-)#öߗs¨ü»ñÎæ$JBפ°<J…°š®pr÷Î|éü"ƒî‚ˆón˜v‡hòN]åkÙ] %,¯–ð“ÚÉ¿V¨ßKé[e˜œZ®0ÙWé&šÄý'Wם¢ôÁßx–ÿUÏu+ø&eòß×>ÁÅ×Î!^¢{‹Ó?‰Äë™-1`8ÍéÂ\šz’HÜioQ|øïÔñ4€a/G¶¤k\—„Â6ïrà„/˜½9€CY.ÇËk'Èbqì„PI6iÙ   ȑ¡œ[Oé²³Ãn’P³·ð„Z2G9ž¿Ã=ñ/ñA“·‡ìÀ“¼öR!uÎbüŠ“%ƒ¼PÌô¤»­“¿Ý‹pþÎpƒߥÈýUôÚñôŸ†&ûòéRfgW ¹ºÆž³)E¾o}ÅðW’DêåÔÝÚ­õf®´ž+#\¼
Fv%níÖF¿3cþjZ, ‰&~ç6(ÔRyyp¿Á–3zŒ–Óî„peGÆÊ‘<O꟨ûEæp¼’`f‡‚¡®‰¤ÌÍ® öÊJ”ŒLª²µœWÇ0öòð Æ«§‰>ï`¼,M˜F‰ZB`Ü*´þ9tøNx‚Ù äçÛSYàƒä«¿ðnî)š'5lpÜ åÏ    ÁB×ÅZd/mCë[K›¾–o.~æâ”K¨œßg}W™TFÇ,\v6k{’îVðŽÙHlš-íËË_¬ÇùÄìÎ&›IØàß[NÞr²˜"'C¦…?¿ö;þŒA/®aÍ+ì¨ÝÚ[pqŽéd6»Ï‡2ûñPfÆŸ·…¾âå|PíhÒÃy—„1¹~š²¬×¹sÉ¸/È4[H¬à÷›ÚV×^Wʲ»¨ûÞÒG³®žîíȃÔÑ ZÏQ¸ñ£”ÌNÊ Ä[Ï7ÕǨ;¼ÊfüBU£ökÑ—„1ǐW*¸B,O.™a?6šø­;¾GNc"‘¥›o@þjÕLêäÆe’½b>Ná«IãŸ^ä¡ÁÏQ!øµ·Ø£pƒ1çøÈm$aU~3He`8ME~.W†O„mÞËӁfú–÷)É;Hz<—„lêíǎí„êHÌ^O€Ü˜1{ÒQBc9'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 8h9EˆS pQ„8EˆS pQîë‹ïþš6jfTŽ¥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 p€H\ñn­@à¢q
.Š§@à¢q
.Š§@à¢q
.Š§@à¢üèèÑÿûþêNŠ±™“⭁Àe˜’“S@õÕ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 :

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

Annexe 3 - Exporter le schéma des tables

Il est possible de récupérer le schéma des tables dans l'application Gescom:

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 :

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

Annexe 3 - Exporter le schéma des tables

Il est possible de récupérer le schéma des tables dans l'application Gescom:

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 :

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

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

Comment changer la clé partenaire ? (Subscription Key)

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

2) Cliquez sur Régénérer

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

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

Mes appels API sont extrêmement long sur le portail

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

Erreurs

Description du message d’erreur

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

Description des champs :

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

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

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

Charte d'utilisation EBP

ARTICLE 1. DÉFINITIONS

ARTICLE 2. OBJET

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

ARTICLE 3. GARANTIES

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

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

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

ARTICLE 5. ACCESSIBILITÉ

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

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

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

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

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

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

ARTICLE 6. MESURES DE SÉCURITÉ

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

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

6.2 Obligation générale de confidentialité

ARTICLE 7. RESPONSABILITÉ

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

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

ARTICLE 8. SANCTIONS

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