githubModifier

Flux Candidat - Soumission des Candidatures

Vue d'ensemble

Le flux candidat dans Passe Marché permet aux plateformes de marchés publics de créer des candidatures pour leurs entreprises utilisatrices, puis de les rediriger vers une interface dédiée pour compléter leur dossier de candidature. Ce processus garantit la conformité réglementaire tout en simplifiant l'expérience utilisateur.

Environnements

Les exemples de ce document utilisent ${BASE_URL} comme placeholder. Consultez la documentation des environnements pour les URLs spécifiques à chaque environnement.

Architecture du Flux

┌─────────────────┐    1. Token d'accès      ┌─────────────────┐
│   Plateforme    │ ◄────────────────────────│   Authentification │
│   Éditeur       │                          │   OAuth2           │
└─────────────────┘                          └─────────────────┘

┌─────────────────┐    2. Création candidature ┌─────────────────┐
│   Plateforme    │ ──────────────────────────▶│   API Voie      │
│   Éditeur       │◄────────────────────────── │   Rapide        │
└─────────────────┘    3. URL candidature     └─────────────────┘

┌─────────────────┐    4. Redirection         ┌─────────────────┐
│   Candidat      │ ──────────────────────────▶│   Interface     │
│   Entreprise    │◄────────────────────────── │   Candidature   │
└─────────────────┘    5. Formulaire dynamique└─────────────────┘

┌─────────────────┐    6. Finalisation        ┌─────────────────┐
│   Candidat      │ ──────────────────────────▶│   Génération    │
│   Entreprise    │◄────────────────────────── │   Documents     │
└─────────────────┘    7. Attestation/Dossier └─────────────────┘

┌─────────────────┐    8. Notification        ┌─────────────────┐
│   Plateforme    │ ◄────────────────────────  │   Webhook       │
│   Éditeur       │                          │   Complétion    │
└─────────────────┘                          └─────────────────┘

Étapes Détaillées du Flux

1. Prérequis d'Authentification

Token OAuth requis : Token d'accès valide obtenu via le flux Client Credentials.

Consultez la Documentation OAutharrow-up-right pour l'implémentation.

2. Création de la Candidature

Endpoint

POST /api/v1/public_markets/{market_identifier}/market_applications

Requête

Paramètres

Champ
Type
Description
Contraintes

market_identifier

string

Identifiant du marché public

Requis, format VR-YYYY-XXXXXXXXXXXX

siret

string

Numéro SIRET de l'entreprise

Optionnel à la création, 14 chiffres

Note importante : Le SIRET peut être fourni à la création ou lors de l'étape d'identification dans l'interface candidat.

Réponse de Succès (201 Created)

Paramètres de Réponse :

  • identifier : Identifiant unique de la candidature (format FT + date + hash)

  • application_url : URL vers l'interface de candidature

Réponses d'Erreur

Marché non trouvé (404) :

Marché non accessible par l'éditeur (403) :

SIRET invalide si fourni (422) :

3. Interface de Candidature

La plateforme de marchés publics redirige l'entreprise vers l'URL fournie. L'interface s'adapte dynamiquement selon la configuration du marché public.

Génération Dynamique des Étapes

Les étapes sont générées automatiquement selon les champs configurés par l'acheteur :

Exemple pour un marché "supplies + services" :

Étape 1 : Identification Entreprise

  • URL : /candidate/market_applications/{identifier}/company_identification

  • Objectif : Validation de l'identité de l'entreprise

  • Champs :

    • SIRET (si non fourni à la création)

    • Nom de l'entreprise

    • Forme juridique

    • Adresse du siège social

Étapes Intermédiaires : Champs Métier

Chaque catégorie configurée par l'acheteur génère une étape :

Capacité Économique et Financière :

  • Chiffre d'affaires des 3 dernières années

  • Résultat net

  • Capitaux propres

  • Ratios financiers

Capacité Technique et Professionnelle :

  • Effectifs

  • Encadrement technique

  • Certifications

  • Références clients

Autres Catégories (selon configuration) :

  • Assurances

  • Sous-traitance

  • Développement durable

  • Innovation

Étape Finale : Résumé et Validation

  • URL : /candidate/market_applications/{identifier}/summary

  • Objectif : Validation finale et soumission

  • Actions :

    • Récapitulatif de toutes les informations

    • Vérification de cohérence

    • Confirmation de soumission

4. Sécurité des fichiers déposés

Tous les fichiers déposés par les candidats sont automatiquement analysés par un antivirus avant d'être inclus dans le dossier de candidature.

  • Moteur : ClamAV (open-source, maintenu par Cisco Talos, standard de référence pour le scan serveur)

  • Scan automatique : chaque fichier est analysé en arrière-plan dès son upload

  • Statuts visibles : un badge indique l'état du scan (vérifié, en cours, non vérifié, malware détecté)

  • Blocage des menaces : un fichier identifié comme malveillant est bloqué et ne sera pas inclus dans le dossier final

Ce mécanisme garantit que les documents transmis aux acheteurs publics sont exempts de virus et de malware.

5. Processus de Complétion

Validation et Génération

Lors de la soumission finale :

  1. Validation des Données : Vérification de la cohérence et complétude

  2. Vérification de sécurité : Contrôle que tous les fichiers ont été scannés et sont sains

  3. Marquage Complété : Passage en statut completed

  4. Génération de l'Attestation : PDF officiel avec horodatage

  5. Création du Dossier : Archive ZIP avec tous les éléments

  6. Déclenchement Webhook : Notification vers la plateforme de marchés publics

Types de Documents Générés

Attestation PDF :

  • Document officiel de soumission

  • Horodatage légal

  • Résumé des informations clés

  • QR code de vérification

Dossier Documents ZIP :

  • Attestation acheteur (PDF officiel)

  • Documents des candidats issus de tous les types de champs permettant l'attachement de fichiers :

    • FileUpload : Fichiers téléchargés standard

    • InlineFileUpload : Fichiers téléchargés en ligne

    • CheckboxWithDocument : Fichiers conditionnels aux cases à cocher

    • RadioWithFileAndText : Fichiers avec sélection radio

    • RadioWithJustificationRequired : Justifications obligatoires

    • RadioWithJustificationOptional : Justifications optionnelles

    • FileOrTextarea : Fichiers ou texte

    • PresentationIntervenants : CV des intervenants

    • RealisationsLivraisons : Attestations de réalisations

    • CapacitesTechniquesProfessionnellesOutillageEchantillons : Échantillons et outillage

  • Nom de fichiers structuré : {index_réponse}_{index_document}_{clé_champ}_{nom_original}

  • Exemple : 01_01_kbis_Kbis_Entreprise.pdf

6. Statuts de la Candidature

Statut
Description
Actions Disponibles

pending

En cours de saisie

Modification, progression

completed

Finalisée et validée

Consultation, téléchargement

sync_pending

Attente notification

-

sync_processing

Webhook en cours

-

sync_completed

Notification réussie

-

sync_failed

Échec notification

Retry disponible

7. Webhook de Complétion

Déclenchement Automatique

Le webhook est envoyé automatiquement lors de la finalisation de la candidature.

Payload du Webhook

Paramètres du Payload

Champ
Description

event

Type d'événement (market_application.completed)

market_identifier

Identifiant du marché public

market_application.identifier

Identifiant de la candidature

market_application.siret

SIRET de l'entreprise candidate

market_application.attestation_url

URL de téléchargement de l'attestation

market_application.documents_package_url

URL de téléchargement du dossier

8. Téléchargement des Documents

Une fois la candidature finalisée, la plateforme de marchés publics peut télécharger les documents générés.

Téléchargement de l'Attestation

Endpoint : GET /api/v1/market_applications/{identifier}/attestation

Réponse : Fichier PDF en binaire

Téléchargement du Dossier Complet

Endpoint : GET /api/v1/market_applications/{identifier}/documents_package

Réponse : Archive ZIP en binaire

Conditions de Téléchargement

  • Candidature en statut completed

  • Token d'accès valide de l'éditeur propriétaire

  • Documents générés et disponibles

Réponses d'Erreur pour Téléchargement

Candidature non finalisée (422) :

Document non disponible (404) :

Champs de Candidature Dynamiques

Types de Champs Supportés

Champs de Base

  • Texte libre : Descriptions, commentaires

  • Nombre entier : Effectifs, quantités

  • Nombre décimal : Montants, ratios

  • Date : Échéances, créations

  • Oui/Non : Certifications, capacités

  • Choix unique : Sélection dans une liste

  • Choix multiple : Sélections multiples

Champs Composites Métier

  • Chiffre d'affaires annuel : 3 années + pourcentages marché

  • Références client : Nom, montant, période, contact

  • Assurances : Compagnie, garantie, montant, période

  • Certifications : Organisme, norme, validité

Validation des Données

Validation Frontend

  • Contrôles en temps réel

  • Messages d'erreur contextuels

  • Prévention de soumission incomplète

Validation Backend

  • Vérification de cohérence

  • Validation métier (SIRET, dates)

  • Contrôles d'intégrité

Exemple de Champ Composite : Chiffre d'Affaires

Gestion des Erreurs et Cas Limites

Candidature Déjà Finalisée

  • Redirection vers page de statut

  • Affichage des informations de complétion

  • Liens de téléchargement si disponibles

Session Expirée

  • Sauvegarde automatique de la progression

  • Reprise à la dernière étape validée

  • Conservation des données 7 jours

Erreurs de Validation

  • Messages d'erreur détaillés par champ

  • Préservation des données saisies

  • Navigation facilitée vers les erreurs

Marché Expiré

  • Vérification de la date limite

  • Blocage de soumission si dépassée

  • Message informatif avec détails

Monitoring et Observabilité

Métriques de Performance

  • Taux de complétion : Candidatures démarrées vs finalisées

  • Temps de saisie : Durée moyenne par étape

  • Taux d'abandon : Abandons par étape et raison

  • Erreurs de validation : Fréquence par type de champ

Logs Applicatifs

Éléments recommandés à logger :

  • Création de candidatures (identifiant, marché, SIRET)

  • Webhooks reçus (événement, statut, documents disponibles)

  • Téléchargements de documents (type, taille)

  • Erreurs de validation et d'API

🔗 Scripts de logging : Scripts de Référence - Logging candidatures

Bonnes Pratiques d'Intégration

Côté Plateforme de Marchés Publics

  1. Validation Préalable : Vérifier la validité du marché avant création

  2. Gestion du SIRET : Permettre saisie ultérieure si non disponible

  3. Webhook Idempotent : Gérer les réceptions multiples du même événement

  4. Stockage Sécurisé : Protéger les URLs de téléchargement

  5. UX Cohérente : Intégrer harmonieusement les redirections

Scripts d'Automatisation

Fonctionnalités disponibles :

  • Gestionnaire complet de candidatures (création, webhooks, téléchargements)

  • Cache local des candidatures créées

  • Gestion d'erreurs et logging détaillé

  • Téléchargement automatique des documents (PDF/ZIP)

  • Statistiques et monitoring des opérations

🔗 Scripts complets : Scripts de Référence - Gestionnaire de candidatures

Ce flux candidat assure une expérience utilisateur optimisée tout en maintenant la conformité réglementaire et la traçabilité requises pour les marchés publics.

Mis à jour

Ce contenu vous a-t-il été utile ?