Communauté gestion

Forum Discussion

Avatar de init2
init2
Icône pour le rang Première notePremière note
il y a 5 jours
Répondu

Titre : Repasser une facture en « non payée » quand elle est réglée par un prélèvement groupé

Bonjour à tous, Je cherche à repasser  une seule  facture client à l'état « non payée », alors qu'elle a été réglée — avec beaucoup d'autres — par un prélèvement groupé (une remise SEPA qui solde de...
  • Avatar de Angélique_
    il y a 1 jour

    Bonjour init2​ 

    Détacher une seule facture d’un rapprochement “groupé” (remise SEPA)


    quand une même transaction est rapprochée à plusieurs factures, il n’existe pas aujourd’hui de dé‑rapprochement sélectif “je retire uniquement cette facture et je laisse toutes les autres rapprochées”. Le comportement actuel est que détacher une facture entraîne le dé‑rapprochement des autres factures de cette transaction. 

    Le contournement côté UI est donc : détacher toutes les factures depuis la transaction, puis refaire les rapprochements pour celles qui doivent rester rapprochées. 


    Côté API v2 : repasser la facture de “paid” à “non payée” quand le paiement est en found

    1) Oui, l’endpoint existe… mais il ne “supprime” pas le paiement

    L’API expose bien l’endpoint :DELETE /customer_invoices/{customer_invoice_id}/matched_transactions/{id} → 204 Transaction unmatched successfully. 

    2) …et votre cas est une limite connue : un paiement found ne se “cancel” pas

    Dans les cas où le statut “payé” est porté par un payment au statut found (typiquement lié à un flux XML/SEPA et/ou une transaction trouvée), Pennylane ne permet pas d’annuler un paiement found (“we don't allow to cancel found XML payments”). 

    C’est aussi visible dans la logique produit partagée en interne : le paiement n’est annulable que si payment.status !== 'found'. 

    Conclusion API : à date, il n’y a pas de moyen “propre” via l’API v2 pour annuler/retirer ce payment found afin que cette seule facture repasse en “non payée” (et votre constat “pas d’endpoint /payments/{id} en DELETE” est cohérent avec cette limite).

    Pourquoi le DELETE .../matched_transactions renvoie 204 “sans effet” ?

    Le 204 correspond au contrat de l’endpoint “unmatch”. Mais dans votre configuration, le statut “paid” reste tenu par le payment found, que Pennylane ne sait pas annuler.

    Donc vous pouvez avoir un “unmatch” côté relation transaction facture, sans que la facture redevienne modifiable / non payée, parce que le verrou vient du payment et non uniquement du lien “matched_transaction”.