Nouveau dans GraphQL ?Se connecter à l’API GraphQL
Rappel des concepts manipulés Comment récupérer un Token d’identification ? Utiliser GraphQL Faire une requête graphQLCréer un dossier surveilléConsulter un dossier surveillé Consulter une alerte Clôturer une alerte Autres mutations et query
Seyna AML propose deux API :
- Rest API
- GraphQL
Nouveau dans GraphQL ?
Avant de vous plonger dans notre documentation, nous vous suggérons de prendre un moment pour vous familiariser avec les concepts de base de GraphQL. Vous trouverez une introduction courte et agréable ici même, et si vous souhaitez approfondir, il existe de nombreuses ressources fantastiques :
N’hésitez pas à lire Introduction to GraphQL et How to GraphQL.
Se connecter à l’API GraphQL
L’API AML est une API GraphQL, disponible sur l’url suivante :
- un client graphQL
- un token
Mais surtout, il est nécessaire d’avoir :
- d’avoir une ID de portefeuille (fourni par Seyna)
- d’avoir activer Seyna AML pour ce portefeuille sur l’interface broker.
Rappel des concepts manipulés
Seyna AML s'appuie sur les notions suivantes:
- Dossier surveillé (Record)
- D'alerte (alert) à gérer sur un dossier
- Une alerte peut avoir avec une ou plusieurs correspondances (match)
- Des listes de sanctions (dataset) composées d'entités (entity) de type Personne ou Entreprise
Comment récupérer un Token d’identification ?
Pour récupérer un token, il faut se rendre sur la page de “paramètres” et cliquer sur Clés API.
Il faut ensuite ajouter une clé en cliquant sur Ajouter une clé
Puis récupérer son token en cliquant sur voir le token
Notez ce token, il sera utilisé pour authentifier les requêtes exécutées via le client graphQL et également pour les appels API Rest.
Récupérer l’identifiant du produit
Pour commencer à créer des dossiers surveillés, il est nécessaire d’avoir l’identifiant du produit (Product ID).
Pour cela vous devez aller sur l’interface, dans “Paramètres” puis “Configuration des produits d’assurance”
Vous trouverez la liste de vos produits.
En cliquant sur le produit concerné par Seyna AML, vous obtiendrez les informations relatives au produit dont l’identifiant du produit (Product ID).
Utiliser GraphQL
Un client GraphQL, c’est un peu comme un client RPC. Toutes les requêtes sont des POST HTTP vers un seul endpoint, et le corps de la requête contient la méthode à appeler, les arguments, et le retour souhaité.
On peut utiliser un client HTTP standard comme cURL, un client graphQL dédié ou une application.
Faire une requête graphQL
Une fois que l’on a le lien vers son endpoint et son token, on peut simplement construire sa requête HTTP et l’envoyer. Un exemple avec cURL :
shellcurl 'https://graphql.seyna.eu/schema:{SCHEMA_ID}/graphql' \ -H 'authorization: Bearer {TOKEN}' \ -H 'content-type: application/json' \ --data-raw $'{ "query": "query { helloWorld { message } }" }' \ --compressed
Créer un dossier surveillé
La fonctionnalité principale de l’API consiste à créer un dossier à surveiller.
Un dossier surveillé demande en entrée :
- un nom
- une identification (Dossier Entreprise) ou une date de naissance (Dossier Personne)
- une référence externe (facultatif)
- un lien externe (facultatif)
- Période définie de surveillance / vérification instantanée
- une date de fin (facultatif)
Le traitement dans la réponse est différente entre :
- un dossier surveillé instantanément : la vérification est synchrone.
- un dossier avec une date de fin : la vérification se fait de manière asynchrone et peut prendre de 3 à 10 secondes. Nous faisons cela pour des raisons de performance.
- PENDING_INITIAL_CHECK: The record is being reviewed if it has or not any alerts
- NEW_ALERT: There is a new alert associated with the Record
- OK_NO_ALERTS: There are no alerts for the Record
- OK_ALL_ALERTS_RESOLVED: All the alerts of the Records are being resolved
Consulter un dossier surveillé
Ci-dessous un exemple de requête GraphQL pour consulter un dossier :
graphqlquery Query($recordId: ID!) { record(id: $recordId) { portfolio { id } id name lastCheckedAt status endDate externalLink externalRef alerts { id } } } { "recordId": null }
Vous pouvez aller récupèrer la liste des alertes également.
Consulter une alerte
L’API permet également d’accéder en lecture aux différents objets qui constituent Seyna AML.
Dans l’alerte, vous avez accès à plusieurs objets :
- le statut de l’alerte
- les matchs qui sont les correspondances dans lesquelles vous avez les entités des listes de sanctions
- la timeline qui comporte les emails et les commentaires
Ci-dessous un exemple de requête GraphQL pour consulter une alerte :
graphqlquery Query($alertId: ID!) { alert(id: $alertId) { record { name } id status matches { id score entity { ... on BusinessEntity { name } } ... on PersonEntity { name } } } } } { "alertId": null }
Les statuts des alertes sont :
- "CREATED"
- "IN_PROGRESS"
- "RESOLVED”
Clôturer une alerte
Ci-dessous un exemple de requête GraphQL pour clôturer une alerte :
graphqlmutation Mutation($input: MutationUpdateAlertStatusInput!) { updateAlertStatus(input: $input) { } } { "input": { "alertId": null, "status": "RESOLVED" } }
Autres mutations et query
Vous pouvez faire beaucoup d’autres requêtes.
Pour cela vous pouvez accèder directement aux différents mutations dans le schema GraphQL.
Explorer GraphQL AML