---
suivi: 1693
date: 2026-09-24
sujet: Constater le non-paiement Sage sans automatisme
chantier: comptabilite / paiement
type: feature
statut: poussé
hash: e54881e2
fichiers:
  - app/Services/FactureConstatNonPaiementService.php
  - app/Services/FactureLectureSageBruteService.php
  - app/Services/FacturePaiementStatutSyncService.php
  - app/Services/IntacctPaiementStatusService.php
  - app/Services/IntacctService.php
  - app/Services/FactureSuperAdminCorrectionService.php
  - app/Http/Controllers/FactureController.php
  - routes/web.php
  - resources/js/Pages/Factures/Show.vue
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/manifest.json
  - public/build/assets/Show-BfA7KMNK.js
  - public/build/assets/Show-DRNcqxbB.css
  - public/build/assets/app-x6JoNRj7.js
  - docs/suivi/SUIVI_1693_constat_non_paiement_sage.md
---

# SUIVI #1693 — constat de non-paiement

Une clé XML vide (`[]`) n'est plus une clé de paiement.
Un APPYMT annulé ne recule pas un bill soldé.
Le bouton « Constater le non-paiement » n'agit qu'après une lecture Sage fraîche et une confirmation.
L'audit ne signale plus `en_paiement` / dépôt `comptabilisee` comme un désalignement.
Prérequis #1692 (`e72017f9`).

## DÉPLOIEMENT

git pull, optimize:clear, view:clear, route:clear, journal:sync. Pas de migration.

## LEÇON

`json_encode` d'un SimpleXML vide produit `[]`. Le traiter comme une chaîne lance une lecture APPYMT sur un RECORDNO invalide.
