Onboarding client B2B

Ouvrez un dossier pour une société ou une personne, collectez les informations manquantes, exécutez les contrôles métier, KYC, KYB, conformité ou fraude nécessaires, puis rattachez les objets vérifiés avant d'approuver ou de rejeter l'onboarding.

Objectif métier

Un onboarding_case porte une tentative d'onboarding de bout en bout. Il conserve le type de sujet, les données initiales, les contrôles effectués, le processus associé et la décision finale. Il peut démarrer avant que la party ou le party_contact n'existe dans Ormuz.

Le processus transforme progressivement les informations déclaratives en objets métier exploitables. Il peut rechercher une société existante, créer ou enrichir une party, identifier ses contacts, collecter des justificatifs, appeler des partenaires et demander une revue humaine.

Responsabilité de la décision Le dossier centralise les preuves et le résultat. Le processus du marchand détermine les contrôles requis, leur ordre, les cas de revue manuelle et les conditions d'approbation.

Onboarding société ou individuel

subject_typeUsageCondition avant approbation
companyOnboarder une société cliente, un acheteur, un fournisseur ou un autre tiers B2B.Une party doit être rattachée au dossier.
individualOnboarder une personne dans le contexte d'une party, par exemple un représentant ou un signataire.Une party et un party_contact doivent être rattachés.

Si la party ou le contact existe déjà, fournissez son ID à la création. Sinon, utilisez initial_data pour préremplir le parcours ; le process décidera quand rechercher, créer et rattacher les objets persistés.

Prérequis

ÉlémentRôle
MarchandDéfinit le périmètre des données, du processus et des configurations d’extensions.
Process launcher onboardingAssocie les nouveaux dossiers à une définition de processus onboarding. Plusieurs launchers peuvent coexister pour le marchand.
URLs de retourRamènent l'utilisateur vers votre application après une action utilisateur hébergée.
Politique de décisionDéfinit les contrôles bloquants, les preuves attendues et les cas de revue.

Un parcours utilisateur n'est nécessaire que si le processus attend une action utilisateur. Un onboarding alimenté par API, synchronisation ou services externes peut s'exécuter sans redirection ; votre système attend alors l'événement de décision final.

Parcours cible

Ouvrir le dossier
Résoudre les sujets
Collecter si nécessaire
Exécuter les contrôles
Décider / revoir
Finaliser le dossier

La collecte utilisateur et les contrôles automatisés peuvent être exécutés en parallèle ou conditionnellement selon le process.

Ouvrir et dédupliquer le dossier

Ormuz refuse un second dossier actif portant la même party, le même contact ou la même clé métier.

Résoudre les sujets

Le processus recherche les objets existants ou construit la party et le contact à partir des données initiales.

Collecter et vérifier

Les formulaires, contrôles internes et extensions configurées produisent les informations et preuves nécessaires.

Décider et finaliser

Le processus rattache les objets persistés au dossier, puis le clôture avec une décision approved ou rejected.

Ouvrir le dossier

Appelez POST /v1/onboarding-cases depuis votre backend. Les données de initial_data.party et initial_data.party_contact suivent les champs publics de création correspondants, mais n'entraînent pas immédiatement la création de ces objets.

POST /v1/onboarding-cases
Content-Type: application/json

{
  "merchant_id": "mer_abc123",
  "subject_type": "company",
  "return_url": "https://app.example/onboarding/complete",
  "source_reference": "CRM-ACCOUNT-1042",
  "initial_data": {
    "party": {
      "legal_name": "ACME France SAS",
      "registration_number": "123456789",
      "registration_country": "FR",
      "is_buyer": true
    },
    "party_contact": {
      "first_name": "Ada",
      "last_name": "Lovelace",
      "email": "ada@example.com"
    }
  }
}

La réponse contient l'ID obc_*, l'instance de processus et une URL de parcours utilisateur contextualisée. N'utilisez cette URL que si le processus comporte une action utilisateur ; sinon, laissez le parcours s'exécuter côté serveur. Conservez l'ID du dossier avec votre référence CRM, ERP ou e-commerce.

Prévenir les doublons Fournissez une source_reference stable ou une dedupe_key explicite. Sans clé fournie, Ormuz tente d'en dériver une depuis la référence source, l'email et le numéro d'immatriculation.

Collecter les données et produire les contrôles

Les données déjà connues préremplissent le contexte du process. Les étapes suivantes ne doivent demander à l'utilisateur que les informations manquantes ou celles qui nécessitent une confirmation explicite.

CapacitéExemples d'usageSortie attendue
Résolution des objetsRechercher une party par immatriculation, retrouver un contact par email, créer les objets absents.party et party_contact persistés.
Collecte utilisateurCoordonnées, activité, bénéficiaires, consentements ou informations complémentaires.Valeurs structurées réutilisables par les nodes suivants.
Contrôles internesComplétude, règles d'éligibilité, cohérence, validation d'un rôle ou d'un pouvoir.Décision ou preuve traçable.
Contrôles partenairesKYC, KYB, sanctions, PEP, fraude, identité, compte bancaire ou scoring.Résultat normalisé et action recommandée.

Un compliance_check porte d'abord sur son sujet. Il peut en plus être rattaché au dossier d'onboarding et au processus qui l'a produit, mais ces contextes sont optionnels. Son résultat peut être pending, passed, failed, error ou manual_review. Le détail du dossier expose les checks qui lui sont rattachés. Un résultat de provider n’est pas automatiquement une décision finale d’onboarding : la politique du processus reste responsable de l’interprétation de ce contrôle.

Décider, demander une revue ou rejeter

Un contrôle en manual_review émet d'abord compliance_check.review_required. S'il est rattaché à ce dossier, Ormuz émet ensuite onboarding_case.review_required comme conséquence sur l'onboarding. Votre processus peut alors attendre une décision opérateur, demander des informations complémentaires ou poursuivre avec un niveau de contrôle renforcé.

DécisionCondition typiqueEffet
ApprouverLes objets requis sont rattachés et tous les contrôles bloquants sont favorables.status=completed, decision_status=approved
Revue manuelleRésultat ambigu, pièce manquante ou règle imposant une validation humaine.status=open, decision_status=pending
RejeterContrôle bloquant défavorable ou critère d'éligibilité non satisfait.status=completed, decision_status=rejected
AnnulerAbandon explicite ou dossier devenu sans objet.status=cancelled, decision_status=pending

Le node finalize_onboarding_case rattache la party et le contact résolus ou créés, puis applique la décision finale. Il évite qu'un dossier soit approuvé sans objets métier utilisables en aval.

Cycle de vie du dossier

Le dossier sépare deux axes. status décrit son cycle de vie ; decision_statusdécrit la décision d’onboarding. Une collecte en cours ou une revue humaine ne crée donc pas un statut intermédiaire supplémentaire : le dossier reste open tant que la décision n’est pas terminale.

statusdecision_statusSignification
openpendingDossier actif : collecte, contrôles ou revue peuvent encore être en cours.
completedapprovedOnboarding clôturé avec une décision favorable.
completedrejectedOnboarding clôturé avec une décision défavorable.
cancelledpendingDossier annulé sans décision d’approbation ou de rejet.

completed et cancelled sont terminaux pour ce dossier. Un nouveau besoin d'onboarding ouvre un nouveau dossier plutôt que de réécrire la décision d’un dossier clôturé.

Événements et suivi

ÉvénementUtilisation
onboarding_case.company.createdSuivre l'ouverture d'un onboarding société.
onboarding_case.individual.createdSuivre l'ouverture d'un onboarding individuel.
onboarding_case.review_requiredCréer une tâche opérateur ou notifier une équipe de conformité.
onboarding_case.approvedActiver le client ou synchroniser les objets approuvés.
onboarding_case.rejectedBloquer l'activation et appliquer le traitement prévu par votre politique.
onboarding_case.completedObserver toute clôture décidée, qu’elle soit favorable ou défavorable.
onboarding_case.cancelledTraiter l’abandon d’un dossier sans décision finale.

Après une redirection depuis le parcours utilisateur, relisez toujours le dossier côté serveur. Pour un parcours automatisé, attendez directement onboarding_case.approved, onboarding_case.rejected,onboarding_case.cancelled ou un événement de revue, puis récupérez le dossier et ses checks.

Avant d'ouvrir un nouveau dossier pour une party connue, la recherche des onboardings approuvés permet de réutiliser une décision antérieure selon votre politique de validité.

Checklist d'intégration

  • Choisir company ou individual selon le sujet réellement onboardé.
  • Configurer au moins un launcher onboarding actif et sélectionner explicitement le process_definition_id lorsqu'il y en a plusieurs.
  • Transmettre les objets existants ou préremplir uniquement les données déjà connues.
  • Utiliser une référence source ou une clé de déduplication stable.
  • Ne demander un parcours utilisateur que lorsque le processus attend une action utilisateur.
  • Tracer chaque contrôle important avec son sujet, le provider éventuel et son résultat.
  • Définir explicitement les résultats qui imposent une revue ou bloquent l'approbation.
  • Rattacher une party, et un contact pour un onboarding individuel, avant approbation.
  • Traiter les événements de décision de façon idempotente et relire le dossier avant activation.