API d'intégration

Intégrez l'analyse FEC dans votre logiciel comptable

Démarrage rapide

Un seul appel POST suffit. Envoyez le contenu FEC brut, recevez les anomalies en JSON.

POSThttps://auditcomptable.abacusai.app/api/external/analyze

Chaque requête doit inclure votre clé API dans le header x-api-key ou en Authorization: Bearer <key>.

bash
# Avec x-api-key
curl -X POST https://auditcomptable.abacusai.app/api/external/analyze \
  -H "x-api-key: votre_clé_api" \
  -H "Content-Type: application/json" \
  -d '{"content": "JournalCode|JournalLib|..."}'

# Avec Authorization Bearer
curl -X POST https://auditcomptable.abacusai.app/api/external/analyze \
  -H "Authorization: Bearer votre_clé_api" \
  -H "Content-Type: application/json" \
  -d '{"content": "..."}'

Option 1 — JSON (recommandé)

json
POST https://auditcomptable.abacusai.app/api/external/analyze
Content-Type: application/json
x-api-key: votre_clé_api

{
  "content": "JournalCode|JournalLib|EcritureNum|EcritureDate|CompteNum|CompteLib|...",
  "options": {
    "disabledControls": ["doublons", "chronologie"]
  }
}

Option 2 — Envoi brut (text/plain)

Envoyez directement le contenu du fichier FEC comme body de la requête.

bash
curl -X POST https://auditcomptable.abacusai.app/api/external/analyze \
  -H "x-api-key: votre_clé_api" \
  -H "Content-Type: text/plain" \
  --data-binary @mon_fichier.fec

Paramètres du body JSON

ChampTypeRequisDescription
contentstringContenu brut du fichier FEC (pipe ou tab)
options.disabledControlsstring[]Catégories de contrôles à désactiver
json
{
  "success": true,
  "meta": {
    "totalEntries": 3424,
    "comptaType": "engagement",
    "periodStart": "2024-01-01",
    "periodEnd": "2024-12-31",
    "analyzedAt": "2026-05-15T19:00:00.000Z"
  },
  "summary": {
    "totalAnomalies": 145,
    "bySeverity": { "critique": 28, "importante": 105, "mineure": 12 },
    "byType": { "desequilibre": 21, "doublon": 16, "...":  "..." }
  },
  "anomalies": [
    {
      "type": "desequilibre",
      "severity": "critique",
      "title": "Écriture déséquilibrée — n°12345",
      "description": "L'écriture n°12345 présente un déséquilibre...",
      "compteNum": "411000",
      "period": null,
      "expectedValue": "Débit = Crédit",
      "actualValue": "Écart de 150.00 €",
      "suggestion": "Vérifiez les montants..."
    }
  ]
}

Python (requests)

python
import requests

API_URL = "https://auditcomptable.abacusai.app/api/external/analyze"
API_KEY = "votre_clé_api"

# Lire le fichier FEC
with open("FEC_2024.txt", "r", encoding="utf-8") as f:
    fec_content = f.read()

# Appel API
response = requests.post(
    API_URL,
    json={"content": fec_content},
    headers={"x-api-key": API_KEY}
)
result = response.json()

# Afficher le résumé
print(f"✅ {result['meta']['totalEntries']} écritures analysées")
print(f"⚠️  {result['summary']['totalAnomalies']} anomalies détectées")
print(f"   🔴 {result['summary']['bySeverity']['critique']} critiques")
print(f"   🟠 {result['summary']['bySeverity']['importante']} importantes")
print(f"   🔵 {result['summary']['bySeverity']['mineure']} mineures")

# Parcourir les anomalies critiques
for a in result["anomalies"]:
    if a["severity"] == "critique":
        print(f"
❌ {a['title']}
   {a['description']}
   💡 {a['suggestion']}")

JavaScript / Node.js (fetch)

javascript
const API_URL = "https://auditcomptable.abacusai.app/api/external/analyze";
const API_KEY = "votre_clé_api";

async function analyzeFEC(fecContent) {
  const response = await fetch(API_URL, {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "x-api-key": API_KEY,
    },
    body: JSON.stringify({
      content: fecContent,
      options: {
        // Désactiver certains contrôles si besoin
        // disabledControls: ["doublons"]
      }
    }),
  });

  const result = await response.json();

  if (!result.success) {
    throw new Error(result.error);
  }

  console.log(
    `Analysé: ${result.meta.totalEntries} écritures, ` +
    `${result.summary.totalAnomalies} anomalies`
  );

  return result;
}

// Usage
const fs = require("fs");
const fec = fs.readFileSync("FEC_2024.txt", "utf-8");
analyzeFEC(fec).then(r => console.log(r.summary));

PHP (cURL)

php
<?php
$apiUrl = "https://auditcomptable.abacusai.app/api/external/analyze";
$apiKey = "votre_clé_api";

$fecContent = file_get_contents("FEC_2024.txt");

$ch = curl_init($apiUrl);
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "Content-Type: application/json",
        "x-api-key: " . $apiKey,
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "content" => $fecContent,
    ]),
]);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);

echo "Anomalies détectées: " . $result["summary"]["totalAnomalies"] . "\n";
echo "Critiques: " . $result["summary"]["bySeverity"]["critique"] . "\n";

foreach ($result["anomalies"] as $anomaly) {
    if ($anomaly["severity"] === "critique") {
        echo "⚠️  " . $anomaly["title"] . "\n";
    }
}
?>