Skip to content

Methodology

Méthodologie des devises

Taux journaliers BCE, API Frankfurter, cache ISR, rafraîchissement horaire.

By Published

Le cluster Devisespropose 50 paires FX en direct basées sur les taux interbancaires publiés par la Banque Centrale Européenne. Le chemin des données est intentionnellement simple : la BCE publie des taux de référence quotidiens ; l’open source API Frankfurter les republish en JSON ; nous mettons en cache le résultat avec Next.js ISR pendant une heure. Pas de spread propriétaire, pas d’agrégation entre fournisseurs, pas de couche “notre tarification”.

La source de données : taux de référence quotidiens BCE

La Banque Centrale Européenne publie des taux de change de référence pour l’euro contre ~32 devises chaque jour bancaire à 16h00 CET. Ces taux interbancaires sont dérivés d’une concertation entre les banques centrales de l’UE ; ils ne sont pas transactables mais constituent le benchmark de référence canonique.

Pour les paires non-EUR (USD → GBP, JPY → TRY), nous triangulons via EUR : USD/EUR × EUR/GBP donne USD/GBP. La triangulation est algébriquement exacte et c’est ce que Frankfurter calcule en interne.

La stratégie de mise en cache

Les taux de devises se mettent à jour au maximum une fois par jour (la BCE ne publie pas les taux du week-end), donc un cache d’une heure est généreux. Nous utilisons la régénération statique incrémentale de Next.js :

  • Première requête vers une page de devise : le serveur récupère Frankfurter, rend, met en cache.
  • Requêtes suivantes dans l’heure : HTML mis en cache, sub-100ms.
  • Après une heure : la prochaine requête obtient la page périmée immédiatement, déclenche un rafraîchissement en arrière-plan.

Cela signifie que le taux affiché a jusqu’à une heure de retard. Pour une conversion au détail c’est sans importance — les spreads bancaires modifient la réponse bien plus que la dérive d’une heure. Pour les contextes à haute précision (trading algorithmique, gros virements), obtenez le taux de votre banque, pas d’une référence publique.

Spread vs le taux que vous obtiendrez réellement

Le taux interbancaire est le taux auquel deux banques transacteraient. Vous — un client de détail — n’obtiendrez pas ce taux. Votre coût réel inclut un spread supplémentaire :

  • Réseaux de cartes (Visa, Mastercard) : généralement 0,2-1 % au-dessus de l’interbancaire.
  • Banques émettrices ajoutant leur propre spread : courant aux États-Unis ; 1-3 % ajoutés au-dessus du taux réseau.
  • Frais de conversion de devises aux distributeurs et TPE (DCC) : spread de 3-8 %. Refusez toujours de payer dans votre devise d’origine à l’étranger.
  • Prestataires forex spécialisés (Wise, Revolut) : 0,3-1 % au-dessus de l’interbancaire, sans DCC. Le plus proche du taux de référence parmi les options de détail courantes.
  • Banques traditionnelles pour les virements : spread de 2-5 %. La pire de toutes les options de détail courantes.

Détails de l’algorithme : résolution de taux et triangulation

Chaque requête de devise se résout en une seule multiplication. La partie intéressante est de savoir comment on arrive au bon taux par unité quand la base demandée n’est pas EUR.

  1. Normaliser les deux devises en codes à trois lettres ISO 4217 et valider par rapport à la liste supportée (~32 devises — chaque code dans la série de référence BCE plus un petit ensemble de taux croisés).
  2. Récupérer le dernier ensemble de taux basé EURdepuis le cache Frankfurter (TTL d’une heure via ISR). La charge utile est un map { "USD": 1.0865, "GBP": 0.8479, ... } tous cotés comme 1 EUR = X cible.
  3. Trianguler si aucun côté n’est EUR. Pour JPY → TRY : taux_JPY_TRY = taux_EUR_TRY / taux_EUR_JPY. La triangulation est algébriquement exacte en arithmétique réelle ; l’erreur en virgule flottante de la division est < 10⁻¹⁵, bien en dessous de tout spread de détail significatif.
  4. Calculer la conversion. sortie = entrée × taux_de_vers. L’affichage arrondit à 4 décimales pour les sorties de style FX et à 2 décimales quand associé à des symboles de grandes devises.
  5. Horodater les métadonnées de réponse avec rateDate (la date de publication BCE, par ex. 2026-05-13) et source(“BCE via Frankfurter”).

Sources & références

Chaque taux que cet outil émet remonte ultimement à la série de référence quotidienne de la BCE publiée à 16h00 CET. Frankfurter est un republiseur open source transparent de cette série ; notre cache respecte simplement ses en-têtes Cache-Control. ISO 4217 gouverne l’espace de noms des codes de devises. Les chiffres de spread de détail cités ailleurs sur cette page s’appuient sur les données de référence BIS et FMI — citations complètes dans le bloc Sources ci-dessous.

Hypothèses & limites

  • Triangulation pivot EUR uniquement.Si les deux devises sont non-EUR et que la série BCE ne couvre pas l’une d’elles à une date donnée, le convertisseur retourne le taux du jour ouvrable précédent le plus proche plutôt que d’essayer un pivot différent.
  • Données en semaine uniquement. La BCE ne publie pas le week-end ni les jours fériés TARGET. Les requêtes du week-end retournent le taux du vendredi ; le champ rateDate le signale.
  • Pas de données de marché tick par tick en direct. Le taux de référence BCE est un fixing quotidien interbancaire, pas une cotation en streaming. Le trading algorithmique a besoin d’un flux Bloomberg ou Reuters ; ce convertisseur est une référence, pas un service de données de marché.
  • Pas de modélisation du spread.Le taux affiché est interbancaire avec un spread bid/ask de zéro. La conversion de détail réelle paie généralement 0,3-4 % au-dessus de l’interbancaire ; le convertisseur montre le plancher, pas le prix.
  • Pas de cryptomonnaies. BTC, ETH et les stablecoins vivent sous /crypto/ et utilisent une méthodologie et une source de données différentes.
  • Les taux historiques limités à la couverture BCE (1999 à présent). La conversion de devises pré-euro (DEM, FRF, ITL) nécessite une table de taux de conversion fixe séparée.
  • Les outliers hyperinflationnistes peuvent être en retard. Les devises avec des changements de régime (TRY, ARS, VES) affichent parfois des taux périmés brièvement pendant le cycle de republication de la BCE.

Ce que nous ne faisons pas

Nous n’agrégeons pas les taux entre fournisseurs (donc nous ne pouvons pas vous dire qui offre la meilleure offre en ce moment). Nous ne supportons pas les paires de cryptomonnaies dans le cluster Devises (celles-là vivent sous /crypto/). Nous ne soutenons pas le taux avec une API transactionnelle — Convertitive vous montre le chiffre, votre banque ou fournisseur gère le mouvement d’argent réel.

Frequently asked questions

Pourquoi les taux BCE et non la Réserve fédérale ?
Les taux BCE sont publics, bien documentés, sans restrictions d&rsquo;accès, et mis à jour quotidiennement à 16h00 CET sur le site web de la banque. La publication H.10 de la Fed est similaire mais biaisée vers les paires USD. La couverture de la BCE est plus large pour les paires de devises croisées.
Quelle est la précision du taux affiché sur le site ?
C&rsquo;est le taux de référence interbancaire BCE, rafraîchi toutes les heures. C&rsquo;est le taux auquel deux banques transacteraient — pas le taux que vous obtiendriez d&rsquo;une banque de détail, d&rsquo;un bureau de change ou d&rsquo;une conversion par réseau de carte, tous ajoutant un spread de 1 à 4 %. Utilisez le taux de Convertitive comme référence et vérifiez séparément ce que votre prestataire de paiement facture réellement.

Related

Published May 14, 2026