Changelog API Convergence CFA / OPCO
Version du 11/02/2026
Modifications
- Sur les endpoints GET
/v2/dossiers, GET/v1/dossierset GET/v1/dossiers/liste, deux nouveaux champs facultatifs ont été ajoutés à l’objetecheances:dateDebutetdateFin. Ces champs permettent de préciser respectivement la date de début et la date de fin associées à chaque échéance. Le format attendu pour ces deux champs est yyyy-MM-dd (exemple : 2026-02-13).
Version du 15/01/2026
Modifications
- Sur la route
POST v2/dossiers: ajout exemple complet et conforme aux règles de gestion API CFA V2
Version du 05/11/2025
Modifications
- Sur la route
POST v2/dossiers: Champapprenti.projetCreationRepriseEntreprise: le champ passe en Facultatif (valeur par défaut : false)
Version du 14/10/2025
Modifications
- Sur la route
POST v2/dossiers: Champadresse.codePays: le champ passe en Obligatoire (sur toutes les adresses) - Sur la route
POST v2/dossiers: Champemployeur.caisseComplementaire: La longueur maximale du champ passe à 200 (Alignement par rapport à la longueur max DECA) - Sur la route
POST v2/dossiers: Champapprenti.nir: La longueur maximale du champ passe à 13 (Alignement par rapport à la longueur max DECA) - Sur la route
POST v2/dossiers: Champapprenti.intituleDiplomePrepare: La longueur maximale du champ passe à 500 (Alignement par rapport à la longueur max DECA) - Sur la route
POST v2/dossiers: Champapprenti.responsableLegal.nom: La longueur maximale du champ passe à 200 (Alignement par rapport à la longueur max DECA) - Sur la route
POST v2/dossiers: Champapprenti.responsableLegal.prenom: La longueur maximale du champ passe à 50 (Alignement par rapport à la longueur max DECA) - Sur la route
POST v2/dossiers: Champcontrat.numeroContratPrecedent: La longueur maximale du champ passe à 15 (Alignement par rapport à la longueur max DECA) et avec pattern assigné - Sur la route
POST v2/dossiers: Champcontrat.dureeTravailHebdoHeures: Pattern assigné - Sur la route
POST v2/dossiers: Champcontrat.dureeTravailHebdoMinutes: Pattern assigné - Sur la route
POST v2/dossiers: ChampCERFASignatureProbante: le champ passe en Obligatoire
Version du 26/08/2025
Modifications
- Sur la route
POST v2/dossiers: Champmaitre[i].emploiOccupe: le champ repasse en Facultatif (Obligatoire sous conditon) - Sur la route
POST v2/dossiers: Champmaitre[i].intituleDiplomeObtenu: le champ repasse en Facultatif (Obligatoire sous conditon) - Sur la route
POST v2/dossiers: Champmaitre[i].niveauDiplomeObtenu: le champ repasse en Facultatif (Obligatoire sous conditon) - Sur la route
POST v2/dossiers: Champconvention.couts.mentionMobiliteInternationale: le champ passe en Obligatoire
Version du 19/08/2025
Modifications
- Sur la route
POST v2/dossiers: Champmaitre[i].emploiOccupe: le champ passe en Obligatoire - Sur la route
POST v2/dossiers: Champmaitre[i].intituleDiplomeObtenu: le champ passe en Obligatoire - Sur la route
POST v2/dossiers: Champmaitre[i].niveauDiplomeObtenu: le champ passe en Obligatoire
Version du 02/07/2025
Modifications
- Sur les routes
GET v1/dossiers,POST v1/dossiers,GET v2/dossiersetPOST v2/dossiers: Les valeurs admises pour le champversionCERFAsont : [ 1010314, 1010313, 1010310, 1010309 ] (Rajout V14 : 10103*14)
Version du 01/07/2025
Modifications
- Sur la route
POST /v1/documents: Rajout des valeurs admises suivantes pour le champobjets.typefichier: [ ATTESTATION_CREATION_ENTREPRISE, FACTURE_PARTICIPATION_OBLIGATOIRE ]
Version du 03/06/2025
Modifications
-
Sur les routes
GET v1/dossiers,POST v1/dossiers,GET v2/dossiersetPOST v2/dossiers: Rajout du champformation.nombreHeuresEnDistancielintroduit par le nouveau décret applicable au 01/07/2025 RG : Cette balise devra obligatoirement être renseignée, pour tout contrat conclu à partir du 01/07/2025. Sa valeur doit être supérieure ou égale à zéro. -
Sur la route
GET v2/dossiersetPOST v2/dossiers: Suppression du champformation.modalitesPedagogiques. Ce champ est supprimé afin de ne pas introduire de confusion/collision avec le champ formation.nombreHeuresEnDistanciel
Version du 16/04/2025
Modifications
- Sur la route
POST /v2/dossiers/rupture/finformationcfa: La position de la balise fraisAnnexesAjustes est modifiée. (Cette balise n'est plus intégrée dans la balise maintienFormation) - Sur les routes
POST v1/dossiersetPOST v2/dossiers: Champapprenti.communeNaissance. La longueur maximale du champ passe à 50 (Alignement par rapport à la longueur max de la commune d'une adresse DECA) - Sur toutes les routes : Champ
adresse.adresse1. La longueur maximale du champ passe à 200 (Concerne toutes les adresses : Apprenti, Employeur, CFA, ...) - Sur toutes les routes : Champ
adresse.adresse2. La longueur maximale du champ passe à 50 (Concerne toutes les adresses : Apprenti, Employeur, CFA, ...)
Version du 28/02/2025
Ajouts
- La route
POST /v2/dossiersest ajoutée : Transmission d'un contrat d'apprentissage (V2 - CERFA + Convention) - Intégration de nouvelles balises obligatoire. Transmission de la convention (données +PDF) avec le CERFA. - La route
GET /v2/dossiersest ajoutée : Lecture d'un dossier via son numéro interne OU son numéro externe et son numéro DECA (intégrant les balises V2) - La route
GET /v2/dossiers/etatsest ajoutée : Lecture des états de tous les dossiers du CFA authentifié avec Restitution paginée. Possibilité de passer des paramètres d'entrée.
Modifications
- Sur la route
GET /v1/dossiers/etats: Rajout des paramètres d'entrée optionnels anneeDossier (Année de la date de création de dossier. Elle correspond à l'année de la date de création de dossier dans le SI OPCO) et dateModification (Date de modification/Création à partir de laquelle les dossiers doivent être restitués)
Version du 17/02/2025
Modifications
- Sur la route
POST /v1/dossiers: Rajout du champsalarie.droitsRqthExtensionBOEintroduit par le CERFA V13 - Sur la route
POST /v1/dossiers: Rajout du champsalarie.droitsRqthEquivalenceJeuneintroduit par le CERFA V13 - Sur la route
POST /v1/dossiers: Les valeurs admises pour le champversionCERFAsont : [ 1010313, 1010310, 1010309 ] (Rajout V13 : 1010313) - Sur la route
GET /v2/cfakeyinfo: Description du Schema de la Response associée au code 200 - Sur la route
POST /facture: Champfacture.lignes[].quantite: le Type du champ passe à integer (double précédemment). (Sans virgule)
Version du 05/11/2024
Modifications
- Sur la route
GET /v2/cfakeyinfo: Le paramètre X-API-KEY est renommé en XAPIKEY - Sur la route
GET /v2/cfakeyinfo: Il est précisé que le contrôle de validité de l'API-KEY habituel n'est pas effectué : L'erreur 403 n'est pas restituée dans cette route lorsque l'API-KEY passée en paramètre n'est plus valide. Lorsque l'API-KEY passée en paramètre n'est plus valide, un code retour 200 est envoyé avec la date de fin de validité restituée. Lorsque l'API-KEY passée en paramètre n'a pas été trouvée, un code d'erreur 300 est renvoyé : La clé API-KEY n'a pas été trouvée
Version du 16/07/2024
- Les balises suivantes ne doivent pas être valorisées dans le cadre de la transmission d'un contrat d'apprentissage (via POST dossiers). Si c'est le cas, elles ne seront pas prises en compte.
- contrat.noContrat : Numéro DECA de contrat. Valorisé par le SIA.
- contrat.dateRupture : Date de rupture du contrat.
- numeroExterne : Identifiant externe ou numéro de dossier (utilisé dans les communications entre le CFA et l'OPCO). Valorisé par le SI de l'OPCO.
Version du 02/07/2024
- Lors des appels API trois headers doivent être renseignés. Ceux-ci seront utilisés par les OPCO à des fins de statistiques et de débogage :
- EDITEUR : le nom de l'éditeur du logiciel, ou le nom du CFA si ce dernier édite son propre logiciel
- LOGICIEL : le nom du logiciel utilisé
- VERSION : la version du logiciel utilisé IMPORTANT : ces 3 valeurs deviendront OBLIGATOIRES à partir du 01/10/2024
Version du 06/06/2024
Modifications
- Sur la route
POST /v1/facture: Il est précisé que le champ LigneFacture.numeroDossier désigne le numéro externe du dossier et non le numéro interne du dossier comme précédemment spécifié. - Sur le contrat, le champ permettant de désigner le niveau de diplôme obtenu du Maitre d'Apprentissage associé au CERFA est nommé niveauDiplomeObtenu et non niveauDiplome comme précédemment spécifié
- Sur la route
POST /v2/certificat: Les valeurs admises pour le champ type certificat sont : [ Intermediaire, Final ] (précédement [ Intermédiaire, Finale ] - Sur la route
POST /v2/certificat: Le champ natureaction est renommé en natureAction
Version du 23/04/2024
Ajouts
- La route
POST /v2/dossiers/rupture/employeurest ajoutée : Envoi des données concernant la rupture d’un contrat entre l'employeur et l'apprenti. - La route
POST /v2/dossiers/rupture/finformationcfaest ajoutée : Envoi des données concernant le maintien ou non de la formation au sein du CFA ainsi que les évènements complémentaires de fin de formation d’un contrat. - La route
POST /v2/certificatsest ajoutée : Dépôt d'un certificat de réalisation - La route
GET /v2/cfakeyinfoest ajoutée : Donner les informations de la CFA KEY comme la date d’expiration et anticiper son expiration - La route
GET /v2/factures/etatsest ajoutée : Restituer l'état des factures émises par un CFA et intégrées dans le SI OPCO
Version du 12/01/2024
Modifications
- Sur la route
POST /dossiers: Champformation.dureeFormation: le format passe dedoubleàinteger - Sur la route
POST /dossiers: Champemployeur.courriel: le champ passe en Obligatoire - Sur la route
POST /dossiers: Champapprenti.nom: le champ passe en Obligatoire et de type string(1,80) - Sur la route
POST /dossiers: Champapprenti.nomUsage: le champ passe en Obligatoire et de type string(1,80) - Sur la route
POST /dossiers: Champapprenti.prenom: le champ passe en Obligatoire et de type string(1,80) - Sur la route
POST /dossiers: Champapprenti.courriel: le champ passe en Obligatoire et de type string(1,200) - Sur la route
POST /dossiers: Champmaitre[i].nom: le champ passe en Obligatoire et de type string(1,80)
Ajouts
- Sur la route
POST /dossiers: Champmaitre[i].courriel: le champ est ajouté. - Sur la route
POST /dossiers: Champmaitre[i].emploiOccupe: le champ est ajouté. - Sur la route
POST /dossiers: Champmaitre[i].intituleDiplomeObtenu: le champ est ajouté. - Sur la route
POST /dossiers: Champmaitre[i].niveauDiplomeObtenu: le champ est ajouté. - Sur la route
POST /dossiers: Champcontrat.dateFormationPratiqueEmployeur: le champ est ajouté. - Sur la route
POST /dossiers: ChamporganismeFormation.lieuFormationIdentique: le champ est ajouté. - Sur la route
POST /dossiers: NoeudorganismeFormationLieuFormationPrincipal: le noeud est ajouté.
Suppressions
- Sur la route
POST /dossiers: Champmaitre[i].nir: le champ est supprimé (deprecated)
Version du 26/07/2022
Modifications
- Correction des contrôles sur les dates de fin des 2e, 3e et 4e périodes. Les contrôles sont mantenant : "[La date de fin de l'année X] Doit être postérieure ou égale à la date de début de l'année X"
- Suppression d'un contrôle sur la durée minimale de la formation en heures
Version du 06/07/2022
Ajouts
- Ajout des modes opératoires pour AFDAS et OPCO EP
Modifications
- Correction d'un contrôle sur la date de naissance de l'apprenti. Le contrôle est maintenant : "L'age de l'apprenti par rapport à la date de début d’exécution du contrat doit être >= 15 ans et 1 jour"
- Correction d'une erreur sur le swagger
Version du 13/06/2022
Ajouts
- Ajout des trois headers permettant d'identifier l'éditeur, le logiciel et la version utilisés
Version du 04/05/2022
Ajouts
- Ajout du contact technique pour AFDAS
Modifications
- Modification du contact technique pour OPCO 2i
- Modification de la structure du tableau dans l'onglet "Accrochage" afin de différencier les parties transmission de contrats et facturation
- Mise à jour des informations d'accrochage des différents OPCOs
- Mise à jour du mode opératoire de récupération des clé d'API (ajout des procédures pour AFDAS et Mobilités)
Version du 09/02/2022
Ajouts
- Ajout de l'onglet "Accrochage" qui recense l'état d'accrocage des différents OPCO
- Ajout du contact technique pour l'OPCO 2I
Modifications
- Correction de l'affichage des notes de version
- Mise à jour du mode opératoire de récupération des CFA Keys (v4)
- Correction du type de champ
contrat.autreAvantageEnNaturedans l'onglet "Règles de gestion" : ce champ est de typebool
Version du 09/09/2021
Ajouts
- Ajout d'un état
RUPTUREpour le dossier
Modifications
- Sur la route
POST /documents: Modification du fonctionnement global, plusieurs objet peuvent désormais être associés à un document - Correctifs sur les longuers max de certains champs numéros de téléphones et codes postaux
- Sur les exemples, les dates sont désormais formattées en UTC car c'est ce format qui est attendu lors des échanges
- Le type de rémunération passe non nullable sur toutes les périodes de rémuération
Version du 16/07/2021
Ajouts
- Sur la route
POST /documents: ajout d'un exemple de retour en cas de succès avec récupération d'unnumeroInternepropre au document - Sur la route
GET /dossiers: ajout d'un noeudengagementsFraisAnnexequi est une liste des engagements sur les frais annexes (Hebergement, Restauration, Premier équipement, Mobilité) - Sur la route
POST /factures: ajout d'un exemple de retour en cas de succès avec récupération d'unnumeroInterneFactureet d'unnumeroInterneDocument - Ajout d'un champ
dontMontantPedagogiesur l'objetEcheance - Ajout du type de document
CERTFICAT_REALISATION
Modifications
- Ajout de précisions sur le fonctionnement du paramètre
idObjetde la routePOST /documents - Correction description
GET /dossiers: les paramètres obligatoires sontnumeroInterneOU (numeroExterneetnumeroDeca) - Correction faute d'orthographe sur la propriété
codificationEcheance
Suppressions
- Suppression du code de retour
400pour la routeGET /dossiers: si un dossier est introuvable, la méthode doit renvoyer une erreur404 - Sur la route
POST /dossiers: suppression de la propriétéetat - Sur la route
GET /dossiers: suppression de la propriétédetailsFacturation.montantPedagogie - Suppression du champ
dateObtentionDiplomesur l'objetFacture
Version du 12/07/2021
Ajouts
- Sur la route
GET /dossiers: ajout du champecheances[].codification. Ce champ désigne le code unique de l'échéance, qui peut différer de son ordre. Ce code sera a reprendre dans le champfacture.lignes[].codificiationEcheanceduPOST /facturesafin de sélectionner l'échéance qui sera facturée. - Sur la route
POST /factures: ajout du champfacture.lignes[].codificiationEcheance(voir ci dessus) - Dans l'objet
Apprenti: ajout du champinscriptionSportifDeHautNiveau. Le libellé du champ correspondant sur le CERFA est "Déclare être inscrit sur la liste des sportifs, entraîneurs, arbitres et juges sportifs de haut niveau" - Sur la route
GET /dossiers: ajout du champcerfa.etat. La liste des états possibles pour un dossier est[ "TRANSMIS", "EN_COURS_INSTRUCTION", "ENGAGE", "ANNULE", "SOLDE" ] - Ajout de deux méthodes permettant de récupérer les états et les informations complètes de plusieurs contrats
- Nouvelle route
GET /dossiers/etatsqui liste l'ensemble des états des dossiers d'un CFA. Cette méthode ne prend aucun paramètre - Nouvelle route
GET /dossiers/listequi renvoie les données complètes (champs du cerfa, échéances, informations de facturation et d'engagement) de la liste des dossiers passés en paramètre. Le nombre de dossiers qui peuvent être retournés est limité à 50 par appel.
- Nouvelle route
- Ajout d'une route
POST /dossiers/{numeroInterne}/convention: cette route pourra être implémentée par les OPCO qui souhaitent traiter la convention de formation de manière dématérialisée
Modifications
- Champ
maitre2: ce champ est rendu optionnel
Suppressions
- Champ
detailFacturation.montantPedagogie: ce champ est supprimé
Version du 28/06/2021
Ajouts
- Ajout d'un champ
dontMajorationRqthdans l'objetEcheancerenvoyé par leGET /dossiers - Ajout du modèle de réponse de la méthode
POST /dossiers - Ajout d'une valeur
MAJORATION_RQTHdans l'énumérationNatureLigneFactureutilisé dans lePOST /factures - Ajout lien vers le schéma
Factureutilisé dans lePOST /factures - Ajout d'un champ
ordredans l'objetcontrat.remunerationsAnnuelles: la donnée doit être au format^[1-4]\.[1-2]$, le premier chiffre correspondant à l'année de la période et le deuxième chiffre correspondant au changement de tranche d'âge (1 = avant changement tranche d'âge, 2 = en cas de changement de tranche d'âge)
Modifications
- Champ
numeroInterne: le type passe deintegerastringafin de correspondre au type dunumeroExterne - Champ
contrat.typeDerogation: ajout de la valeurnulldans la liste des valeurs autorisées pour l'énumération (car ce champ est facultatif) - Champ
employeur.employeurSpecifique: ajout de la valeurnulldans la liste des valeurs autorisées pour l'énumération (car ce champ est facultatif)
Suppressions
- Champ
numeroDeca: ce champ est supprimé car il est redondant avec le champcontrat.noContrat
Version du 28/05/2021
Ajouts
Documents
- Ajout de la route
POST /documents"Dépôt d'un document et association à un objet grâce à un identifiant"
Modifications
Général
- Pour le
POST /dossiers, l'objet cerfa est maintenant dans un champcerfaet non plus à la racine du corps de la requête.<br/> Ainsi, la signature duGET /dossiersest plus en cohérence avec la signature duPOST /dossiers. - Les codes
NatureLigneFactureont été passés en majuscules. Exemple :HebergementdevientHEBERGEMENT. - La propriété
statusde la classeApiStatusResulta été passée en énumération (auparavant:string). Les 3 valeurs possibles sonthealthy,degradedetunhealthy.
Suppressions
OPCOS
- Suppression de l'endpoint de lecture de l'OPCO référent d'un établissement (ne fait pas partie de la norme à implémenter par les OPCO).
Version du 05/05/2021
Ajouts
Dossiers
- Ajout de la route
POST /dossiers"Transmission d'un contrat d'apprentissage"
Modifications
Général
- Le champ
numeroInternede l'objetCerfadevient facultatif pour le dépôt de contrat.
OPCOS
- Ajout d'un endpoint lecture de l'OPCO référent d'un établissement prenant en paramètre le SIRET de l'établissement et son IDCC<br/> Cet endpoint sera à implémenter par CFA Dock et devra renvoyer le SIREN et la raison sociale de l'OPCO référent.
Suppressions
Etablissements
- Suppression de l'endpoint de lecture des informations d'un établissement car inutile. En remplacemnt, un nouvel endpoint de lecture d'un OPCO référent d'un établissement a été mis en place.
Version du 14/04/2021
Ajouts
Général
- Ajout des attributs
requiredsur les propriétés obligatoires - Ajout des longeurs min et max sur les propriétés string
- Ajout des Regex de validation sur certaines propriétés string
Dossiers
- Ajout du paramètre
numeroInterneau endpoint lecture dossier
Etablissements
- Ajout d'un endpoint Lecture d'établissement prenant en paramètre le SIRET de celui ci.<br/> Cet endpoint sera appelé par CFA Dock et devra renvoyer les informations de l'établissement ainsi que le SIREN de l'OPCO.
Modifications
Général
- Renommage de la classe
EmployeurenEmployeurCerfa - Tri des schémas par ordre alphabétique
Dossiers
- Modification de la description du endpoint lecture dossier
- Renommage du paramètre
numeroDossierennumeroExternesur le endpoint lecture dossier - La propriété
detailsFacturationest maintenant à la racine de la réponse et non plus dans la propriétécerfa - La propriété
npeca été renomméeengagementpour éviter la confusion avec le niveau de prise en charge France Compétences
Suppressions
Modes opératoires
- Suppression du endpoint destiné à renvoyer le mode opératoire de récupération de la cle d'API.<br/> Les OPCO devront fournir aux éditeurs de progiciels CFA une URL fixe menant au mode opératoire.