ELRM developer Bac à sable

Consulter le catalogue#

Trois vues du catalogue : le référentiel des formations, les sessions ouvertes, et, pour un client donné, les offres à ses prix.

Le référentiel des formations#

GET /formations/recommendations liste les familles de formation (recommandations CNAM R48x pour le CACES®, plus AIPR, SST…). C'est la nomenclature des filtres : le code renvoyé sert de valeur au paramètre recommendation des sessions.

curl "https://developer.elrm.app/sandbox/v1/formations/recommendations?caces_only=true" \
  -H "Authorization: Bearer pk_test_…"
{
  "items": [
    { "code": "R482", "label": "Engins de chantier", "is_caces": true, "duree": "3 à 5 jours", "certification": "CACES® R482", "description": "…" },
    { "code": "R489", "label": "Chariots de manutention", "is_caces": true, "duree": "…", "certification": "CACES® R489", "description": "…" }
  ],
  "total": 9, "limit": 100, "offset": 0
}

Portée : formations:recommendations:read.

Les sessions ouvertes#

GET /formations/sessions renvoie les sessions inter-entreprises à venir, avec leurs places restantes. Les sessions privées (intra) n'y figurent jamais.

Paramètre Rôle
recommendation Filtrer sur une famille (R482, insensible à la casse)
available_only Ne garder que les sessions avec au moins une place
limit, offset Pagination (100 par défaut, 200 maximum)
curl "https://developer.elrm.app/sandbox/v1/formations/sessions?recommendation=R482&available_only=true" \
  -H "Authorization: Bearer pk_test_…"
def all_sessions(api, **params):
    """Itère sur toutes les pages."""
    offset = 0
    while True:
        page = api.get("/formations/sessions", params={**params, "limit": 200, "offset": offset}).json()
        yield from page["items"]
        offset += page["limit"]
        if offset >= page["total"]:
            return

for s in all_sessions(api, recommendation="R482", available_only=True):
    print(s["numero"], s["date_debut"], "→", s["date_fin"], s["available_slots"], "places")

GET /formations/sessions/{numero} renvoie une session par son numéro métier.

Portée : formations:sessions:read.

Les offres à vos prix#

Pour préparer un dossier, il vous faut les offres (une offre = une formation précise avec sa durée, ses unités et son prix) à votre tarif : votre remise est appliquée par l'organisme. C'est GET /formations :

curl "https://developer.elrm.app/sandbox/v1/formations" \
  -H "Authorization: Bearer pk_test_…"
{
  "remise_pct": 10.0,
  "items": [
    {
      "recommendation_id": "…", "code": "R482", "label": "Engins de chantier", "is_caces": true, "certification": "CACES® R482",
      "categories": [ { "code": "A", "label": "Engins compacts" }, { "code": "C1", "label": "Engins de chargement" } ],
      "offres": [
        { "id": "a1b2…", "code": "R482_3_Avancé", "titre": "R482, 3 catégories, expérimenté", "duree": "3 jours", "nombre_ut": 3, "prix_ht": 780.0, "remise_pct": 10.0, "prix_remise_ht": 702.0 }
      ]
    }
  ]
}

Les offres[].id sont les identifiants à passer dans une analyse du besoin (offre_ids) puis dans les lignes d'un dossier (lignes[].offre_id). Les prix sont informatifs : vous ne les renvoyez jamais, ils sont recalculés à la création du dossier.

categories donne les catégories d'engins de chaque formation : ce sont les valeurs acceptées dans categories_session à la création d'un dossier.

Portée : clients:dossiers:read.

Les centres#

GET /centres liste les centres de formation ELRM (nom, adresse, ville, département). Leur id est la valeur acceptée par centre_id à la création d'un dossier, pour indiquer un centre souhaité ; centre_label des sessions reprend leur nom.

Portée : formations:sessions:read.

Le catalogue Mon Compte Formation#

GET /formations/mcf-references liste les formations référencées sur Mon Compte Formation (liens profonds, prix TTC, département). Utile pour orienter un particulier vers un financement CPF.

Portée : formations:mcf:read.

Synchroniser un catalogue local#

Le catalogue change rarement : une synchronisation horaire suffit largement. Rapatriez recommandations, offres et sessions ouvertes, puis travaillez localement ; ne relisez GET /formations qu'au moment de préparer un dossier, pour avoir les prix du jour.