logo le blog invivoo blanc

Swift : Back to Basics

30 août 2017 | Post Trade

SWIFT (Society for Worldwide Interbank Financial Telecommunication) est une société de droit belge dont l’objectif est de permettre aux banques et corporates d’échanger rapidement, de manière sécurisée des informations/transactions financières.

Le réseau Swift est un réseau sécurisé, les informations transmises sont cryptées et non répudiables : les informations transmises via le réseau SWIFT ont une valeur légale et aucun tiers ne peut nier avoir effectué une transaction.

Le réseau SWIFT est devenu depuis sa mise en fonctionnement en 1977 un standard de l’industrie financière. Le montant des transactions échangées via le réseau SWIFT représente quotidiennement plusieurs milliers de milliards d’USD.s

Chaque adhérent SWIFT est enregistré par un code BIC (également appelé code SWIFT.) La société SWIFT gère l’enregistrement des BICs.

Le réseau & Architecture Swift

Depuis 2004, le réseau Swift est un réseau IP : SWIFTNet.

Chaque tiers se connecte au réseau via une SAG (SWIFT Alliance Gateway).  Une tiers peut avoir un ou plusieurs SAG, chaque SAG ayant son propre identifiant (une lettre A,B…) et sa propre séquence qui seront utilisés dans les messages Swift.

Les tiers envoient à SWIFT des messages appelés « Incoming » (du point de vue Swift) tandis que SWIFT envoie des messages appelés « Outgoing. »

Ainsi, une confirmation sera envoyée par une contrepartie A à SWIFT à destination une contrepartie B en Incoming. SWIFT renverra cette confirmation à la partie en tant que message Outgoing (puisque sortant du réseau SWIFT).

Swift communique avec les contreparties en définissant ce qui rentre et sort du réseau SWIFT du point de vue SWIFT, mais les messages envoyés/transmis aux contreparties le sont du point de vue de la contrepartie avec laquelle SWIFT communique. Cela signifie que SWIFT transforme les messages envoyés par la contrepartie A à destination de la contrepartie B en se plaçant du point de vue de la contrepartie B.

swift counterparties

swift alliance access

Code BIC

Le code Bic est un code sur 8 ou 11 caractères identifiant exactement un tiers.

Composition d’un code BIC
Code Banque Code Pays Code de Place Code Branche
LLLL LL XX XXX
  • L : Lettre
  • X : Chiffre ou Lettre

Un code BIC sur 8 caractères équivaut à un code BIC sur 11 caractères avec XXX comme code branche.

Exemple de code BIC

  • NATXFRPPMAR
    • Le code banque NATX identifie Natixis
    • Le code Pays FR identifie la France
    • Le code de Place PP identifie Paris pour la France
    • Le code Branche MAR identifie la direction des marchés de Natixis
  • SOGEFRPPXXX
    • Le code banque SOGE identifie la société Générale
    • Le code Pays FR identifie la France
    • Le code de Place PP identifie Paris pour la France
    • Le code Branche XXX indique qu’il s’agit globalement de la Société Générale Paris et pas d’une entité particulière
  • NATXCNSHXXX
    • Le code banque NATX identifie Natixis
    • Le code Pays CN identifie la Chine
    • Le code de Place SH identifie Shanghai pour la Chine
    • Le code Branche XXX indique qu’il s’agit globalement de la Natixis Shangai et pas d’une autre entité particulière

Code BIC en environnement de test SWIFT

Le réseau SWIFT de Production et de Test se distingue par le fait que les codes BIC de production ne sont pas autorisés en test et inversement.

Les codes BIC de test sont les codes BIC de production à la différence près que le 8 caractère du BIC de test est 0 (zéro) :

  • Le code BIC de production de la société générale est SOGEFRPPXXX
  • Le code BIC de test de la société générale est SOGEFRP0XXX

Message type Swift & Structure des messages types

Message types

Il existe deux normes pour les messages SWIFT :

  • La norme 15022 qui utilise le format texte historique de SWIFT : format RJE
  • La norme 20022 qui utilise un format XML : la norme 20022 n’est pour l’instant que très peu utilisées la plupart des tiers ayant mis en place depuis longtemps une architecture en 15022. Nous n’aborderons donc ici que le format 15022.

Les messages types SWIFT sont identifiés par un nombre à 3 chiffres :

  • Le premier chiffre indique la catégorie. Une catégorie regroupe l’ensemble des messages qui correspondent à des instruments financiers ou des services particuliers comme les métaux précieux (6), la trésorerie (3), ou les chèques de voyage (8).
  • Le second chiffre représente un groupe d’éléments faisant partie du cycle de vie d’une transaction. Le groupe numéro 0 correspond à un transfert d’une institution financière.
  • Le troisième chiffre est le type du présent message

Sur l’ensemble des catégories, il existe plusieurs centaines de types de message différents.

Catégorie de message Description Exemple
MT1xx Customer Payments and Cheques MT103 Single customer credit transfer
MT2xx Financial Institution Transfers MT202 General financial institution transfer
MT3xx Treasury Markets – FX, money markets and derivatives MT300 Foreign exchange confirmation
MT4xx Collection and Cash Letters MT405 Clean collection
MT5xx Securities Markets MT541 Receive against payment
MT6xx Treasury Markets – Precious Metals and Syndications MT600 Precious metal trade
MT7xx Documentary Credits and Guarantees MT700 Issue of a documentary credit
MT8xx Travellers Cheques MT800 TC sales & settlement advice
MT9xx Cash Management and Customer Status MT950 Statement
MTn9x Common group messages MTn92 Request for cancellation
MT0xx FIN system Messages MT020 Retrieval request (Text & History)

Structure des messages SWIFTs

swift blocks

Il est à noter que Swift ajoute un 5ème block (non généré par les contreparties), un check sum qui permet de garantir l’intégrité des fichiers lors de leur transit :

{5:{CHK:6084ACEBF5D5}}{S:{COP:P}}

swift basic header block

swift application header block

swift user header bloc

Cinématique Swift

L’annulation ou la modification de messages SWIFT font appel à des cinématiques particulières.

Annulation d’une confirmation SWIFT

Pour annuler une confirmation SWIFT, il faut envoyer une Confirmation : un champ 22/22A type of opération à CANC (pour CANCEL) et un champ 21 Related reference qui a pour valeur le champ 20 dans la première confirmation pour chainer correctement.

Les préconisations SWIFTs n’empêchent pas que les champs 20 de la confirmation et de son annulante soient identiques, mais cela est fortement déconseillé. Le champ 20 a pour fonction d’identifier de manière unique un message, c’est donc une pratique à exclure.

Il existe certaines différences sur le nommage des champs ou leurs valeurs selon les messages types et les catégories, mais la cinématique générale reste la même.

annulation d'une confirmation swift

Modification d’une confirmation SWIFT

La modification d’une confirmation peut être gérée de 2 manières différentes :

NEW CANC NEW

  • On envoie un premier message de confirmation (NEW)
  • On envoie un second message pour annuler (CANC)
  • On envoie un troisième message pour avec les nouvelles données de confirmation (NEW)

NEW AMND

  • On envoie un premier message de confirmation (NEW)
  • On envoie un second message de confirmation (AMND) portant les nouvelles données à confirmer et qui annule également le message initial.

Cinématique 1 NEW CANC NEW

Swift Cinématique 1 NEW CANC NEW

Cinématique 2 NEW AMND

Swift Cinématique 2 NEW AMND

Pour un peu plus de lecture sur SWIFT, lisez notre articles sur la Standards MT Release 2017.