Saltar para o conteúdo principal
GoCardless · SEPA Core · mandatos

GoCardless bank_account_transferred: AMEND, o mandato passa para outra conta

transferred não é um erro. A GoCardless avisa de que o mandato passou para outra conta bancária do cliente: no SEPA Core chega com a causa bank_account_transferred e o código AMEND quando a mudança vem do banco, ou com mandate_transferred quando é feita através da GoCardless. O mandato é o mesmo, e o conector continua a usá-lo.

FlexigoTech · Responsável: Víctor Gómez · Atualizado em 6 de novembro de 2026

O essencial

Módulo
GoCardless
Versões
Odoo 17, 18, 19 e 20
Verificado
no código do conector, versão 17.0, 18.0, 19.0 e 20.0 · nas fontes indicadas no fim
Leitura
4 min

O que diz a GoCardless

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

A documentação de eventos descreve os dois caminhos numa 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». O primeiro tem origem bank e o segundo, api.

E acrescenta um pormenor sobre o primeiro: «When using a bank switching service, the mandate may have been submitted again, depending on how the involved banks handled the transfer.».

Cartão da causa bank_account_transferred da GoCardless
A causa, o código SEPA Core AMEND, o evento mandates transferred e o texto da GoCardless.

Quando aparece

Quando o cliente muda de banco e o novo banco transfere os seus débitos diretos, ou quando o cliente pede à GoCardless que cobre noutra conta e o seu suporte faz a mudança depois de verificar os dados. Nos dois casos o mandato continua a ser o mesmo: o que muda é a conta de onde sai o dinheiro.

O que o Odoo faz com o conector

  • Se o método de pagamento estava ativo: o conector deixa o estado do mandato como estava. A mudança de conta não o torna inutilizável, por isso o método de pagamento do cliente continua disponível para a próxima fatura, e «Estado do mandato» não muda. Não há nada para ver no Odoo.
  • Se estava arquivado, porque antes chegou um evento que o dava por morto, transferred é um dos eventos com que o conector volta a dá-lo por válido: reativa-o e escreve-o na ficha do cliente, «O mandato GoCardless pode voltar a ser usado (transferred).». O Odoo 17 não deixa desarquivar um método de pagamento; aí o conector cria um novo para o mesmo mandato.

Estes textos saem no idioma de quem lança a cobrança; se for uma ação agendada, como a renovação de uma subscrição, são escritos sem ninguém à frente: numa base de dados criada em português saem assim, e numa criada em inglês e passada depois para português, em inglês: «The GoCardless mandate is usable again (transferred).».

O conector aplica os eventos de mandato por ordem, do mais antigo para o mais recente, e se algum não chegou pelo webhook, a tarefa que de hora a hora recupera os eventos perdidos traz esse evento.

Esquema: o que a GoCardless envia com transferred e o que o Odoo faz com o conector
Esquema feito a partir do código do módulo (17.0, 18.0, 19.0 e 20.0) e da documentação da GoCardless; o que está riscado é o que não é preciso fazer.

Não é o mesmo que um mandato substituído

Com transferred o mandato não muda; com replaced muda. Numa substituição a GoCardless cancela o mandato e cria outro, e o evento traz o novo («The event will include links[new_mandate] with the ID of the new mandate.»). O conector passa então o método de pagamento para o mandato novo. Numa transferência não há mandato novo: o conector fica com o que já tinha.

Também não é um cancelamento. Um mandato cancelado, falhado, expirado, consumido ou bloqueado está morto para o conector, que o arquiva e pede um novo. Um mandato transferido continua vivo.

O que fazer

  1. Nada no Odoo: as faturas seguintes cobram-se com o mesmo método de pagamento.
  2. Se o cliente o avisar de que mudou de banco, não é preciso pedir-lhe outro mandato: a transferência é comunicada pela GoCardless.
  3. Se o método de pagamento estava arquivado e voltou a estar disponível, verifique na ficha do cliente a nota do conector e cobre com ele as faturas que ficaram pendentes.

Tenho de pedir ao cliente um mandato novo?

Não. A GoCardless passou o mesmo mandato para a conta nova do cliente, e o conector continua a usá-lo.

O que significa AMEND?

É o código com que a GoCardless documenta este evento no SEPA Core, quando a transferência vem do banco. No Odoo não o vai ver: o conector não guarda nem mostra o código SEPA.

Com o nosso conector

No Odoo 17, 18, 19 e 20 o conector não transforma uma mudança de conta num problema: mantém o mandato e o método de pagamento do cliente e, se estava arquivado, recupera-o e deixa uma nota na sua ficha.

Continue a ler

GoCardless mandate_replaced: o mandato tem um substitutoA GoCardless cancela um mandato e substitui-o por outro (scheme_identifier_changed); cobrar com o antigo dá mandate_replaced. O que faz o Odoo com o conector.GoCardless bank_account_closed: AC04 e MD07, a conta já não existeGoCardless bank_account_closed com AC04 (conta encerrada) ou MD07 (titular falecido): o mandato fica cancelado. O que o Odoo faz à fatura e ao cliente.GoCardless mandate_expired: o mandato caducou por não ser usadoA GoCardless marca um mandato como expired quando não se tenta cobrar com ele durante todo o período de inatividade. O que faz o Odoo e como continuar a cobrar.
Verificado no código do conector (versão 17.0, 18.0, 19.0 e 20.0) e nas fontes indicadas

Fontes

  • docs.gocardless.com/docs/api-reference/events/mandate
  • Código do módulo: flexigo_payment_gocardless: const.py, linha 145 em 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Código do módulo: flexigo_payment_gocardless: const.py, linha 158 em 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Código do módulo: flexigo_payment_gocardless: models/payment_token.py, linha 77 em 17.0 (d203ee6), linha 77 em 18.0 (e2ab18b), linha 77 em 19.0 (ce7f5a3) e linha 76 em 20.0 (688d86b)
  • Código do módulo: flexigo_payment_gocardless: models/payment_token.py, linha 96 em 17.0 (d203ee6), linha 96 em 18.0 (e2ab18b), linha 96 em 19.0 (ce7f5a3) e linha 95 em 20.0 (688d86b)
  • Código do módulo: flexigo_payment_gocardless: i18n/pt.po, linha 1253 em 17.0 (d203ee6), linha 1253 em 18.0 (e2ab18b), linha 1253 em 19.0 (ce7f5a3) e linha 1265 em 20.0 (688d86b)
  • Código do módulo: flexigo_payment_gocardless: const.py, linha 33 em 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Código do módulo: flexigo_payment_gocardless: models/payment_token.py, linha 72 em 17.0 (d203ee6), linha 72 em 18.0 (e2ab18b), linha 72 em 19.0 (ce7f5a3) e linha 71 em 20.0 (688d86b)
  • Código do módulo: flexigo_payment_gocardless: i18n/pt.po, linha 847 em 17.0 (d203ee6), linha 847 em 18.0 (e2ab18b), linha 847 em 19.0 (ce7f5a3) e linha 869 em 20.0 (688d86b)
  • Código do módulo: flexigo_payment_gocardless: const.py, linha 117 em 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Código do módulo: flexigo_payment_gocardless: models/payment_provider.py, linha 527 em 17.0 (d203ee6), linha 527 em 18.0 (e2ab18b), linha 527 em 19.0 (ce7f5a3) e linha 529 em 20.0 (688d86b)
  • Código do módulo: flexigo_payment_gocardless: const.py, linha 66 em 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Código do módulo: flexigo_payment_gocardless: const.py, linha 15 em 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • github.com/odoo/odoo/blob/17.0/odoo/http.py
  • Código do módulo: flexigo_payment_gocardless: __manifest__.py, linha 31 em 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • github.com/odoo/odoo/blob/20.0/addons/account_payment/views/account_move_views.xml