Forum Discussion
init2
Première note
il y a 5 joursTitre : 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 des centaines de factures en une seule transaction bancaire).
Pourquoi je passe par l'API : dans l'interface, je ne trouve pas comment dé-rapprocher une seule facture d'un prélèvement global. Le rapprochement porte sur la remise entière, et je ne vois pas d'option pour en détacher une facture isolée sans toucher aux autres. Je me suis donc tourné vers l'API externe v2.
Contexte :
- La facture est finalisée et au statut « paid ».
- Son « payé » est porté par un objet PAYMENT au statut « found », issu du prélèvement groupé.
- La transaction bancaire correspondante est rapprochée à plusieurs centaines de factures clients (la mienne n'en est qu'une parmi d'autres).
Ce que j'ai tenté via l'API :
DELETE /customer_invoices/{invoice_id}/matched_transactions/{transaction_id} -> Réponse HTTP 204 (succès), MAIS aucun effet : après vérification, la facture reste « paid », la transaction reste rapprochée, et le payment reste « found ». Le dé-rapprochement semble être un no-op tant que le payment porte la réconciliation.
Ce que j'ai cherché ensuite :
- Un endpoint pour récupérer / supprimer / annuler ce payment : je n'en trouve pas (seul GET /customer_invoices/{id}/payments existe ; pas de /payments/{id}).
- Pas d'endpoint inverse de « mark as paid ».
- mark_as_paid ne convient pas : il crée un paiement manuel SANS rapprochement bancaire, ce qui casserait le lettrage de tout le prélèvement groupé.
Mes questions :
- Côté INTERFACE : existe-t-il réellement un moyen de retirer UNE facture d'un rapprochement (lettrage) groupé sans défaire le rapprochement des autres factures de la même remise ? Si oui, où ?
- Côté API v2 : existe-t-il un moyen de retirer / annuler le payment afin que cette seule facture repasse en « non payée » ?
- Pourquoi le DELETE .../matched_transactions renvoie-t-il 204 sans effet dans ce cas (réconciliation portée par un payment « found ») ? Est-ce le comportement attendu ?
Merci d'avance pour votre aide et vos retours.
Cyril
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 found1) 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”.
1 Réponse
- Angélique_
Pennylaneur
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 found1) 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”.