Aller au contenu

Synchronisation des contrats

Si votre logiciel de gestion ne fait pas partie des ERPs auprès desquels nous sommes en mesure d'automatiser la récupération d'information, vous pouvez utiliser nos APIs pour synchroniser vos données dans Ypareo Skills.

Structure de données

Au sein de Ypareo Skills la structure des données peut être décrite ainsi :

  • Votre organisme peut être déployé dans plusieurs villes nous appelons ça des sites
  • (optionnel) Chaque site peut avoir plusieurs marques
  • Il y a des périodes de formation qui correspondent classiquement aux années scolaires ( 2025/2026, 2026/2027 etc )
  • Il y a des programmes de formations ( BTS MCO, Licence RH ) qui sont déployés sur un site et sur une période.
  • Il y a des années de formation ( Licence RH 1ière année, License RH 2ième année etc.. )
  • Et il y a des groupes qui correspondent à des sessions de formation.

Nous voulons avec cette structure regrouper les apprenants qui suivent la même formation sur le même site pour la même période donnée et la même année.

Cela vous permettra d'avoir un suivi clair.

Ainsi en plus des données sur le contrat, nous vous demandons d'ajouter des informations supplémentaires.

Unicité des ids

Attention dans les données à synchroniser nous vous demandons de spécifier les identifiants de vos utilisateurs, ces identifiants doivent être uniques quelque soit la collection.

Par exemple si un etudiant a le même identifiant qu'un maitre d'apprentissage, l'appel API va vous retourner une erreur.

Si vous avez des tables différentes en fonction des rôles et donc potentiellement des conflits d'ids entre ces tables, merci de prédixer les identifiant envoyés.

Unicité des emails

Dans notre SI, un email est rattaché à un compte et un seul. Si deux tuteurs entreprises ont le même mail, vous ne pourrez pas synchroniser les données.

Différence entre contrat transmis et intégré

Un contrat transmis est une donnée que nous recevons via API.

Un contrat intégré est un contrat transmis que nous avons su associer à une session ( cela nécessite la configuration préalable de votre compte par nos équipes ).

Synchroniser les contrats

Nous envoyer les contrats

Un tableau représentant l'intégralité de vos contrats actifs, cf exemple plus bas. Ci-dessous la liste des champs pour chaque contrat :

NameTypeDescription
dateFinstringDate au format DD/MM/YYYY
dateDebutstringDate au format DD/MM/YYYY
nomGroupe*stringNom du groupe
nomEntreprise*stringNom de l'entreprise
emailPersonnel*stringEmail du tuteur école
prenomPersonnel*stringPrénom du tuteur école
nomPersonnel*stringNom du tuteur école
codePersonnel*stringCode du tuteur école, doit être unique parmi tous les utilisateurs
emailMaitreApprentissage*stringEmail maitre apprentissage
prenomMaitreApprentissage*stringPrenom maitre apprentissage
nomMaitreApprentissage*stringNom maitre apprentissage
codeMaitreApprentissage*stringIdentifiant du maitre apprentissage, doit être unique parmi tous les utilisateurs
nomApprenant*stringNom de l'apprenant
emailApprenant*stringemail de l'apprenant
prenomApprenant*stringPrenom de l'apprenant
codeApprenant*stringIdentifiant de l'apprenant, doit être unique parmi tous les utilisateurs
codeGroupe*stringL'identifiant unique du groupe de l'apprenant
codeContrat*stringL'identifiant unique du contrat
codePeriode*stringIdentifiant de la période associée ( le couple codePeriode, nomPeriode doit être unique )
nomPeriode*stringNom de la période
codeFormation*stringIdentifiant de la formation ( le couple codeFormation, nomFormation doit être unique )
nomFormation*stringLe nom de la formation
codeSite*stringIdentifiant du site ( le couple codeSite, nomSite doit être unique )
nomSite*stringNom du site
codeMarquestringCode de la marque
nomMarquestringNom de la marque
codeAnnee*stringIdentifiant de l'année ( le couple codeAnnee, nomAnnee doit être unique )
nomAnnee*stringNom de l'année
missionTitlestringTitre de la mission
missionDetailsstringDescriptif de la mission
monthStartGroupstringInfo de démarrage du groupe permettant de gérer les rentrées décalées
rncpstringcodeRNCP

POST {{URL}}/api/sync/v2/contrats

Réponse 200: OK — Retourne les contrats selon la même structure de données que celle envoyée dans le body

{
  "total": 1,
  "contrats": []
}

Exemple

[
    {
        codeContrat: "1234",
        dateDebut: "01/09/2025",
        dateFin: "30/06/2026",
        nomEntreprise: "Auchan",
        codeGroupe: "Groupe1",
        nomGroupe: "BTS MCO Rennes 1ère année",
        codeSite: "Site1",
        nomSite: "Rennes",
        codePeriode: "Periode1",
        nomPeriode: "2025/2026",
        codeAnnee: "Annee1",
        nomAnnee: "1ère année",
        codeFormation: "BTSMCO",
        nomFormation: "BTS MCO",
        codeApprenant: "Apprenant1",
        prenomApprenant: "Prénom apprenant",
        nomApprenant: "Nom apprenant",
        emailApprenant: "apprenant@email.com",
        codePersonnel: "Personnel1",
        prenomPersonnel: "Prénom personnel",
        nomPersonnel: "Nom personnel",
        emailPersonnel: "personnel@email.com",
        codeMaitreApprentissage: "MaitreApprentissage1",
        prenomMaitreApprentissage: "Prénom MaitreApprentissage",
        nomMaitreApprentissage: "Nom MaitreApprentissage",
        emailMaitreApprentissage: "MaitreApprentissage@email.com"
    }
]

Récupérer tous les contrats intégrés

GET {{URL}}/api/sync/v1/contrats

Paramètres

In Nom Requis Description
query page non Numéro de la page à récupérer
query limit non Nombre de contrats maximum à récupérer

Réponse 200: OK — Retourne les contrats selon la même structure de données que celle envoyée dans le POST au dessus

{
  "total": 1,
  "contrats": []
}

Récupérer tous les contrats transmis

GET {{URL}}/api/sync/v1/contrats-get-all

Paramètres

In Nom Requis Description
query page non Numéro de la page à récupérer
query limit non Nombre de contrats maximum à récupérer

Réponse 200: OK — Retourne la même réponse que pour les contrats intégrés ci-dessus

{
  "total": 1,
  "contrats": []
}

Simuler une synchronisation

Cette route est une sorte de dry run sur l'intégration.

POST {{URL}}/api/sync/v1/contrats-diff

Réponse 200: OK — Retourne un objet avec 4 tableaux de contrats

{
    "same": [], // contrats similaires à la précédente synchro
    "added": [], // nouveaux
    "updated": [], // changements détectés
    "removed": [] // contrats qui seront archivés
}