GraphQL API


Seyna AML propose deux API :
  • Rest API
  • GraphQL
Image without caption

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
Image without caption

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”
Image without caption
Vous trouverez la liste de vos produits.
Image without caption
En cliquant sur le produit concerné par Seyna AML, vous obtiendrez les informations relatives au produit dont l’identifiant du produit (Product ID).
Image without caption

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 :
shell
curl '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.
  1. PENDING_INITIAL_CHECK: The record is being reviewed if it has or not any alerts
  1. NEW_ALERT: There is a new alert associated with the Record
  1. OK_NO_ALERTS: There are no alerts for the Record
  1. 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 :
graphql
query 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 :
graphql
query 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 :
graphql
mutation 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.
Image without caption
Explorer GraphQL AML

Powered by Notaku