BeCLM - Documentation APIs

PUT CHECK RISK PP KYC

Cet endpoint de l'API permet de créer ou mettre à jour les informations d'une personne physique, et de lancer le filtrage.

Une réponse synchrone est reçue suite à la création ou mise à jour de la personne physique.

Une réponse asynchrone est reçue suite à l’exécution des contrôles sur la personne, contenant les résultats de ces contrôles


Description

Les descriptions complètes de l’appel et de la réponse asynchrone sont accessibles sur notre swagger


Méthode

PUT


Paramètres d’entrée

Param

Type

Description

Exemple

sourceName

String

Nom technique de la source sur laquelle la personne physique va être créée

CLIENTS

externalRefId

String

La référence de la personne physique qui va être créée ou mise à jour

134679852

Exemple de body

{
  "contracts": [
    {
      "type": "type",
      "number": "123456",
      "insurer": "insurer",
      "startDate": "2024-10-23",
      "endDate": "2025-10-23"
    }
  ],
  "personAdditionalInformation": {
    "personType": "personType",
    "genderCode": "genderCode",
    "birthYear": "birthYear",
    "birthMonth": "birthMonth",
    "birthPlace": "birthPlace",
    "legalForm": "legalForm",
    "iban": "truncatedIban"
  },
  "personMetaData": {
    "entities": [
      "entity"
    ],
    "subEntities": [
      "subEntity"
    ]
  },
  "personCustomFields": [
    {
      "personCustomFieldDescriptorId": "personCustomFieldDescriptorId",
      "value": "1500.58"
    }
  ],
  "identity": {
    "email": "test@test.com",
    "firstName": "firstName",
    "lastName": "lastName",
    "phoneNumber": "0123456789",
    "mobilePhoneNumber": "0612345678",
    "civility": "MR",
    "birth": {
      "date": "1997-01-01",
      "birthCity": "Bordeaux",
      "department": "department",
      "country": "FRA",
      "nationality": "FRA"
    },
    "title": "professor",
    "maidenName": "maidenName",
    "nationality": "FRA",
    "personType": "personType",
    "legalForm": "legalForm",
    "socialSecurityNumber": "socialSecurityNumber",
    "judicialProtectionRegime": "TUTELAGE"
  },
  "postalAddress": {
    "address": "1 rue du test",
    "zipCode": "40500",
    "city": "COUDURES",
    "country": "FRA",
    "building": "Appartement 01"
  },
  "professionalInformation": {
    "professionalStatus": "professional status",
    "career": "career",
    "sirenCode": "sirenCode",
    "expectedRetirementAge": "expectedRetirementAge",
    "companyAdditionalInformation": "companyAdditionalInformation",
    "department": "department",
    "function": "function",
    "capacityLevel": "capacityLevel",
    "isSupervisoryStaff": true,
    "isRemoteWorking": true,
    "shiftChangeDate": "2020-01-01T00:00:00Z",
    "contract": {
      "startDate": "2020-01-01T00:00:00Z",
      "endDate": "2021-01-01T00:00:00Z",
      "legalEntityRef": {
        "sourceName": "sourceName",
        "externalRefId": "externalRefId"
      }
    },
    "naf": "B06_10Z",
    "socialProfessionalCategory": "L4_111A"
  },
  "financialSituation": {
    "financialWealth": {
      "totalFinancialWealth": 675500.5
    },
    "yearlyIncomes": 35000,
    "financialAssets": {
      "externalAssetsInFrance": true,
      "externalAssetsCountry": "USA"
    },
    "financialFlows": {
      "flowEmitterCountry": "BEL",
      "flowReceiverCountry": "FRA"
    }
  },
  "proofOfId": {
    "number": "123456",
    "issueDate": "2020-01-01",
    "type": "type",
    "issuer": "issuer"
  }
}

 

Réponse synchrone

Champ

Type

Description fonctionnelle

Exemple

identity.lastName

String

Nom de famille

DUPOND

identity.firstName

String

Prénom

JEAN

identity.maidenName

String

Nom de jeune fille, utilisé dans les contrôles de screening

DUPOND

identity.civility

Enum (MR, MRS)

Civilité

MR

identity.title

String

Titre

professor

identity.email

String

Email

test@test.com

identity.phoneNumber

String

Téléphone fixe

0123456789

identity.mobilePhoneNumber

String

Téléphone mobile

0612345678

identity.birth.date

Date

Date de naissance, clé de la comparaison d'identité en screening

1997-01-01

identity.birth.birthCity

String

Ville de naissance

Bordeaux

identity.birth.department

String

Département de naissance

Gironde

identity.birth.country

Enum (code pays)

Pays de naissance

FRA

identity.birth.nationality

Enum (code pays)

Nationalité à la naissance

FRA

identity.nationality

Enum (code pays)

Nationalité actuelle, alimente le contrôle GAFI

FRA

identity.personType

String

Sous-type de personne

PROSPECT

identity.legalForm

String

Forme juridique (rarement utilisé pour une PP)


identity.socialSecurityNumber

String

Numéro de sécurité sociale

1234567890123

identity.judicialProtectionRegime

Enum (Aucun, Mineur, Curatelle, Tutelle, Sauvegarde de justice)

Régime de protection judiciaire

Tutelle

postalAddress.*

Objet

Adresse postale, alimente les contrôles de risque pays

1 rue du test, 40500 COUDURES, FRA (bâtiment : Appartement 01)

professionalInformation.professionalStatus

String

Statut professionnel

professional status

professionalInformation.career

String

Profession

Responsable marketing

professionalInformation.sirenCode

String

SIREN du dernier employeur, alimente le contrôle "risque employeur"

123456789

professionalInformation.naf

Enum

Code NAF de l'employeur, alimente le même contrôle

B06_10Z

professionalInformation.socialProfessionalCategory

Enum (code CSP)

Catégorie socio-professionnelle, alimente "profession risquée"

L4_111A

professionalInformation.expectedRetirementAge

String

Âge de départ à la retraite prévu

60

professionalInformation.companyAdditionalInformation

String

Informations complémentaires employeur


professionalInformation.department / function / capacityLevel

String

Service, fonction, niveau de responsabilité

Marketing / Responsable communication / M3

professionalInformation.isSupervisoryStaff

Boolean

Encadrement de personnel

true

professionalInformation.isRemoteWorking

Boolean

Télétravail

true

professionalInformation.shiftChangeDate

Date-heure

Date de changement de poste

2020-01-01T00:00:00Z

professionalInformation.contract.*

Objet

Contrat de rattachement à l'employeur

du 2020-01-01T00:00:00Z au 2021-01-01T00:00:00Z, rattaché à sourceName / externalRefId

financialSituation.financialWealth.totalFinancialWealth

Number

Patrimoine financier total déclaré

675500.5

financialSituation.yearlyIncomes

Number

Revenus annuels déclarés

35000

financialSituation.financialAssets.externalAssetsInFrance

Boolean

Détention d'actifs à l'étranger

true

financialSituation.financialAssets.externalAssetsCountry

Enum (code pays)

Pays de détention des actifs, alimente "résident étranger et détention d'actifs"

USA

financialSituation.financialFlows.flowEmitterCountry

Enum (code pays)

Pays d'origine des flux entrants

BEL

financialSituation.financialFlows.flowReceiverCountry

Enum (code pays)

Pays de destination des flux sortants

FRA

proofOfId.number

String

Numéro de la pièce d'identité

123456

proofOfId.issueDate

Date

Date de délivrance

2020-01-01

proofOfId.type

String

Type de pièce

CNI

proofOfId.issuer

String

Autorité émettrice

Préfecture de Bordeaux

contracts[], personAdditionalInformation.*, personMetaData.*, personCustomFields[]

Liste

Contrats d'assurance

{ "type": "type", "number": "123456", "insurer": "insurer", "startDate": "2024-10-23", "endDate": "2025-10-23" }

relationshipEndDate

Date

Date de fin de relation commerciale

2026-06-30


Exemple de réponse obtenue quand la personne physique a été créée/mise à jour :
JSON
{
  "contracts": [
    {
      "type": "type",
      "number": "123456",
      "insurer": "insurer",
      "startDate": "2024-10-23",
      "endDate": "2025-10-23"
    }
  ],
  "personAdditionalInformation": {
    "personType": "personType",
    "genderCode": "genderCode",
    "birthYear": "birthYear",
    "birthMonth": "birthMonth",
    "birthPlace": "birthPlace",
    "legalForm": "legalForm",
    "iban": "truncatedIban"
  },
  "personMetaData": {
    "entities": [
      "entity"
    ],
    "subEntities": [
      "subEntity"
    ]
  },
  "personCustomFields": [
    {
      "personCustomFieldDescriptorId": "67b5ffc62d446968eeb0faa4",
      "value": "FRA"
    }
  ],
  "identity": {
    "email": "test@test.com",
    "firstName": "Bartabé",
    "lastName": "Civil",
    "phoneNumber": "0123456789",
    "mobilePhoneNumber": "0612345678",
    "civility": "MR",
    "birth": {
      "date": "1995-01-01",
      "birthCity": "Bordeaux",
      "department": "department",
      "country": "FRA",
      "nationality": "FRA"
    },
    "title": "professor",
    "maidenName": "maidenName",
    "nationality": "FRA",
    "personType": "personType",
    "legalForm": "legalForm",
    "socialSecurityNumber": "socialSecurityNumber",
    "judicialProtectionRegime": "TUTELAGE"
  },
  "postalAddress": {
    "address": "1 rue du test",
    "zipCode": "40500",
    "city": "COUDURES",
    "country": "FRA",
    "building": "Appartement 01"
  },
  "professionalInformation": {
    "professionalStatus": "professional status",
    "career": "career",
    "sirenCode": "sirenCode",
    "expectedRetirementAge": "expectedRetirementAge",
    "companyAdditionalInformation": "companyAdditionalInformation",
    "department": "department",
    "function": "function",
    "capacityLevel": "capacityLevel",
    "isSupervisoryStaff": true,
    "isRemoteWorking": true,
    "shiftChangeDate": "2020-01-01T00:00:00Z",
    "contract": {
      "startDate": "2020-01-01T00:00:00Z",
      "endDate": "2021-01-01T00:00:00Z"
    },
    "naf": "B06_10Z",
    "socialProfessionalCategory": "L4_111A"
  },
  "financialSituation": {
    "financialWealth": {
      "totalFinancialWealth": 675500.5
    },
    "yearlyIncomes": 35000,
    "financialAssets": {
      "externalAssetsInFrance": true,
      "externalAssetsCountry": "USA"
    },
    "financialFlows": {
      "flowEmitterCountry": "BEL",
      "flowReceiverCountry": "FRA"
    }
  },
  "proofOfId": {
    "number": "123456",
    "issueDate": "2020-01-01",
    "type": "type",
    "issuer": "issuer"
  }
}

 


Réponse asynchrone 

Champ

Type

Description fonctionnelle

Exemple

eventId

String (UUID)

Identifiant unique de cet évènement de callback

60b1dbdb-42b0-43dd-a9bf-d22c48ceec4c

type

String

Constante ASYNC_RESPONSE identifiant la nature de l'évènement

ASYNC_RESPONSE

data.externalRef.sourceName / externalRefId

Objet

Référence de la personne morale contrôlée, à rapprocher de votre système

{ "sourceName": "sourceName", "externalRefId": "externalRefId" }

Pour chaque contrôle actif sur votre source :

data.controlsData.riskStatus

Enum

Statut global du dossier de risque suite à l'ensemble des contrôles

POTENTIAL_RISK

data.controlsData.lastControlDate

Date-heure

Date du dernier contrôle exécuté

2025-03-05T10:00:00Z

data.controlsData.pcrId

String

Identifiant de la trace de contrôle immuable (PCR), à conserver si vous devez faire référence à ce contrôle auprès du support BeCLM

2025-03-05T10:00:00.000Z-KYC-cb3b5b33-6929-4caf-b27e-60fdbaa7cdef

controlResults[].controlFamilyId / controlFamilyName

String

Famille fonctionnelle du contrôle (ex. "Risques LCB-FT", "Risques Bodacc")

66fa8d123bce49b2393135e5 / Risques LCB-FT

controlResults[].controlTypeId / controlTypeName

Integer / String

Identifiant et nom technique du contrôle exécuté

3 / GafiControl

controlResults[].date

Date-heure

Date d'exécution de ce contrôle précis

2025-03-05T10:00:00Z

controlResults[].computed

Boolean

Indique si le contrôle a effectivement été calculé (données suffisantes)

true

controlResults[].score

Integer (0-100)

Score de risque du contrôle

100

controlResults[].status

Enum

Résultat du contrôle

POTENTIAL_RISK

controlResults[].description

String

Libellé métier du contrôle

Contrôle GAFI

controlResults[].controlData

String

Donnée client ayant servi de base au calcul du contrôle

Pays de résidence : FRANCE

controlResults[].type

Enum

Type de contrôle : détermine les champs additionnels présents ci-dessous (discriminant)

THRESHOLD

controlResults[].riskFolderId (si type = BLACKLIST_PEP)

String

Référence du dossier de risque associé dans le module GDA/PPE/AM

88fa8d123bce49b2393139f0

controlResults[].oriasRegistration.* (si type = ORIAS)

Objet

Détail de l'immatriculation ORIAS trouvée (catégorie, statut, activités bancaires, mandants)

{ "categoryName": "CIF", "status": "REGISTERED", "bankActivities": [], "mandators": [] }

controlResults[].nbOfPastYearEvents (si type = BODACC_EVENT)

Integer

Nombre d'évènements de ce type publiés au BODACC sur les 12 derniers mois

1

controlResults[].personLinkBlacklistPepAmControlResultSummaries[] (si type = LINKED_PERSON, variante screening)

Liste

Résultats de screening (GDA/PEP/AM) sur chaque personne liée

{ "externalRefId": "LinkedPersonExternalRefId", "score": 80, "status": "POTENTIAL_RISK" }

controlResults[].controlResultSummaries[] (si type = LINKED_PERSON ou VIGILANCE, variante vigilance)

Liste

Résultats de vigilance sur chaque personne liée

{ "externalRefId": "LinkedPersonExternalRefId", "score": 75, "status": "POTENTIAL_RISK", "vigilanceCombinationName": "Vigilance TEST" }

controlResults[].vigilanceCombinationName (si type = VIGILANCE)

String

Nom de la combinaison de vigilance déclenchée

Vigilance allégée

controlResults[].vigilanceStatus (si type = VIGILANCE)

Enum

Niveau de vigilance calculé

HIGH_VIGILANCE_STATUS


Exemple de réponse asynchrone obtenue :
JSON
{
  "eventId": "cbec43c3-d22a-4988-b88a-0d37849f4231",
  "data": {
    "externalRef": {
      "sourceName": "sourceName",
      "externalRefId": "externalRefId"
    },
    "controlsData": {
      "riskStatus": "POTENTIAL_RISK",
      "lastControlDate": "2025-03-05T10:00:00Z",
      "controlResults": [
        {
          "controlFamilyId": "66fa8d123bce49b2393135e5",
          "controlFamilyName": "Risques LCB-FT",
          "controlTypeId": 3,
          "controlTypeName": "GafiControl",
          "date": "2025-03-05T10:00:00Z",
          "computed": true,
          "score": 100,
          "status": "POTENTIAL_RISK",
          "description": "Contrôle GAFI",
          "controlData": "Données Client",
          "type": "THRESHOLD"
        },
        {
          "controlFamilyId": "66fa8d123bce49b2393135e5",
          "controlFamilyName": "Risques LCB-FT",
          "controlTypeId": 0,
          "controlTypeName": "BlacklistControl",
          "date": "2025-03-05T09:50:00Z",
          "computed": true,
          "score": 100,
          "status": "POTENTIAL_RISK",
          "description": "Contrôle GDA",
          "controlData": "Données Client",
          "riskFolderId": "88fa8d123bce49b2393139f0",
          "type": "BLACKLIST_PEP"
        },
        {
          "controlFamilyId": "66fa8d123bce49b2393135e5",
          "controlFamilyName": "Risques LCB-FT",
          "controlTypeId": 53,
          "controlTypeName": "BlacklistLinkedPersonControl",
          "date": "2025-03-05T09:50:00Z",
          "computed": true,
          "score": 80,
          "status": "POTENTIAL_RISK",
          "description": "Résultats de contrôle GDA pour les personnes liées",
          "controlData": "LinkedPersonExternalRefId - 80% - Risque potentiel ",
          "personLinkBlacklistPepAmControlResultSummaries": [
            {
              "externalRefId": "LinkedPersonExternalRefId",
              "score": 80,
              "status": "POTENTIAL_RISK"
            }
          ],
          "type": "LINKED_PERSON"
        },
        {
          "controlFamilyId": "66fa8d123bce49b2393135e5",
          "controlFamilyName": "Risques LCB-FT",
          "controlTypeId": 56,
          "controlTypeName": "VigilanceControl",
          "date": "2025-03-05T09:50:00Z",
          "computed": true,
          "score": 75,
          "status": "POTENTIAL_RISK",
          "description": "Données et résultats de contrôle de la personne",
          "vigilanceCombinationName": "Vigilance allégée",
          "vigilanceStatus": "HIGH_VIGILANCE_STATUS",
          "type": "VIGILANCE"
        }
      ],
      "pcrId": "2025-03-05T10:00:00.000Z-KYC-cb3b5b33-6929-4caf-b27e-60fdbaa7cdef"
    }
  },
  "type": "ASYNC_RESPONSE"
}