Aller au contenu principal
GoCardless · SEPA Core · compte du client

GoCardless direct_debit_not_enabled : AG01 et AC06, un compte qui n'accepte pas le prélèvement

Avec direct_debit_not_enabled, la banque du client indique que ce compte n'accepte pas les prélèvements SEPA. GoCardless le communique avec les codes AG01 ou AC06 et annule le mandat. Tout près, il y a account_blocked_for_any_financial_transaction, avec AC06 : le compte est bloqué. Dans les deux cas, on ne peut pas encaisser sur ce compte.

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
5 min

Ce que dit GoCardless

ÉvénementCauseCodesTexte de GoCardless
payments · faileddirect_debit_not_enabledAG01, AC06The bank account for this payment does not support SEPA Direct Debit. The mandate will also be cancelled.
payments · failedaccount_blocked_for_any_financial_transactionAC06This payment failed because the payer's account was blocked.
mandates · cancelleddirect_debit_not_enabledAG01, AC06The bank account for this mandate does not support SEPA direct debit. Any subscriptions and pending payments will also be cancelled.
mandates · cancelledaccount_blocked_for_any_financial_transactionAC06The bank account for this mandate was blocked. Any subscriptions and pending payments will also be cancelled.

Les deux causes apparaissent aussi dans payments · cancelled : ce sont les encaissements qui attendaient encore d'être présentés avec ce mandat et que GoCardless annule en même temps que lui.

Fiche de la cause direct_debit_not_enabled de GoCardless
La cause, ses codes SEPA Core AG01 et AC06, la cause voisine du compte bloqué et le texte de GoCardless pour le paiement échoué.

D'où cela vient

Ici, ce n'est pas la signature qui échoue, c'est le compte. Le mandat existe, mais quand GoCardless présente le prélèvement, la banque du client répond que ce compte n'accepte pas les prélèvements SEPA, ou qu'il est bloqué. C'est pourquoi ces événements ont pour origine bank : ils sont décidés par la banque du payeur.

direct_debit_not_enabled entraîne le mandat. GoCardless l'annule, et avec lui tombent les abonnements et les encaissements en attente. Avec account_blocked_for_any_financial_transaction, le compte est bloqué ; quand GoCardless annule aussi le mandat pour ce motif, il le communique dans son propre événement, avec la même cause.

Ce que fait Odoo pour chaque événement

Événement reçuCe que fait le connecteur
payments · failedLa transaction passe à « Erreur » avec « GoCardless could not collect this payment (direct_debit_not_enabled). », ou avec la cause du compte bloqué. Si cet encaissement avait déjà payé la facture, il annule le paiement et la facture redevient à encaisser.
payments · cancelledIdentique à un paiement échoué.
mandates · cancelledArchive le mode de paiement, note dans la fiche du client que ce mandat n'est plus valable et crée l'activité « GoCardless mandate lost ».

Attention à l'ordre : l'événement du paiement ne retire pas le mandat, car ces causes ne figurent pas parmi les quatre qui font que le connecteur l'archive à la réception d'un paiement. C'est l'événement du mandat qui le fait. Et s'il n'arrivait pas par le webhook, la tâche horaire qui recherche les événements manqués le récupère.

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 : « GoCardless could not collect this payment (direct_debit_not_enabled). » et « GoCardless mandate lost ».

N'attendez rien non plus de Success+ : son guide indique qu'il ne retente que les paiements qui échouent faute de fonds. Le connecteur, de toute façon, regarde à chaque échec le champ will_attempt_retry de l'événement, et s'il ne vaut pas true, il laisse la transaction en erreur.

Et le bouton de nouvel essai

Pour voir le message, ouvrez la facture et cliquez en haut sur « Transaction de paiement ». Le menu des transactions n'apparaît qu'en mode développeur et, dans Odoo 20, il n'existe plus.

Sur un paiement échoué, tant qu'Odoo n'a pas archivé le mandat, cette transaction propose « Retry collection » ; sur un paiement annulé, non. Cela sert à peu de chose : GoCardless ne retente que les paiements dont le mandat est encore actif, et avec direct_debit_not_enabled il vient de l'annuler. Si la réponse est retry_failed ou mandate_is_inactive, le connecteur interroge le mandat, l'archive s'il est mort et le consigne dans la transaction : « The customer's GoCardless mandate is …, so it cannot be charged. Ask the customer for a new mandate. ». À partir de là, le bouton disparaît.

Schéma : ce que GoCardless envoie avec direct_debit_not_enabled et ce que fait Odoo avec le connecteur
Parcours de la cause selon le code du connecteur (17.0, 18.0, 19.0 et 20.0) et la documentation de GoCardless ; barré, ce que l'événement du paiement ne fait pas.

Que faire

  1. Parlez au client. Si le compte n'accepte pas les prélèvements, il vous faut un autre compte qui les accepte ; s'il est bloqué (AC06), le client devra d'abord régler cela avec sa banque.
  2. Avec le bon compte, le client signe un nouveau mandat, qui apparaîtra dans Odoo comme un autre mode de paiement.
  3. Encaissez de nouveau avec ce mode de paiement les factures ouvertes. Les encaissements annulés par GoCardless ne seront pas présentés d'eux-mêmes.
  4. Si vous avez besoin du code exact, cherchez-le dans GoCardless, car Odoo ne conserve que la cause : le connecteur ne garde pas le code SEPA. Son centre d'aide l'explique ainsi : « You are able to view the reason for a payment failure in the status timeline of the payment in your GoCardless dashboard. ».

Pourquoi AC06 apparaît-il dans les deux causes ?

GoCardless utilise le même code AC06 pour le compte qui n'accepte pas les prélèvements et pour le compte bloqué. En pratique, cela revient au même : aujourd'hui ce compte ne permet pas d'encaisser, et il faut un autre compte ou que la banque le débloque.

Puis-je réactiver le mandat ?

Si le compte n'accepte pas les prélèvements, cela n'a pas de sens : il continuerait à ne pas les accepter. Il faut un nouveau mandat avec un autre compte.

Avec notre connecteur

Avec Odoo 17, 18, 19 et 20, cet échec ne reste pas caché : la transaction affiche la cause de GoCardless, la facture est rouverte si elle était payée et, dès que l'annulation du mandat arrive, le client est marqué pour lui demander un autre compte avant la prochaine facture.

À lire aussi

GoCardless invalid_bank_details : AC01 et BE06, le compte indiqué n'existe pasGoCardless invalid_bank_details avec AC01 ou BE06 : le compte du mandat n'existe pas. Pourquoi cela arrive et ce que fait le connecteur 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.Erreur mandate_is_inactive de GoCardless lors de la création d'un encaissement depuis OdooGoCardless répond mandate_is_inactive quand un paiement est créé avec un mandat annulé, échoué ou expiré. Pourquoi et comment le connecteur le gère.
Vérifié dans le code du connecteur (version 17.0, 18.0, 19.0 et 20.0) et dans les sources citées

Sources

  • Code du module : flexigo_payment_gocardless: const.py, ligne 15 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) et 20.0 (688d86b)
  • docs.gocardless.com/docs/api-reference/events/payment
  • docs.gocardless.com/docs/api-reference/events/mandate
  • Code du module : flexigo_payment_gocardless: const.py, ligne 76 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) et 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 83 en 17.0 (d203ee6), ligne 83 en 18.0 (e2ab18b), ligne 83 en 19.0 (ce7f5a3) et ligne 82 en 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: models/payment_token.py, ligne 131 en 17.0 (d203ee6), ligne 131 en 18.0 (e2ab18b), ligne 131 en 19.0 (ce7f5a3) et ligne 130 en 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: models/payment_transaction.py, ligne 725 en 17.0 (d203ee6), ligne 725 en 18.0 (e2ab18b), ligne 724 en 19.0 (ce7f5a3) et ligne 748 en 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: models/payment_transaction.py, ligne 754 en 17.0 (d203ee6), ligne 754 en 18.0 (e2ab18b), ligne 753 en 19.0 (ce7f5a3) et ligne 777 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: const.py, ligne 74 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) et 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: models/payment_transaction.py, ligne 435 en 17.0 (d203ee6), ligne 435 en 18.0 (e2ab18b), ligne 434 en 19.0 (ce7f5a3) et ligne 449 en 20.0 (688d86b)
  • docs.gocardless.com/docs/optimise/reduced-failed-payments-with-success-plus
  • Code du module : flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, ligne 436 en 17.0 (d203ee6), ligne 436 en 18.0 (e2ab18b), ligne 436 en 19.0 (ce7f5a3) et ligne 438 en 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, ligne 1148 en 17.0 (d203ee6), ligne 1148 en 18.0 (e2ab18b), ligne 1148 en 19.0 (ce7f5a3) et ligne 1155 en 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, ligne 495 en 17.0 (d203ee6), ligne 495 en 18.0 (e2ab18b), ligne 495 en 19.0 (ce7f5a3) et ligne 497 en 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: views/payment_transaction_views.xml, ligne 13 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) et 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: models/payment_transaction.py, ligne 63 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) et 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: models/payment_transaction.py, ligne 418 en 17.0 (d203ee6), ligne 418 en 18.0 (e2ab18b), ligne 417 en 19.0 (ce7f5a3) et ligne 432 en 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, ligne 1016 en 17.0 (d203ee6), ligne 1016 en 18.0 (e2ab18b), ligne 1016 en 19.0 (ce7f5a3) et ligne 1031 en 20.0 (688d86b)
  • docs.gocardless.com/docs/api-reference/payment
  • Code du module : flexigo_payment_gocardless: models/payment_transaction.py, ligne 469 en 17.0 (d203ee6), ligne 469 en 18.0 (e2ab18b), ligne 468 en 19.0 (ce7f5a3) et ligne 487 en 20.0 (688d86b)
  • Code du module : flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, ligne 1233 en 17.0 (d203ee6), ligne 1233 en 18.0 (e2ab18b), ligne 1233 en 19.0 (ce7f5a3) et ligne 1240 en 20.0 (688d86b)
  • github.com/odoo/odoo/blob/20.0/addons/payment/i18n/fr.po
  • github.com/odoo/odoo/blob/20.0/addons/account_payment/views/account_move_views.xml
  • github.com/odoo/odoo/blob/17.0/odoo/http.py
  • support.gocardless.com/hc/en-gb/articles/360001467265
  • 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: __manifest__.py, ligne 31 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) et 20.0 (688d86b)
  • docs.gocardless.com/docs/api-reference/responses-and-errors