Aller au contenu principal
GoCardless · SEPA Core · mandats

GoCardless bank_account_transferred : AMEND, le mandat passe sur un autre compte

transferred n'est pas une erreur. GoCardless signale que le mandat est passé sur un autre compte bancaire du client : en SEPA Core, cela arrive avec la cause bank_account_transferred et le code AMEND lorsque le changement vient de la banque, ou avec mandate_transferred lorsqu'il est effectué via GoCardless. Le mandat est le même, et le connecteur continue de l'utiliser.

FlexigoTech · Responsable : Víctor Gómez · Mis à jour le 6 novembre 2026

L'essentiel

Versions
Odoo 17, 18, 19 et 20
Vérifié
dans le code du connecteur, version 17.0, 18.0, 19.0 et 20.0 · dans les sources citées à la fin
Lecture
4 min

Ce que dit GoCardless

ÉvénementCauseCodeTexte de GoCardless
mandates · transferredbank_account_transferredAMENDThe customer's bank account was transferred to a different bank or building society.
mandates · transferredmandate_transferred(aucun)This mandate was transferred to a new bank account through GoCardless.

La documentation des événements décrit les deux cas en une phrase : « The mandate has been transferred to a different bank account either using a bank switching service (where it is supported) or with help from GoCardless Support ». Le premier a pour origine bank et le second api.

Et elle ajoute une précision sur le premier : « When using a bank switching service, the mandate may have been submitted again, depending on how the involved banks handled the transfer. ».

Fiche de la cause bank_account_transferred de GoCardless
La cause, le code SEPA Core AMEND, l'événement mandates transferred et le texte de GoCardless.

Quand cela arrive

Lorsque le client change de banque et que sa nouvelle banque transfère ses prélèvements, ou lorsque le client demande à GoCardless de prélever sur un autre compte et que son support effectue le changement après vérification des données. Dans les deux cas, le mandat reste le même : c'est le compte d'où provient l'argent qui change.

Ce que fait le connecteur dans Odoo

  • Si le mode de paiement était actif : le connecteur laisse l'état du mandat tel quel. Le changement de compte ne le rend pas inutilisable, donc le mode de paiement du client reste disponible pour la facture suivante, et « Mandate Status » ne change pas. Il n'y a rien à voir dans Odoo.
  • S'il était archivé, parce qu'un événement antérieur l'avait considéré comme caduc, transferred fait partie des événements qui permettent au connecteur de le redonner comme valable : il le réactive et l'indique sur la fiche du client, « The GoCardless mandate is usable again (transferred). ». Odoo 17 ne permet pas de désarchiver un mode de paiement ; dans ce cas, le connecteur en crée un nouveau pour le même mandat.

Cette note est rédigée par le connecteur lors de l'application de l'événement, sans intervention humaine. Le connecteur n'est pas traduit en français : ces textes apparaissent toujours en anglais, même dans un Odoo en français, qu'ils soient déclenchés par un utilisateur ou par une action planifiée : « The GoCardless mandate is usable again (transferred). ».

Le connecteur applique les événements de mandat dans l'ordre, du plus ancien au plus récent, et si l'un d'eux n'est pas arrivé par le webhook, la tâche qui récupère chaque heure les événements manqués le rattrape.

Schéma : ce que GoCardless envoie avec transferred et ce que fait Odoo avec le connecteur
Schéma réalisé à partir du code du connecteur (17.0, 18.0, 19.0 et 20.0) et de la documentation de GoCardless ; ce qui est barré n'est pas nécessaire.

Ce n'est pas la même chose qu'un mandat remplacé

Avec transferred, le mandat ne change pas ; avec replaced, si. Lors d'un remplacement, GoCardless annule le mandat et en crée un autre, et l'événement contient le nouveau : « The event will include links[new_mandate] with the ID of the new mandate. ». Le connecteur transfère alors le mode de paiement vers le nouveau mandat. Dans un transfert, il n'y a pas de nouveau mandat : le connecteur conserve celui qu'il avait.

Ce n'est pas non plus une annulation. Un mandat annulé, échoué, expiré, consommé ou bloqué est mort pour le connecteur, qui l'archive et en demande un nouveau. Un mandat transféré reste actif.

Que faire

  1. Rien dans Odoo : les factures suivantes sont encaissées avec le même mode de paiement.
  2. Si le client vous informe qu'il a changé de banque, inutile de lui demander un nouveau mandat : le transfert est signalé par GoCardless.
  3. Si le mode de paiement était archivé et qu'il est de nouveau disponible, vérifiez la note du connecteur sur la fiche du client et encaissez avec lui les factures restées en attente.

Dois-je demander au client un nouveau mandat ?

Non. GoCardless a transféré le même mandat vers le nouveau compte du client, et le connecteur continue de l'utiliser.

Que signifie AMEND ?

C'est le code avec lequel GoCardless documente cet événement en SEPA Core, lorsque le transfert vient de la banque. Vous ne le verrez pas dans Odoo : le connecteur ne stocke ni n'affiche le code SEPA.

Avec notre connecteur

Dans Odoo 17, 18, 19 et 20, le connecteur ne transforme pas un changement de compte en problème : il conserve le mandat et le mode de paiement du client et, s'il était archivé, le récupère et laisse une note sur sa fiche.

À lire aussi

GoCardless mandate_replaced : le mandat a un remplaçantGoCardless annule un mandat et le remplace par un autre (scheme_identifier_changed) ; l'ancien renvoie mandate_replaced. Ce que fait le connecteur dans Odoo.GoCardless bank_account_closed : AC04 et MD07, le compte n'existe plusGoCardless bank_account_closed avec AC04 (compte clôturé) ou MD07 (titulaire décédé) : le mandat est annulé. Ce que fait Odoo avec la facture et le client.GoCardless mandate_expired : le mandat a expiré faute d'utilisationGoCardless marque un mandat comme expired après une période sans prélèvement. Ce que fait Odoo et comment continuer à encaisser.
Vérifié dans le code du connecteur (version 17.0, 18.0, 19.0 et 20.0) et dans les sources citées

Sources

  • docs.gocardless.com/docs/api-reference/events/mandate
  • Code du module : flexigo_payment_gocardless: const.py, ligne 145 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) et 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: const.py, ligne 158 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) et 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: models/payment_token.py, ligne 77 en 17.0 (d203ee6), ligne 77 en 18.0 (e2ab18b), ligne 77 en 19.0 (ce7f5a3) et ligne 76 en 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: models/payment_token.py, ligne 96 en 17.0 (d203ee6), ligne 96 en 18.0 (e2ab18b), ligne 96 en 19.0 (ce7f5a3) et ligne 95 en 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, ligne 1157 en 17.0 (d203ee6), ligne 1157 en 18.0 (e2ab18b), ligne 1157 en 19.0 (ce7f5a3) et ligne 1164 en 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: const.py, ligne 33 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) et 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: models/payment_token.py, ligne 72 en 17.0 (d203ee6), ligne 72 en 18.0 (e2ab18b), ligne 72 en 19.0 (ce7f5a3) et ligne 71 en 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, ligne 785 en 17.0 (d203ee6), ligne 785 en 18.0 (e2ab18b), ligne 785 en 19.0 (ce7f5a3) et ligne 800 en 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: const.py, ligne 117 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) et 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: models/payment_provider.py, ligne 527 en 17.0 (d203ee6), ligne 527 en 18.0 (e2ab18b), ligne 527 en 19.0 (ce7f5a3) et ligne 529 en 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: const.py, ligne 66 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) et 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: const.py, ligne 15 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) et 20.0 (688d86b)
  • github.com/odoo/odoo/blob/17.0/odoo/http.py
  • Code du module : flexigo_payment_gocardless: __manifest__.py, ligne 31 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) et 20.0 (688d86b)
  • github.com/odoo/odoo/blob/20.0/addons/account_payment/views/account_move_views.xml