Aller au contenu
IBANforge

Recettes — valider un IBAN dans votre stack

Commencez par créer une clé gratuite sans adresse e-mail. Elle donne normalement 25 requêtes par mois ; lisez monthly_limit dans la réponse. Réclamer cette même clé avec un code reçu à une adresse choisie la porte à 200 par mois. Conservez api_key dans votre gestionnaire de secrets : ne créez pas une nouvelle clé à chaque appel.

curl -X POST https://api.ibanforge.com/v1/keys/generate

Chaque recette transmet un IBAN à l’API pour contrôler son format et lire les informations bancaires disponibles. Une banque absente ou un verdict unknown ne valide pas le compte. Le contrôle ne prouve ni l’existence du compte ni son titulaire. Guide du premier appel.

Python

IBANFORGE_API_KEY = api_key conservée à l’étape précédente, dans une variable d’environnement côté serveur.

Avec le SDK officiel (pip install ibanforge) :

import os
from ibanforge import IBANforge
 
with IBANforge(api_key=os.environ["IBANFORGE_API_KEY"]) as client:
    result = client.validate_iban("DE89370400440532013000")
    print(result["valid"])
    print(result.get("bank_code_check"))
    print(result.get("bic"))

Ou requests nature :

import requests
 
r = requests.post(
    "https://api.ibanforge.com/v1/iban/validate",
    json={"iban": "DE89370400440532013000"},
    headers={"Authorization": "Bearer ifk_votre_cle"},
    timeout=15,
)
data = r.json()
print(data["valid"], data["bank_code_check"]["status"])  # True verified

Node.js / TypeScript

fetch natif, zéro dépendance :

const res = await fetch("https://api.ibanforge.com/v1/iban/validate", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Authorization: "Bearer ifk_votre_cle",
  },
  body: JSON.stringify({ iban: "DE89370400440532013000" }),
});
const data = await res.json();
console.log(data.valid, data.bic?.code, data.bank_code_check?.status);
// true COBADEFFXXX verified

Le SDK officiel (npm install @ibanforge/sdk) enveloppe le même appel avec les types.

PHP

Rien au-delà de ce que PHP embarque :

<?php
$payload = json_encode(["iban" => "DE89370400440532013000"]);
$ctx = stream_context_create(["http" => [
    "method"  => "POST",
    "header"  => "Content-Type: application/json\r\nAuthorization: Bearer ifk_votre_cle",
    "content" => $payload,
    "timeout" => 15,
]]);
$data = json_decode(file_get_contents(
    "https://api.ibanforge.com/v1/iban/validate", false, $ctx), true);
echo $data["valid"] ? "valide" : "invalide", " — ",
     $data["bank_code_check"]["status"] ?? "n/a", PHP_EOL;
// valide — verified

Java

Le SDK Java officiel (Java 17 ou plus, Jackson seul) reflète le client TypeScript méthode pour méthode. Il est sur Maven Central : dépendez de com.ibanforge:ibanforge-sdk:1.5.0.

IBANforge client = IBANforge.builder().apiKey(System.getenv("IBANFORGE_API_KEY")).build();
IBANValidationResult r = client.validateIban("DE89 3704 0044 0532 0130 00");
System.out.println(r.valid() + " " + r.bic().code() + " " + r.bankCodeCheck().status());

Les erreurs sont typées sous IBANforgeException : PaymentRequiredException (402, le défi x402 dans accepts), RateLimitException, InvalidInputException, ApiException. client.formatIban(...) et les autres routes gratuites n'ont pas besoin de clé. README et tableau complet des méthodes.

C# / .NET

Le SDK .NET officiel (net8.0, aucune dépendance hors du framework) expose les mêmes méthodes en appels asynchrones. Installez IBANforge.Sdk 1.5.0 depuis NuGet :

dotnet add package IBANforge.Sdk --version 1.5.0
using var client = new IBANforgeClient(new IBANforgeOptions { ApiKey = Environment.GetEnvironmentVariable("IBANFORGE_API_KEY") });
var r = await client.ValidateIbanAsync("DE89 3704 0044 0532 0130 00");
Console.WriteLine($"{r.Valid} {r.Bic?.Code} {r.BankCodeCheck?.Status}");

Passez votre propre HttpClient (IHttpClientFactory) au constructeur si vous en avez un ; les exceptions reflètent la hiérarchie Java et TypeScript. README.

Google Sheets

Utilisez les fonctions officielles qui stockent la clé dans vos propriétés utilisateur et envoient les colonnes par lots, plutôt qu’une clé écrite dans une cellule.

  1. Téléchargez les trois fichiers Apps Script et décompressez le ZIP. Dans un classeur de test, ouvrez Extensions → Apps Script.
  2. Remplacez Code.gs, ajoutez un fichier HTML nommé Sidebar, puis copiez Sidebar.html. Dans les paramètres du projet, affichez appsscript.json et remplacez son contenu par le manifeste fourni. Enregistrez.
  3. Dans l’éditeur, exécutez ibfShowSidebar et autorisez le script. Revenez au classeur ; enregistrez votre clé dans la barre latérale. Ne la collez pas dans les cellules.
  4. Importez ces deux IBAN de test en colonne A avec Fichier → Importer. Ce sont un exemple public de documentation et sa variante à clé invalide, pas des comptes à payer. En B2, saisissez =IBAN_CONTROLE(A2:A3) et laissez cinq colonnes libres.
  5. Vérifiez les deux lignes : TRUE pour le format du premier, FALSE pour le second. Lisez ensuite banque, BIC, verdict du code banque et SEPA. Les champs absents ne doivent pas être interprétés comme un accord de paiement.

Deux IBAN représentent deux unités de quota, pas un seul appel facturé. Le cache peut éviter une nouvelle requête pendant six heures, sans garantie de conservation. Installation manuelle ; ce téléchargement n’est pas une fiche Google Workspace Marketplace. Toutes les fonctions et les limites.

n8n

Premier essai sur n8n Cloud ou auto-hébergé

  1. Téléchargez le workflow JSON, puis utilisez Import from File dans le menu du workflow n8n. Il contient uniquement deux nœuds natifs : Manual Trigger et HTTP Request ; aucune extension ni clé n’est incluse.
  2. Ouvrez Contrôler l’exemple de documentation : POST vers /v1/iban/validate, corps JSON avec l’exemple public DE89370400440532013000. Exécutez manuellement une fois.
  3. Vérifiez que la sortie contient valid, bank_code_check et les sources disponibles. Le workflow ne lance aucun paiement ni action en aval. Un échec HTTP, un quota épuisé ou un délai dépassé arrête l’étape.
  4. Pour conserver un quota sur votre propre clé, choisissez Generic Credential Type → Header Auth dans le nœud HTTP : nom Authorization, valeur Bearer suivie de votre clé. Gardez la clé dans les credentials, jamais dans le JSON exporté.

L’essai sans clé utilise le quota REST décrit dans le guide de démarrage, partagé par adresse réseau. Sur n8n Cloud, plusieurs utilisateurs peuvent partager une adresse ; si le quota est épuisé, configurez votre clé. Importer un workflow · Paramètres HTTP Request.

Extension communautaire pour n8n auto-hébergé

Le paquet publié n8n-nodes-ibanforge@0.1.1 propose la validation IBAN, la recherche BIC, le clearing suisse et les pré-contrôles de conformité au niveau bancaire. Cette recette concerne n8n auto-hébergé, avec un compte propriétaire ou administrateur. L'installation d'un paquet depuis npm n'est pas disponible sur n8n Cloud, qui exige une fiche vérifiée. Voir le guide d'installation n8n.

  1. Ouvrez Settings → Community nodes → Install et saisissez n8n-nodes-ibanforge@0.1.1.
  2. Obtenez une clé API gratuite (25 requêtes/mois sans e-mail, 200 après réclamation, sans carte). Dans un nouveau workflow, reliez Manual Trigger à IBANforge et collez la clé dans un identifiant IBANforge API.
  3. Choisissez Validate IBAN, saisissez l'exemple de documentation DE89370400440532013000, puis exécutez l'étape.
  4. Lisez le résultat JSON : valid doit valoir true pour cet exemple, bank_code_check décrit le résultat du registre et bic la banque lorsqu'elle peut être identifiée. Une opération terminée qui renvoie ces champs prouve le premier appel API ; le seul test de connexion au vert ne suffit pas.

Dans la version 0.1.1, le test de connexion appelle la route publique /v1/demo, qui ne vérifie pas la clé. Contrôlez le résultat réel de Validate IBAN avant d'utiliser le workflow. Ni un format valide ni une banque identifiée ne prouvent l'existence du compte ou son appartenance à un bénéficiaire nommé.

Pour une installation manuelle, exécutez les commandes suivantes avec l'utilisateur du service n8n, dans son conteneur le cas échéant, puis redémarrez n8n :

mkdir -p ~/.n8n/nodes
cd ~/.n8n/nodes
npm install n8n-nodes-ibanforge@0.1.1

Le nœud traite chaque élément entrant séparément ; il n'a pas d'opération batch. Une liste de 100 éléments peut donc consommer 100 requêtes. Détails de l'installation manuelle.

Odoo

Le module Odoo public, version 18.0.1.0.0 (AGPL-3), remplit le BIC et le nom de la banque lorsque l'API peut les identifier. Il exige Odoo 18 avec prise en charge des modules Python personnalisés, sur votre propre serveur ou sur Odoo.sh. Odoo Online ne prend pas en charge ces modules. Cette installation utilise le dépôt source et ne dépend pas d'une fiche Odoo Apps.

Sur votre propre serveur Odoo, clonez le dépôt dans le répertoire de votre choix :

git clone --branch 18.0 --single-branch https://github.com/cammac-creator/ibanforge-odoo.git /path/to/ibanforge-odoo

Ajoutez /path/to/ibanforge-odoo à la liste addons_path existante d'Odoo, en conservant les autres chemins. Le module se trouve dans son sous-répertoire : le manifeste doit être à /path/to/ibanforge-odoo/ibanforge_bank_autofill/manifest.py. Vous pouvez aussi copier uniquement ce répertoire ibanforge_bank_autofill dans un répertoire d'extensions déjà configuré. Vérifiez que la bibliothèque Python requests est disponible dans l'environnement Odoo. Sur Odoo.sh, ajoutez ce répertoire de module à votre projet selon la procédure des modules personnalisés.

  1. Redémarrez Odoo, activez le mode développeur et actualisez la liste des applications. Retirez le filtre Apps par défaut si nécessaire, puis installez IBANforge Bank Auto-fill (ibanforge_bank_autofill).
  2. Ouvrez Configuration → IBANforge, collez votre clé API et enregistrez les paramètres. Conservez l'adresse API par défaut. Sans clé, le module ne fait aucun appel réseau.
  3. Dans une base de test, créez un compte bancaire de partenaire avec DE89370400440532013000. Laissez le champ banque vide, saisissez l'IBAN, puis quittez le champ. Contrôlez la banque et le BIC détectés ou la banque associée, enregistrez, puis rouvrez le compte pour vérifier que le lien vers la banque a été conservé.

Une API indisponible ou un BIC absent laisse le remplissage automatique inactif ; cela ne bloque pas l'enregistrement. Le module Odoo base_iban continue de valider le format de l'IBAN. À l'enregistrement, une banque déjà indiquée sur le compte est conservée. La saisie puis l'enregistrement d'un nouveau compte peuvent utiliser deux appels API : 200 requêtes mensuelles ne représentent donc pas 200 comptes saisis manuellement. L'IBAN est transmis à l'API configurée ; le résultat ne prouve pas la propriété du compte. Comportement et limites du module.

Agents IA (MCP)

MCP distant : ajoutez https://api.ibanforge.com/mcp dans un client compatible. Pour un processus local :

npx -y ibanforge-mcp

Ou le transport hébergé, sans installation : https://api.ibanforge.com/mcp — 10 appels d'outils gratuits par IP et par jour, sans aucune clé : le chemin le plus rapide pour qu'un assistant évalue la donnée avant tout engagement.

Ce que vous recevez

La réponse que les recettes affichent (réponse de production, abrégée) :

{
  "valid": true,
  "bic": { "code": "COBADEFFXXX", "bank_name": "Commerzbank", "city": "Köln" },
  "bank_code_check": {
    "value": "37040044",
    "status": "verified",
    "register": "Deutsche Bundesbank Bankleitzahlendatei",
    "authoritative": true,
    "as_of": "2026-08"
  }
}

authoritative: true signifie que le registre national lui-même a répondu. Les champs que la donnée ne soutient pas valent null, jamais devinés — la sémantique complète explique ce que verified promet et ne promet pas.

Voir aussi : Ce que « verified » veut dire · IBAN vers BIC · Générateur d'IBAN de test · Sources des données

Passez à votre cas concret

Choisissez une première étape pour votre logiciel ou votre fichier fournisseurs.

Intégrer les contrôles IBAN à votre logiciel

Essayez une validation, examinez la réponse, puis reliez votre application à l’API ou à une intégration existante.

Découvrir le parcours API

Contrôler un fichier fournisseurs

Déposez un CSV ou un fichier Excel et consultez gratuitement l’aperçu des constats. Achetez le classeur annoté si vous avez besoin du rapport complet. Sans compte ni abonnement.

Découvrir l’audit de fichiers

Les informations bancaires disponibles varient selon le pays et la source. Ces contrôles ne confirment pas le titulaire du compte et ne garantissent pas la réussite d’un paiement.