Premiers pas

Installer Pain001 : pip, Docker et premier fichier validé

Python 3.10–3.12, pip ou Docker, et un fichier de paiement validé en trois commandes.

Pain001 fonctionne sur Python 3.10, 3.11 et 3.12 (chaque version testée en CI) sous macOS, Linux et Windows. Installez ce dont vous avez besoin ; chaque capacité optionnelle est un extra, si bien que l'installation de base reste légère.


01. PyPI#

Ce dont vous avez besoin Commande
CLI cœur & bibliothèque Python pip install pain001
Microservice API REST (FastAPI + Uvicorn) pip install "pain001[api]"
Ingestion Parquet (PyArrow) pip install "pain001[parquet]"
Fichiers d'entrée chiffrés PGP (.gpg / .asc) pip install "pain001[gpg]"
File de travaux asynchrone adossée à Redis pour l'API pip install "pain001[redis]"
Traçage OpenTelemetry pip install "pain001[otel]"
Serveurs MCP / LSP minimaux intégrés pip install "pain001[mcp]" / "pain001[lsp]"

Les paquets compagnons s'installent séparément et sont versionnés indépendamment :

pip install pain001-loader-xlsx    # Excel ingestion (auto-discovered plugin)
pip install pain001-loader-mt101   # SWIFT MT101 parsing library
pip install pain001-mcp            # Full 22-tool MCP server for AI agents
pip install pain001-lsp            # Full six-feature editor language server

Vérifiez l'installation et explorez le catalogue de messages :

pain001 --version
pain001 versions          # list all 11 supported message definitions
pain001 init pain.001.001.09   # scaffold a starter CSV template

02. Docker#

Des images multi-architectures (linux/amd64, linux/arm64) sont publiées sur GitHub Container Registry. Le conteneur s'exécute sous un utilisateur dédié non root.

# Generate XML from a local CSV
docker run --rm -v "$PWD:/data" -w /data \
  ghcr.io/sebastienrousseau/pain001:latest \
  generate -t pain.001.001.09 -d payments.csv -o out/

# Launch the REST API
docker run --rm -p 8000:8000 \
  ghcr.io/sebastienrousseau/pain001:latest \
  serve --host 0.0.0.0 --port 8000

03. Environnements verrouillés#

Les environnements bancaires et de trésorerie interdisent souvent le chargement dynamique de plugins. Deux contrôles existent précisément pour ce cas :

  • PAIN001_DISABLE_PLUGINS=1 désactive toute découverte de plugins tiers ; seuls les loaders fournis s'exécutent.
  • pain001 plugins list / pain001 plugins show <name> rendent chaque plugin découvert auditable avant sa première utilisation.

Tout s'exécute localement. Aucun paquet de la suite ne téléphone à l'extérieur, n'appelle une API SaaS ni ne déplace des données de paiement hors de l'hôte.


04. Premier fichier en trois commandes#

pip install pain001
pain001 init pain.001.001.09 -o work/
pain001 -t pain.001.001.09 -d work/template.csv -o work/ --dry-run

--dry-run valide contre le schéma JSON, le XSD et (avec --scheme) un recueil de règles SEPA ou transfrontalier, sans écrire de sortie. Le code de sortie 0 signifie que le fichier a passé ces contrôles : le schéma, et le recueil de règles du scheme lorsqu'il est sélectionné. Le profil propre à votre banque et ses règles de canal sont distincts et nécessitent toujours des tests avec la banque. Retirez --dry-run pour écrire le XML.

Poursuivez avec la référence technique pour chaque option et point d'accès, ou la FAQ de démarrage pour les questions opérationnelles.