Saltar al contenido principal
GoCardless · SEPA Core · mandatos

GoCardless bank_account_transferred: AMEND, el mandato se va a otra cuenta

transferred no es un error. GoCardless avisa de que el mandato ha pasado a otra cuenta bancaria del cliente: en SEPA Core llega con la causa bank_account_transferred y el código AMEND cuando el cambio viene del banco, o con mandate_transferred cuando se hace a través de GoCardless. El mandato es el mismo, y el conector lo sigue usando.

FlexigoTech · Responsable: Víctor Gómez · Actualizado el 6 de noviembre de 2026

Lo esencial

Módulo
GoCardless
Versiones
Odoo 17, 18, 19 y 20
Comprobado
en el código del conector, versión 17.0, 18.0, 19.0 y 20.0 · en las fuentes enlazadas al final
Lectura
4 min

Qué dice GoCardless

EventoCausaCódigoTexto de GoCardless
mandates · transferredbank_account_transferredAMENDThe customer's bank account was transferred to a different bank or building society.
mandates · transferredmandate_transferred(ninguno)This mandate was transferred to a new bank account through GoCardless.

La documentación de eventos describe los dos caminos en una frase: «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». El primero tiene origen bank y el segundo, api.

Y añade un matiz sobre el primero: «When using a bank switching service, the mandate may have been submitted again, depending on how the involved banks handled the transfer.».

Tarjeta de la causa bank_account_transferred de GoCardless
La causa, el código SEPA Core AMEND, el evento mandates transferred y el texto de GoCardless.

Cuándo aparece

Cuando el cliente cambia de banco y su banco nuevo traslada sus adeudos domiciliados, o cuando el cliente pide a GoCardless que cobre en otra cuenta y su soporte hace el cambio después de comprobar los datos. En los dos casos el mandato sigue siendo el mismo: lo que cambia es la cuenta de la que sale el dinero.

Lo que hace Odoo con el conector

  • Si el método de pago estaba activo: el conector deja el estado del mandato como estaba. El cambio de cuenta no lo vuelve inservible, así que el método de pago del cliente sigue disponible para la siguiente factura, y «Estado del mandato» no cambia. No hay nada que ver en Odoo.
  • Si estaba archivado, porque antes llegó un evento que lo daba por muerto, transferred es uno de los eventos con los que el conector lo vuelve a dar por bueno: lo reactiva y lo escribe en la ficha del cliente, «El mandato de GoCardless se puede volver a usar (transferred).». Odoo 17 no deja desarchivar un método de pago; ahí el conector crea uno nuevo para el mismo mandato.

Esa nota la escribe el conector al aplicar el evento, sin nadie delante. En una base de datos creada en castellano sale así; en una creada en inglés y pasada después a castellano, en inglés: «The GoCardless mandate is usable again (transferred).».

El conector aplica los eventos de mandato en orden, del más antiguo al más reciente, y si alguno no llegó por el webhook, la tarea que cada hora recupera los eventos perdidos lo trae.

Esquema: qué manda GoCardless con transferred y qué hace Odoo con el conector
Esquema hecho a partir del código del conector (17.0, 18.0, 19.0 y 20.0) y de la documentación de GoCardless; lo tachado es lo que no hace falta.

No es lo mismo que un mandato sustituido

Con transferred el mandato no cambia; con replaced sí. En una sustitución GoCardless cancela el mandato y crea otro, y el evento trae el nuevo («The event will include links[new_mandate] with the ID of the new mandate.»). El conector pasa entonces el método de pago al mandato nuevo. En un traslado no hay mandato nuevo: el conector se queda con el que tenía.

Tampoco es una cancelación. Un mandato cancelado, fallido, caducado, consumido o bloqueado está muerto para el conector, que lo archiva y pide uno nuevo. Un mandato trasladado sigue vivo.

Qué hacer

  1. Nada en Odoo: las siguientes facturas se cobran con el mismo método de pago.
  2. Si el cliente te avisa de que ha cambiado de banco, no hace falta pedirle otro mandato: el traslado lo comunica GoCardless.
  3. Si el método de pago estaba archivado y vuelve a estar disponible, comprueba en la ficha del cliente la nota del conector y cobra con él las facturas que se quedaron pendientes.

¿Tengo que pedir al cliente un mandato nuevo?

No. GoCardless ha pasado el mismo mandato a la cuenta nueva del cliente, y el conector lo sigue usando.

¿Qué significa AMEND?

Es el código con el que GoCardless documenta este evento en SEPA Core, cuando el traslado llega del banco. En Odoo no lo verás: el conector no guarda ni enseña el código SEPA.

Con nuestro conector

En Odoo 17, 18, 19 y 20 el conector no convierte un cambio de cuenta en un problema: mantiene el mandato y el método de pago del cliente y, si estaba archivado, lo recupera y deja una nota en su ficha.

Sigue leyendo

GoCardless mandate_replaced: el mandato tiene un sustitutoGoCardless cancela un mandato y lo sustituye por otro (scheme_identifier_changed); cobrar con el viejo da mandate_replaced. Qué hace Odoo con el conector.GoCardless bank_account_closed: AC04 y MD07, la cuenta ya no existeGoCardless bank_account_closed con AC04 (cuenta cerrada) o MD07 (titular fallecido): el mandato queda cancelado. Qué hace Odoo con la factura y con el cliente.GoCardless mandate_expired: el mandato caducó por no usarloGoCardless marca un mandato como expired cuando no se ha intentado cobrar con él en todo el periodo de inactividad. Qué hace Odoo y cómo seguir cobrando.
Comprobado en el código del conector (versión 17.0, 18.0, 19.0 y 20.0) y en las fuentes enlazadas

Fuentes

  • docs.gocardless.com/docs/api-reference/events/mandate
  • Código del módulo: flexigo_payment_gocardless: const.py, línea 145 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) y 20.0 (688d86b)
  • Código del módulo: flexigo_payment_gocardless: const.py, línea 158 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) y 20.0 (688d86b)
  • Código del módulo: flexigo_payment_gocardless: models/payment_token.py, línea 77 en 17.0 (d203ee6), línea 77 en 18.0 (e2ab18b), línea 77 en 19.0 (ce7f5a3) y línea 76 en 20.0 (688d86b)
  • Código del módulo: flexigo_payment_gocardless: models/payment_token.py, línea 96 en 17.0 (d203ee6), línea 96 en 18.0 (e2ab18b), línea 96 en 19.0 (ce7f5a3) y línea 95 en 20.0 (688d86b)
  • Código del módulo: flexigo_payment_gocardless: i18n/es.po, línea 1250 en 17.0 (d203ee6), línea 1250 en 18.0 (e2ab18b), línea 1250 en 19.0 (ce7f5a3) y línea 1261 en 20.0 (688d86b)
  • Código del módulo: flexigo_payment_gocardless: const.py, línea 33 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) y 20.0 (688d86b)
  • Código del módulo: flexigo_payment_gocardless: models/payment_token.py, línea 72 en 17.0 (d203ee6), línea 72 en 18.0 (e2ab18b), línea 72 en 19.0 (ce7f5a3) y línea 71 en 20.0 (688d86b)
  • Código del módulo: flexigo_payment_gocardless: i18n/es.po, línea 847 en 17.0 (d203ee6), línea 847 en 18.0 (e2ab18b), línea 847 en 19.0 (ce7f5a3) y línea 868 en 20.0 (688d86b)
  • Código del módulo: flexigo_payment_gocardless: const.py, línea 117 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) y 20.0 (688d86b)
  • Código del módulo: flexigo_payment_gocardless: models/payment_provider.py, línea 527 en 17.0 (d203ee6), línea 527 en 18.0 (e2ab18b), línea 527 en 19.0 (ce7f5a3) y línea 529 en 20.0 (688d86b)
  • Código del módulo: flexigo_payment_gocardless: const.py, línea 66 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) y 20.0 (688d86b)
  • Código del módulo: flexigo_payment_gocardless: const.py, línea 15 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) y 20.0 (688d86b)
  • github.com/odoo/odoo/blob/17.0/odoo/http.py
  • Código del módulo: flexigo_payment_gocardless: __manifest__.py, línea 31 en 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) y 20.0 (688d86b)
  • github.com/odoo/odoo/blob/20.0/addons/account_payment/views/account_move_views.xml