{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"bb273fc9-3679-4e39-b3d6-8c3a184d8b4f","name":"BILLJOBS — PIECES","description":"<h1>Généralités</h1>\n\n<h2>Architecture</h2>\n\n<p>Nos ressources sont regroupées sous le chemin : adresseIP:8080/API/json/v1.<br><br>Pour accéder à nos ressources, l'URL est constituée d'un chemin et d'une requête :</p>\n\n<table><tbody><tr><th>Methode</th><th>Protocole</th><th>Adresse</th><th>Path</th><th>Version</th><th>ressource</th><th>Parametres</th></tr><tr><td><div>GET,POST<br>,PUT,PATCH<br>,DELETE</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>https://</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>adresseIP:8080</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>/API/json/</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>V1/</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Connexion/</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>?Login=ee@e<br>&amp;MdP=Azty</p><p></p><p></p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<p><br>Le port d'accès au serveur d'APIs est le 8080.<br>Les autres éléments de la requête sont décrits dans la description de chaque API.<br><br></p>\n\n<h2>Base de données</h2>\n\nPour l'API de connexion, il est obligatoire d'indiquer le nom de la base de données (fourni par BillJobs).  \nEt, en dehors des APIs de connexion et de déconnexion, il est également obligatoire d'indiquer le nom de l'agence (également fourni par BillJobs).  \nCes informations sont à indiquer dans les headers.  \nPour faciliter le développement dans Postman, nos headers comportent les variables «bdd» (pour le nom de la base de données) et «agence» (pour le nom de l'agence) qui doivent donc être définies dans chaque environnement utilisé.\n\n<h2>Authentification</h2>\n\n<p>Nos APIs sont sécurisées par une clé API et par le token de chaque utilisateur.<br>Dans Postman, la variable «leTokenPerso» y fait référence. Il faut la valoriser après chaque connexion.<br><br>La récupération de ce token est indiquée dans la section «Connexion».<br>Le champ \"Authorization\" dans le \"Headers\" de la requête doit contenir le token retourné par la première connexion (variable Postman «leTokenPerso» ).<br></p>\n\n###### Attention, la durée de vie d'un token est limitée (voir l'API de connexion à ce sujet).\n\n<p><br>Une fois identifié, chaque utilisateur dispose dans la webapp de son profil défini dans le logiciel BillJobs.<br></p>\n\n<h2>Clé API</h2>\n\n<p>L'accès aux jeux d'APIs est contrôlé par une clé (fournie par BillJobs).<br>Dans Postman, la variable «cleAPI» y fait référence. Elle doit donc être définie dans chaque environnement utilisé.</p>\n\n<h2>Les Headers</h2>\n\n<p>Pour chaque API (sauf les 2 APIs de connexion et de déconnexion), les 3 « headers » suivants doivent obligatoirement être indiqués :<br>— base (nom de l'agence fourni par BillJobs)</p>\n\n<p>— APIKey (clé fournie par BillJobs)</p>\n\n<p>— content-type (toujours égal à «application/json»)<br></p>\n\n<h2>Envoi des données</h2>\n\n<p>Pour les APIs de liste, les filtres (la plupart du temps optionnels) sont passés en paramètre.<br><br>Pour les APIs de création ou de mise à jour de ressource, les données sont contenues dans un JSON passé en \"raw\" dans le \"Body\".<br><br><br></p>\n\n<h2>Code retour</h2>\n\n<p>Toutes nos APIs renvoient du JSON.<br><br></p>\n\n<blockquote><h3>Code Erreur</h3></blockquote>\n\nLes codes d'erreur suivants sont communs à toutes les APIs (sauf celle ce connexion).\n\n<table><tbody><tr><th>Codes</th><th>statut</th><th>description</th></tr><tr><td><div>ErreurDB</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>500</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Erreur de base de données</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrTokenAbsent</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>404</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Token non transmis</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrTokenInconnu</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>498</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Token invalide</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrTokenTermine</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>498</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Token expiré</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrNomBaseVide</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>403</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Nom de la base de données non défini</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrNomBaseAbsent</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>403</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Nom de la base de données non fourni</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrBaseAgenceInconnue</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>400</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>La base de données indiquée n'existe pas</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrAgenceInconnue</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>400</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>L'agence indiquée n'existe pas dans le carnet d'adresses de la base</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrBaseNonAccessible</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>403</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Base de données inaccessible</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrApiKeyAbsent</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>498</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Clé API vide ou non fournie</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrCleAPIInvalide</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>498</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Clé API incorrecte</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrTypeDonneeNonConforme</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>403</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Le type de donnée n'est pas conforme à ce qui est attendu (string, date, double,integer ou numérique)</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrPeriodeIncorrecte</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>400</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>La période indiquée est incorrecte</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrAccesLectureImpossible</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>403</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>L'utilisateur n'a pas de droit de lecture de cette resource</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrAccesCreationImpossible</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>403</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>L'utilisateur n'a pas de droit d'écriture sur cette resource</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrAccesModificationImpossible</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>403</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>L'utilisateur n'a pas de droit de modifier cette resource</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrAccesSuppressionImpossible</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>403</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>L'utilisateur n'a pas de droit de supprimer cette resource</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ErrCommandeInconnue</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>404</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Commande inconnue</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\nEn cas d'erreurs, le JSON contient le champ \"Statut\" qui reprend le code HTTP entre 400 et 500.\n\nEn cas de succès, le JSON contient le champ \"Statut\" qui reprend le code HTTP (si sa valeur est égale à 201, cela signifie que la ressource a été créée avec succès et 200 dans les autres cas).\n\nEn cas de création ou de mise à jour, la ressource est entièrement retournée dans le JSON.  \nEn cas de suppression, le JSON contient le json \"OK\" ou \"suppressionOK\" avec, comme valeur, true ou l'ID de la ressource supprimée.\n\n<h2>Type de données</h2>\n\n<p>Les types de valeurs utilisés sont ceux définis dans la syntaxe JSON (string, number, object, array, boolean, null).<br><br>La mention dans cette documentation du type \"NUMERIQUE\" indique que la valeur transmise à nos APIs est soit du type JSON \"string\" (ex:\"1000.00\") soit du type JSON \"number\" (ex: 1000.00) avec dans les deux cas le point comme séparateur de décimales et aucun séparateur de milliers.<br></p>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"29738390","team":295901,"collectionId":"bb273fc9-3679-4e39-b3d6-8c3a184d8b4f","publishedId":"2sB34mje6r","public":true,"publicUrl":"https://pieces.docapi.billjobs.com","privateUrl":"https://go.postman.co/documentation/29738390-bb273fc9-3679-4e39-b3d6-8c3a184d8b4f","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.0","publishDate":"2025-08-04T15:18:19.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/bd809a595a336dbc47c0dc0f78355b02843c2aef3fd6d4fef5bba5575dcc6962","favicon":"https://billjobs.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://pieces.docapi.billjobs.com/view/metadata/2sB34mje6r"}