---
suivi: 1736
date: 2026-09-28
sujet: Diagnostic — suivi du paiement des acomptes après Sage
chantier: comptabilite / sage / acompte
type: diagnostic
statut: poussé
hash:
fichiers:
  - docs/suivi/SUIVI_1736_diag_suivi_paiement_acomptes.md
---

# SUIVI #1736 — diagnostic suivi paiement acomptes

Phase 1. Aucun correctif. Aucune écriture ERP ni Sage. Départ `6462eb6a` (#1735).

## PROMPT ENVOYÉ

L’acompte I-26-09-33 (DTMA, Les Jardins du Pic, 648 €) reste sur « Paiement à préparer » alors que le paiement est préparé et en attente de validation Suite. La frise des factures suit les virements. Constater pourquoi, sans coder.

## FICHES LUES

- **#1616 LEÇON** — un APADVANCE n’est pas payable par APPYMT.RECORDKEY. ADVANCEKEY applique un acompte déjà payé sur une facture. Ne jamais écrire le RECORDNO d’avance dans `intacct_bill_id`. ACH : In process → Advance paid = fichier bancaire, hors écran mise en paiement.
- **#1613** — champs lus sur APADVANCE : STATE, TOTALPAID, TOTALDUE, WHENPAID. DISPLAYSTATE n’y est pas documenté.
- **#1618** — clé APPYMT pour payer un APADVANCE : non établie.
- **#1692** — panneau lecture Sage brute : APBILL + APPYMT, rien n’est appliqué.

## SYNTHÈSE

La création (`AcompteIntacctApadvanceService`) envoie un `<create><APADVANCE>` avec PAYMENTMETHOD ACH. Elle ne crée pas d’APPYMT. Elle stocke RECORDNO et STATE dans `depot_factures.ocr_raw.compta_acompte`, jamais dans `intacct_bill_id`. La facture passe `comptabilisee` et ouvre `paiement_effectif` en attente. La frise, sans `etat_paiement_sage`, affiche « Paiement à préparer ».

La remontée et « Actualiser statut Sage » s’arrêtent : `billIdsPourFacture` ne lit que des RECORDNO d’APBILL. Liste vide → « Aucun bill Sage lié ». Les acomptes sont aussi exclus de la file à payer (`FactureEstAcompte`).

Côté Sage, le seul cycle prouvé (#1616, témoin 686056) est STATE `In process` (TOTALPAID 0) puis `Advance paid` (fichier Cash Management confirmé). DISPLAYSTATE delivered / confirmed est le vocabulaire APPYMT des factures (`IntacctPaiementStatusService`), pas un champ lu sur APADVANCE. Le palier « déposé sur Suite » n’est pas établi pour l’avance : il faut une lecture brute de I-26-09-33 avant de mapper.

## DÉPLOIEMENT

Aucun. Pas de `migrate`. Pas de `journal:sync`.

## LEÇON

Brancher la frise acompte sur `intacct_bill_id` relancerait la sync APBILL sur un RECORDNO d’avance. La lecture doit rester `readByQuery` objet APADVANCE, clé `ocr_raw.compta_acompte.intacct_advance_recordno`. Un STATE non reconnu = silence, pas un recul.
