Virement bancaire: communication structurée [fr]

Voici un petit bout de script qui génère une communication structurée valable pour un virement bancaire en Belgique. L’avantage de ce système est que la banque n’exécutera pas le virement si il y a une erreur lors de la retranscription des chiffres.

# Generate the 'Communication' field for the virement
# Format: +++DDD/DDDD/DDDSS+++
# DDDDDDDDDD: Any number you like.
# SS: Above number mod 97. Set to 97 if zero.
# Banks love obsolete^Wproven technologies. :-)
mkcomm ()
{
# In case of collision, the function can take a salt as an optional parameter.
COMMSTR="$1$RANDOM$RANDOM$RANDOM$RANDOM$RANDOM"
COMMSTR="${COMMSTR:0:10}" # Trim string length to 10
COMM_MODULO=$(expr $COMMSTR % 97 ) # Get reminder
case $COMM_MODULO in # Padding and/or correction
"0") COMM_MODULO="97" ;;
[1-9]) COMM_MODULO="0$COMM_MODULO" ;;
esac
#echo "$COMMSTR$COMM_MODULO" #Debug
echo "+++${COMMSTR:0:3}/${COMMSTR:3:4}/${COMMSTR:7:3}$COMM_MODULO+++" # Chop into blocks
}

Si votre banque vous autorise à télécharger vos extraits de comptes au format .csv (possible chez Dexia et Argenta), il suffit simplement de faire une recherche sur la chaîne de caractères de la communication structurée pour trouver la trace du paiement.

Tags: , , , , ,

3 Responses to “Virement bancaire: communication structurée [fr]

  1. Pierre dit :

    Bonjour,

    je n’y connais pas grand chose en coding javascript ou php.

    Pourrais-tu stp montrer comment faire afficher simplement le résultat de la fonction dans une page html? Faut-il travailler avec plusieurs fichiers?

    Ce serait génial, merci.

    Pierre

  2. Martial dit :

    J’ai toujours cru que les communications structurées pour les virements avaient pour but de vérifier le contenu du virement.
    Ce n’est donc vraiment pas le cas ?
    C’est donc juste pour avoir une sorte d’identifiant pour le virement en lui même ?

    • Askarel dit :

      Exact.

      Tu génère la communication structurée et tu la joint au numéro de facture/numéro de client dans ta base de données.
      Un grep de la comm dans tes extraits de compte et tu sais si ton client a payé.

      Tu n’as pas besoin de savoir qui paie.

Leave a Reply