Przejdź do głównej treści
GoCardless · SEPA Core · mandaty

GoCardless bank_account_transferred: AMEND, mandat przechodzi na inne konto

transferred nie jest błędem. GoCardless informuje, że mandat został przeniesiony na inne konto bankowe klienta: w SEPA Core przychodzi z przyczyną bank_account_transferred i kodem AMEND, gdy zmiana pochodzi z banku, albo z mandate_transferred, gdy została wykonana przez GoCardless. Mandat jest ten sam, a konektor nadal z niego korzysta.

FlexigoTech · Odpowiada: Víctor Gómez · Aktualizacja: 6 listopada 2026

Najważniejsze

Wersje
Odoo 17, 18, 19 i 20
Sprawdzone
w kodzie źródłowym konektora, wersja 17.0, 18.0, 19.0 i 20.0 · w źródłach podanych na końcu
Czas czytania
3 min

Co mówi GoCardless

ZdarzeniePrzyczynaKodTekst GoCardless
mandates · transferredbank_account_transferredAMENDThe customer's bank account was transferred to a different bank or building society.
mandates · transferredmandate_transferred(brak)This mandate was transferred to a new bank account through GoCardless.

Dokumentacja zdarzeń opisuje obie ścieżki w jednym zdaniu: „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”. Pierwsza ma źródło bank, a druga api.

I dodaje zastrzeżenie dotyczące pierwszej: „When using a bank switching service, the mandate may have been submitted again, depending on how the involved banks handled the transfer.”.

Karta przyczyny bank_account_transferred w GoCardless
Przyczyna, kod SEPA Core AMEND, zdarzenie mandates transferred i tekst GoCardless.

Kiedy się pojawia

Gdy klient zmienia bank, a jego nowy bank przenosi jego polecenia zapłaty, albo gdy klient prosi GoCardless o pobieranie z innego konta, a jego wsparcie wykonuje zmianę po sprawdzeniu danych. W obu przypadkach mandat pozostaje ten sam: zmienia się konto, z którego wychodzą pieniądze.

Co Odoo robi z konektorem

  • Jeśli metoda płatności była aktywna: konektor zostawia status mandatu bez zmian. Zmiana konta nie czyni go bezużytecznym, więc metoda płatności klienta pozostaje dostępna przy następnej fakturze, a „Mandate Status” się nie zmienia. W Odoo nie ma nic do sprawdzania.
  • Jeśli była zarchiwizowana, bo wcześniej przyszło zdarzenie, które uznało ją za nieważną, transferred jest jednym ze zdarzeń, dzięki którym konektor znów uznaje ją za ważną: przywraca ją i zapisuje w karcie klienta: „The GoCardless mandate is usable again (transferred).”. Odoo 17 nie pozwala odarchiwizować metody płatności; wtedy konektor tworzy nową dla tego samego mandatu.

Konektor nie jest przetłumaczony na polski: te teksty zawsze pojawiają się po angielsku, także w Odoo po polsku, niezależnie od tego, czy uruchamia je użytkownik, czy zaplanowane działanie: „The GoCardless mandate is usable again (transferred).”.

Konektor stosuje zdarzenia mandatów w kolejności, od najstarszego do najnowszego, a jeśli któreś nie dotarło przez webhook, zadanie, które co godzinę odzyskuje utracone zdarzenia, je pobiera.

Schemat: co GoCardless wysyła przy transferred i co Odoo robi z konektorem
Schemat przygotowany na podstawie kodu konektora (17.0, 18.0, 19.0 i 20.0) oraz dokumentacji GoCardless; przekreślone jest to, czego nie trzeba robić.

Nie to samo co zastąpiony mandat

Przy transferred mandat się nie zmienia; przy replaced tak. W przypadku zastąpienia GoCardless anuluje mandat i tworzy kolejny, a zdarzenie zawiera nowy: „The event will include links[new_mandate] with the ID of the new mandate.”. Konektor przenosi wtedy metodę płatności na nowy mandat. Przy przeniesieniu nie ma nowego mandatu: konektor zostaje przy dotychczasowym.

To także nie jest anulowanie. Mandat anulowany, nieudany, wygasły, zużyty lub zablokowany jest dla konektora martwy: archiwizuje go i prosi o nowy. Mandat przeniesiony pozostaje aktywny.

Co zrobić

  1. Nic w Odoo: kolejne faktury są pobierane tą samą metodą płatności.
  2. Jeśli klient informuje, że zmienił bank, nie trzeba prosić go o nowy mandat: przeniesienie zgłasza GoCardless.
  3. Jeśli metoda płatności była zarchiwizowana i znów jest dostępna, sprawdź w karcie klienta notatkę konektora i pobierz nią faktury, które pozostały nieopłacone.

Czy muszę prosić klienta o nowy mandat?

Nie. GoCardless przeniósł ten sam mandat na nowe konto klienta, a konektor nadal z niego korzysta.

Co oznacza AMEND?

To kod, którym GoCardless dokumentuje to zdarzenie w SEPA Core, gdy przeniesienie pochodzi z banku. W Odoo go nie zobaczysz: konektor nie zapisuje ani nie pokazuje kodu SEPA.

Z naszym konektorem

W Odoo 17, 18, 19 i 20 konektor nie traktuje zmiany konta jako problemu: utrzymuje mandat i metodę płatności klienta, a jeśli była zarchiwizowana, przywraca ją i zostawia notatkę w jej karcie.

Czytaj dalej

GoCardless mandate_replaced: mandat ma swojego następcęGoCardless anuluje mandat i zastępuje go nowym (scheme_identifier_changed). Obciążenie starym daje mandate_replaced. Co robi z tym konektor w Odoo.GoCardless bank_account_closed: AC04 i MD07, konto już nie istniejeGoCardless bank_account_closed z kodem AC04 (konto zamknięte) lub MD07 (zmarły posiadacz): mandat zostaje anulowany. Co Odoo robi z fakturą i klientem.GoCardless mandate_expired: mandat wygasł z powodu braku użyciaGoCardless oznacza mandat jako expired, gdy przez cały okres uśpienia nie podjęto z nim żadnej próby obciążenia. Co robi Odoo i jak dalej pobierać płatności.
Sprawdzone w kodzie źródłowym konektora (wersja 17.0, 18.0, 19.0 i 20.0) i w podlinkowanych źródłach

Źródła

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