API AML Company

Introduction

Bienvenue dans l'API AML Company

L'API AML Company vous permet d'intégrer les fonctionnalités de conformité anti-blanchiment directement dans vos applications. Créez, consultez et gérez des rapports AML de manière programmatique.

Sécurisé

Authentification par clés API avec scopes, expiration et IP whitelisting

Rapide

Réponses optimisées et structure JSON claire

Documenté

Exemples en JavaScript, PHP, Python et cURL

Démarrage Rapide en 3 étapes
1

Obtenir une clé API

Créez une clé avec les scopes aml:read et aml:write

2

Récupérer les questions AML

GET /api/external/aml-questions

3

Créer un rapport AML

POST /api/external/aml-report avec les réponses

Authentification

Authentification

Toutes les requêtes API nécessitent une clé API valide dans le header Authorization.

Format d'authentification
Authorization: Bearer amlc_VOTRE_CLE_API_ICI

Toutes les clés commencent par le préfixe amlc_

Scopes requis
aml:read

Lecture des données

Requis pour GET /aml-questions et GET /aml-report

aml:write

Création de données

Requis pour POST /aml-report

GET

GET /api/external/aml-questions

Liste toutes les questions AML avec leurs options et scores de risque

Authentification

Authorization: Bearer amlc_VOTRE_CLE_API

Scope requis: aml:read

Paramètres

Aucun paramètre requis

Exemple de réponse
200 OK
{
  "success": true,
  "questions": [
    {
      "id": "cm...",
      "category": "RISQUE_GEOGRAPHIQUE",
      "questionText": "Dans quel pays l'activité est-elle exercée ?",
      "weight": 10,
      "options": [
        {
          "id": "cm...",
          "optionText": "Pays à haut risque",
          "riskImpact": "HIGH",
          "score": 10
        },
        {
          "optionText": "Belgique ou UE",
          "riskImpact": "LOW",
          "score": 2
        }
      ]
    }
  ]
}
Exemple cURL
curl -X GET "https://votre-domaine.com/api/external/aml-questions" \
  -H "Authorization: Bearer amlc_VOTRE_CLE_API"
POST

POST /api/external/aml-report

Crée un nouveau rapport AML complet (client + entreprise + analyse)

Authentification

Authorization: Bearer amlc_VOTRE_CLE_API

Scope requis: aml:write

Corps de la requête
{
  "client": {
    "name": "Jean Dupont",
    "email": "jean@example.com",
    "phone": "+32 2 123 45 67"
  },
  "company": {
    "name": "Example SPRL",
    "vatNumber": "BE0123456789",
    "legalForm": "SPRL",
    "registeredCapital": "18550.00",
    "mainActivity": "Services informatiques",
    "registrationDate": "2020-01-15",
    "address": {
      "street": "Rue de la Loi",
      "number": "123",
      "box": "A",
      "postalCode": "1000",
      "city": "Bruxelles",
      "country": "BE"
    },
    "contactEmail": "contact@example.com",
    "contactPhone": "+32 2 123 45 67"
  },
  "amlAnswers": [
    {
      "questionId": "cm...",
      "selectedOptionId": "cm..."
    }
  ],
  "beneficiaries": [
    {
      "firstName": "Jean",
      "lastName": "Dupont",
      "birthDate": "1980-05-15",
      "nationality": "BE",
      "ownershipPercentage": 100
    }
  ]
}
Exemple de réponse
201 Created
{
  "success": true,
  "report": {
    "metadata": {
      "reportId": "cm123abc",
      "generatedAt": "2026-03-10T10:00:00Z"
    },
    "ids": {
      "clientId": "client_xyz",
      "companyId": "company_abc",
      "onboardingId": "onb_def"
    },
    "riskAssessment": {
      "score": 45,
      "maxScore": 150,
      "level": "MEDIUM",
      "percentage": 30
    },
    "recommendations": [
      {
        "priority": "MEDIUM",
        "message": "Vérification supplémentaire recommandée"
      }
    ]
  }
}
Codes d'erreur
400

Invalid Data

Données manquantes ou invalides

409

Conflict

Entreprise déjà existante pour ce numéro de TVA

GET

GET /api/external/aml-report

Récupère un rapport AML existant par numéro de TVA

Paramètres
NomTypeRequisDescription
tva
string
Oui
Numéro de TVA belge (BE + 10 chiffres)
Exemple cURL
curl -X GET "https://votre-domaine.com/api/external/aml-report?tva=BE0123456789" \
  -H "Authorization: Bearer amlc_VOTRE_CLE_API"
Exemples de Code

Exemples d'intégration

Exemples complets dans plusieurs langages de programmation

// Installation: npm install node-fetch

const fetch = require('node-fetch');

// 1. Récupérer toutes les questions AML
async function getAMLQuestions() {
  const response = await fetch(
    'https://votre-domaine.com/api/external/aml-questions',
    { headers: { 'Authorization': 'Bearer amlc_VOTRE_CLE_API' } }
  );
  return await response.json();
}

// 2. Créer un nouveau rapport AML
async function createAMLReport(reportData) {
  const response = await fetch(
    'https://votre-domaine.com/api/external/aml-report',
    {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer amlc_VOTRE_CLE_API',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify(reportData)
    }
  );
  return await response.json();
}

// 3. Récupérer un rapport existant
async function getAMLReport(vatNumber) {
  const response = await fetch(
    'https://votre-domaine.com/api/external/aml-report?tva=' + vatNumber,
    { headers: { 'Authorization': 'Bearer amlc_VOTRE_CLE_API' } }
  );
  return await response.json();
}
Bonnes Pratiques

Bonnes Pratiques

Sécurité

Stockez vos clés API dans des variables d'environnement

Ne committez jamais vos clés dans Git

Utilisez uniquement HTTPS en production

Définissez une date d'expiration pour vos clés

Performance

Mettez en cache les réponses côté client

Respectez la limite de 1000 requêtes/heure

Implémentez un retry avec backoff exponentiel

Utilisez des timeouts pour éviter les blocages

Codes d'Erreur

Codes d'Erreur HTTP

401

Unauthorized

Clé API invalide, expirée ou révoquée

403

Forbidden

Permissions insuffisantes (scope requis manquant)

404

Not Found

Ressource introuvable ou aucun rapport validé

409

Conflict

Ressource déjà existante (duplication)

429

Too Many Requests

Limite de débit dépassée (1000 requêtes/heure)

Support

Besoin d'Aide ?

Notre équipe est là pour vous accompagner
Contactez-nous pour toute question sur l'intégration de l'API

En cas de problème, contactez-nous avec le code d'erreur reçu pour un support rapide.