Co mówi GoCardless
| Zdarzenie | Przyczyna | Kod | Tekst GoCardless |
|---|---|---|---|
| mandates · transferred | bank_account_transferred | AMEND | The customer's bank account was transferred to a different bank or building society. |
| mandates · transferred | mandate_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.”.

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ą,
transferredjest 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.

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ć
- Nic w Odoo: kolejne faktury są pobierane tą samą metodą płatności.
- Jeśli klient informuje, że zmienił bank, nie trzeba prosić go o nowy mandat: przeniesienie zgłasza GoCardless.
- 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
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
