API

Collections

Découvrez comment utiliser l'API pour chaque collection

Country

Obtenir toutes les Countries

GET /external/v1/all

Description Affiche tous les pays de l'API externe.

Rôles Requis : list:country

Réponse Renvoie une liste d'objets country.

Obtenir une Country par son identifiant

GET /external/v1/:countryId

Description Affiche un pays spécifique de l'API externe par ID.

Rôles Requis : get:country

Paramètres

  • countryId (string) : L'ID du country.

Réponse Renvoie un seul objet country.


Campagnes d'évaluation

Créer une campagne d'évaluation

POST /external/v1

Description Crée une campagne d'évaluation externe pouvant ensuite être liée à une ou plusieurs évaluations.

Rôles Requis : create:evaluationCampaign

Payload

const payload = {
  display: 'Campagne annuelle 2026',
  startDate: '2026-01-01T00:00:00.000Z',
  endDate: '2026-12-31T23:59:59.999Z',
  authorId: '<resourceUUID>', // propriétaire de la campagne (optionnel)
  restrictedToCountryIds: ['FR', 'BE'], // liste optionnelle des pays autorisés
}

Réponse Renvoie l'objet campagne créé.

Lister les campagnes d'évaluation

GET /external/v1/all

Description Liste les campagnes d'évaluation triées par date de création.

Rôles Requis : list:evaluationCampaign

Paramètres de requête

{
  page: 0,
  limit: 50, // max 200
  search: '', // libellé de la campagne
  closedStatus: 'all', // all | open | closed
}

Réponse Renvoie { page, limit, campaigns }.

Obtenir une campagne d'évaluation par identifiant

GET /external/v1/:campaignId

Description Retourne une campagne d'évaluation unique.

Rôles Requis : get:evaluationCampaign

Paramètres

  • campaignId (string) : L'identifiant de la campagne.

Réponse Renvoie un objet campagne.

Modifier une campagne d'évaluation

PUT /external/v1/:campaignId

Description Modifie une campagne d'évaluation existante. Le payload est partiel : seuls les champs fournis sont mis à jour.

Rôles Requis : update:evaluationCampaign

Paramètres

  • campaignId (string) : L'identifiant de la campagne à modifier.

Payload

const payload = {
  display: 'Campagne annuelle 2026 mise à jour',
  startDate: '2026-01-01T00:00:00.000Z',
  endDate: '2026-12-31T23:59:59.999Z',
  authorId: '<resourceUUID>', // propriétaire de la campagne (optionnel)
  restrictedToCountryIds: ['FR', 'BE'], // [] pour retirer les restrictions par pays
}

Réponse Renvoie l'objet campagne mis à jour.

Clôturer une campagne d'évaluation

PUT /external/v1/:campaignId/close

Description Clôture une campagne ouverte. Une campagne clôturée ne peut plus être liée à de nouvelles évaluations.

Rôles Requis : update:evaluationCampaign

Paramètres

  • campaignId (string) : L'identifiant de la campagne à clôturer.

Réponse Renvoie l'objet campagne mis à jour.


Evaluation

Créer une Évaluation 360

POST /external/v1

Description Crée une évaluation 360°.

Rôles Requis : create:evaluation

Payload

const payload = {
  officeId: '<officeUUID>', // officeId de la ressource créatrice de l'évaluation
  countryId: 'FR', // countryId de la ressource créatrice de l'évaluation
  display: 'Title test', // titre de l'évaluation
  authorId: '<resourceUUID>', // resourceId de l'utilisateur créateur de l'évaluation
  formularId: '<formularUUID>', // formularId de l'évaluation
  isBeforeAfter: false, // l'évaluation est-elle before ou after (devrait être false pour vous)
  resourceId: '<resourceUUID>', // resourceId de la ressource évaluée
  isPeriod: true, // l'évaluation est-elle une période (devrait être true pour vous pour une évaluation 360°)
  evaluationType: 0, // 0 -> Évaluation par évaluateurs, 1 --> Évaluation par évaluateur
  is360: true, // est-ce une évaluation 360° (devrait être true pour vous)
  startDate: '2022-01-01T00:00:00.000Z', // date de début de l'évaluation
  endDate: '2022-12-31T23:59:59.009Z', // date de fin de l'évaluation
  doNotSendMail: true, // do not send mail devrait être true pour vous (car évaluation 360°)
  disableAbandon: false, // devrait être true si les évaluateurs ne doivent pas pouvoir abandonner l'évaluation
  managedBy: ['<resourceUUID>'], // tableau de resourceId des évaluateurs
  authorOnly: '<resourceUUID>', // généralement un admin. Seule cette personne et l'évaluateur peuvent voir le contenu
  campaignId: '<campaignUUID>', // campagne d'évaluation ouverte liée à cette évaluation (optionnel)
  trainingExecutionDate: '2023-01-01T22:59:59.009Z' // utilisé pour la logique d'affichage du training
}
Si campaignId est renseigné, la campagne doit exister dans votre société et être encore ouverte.

Créer une double évaluation simultanée

POST /external/v1

Description Crée une évaluation Project Stereo.

Rôles Requis : create:evaluation

Payload

const payload = {
  isPeriod: false,
  startDate: '2022-07-03T22:00:00.000Z',
  endDate: '2022-12-29T23:00:00.000Z',
  display: 'test eval stereo',
  officeId: '<officeUUID>',
  countryId: 'FR',
  authorId: '<resourceUUID>',
  projectId: '<projectUUID>',
  resourceId: '<resourceUUID>',
  managedBy: ['<resourceUUID>', '<resourceUUID>'],
  authorOnly: null,
  formularId: '<formularUUID>',
  formularIdAfter: '<formularUUID>',
  signature: true,
  isStereo: true,
  isBeforeAfter: true,
  is360: false,
  campaignId: '<campaignUUID>', // campagne d'évaluation ouverte liée à cette évaluation (optionnel)
  doNotSendMail: false,
  disableAbandon: false,
  sharedWith: [{
    resourceId: '<resourceUUID>',
    deadline: undefined, // peut être undefined ou timestamp
  }],
}

Mettre à jour une Évaluation

PUT /external/v1

Description Met à jour une évaluation existante. Prend en charge un objet unique ou un tableau (bulk).

Rôles Requis : update:evaluation

Payload

// Mise à jour unique
const payload = {
  _id: '<evaluationUUID>',
  campaignId: '<campaignUUID>', // optionnel : rattacher l'évaluation à une campagne
  // autres champs à mettre à jour
}

// Mise à jour en masse (Bulk)
const payloadBulk = [
  { _id: '<evaluationUUID>', campaignId: '<campaignUUID>', ... },
  { _id: '<evaluationUUID>', ... },
]
Utilisez campaignId: null pour retirer le lien existant entre une évaluation et une campagne.

Lister les Évaluations

GET /external/v1

Description Liste les évaluations triées par date de création.

Rôles Requis : list:evaluation

Paramètres de requête (Query Parameters)

  {
    page: 0,
    limit: 50, // max 200
    search: '', // nom d'affichage de l'évaluation
    evaluationIds: [], // tableau d'ids d'évaluation
    resourceIds: [] // tableau d'ids de ressource
  }

Formular

Obtenir les Formulars par Module

GET /external/v1/:moduleId/all

Description Affiche tous les formulars de l'API externe pour un ID de module donné.

Rôles Requis : list:formular

Paramètres

  • moduleId: L'ID du module.

Réponse Renvoie une liste d'objets formular.

Obtenir un Formular par ID

GET /external/v1/:formularId

Description Affiche un formular spécifique de l'API externe par ID.

Rôles Requis : get:formular

Paramètres

  • formularId: L'ID du formular.

Réponse Renvoie un seul objet formular.


Job

Obtenir tous les Jobs

GET /external/v1/all

Description Affiche tous les jobs de l'API externe.

Rôles Requis : list:job

Réponse Renvoie une liste d'objets job.

Obtenir un Job par ID

GET /external/v1/:jobId

Description Affiche un job spécifique de l'API externe par ID.

Rôles Requis : get:job

Paramètres

  • jobId: L'ID du job.

Réponse Renvoie un seul objet job.


Job Category

Lister les Job Categories

GET /external/v1

Description Obtient la liste des job categories depuis la source externe.

Rôles Requis : list:jobCategory

Paramètres de requête (Query Parameters)

  • page (number) : Numéro de page (défaut : 0).
  • limit (number) : Éléments par page (défaut : 50, max : 200).
  • search (string) : Terme de recherche pour le nom d'affichage.
  • jobCategoryIds (array | string) : Filtrer par des IDs de job category spécifiques.

Réponse

{
  "page": 0,
  "limit": 50,
  "jobCategories": []
}

Mettre à jour les Job Categories

PUT /external/v1

Description Met à jour les job categories. Accepte un tableau d'objets ou un objet unique.

Rôles Requis : update:jobCategory

Payload

[
  {
    _id: 'string', // requis
    // autres champs à mettre à jour
  }
]

Réponse Renvoie les objets job category mis à jour.


Office

Obtenir tous les Offices

GET /external/v1/all

Description Affiche tous les offices de l'API externe.

Rôles Requis : list:office

Réponse Renvoie une liste d'objets office.

Obtenir un Office par ID

GET /external/v1/:officeId

Description Affiche un office spécifique de l'API externe par ID.

Rôles Requis : get:office

Paramètres

  • officeId: L'ID de l'office.

Réponse Renvoie un seul objet office.


Recruitment Process

Créer un Candidate

POST /external/createCandidate/v1

Description Crée un nouveau candidat depuis une source externe.

Rôles Requis : create:candidate

Payload

{
  email: 'string', // requis
  firstname: 'string', // requis
  lastname: 'string', // requis
  cvFile: {
    Name: 'string',
    Content: 'base64 string',
    ContentType: 'string'
  }, // requis
  coverLetterFile: {
    Name: 'string',
    Content: 'base64 string',
    ContentType: 'string'
  }, // optionnel
  experiences: [], // tableau d'expériences optionnel
  degrees: [], // tableau de diplômes optionnel
  countryId: 'string', // optionnel
  officeId: 'string', // optionnel
  phoneNumber1: 'string', // optionnel
  phoneNumber2: 'string', // optionnel
  candidateSource: 99, // optionnel, défaut 99
  birthdate: 'Date', // optionnel
  linkedin: 'string', // optionnel
  nationalities: [], // tableau de chaînes optionnel
  message: 'string', // optionnel
  documents: [], // tableau de documents optionnel
  evaluationForm: 'string', // optionnel
  positionId: 'string', // optionnel
  recommendedBy: {} // objet optionnel
}

Réponse Renvoie l'objet recruitment process créé.


Resource

Obtenir toutes les Resources

GET /external/v1/all

Description Affiche toutes les resources de l'API externe (peuplées avec l'email du userId).

Rôles Requis : list:resource-all

Réponse Renvoie une liste d'objets resource.

Obtenir une Resource par ID

GET /external/v1/:resourceId

Description Affiche une resource spécifique de l'API externe par ID.

Rôles Requis : get:resource

Paramètres

  • resourceId: L'ID de la resource.

Réponse Renvoie un seul objet resource.

Mettre à jour une Resource

PUT /external/v1

Description Met à jour une resource. Accepte un tableau d'objets ou un objet unique.

Rôles Requis : update:resource

Payload

[
  {
    _id: 'string', // requis
    // autres champs à mettre à jour
  }
]

Réponse Renvoie les objets resource mis à jour.


Skill

Lister les Skills

GET /external/v1

Description Obtient la liste des skills depuis la source externe.

Rôles Requis : list:skill

Paramètres de requête (Query Parameters)

  • page (number) : Numéro de page (défaut : 0).
  • limit (number) : Éléments par page (défaut : 50, max : 200).
  • search (string) : Terme de recherche pour le nom d'affichage.
  • skillIds (array | string) : Filtrer par des IDs de skill spécifiques.

Réponse

{
  "page": 0,
  "limit": 50,
  "skills": []
}

Mettre à jour les Skills

PUT /external/v1

Description Met à jour les skills. Accepte un tableau d'objets ou un objet unique.

Rôles Requis : update:skill

Payload

[
  {
    _id: 'string', // requis
    // autres champs à mettre à jour
  }
]

Réponse Renvoie les objets skill mis à jour.

Créer un Skill

POST /external/v1

Description Crée un skill depuis une source externe.

Rôles Requis : create:skill

Payload

[
  {
    display: 'string', // requis
    authorId: 'string', // requis (Resource ID)
    categoryId: 'string' // requis (SkillCategory ID)
  }
]

Réponse Renvoie les objets skill créés.


Skill Category

Lister les Skill Categories

GET /external/v1

Description Obtient la liste des skill categories depuis la source externe.

Rôles Requis : list:skillCategory

Paramètres de requête (Query Parameters)

  • page (number) : Numéro de page (défaut : 0).
  • limit (number) : Éléments par page (défaut : 50, max : 200).
  • search (string) : Terme de recherche pour le nom d'affichage.
  • skillCategoryIds (array | string) : Filtrer par des IDs de skill category spécifiques.

Réponse

{
  "page": 0,
  "limit": 50,
  "skillCategories": []
}

Mettre à jour les Skill Categories

PUT /external/v1

Description Met à jour les skill categories. Accepte un tableau d'objets ou un objet unique.

Rôles Requis : update:skillCategory

Payload

[
  {
    _id: 'string', // requis
    // autres champs à mettre à jour
  }
]

Réponse Renvoie les objets skill category mis à jour.


Project (Engagement)

Créer un Projet

POST /external/v1

Description Crée un ou plusieurs projets à partir de systèmes externes.

Rôles Requis : create:project

Payload

{
  officeId: '<officeUUID>', // requis - Référence au Bureau
  countryId: 'FR', // requis - Référence au Pays
  display: 'Nom du projet', // requis - Nom du projet
  authorId: '<resourceUUID>', // requis - Référence à la Ressource (créateur)
  projectCode: 'PRJ-001', // optionnel - Code projet unique
  clientId: '<companyUUID>', // requis - Référence à l'Entreprise (Client)
  startDate: '2024-01-01T00:00:00.000Z', // requis - Date de début (utc 0)
  endDate: '2024-12-31T23:59:59.000Z', // requis - Date de fin (utc 0)
  directorId: '<resourceUUID>', // requis - Référence à la Ressource (directeur)
  currentStatus: 0, // requis - 0: vendu, -1: abandonné, -2: perdu
  staffingSetup: [{
    positionId: '<jobUUID>', // requis - Référence au Job/Poste
    list: [{
      streamId: '<streamUUID>', // optionnel - Référence au lot
      days: 2, // optionnel - Total des jours alloués
      staffingPeriod: [{
        days: 1, // jours dans cette période
        startDate: '2024-01-01T00:00:00.000Z', // (utc 0)
        endDate: '2024-01-01T23:59:59.000Z' // (utc 0)
      },
      {
        days: 1, // jours dans cette période
        startDate: '2024-01-02T00:00:00.000Z', // (utc 0)
        endDate: '2024-01-02T23:59:59.000Z' // (utc 0)
      }],
      resourceList: [{
        resourceId: '<resourceUUID>', // requis - Référence à la Ressource
        status: 1 // requis - 0: candidat, 1: confirmé
      }],
      dailyCost: 500, // Coût journalier (défaut: 0)
      dailyPrice: 800, // Prix de vente journalier (défaut: 0)
      listPrice: 900, // Prix catalogue (défaut: 0)
      billedDays: 0, // Jours facturés au client (défaut: 0)
      realDays: 2, // Jours réels travaillés/alloués (défaut: 0)
      productionPrice: 750 // Prix de production
    }]
  }]
}

Champs financiers importants : dailyCost, dailyPrice, listPrice, billedDays et realDays sont des champs clés utilisés pour la budgétisation, la facturation et le suivi du projet.

Réponse Renvoie le(s) objet(s) projet créé(s).

Mettre à jour un Projet

PUT /external/v1

Description Met à jour un ou plusieurs projets existants. Accepte un tableau d'objets ou un objet unique.

Rôles Requis : update:project

Payload

// Mise à jour unique
{
  _id: '<projectUUID>', // requis
  display: 'Nouveau nom du projet',
  startDate: '2024-02-01T00:00:00.000Z',
  endDate: '2024-12-31T23:59:59.000Z'
  // autres champs à mettre à jour
}

// Mise à jour en masse (Bulk)
[
  { _id: '<projectUUID>', display: 'Projet 1 mis à jour', ... },
  { _id: '<projectUUID>', display: 'Projet 2 mis à jour', ... }
]

Note : Les champs _firmId et _id dans le corps de la requête sont ignorés pour des raisons de sécurité.

Réponse Renvoie les objets projet mis à jour.

Lister les Projets

GET /external/v1

Description Retourne une liste paginée de projets triés par date de création (descendante).

Rôles Requis : list:project

Paramètres de requête (Query Parameters)

{
  page: 0, // Numéro de page (indexé à 0)
  limit: 50, // Résultats par page (max 200)
  search: '', // Recherche par nom d'affichage du projet
  projectIds: [] // Filtrer par des IDs de projet spécifiques
}

Réponse

{
  "page": 0,
  "limit": 50,
  "projects": [
    {
      "_id": "ObjectId",
      "display": "Nom du Projet",
      "clientId": "ObjectId",
      "startDate": "Date",
      "endDate": "Date",
      "currentStatus": 0
    }
  ]
}

Copyright © 2026. All rights reserved.