@mostajs/paiement-contrat
v0.2.0
Published
Vocabulaire commun de l'encaissement : moyens, canaux, verdicts, capacités. Sépare le MOYEN (avec quoi on paie) du CANAL (comment il atteint la banque). Zéro dépendance, zéro exécution — adopté par @mostajs/payment et @mostajs/paiement-tpe sans qu'ils dép
Maintainers
Readme
@mostajs/paiement-contrat
Le vocabulaire commun de l'encaissement : moyens, canaux, verdicts, capacités.
Auteur : Dr Hamid MADANI [email protected] · Licence : AGPL-3.0-or-later · Zéro dépendance
Le problème
Deux modules décrivent l'encaissement. @mostajs/payment parle aux banques,
@mostajs/paiement-tpe parle aux appareils. Chacun a raison dans son périmètre, et personne ne
tient le lien — au point que SATIM était décrit deux fois, dans deux vocabulaires.
Pire : les onze dialectes de payment déclarent seize chaînes libres (cib, edahabia,
ideal, ussd, mobile_money…) alors que le type déclaré n'en contenait que quatre. Douze
valeurs sur seize étaient hors du type — un switch écrit d'après le type manquait la moitié des
cas, sans erreur.
L'idée
Un moyen n'est pas un canal.
| notion | question | valeurs | |---|---|---| | moyen | avec quoi le client paie-t-il ? | espèces · carte · virement · titre-restaurant · crypto | | canal | comment ce moyen atteint-il la banque ? | en présence · en ligne · hors ligne |
payment déclarait tpe parmi ses moyens. C'est la racine du désordre : un terminal n'est pas
une façon de payer, c'est une façon de présenter une carte.
import { moyenDe, canauxDe } from '@mostajs/paiement-contrat';
moyenDe('cib'); // 'carte'
moyenDe('ideal'); // 'virement'
moyenDe('tpe'); // null ← ce n'est pas un moyen
canauxDe(['tpe']); // ['en-presence'] ← c'est un canalTrois verdicts qu'on confond
indetermine— la réponse est perdue : on ignore si le client a été débité. Le cas le plus coûteux de tout l'encaissement.en-attente— la réponse peut encore arriver. Juste tant qu'un chemin reste ouvert ; passé un délai, il devientindetermine.saisie-manuelle— pas un échec, un mode : un humain tape le montant sur le terminal.
Ce que ce module ne fait pas
Il n'exécute rien. Pas de réseau, pas d'état, pas de dépendance — et il en restera ainsi.
C'est ce qui permet à payment et paiement-tpe de l'adopter sans dépendre l'un de l'autre.
Adoption : par ajout, jamais par remplacement
Un dialecte garde ses champs actuels et en gagne de nouveaux. Retirer une valeur qu'un dialecte déclare serait une rupture pour ses consommateurs — le nettoyage se fait par mise en correspondance.
Documentation
llms.txt · CHANGELOG.md · docs/
