API Site Carrière

Documentation & Tests

Flux sortant : ClicNwork → Site Carrière  |  Flux entrant : Site Carrière → ClicNwork
Les paramètres sont sauvegardés localement.
01
Flux Sortant — ClicNwork → Site Carrière Client ClicNwork appelle votre API REST pour pousser et gérer les offres d'emploi

Schéma de flux

ClicNwork
Serveur source
HTTPS + Bearer
JSON payload
Site Carrière Client
Votre API REST
200 OK
status: ok/ko
ClicNwork
Confirmation
Champs booléens — ClicNwork envoie habituellement oui/non, mais accepte aussi true/false et 1/0. Votre API doit normaliser ces valeurs en 1 ou chaîne vide en réponse.
Champs concernés : isMobilityPrime, isMonth13th, isDrivingLicence, isPersonalVehicle
GET /api/jobs Lister toutes les offres publiées
CodeDescription
200{"status":"ok","total":N,"annonces":[…]}
400Paramètres invalides
404Route introuvable
405Méthode non autorisée
GET /api/job/{offerId} Récupérer une offre par son ID
CodeDescription
200{"status":"ok","annonce":{…}}
404Offre introuvable
405Méthode non autorisée
POST /api/job Créer ou mettre à jour des offres
ChampTypeRequisDescription
offerIdstringouiIdentifiant unique ClicNwork
jobTitlestringouiIntitulé du poste
offerDescriptionstringnonDescription de l'offre
uidMainAgencystringouiUID agence principale
uidChildAgencystringnonUID agence enfant
startDate / endDatestringnonFormat YYYY-MM-DD
addressCity / Zip / Country / GeostringnonLocalisation
isMobilityPrimebool/oui/nonnonPrime de mobilité
isMonth13thbool/oui/nonnon13e mois
isDrivingLicencebool/oui/nonnonPermis requis
isPersonalVehiclebool/oui/nonnonVéhicule personnel requis
contractTypestringnonEx : Intérim, CDI, CDD
contractRatestringnonEx : MONTH, HOUR
contractDurationstring/intnonDurée du contrat
hourlyRate/monthlyRate/yearlyRate Min/MaxnumbernonFourchettes salariales
experiencenumbernonAnnées d'expérience
CodeDescription
200[{"offerId":"…","statut":"ok","url_offer":"…"}]
400Format JSON invalide
500Erreur lors de la création
DELETE /api/job/{offerIdtoDelete} Supprimer une offre (mise à la corbeille)
CodeDescription
200{"status":"ok","message":"Offre mise à la corbeille"}
404Offre introuvable
405Méthode non autorisée
02
Flux Entrant — Réception des Candidatures Notre API reçoit les candidatures envoyées par le site carrière client, les valide et renvoie les erreurs

Réception des Candidatures

Site Carrière Client
Appelant
POST + Bearer
JSON payload
Notre API
/version-live/api/1.1/wf/cnw_candidature
200 ok
400 + erreurs
Site Carrière
Reçoit la réponse
isFreeApplication = "true" → candidature spontanée, offerId peut être vide.
isFreeApplication = "false" → offre ciblée, offerId est obligatoire.
uidChildAgency doit toujours être différent de uidMainAgency.
En cas d'erreur l'API retourne HTTP 400 avec le détail champ par champ.
POST /version-live/api/1.1/wf/cnw_candidature Recevoir une candidature — validation + réponse structurée
Endpoint
https://votre-domaine.com/version-live/api/1.1/wf/cnw_candidature
Content-Type: application/json
Authorization: Bearer <votre-token>
ChampTypeRequisDescription / Valeurs possibles
isFreeApplicationstringouiCandidature spontanée ou ciblée. Valeurs : "true" ou "false"
offerIdstringsi isFreeApplication = "false"Identifiant unique de l'offre ClicNwork
uidMainAgencystringouiUID de l'agence principale
uidChildAgencystringouiUID de l'agence enfant — doit être différent de uidMainAgency
applicationDatetimestringouiDate/heure de candidature. Format strict : YYYY-MM-DD HH:MM:SS
applicationSourcestringouiSource de la candidature. Valeur attendue : "careerSite"
firstNamestringouiPrénom du candidat
lastNamestringouiNom du candidat
phonestringouiNuméro de téléphone
emailstringouiAdresse email — format valide requis
cvFileobjectnonFichier CV complet (tous les sous-champs sont requis si l'objet est présent)
cvFile.filenamestringsi cvFileNom du fichier — ex : "CV_NOM.pdf"
cvFile.filesizestringsi cvFileTaille en octets — ex : "500759"
cvFile.filetypestringsi cvFileExtension : "pdf", "doc" ou "docx"
cvFile.filedatastringsi cvFileContenu du fichier encodé en Base64
HTTPCasCorps JSON retourné
200Succès{"status":"ok","candidatureId":"…","candidate":"Prénom Nom","hasCv":true}
400Champ(s) invalide(s){"status":"ko","message":"2 erreur(s)","errors":[{"field":"offerId","message":"Requis car isFreeApplication = false"}]}
400JSON malformé{"status":"ko","message":"JSON invalide : …"}
401Token manquant ou invalide{"status":"ko","message":"Token Bearer invalide ou absent"}
405Mauvaise méthode HTTP{"status":"ko","message":"Méthode GET non autorisée","hint":"Utiliser POST …"}
Testeur de payload