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

GoCardless mandate_expired: mandat wygasł z powodu braku użycia

Mandat GoCardless nie pozostaje aktywny w nieskończoność, jeśli się go nie używa. Gdy minie okres nieaktywności bez żadnej próby obciążenia, GoCardless oznacza go jako expired i nie pozwala już pobierać z niego płatności. Informuje o tym zdarzeniem mandatu and, jeśli czekało jakieś obciążenie do wysłania, także zdarzeniem płatności, która zostaje anulowana.

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

Co mówi GoCardless

ZdarzeniePrzyczynaTekst GoCardless
mandates · expiredmandate_expiredThe mandate is being marked as expired, because no payments have been collected against it for the dormancy period of your service user number. If you have access to the mandate reinstation API endpoint, you can use this to attempt to set this mandate up again.
payments · cancelledmandate_expiredThe mandate expired before the payment could be collected.

Opis zdarzenia jest jasny: „No collection attempts were made against the mandate within the dormancy period of your service user number.”. A konsekwencja: „As a result it has expired, and no further collections can be taken against it.”. Status mandatu przechodzi na expired, co GoCardless definiuje jako wygaśnięcie z powodu nieaktywności.

Karta przyczyny mandate_expired w GoCardless
Przyczyna, zdarzenie wygasłego mandatu, anulowana płatność i tekst GoCardless.

Kiedy się pojawia

Dotyczy mandatu, który został podpisany, a potem przestał być używany: klienta, który już nie kupuje, albo takiego, którego obciąża się tak rzadko, że między jednym obciążeniem a następnym mija cały okres nieaktywności. Liczy się czas bez prób obciążenia, a nie data podpisania.

Jeśli w chwili wygaśnięcia czekało obciążenie do wysłania, GoCardless anuluje je z tą samą przyczyną: „The mandate expired before the payment could be collected.”.

Co robi Odoo z konektorem

  • Zdarzenie wygasłego mandatu go wycofuje. Konektor traktuje mandat expired jak martwy: archiwizuje metodę płatności klienta, zapisuje w jego karcie, że mandat nie może już być używany, i tworzy aktywność „GoCardless mandate lost”. Dzieje się to tylko za pierwszym razem; jeśli inne zdarzenie przyniesie tę samą informację, mandat jest już zarchiwizowany.
  • Anulowana płatność ustawia transakcję na „Błąd” („Błąd”), którą otwiera się z faktury przyciskiem „Transakcja płatnicza” u góry, z komunikatem „GoCardless could not collect this payment (mandate_expired).”. Jeśli faktura była już opłacona tym obciążeniem, płatność zostaje anulowana i faktura znów jest nieopłacona. Ponieważ mandate_expired to jedna z przyczyn, dla których konektor archiwizuje mandat, to zdarzenie także go wycofuje jako expired.
  • W karcie metody płatności pole „Mandate Status” pokazuje expired.

Te teksty konektor zapisuje przy stosowaniu zdarzenia, bez udziału użytkownika. W bazie danych utworzonej po polsku pojawiają się tak samo; 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 direct debit mandate of … is no longer usable (mandate_expired). No further collection can be taken against it. Ask the customer to set up a new mandate.”, „GoCardless mandate lost” i „GoCardless could not collect this payment (mandate_expired).”.

Jeśli Odoo spróbuje obciążyć mandat, zanim się o tym dowie, bo zdarzenie zginęło po drodze, GoCardless odpowie mandate_is_inactive. Konektor wtedy pobiera mandat, archiwizuje go i wpisuje do transakcji własny komunikat: „The customer's GoCardless mandate is expired, so it cannot be charged. Ask the customer for a new mandate.”. Zadanie, które co godzinę odzyskuje utracone zdarzenia, w końcu sprowadza także zdarzenie mandatu.

Schemat: co GoCardless wysyła przy mandate_expired i co Odoo robi z konektorem
Schemat sporządzony na podstawie kodu konektora (17.0, 18.0, 19.0 i 20.0) oraz dokumentacji GoCardless.

Reaktywować czy poprosić o nowy?

GoCardless wskazuje dwie drogi. Aby dalej obciążać tego klienta, trzeba poprosić go o zgodę i użyć reaktywacji mandatu („you should request their permission and use the reinstate endpoint”). Ten endpoint jest jednak ograniczony: wymaga własnych stron płatności zatwierdzonych przez GoCardless („Restricted this endpoint requires approved custom payment pages”).

Konektor nie reaktywuje mandatów na produkcji: przycisk „Reinstate mandate (sandbox)” w karcie metody płatności pojawia się tylko przy dostawcy w trybie testowym i przy mandacie anulowanym, nieudanym lub wygasłym. Na produkcji drogą jest nowy mandat.

Co zrobić

  1. Porozmawiaj z klientem: jeśli nadal jest klientem, poproś go o podpisanie nowego mandatu. W Odoo będzie to nowa metoda płatności.
  2. Pobierz z nim oczekujące faktury. Obciążenia, które GoCardless anulował z powodu wygaśnięcia, nie zostaną wysłane same.
  3. Jeśli klient jest obciążany bardzo rzadko, licz się z tym, że jego mandat może wygasnąć między jednym obciążeniem a następnym.

Czy mogę obciążyć wygasły mandat, jeśli klient się zgadza?

Nie tym mandatem: GoCardless nie pozwala tworzyć z nim obciążeń. Potrzebny jest nowy albo, tam gdzie to możliwe, reaktywacja w GoCardless.

Czy można przetestować reaktywację?

Tak, w sandboxie GoCardless. Przy dostawcy w trybie testowym karta metody płatności pokazuje „Reinstate mandate (sandbox)”, gdy mandat jest wygasły.

Z naszym konektorem

W Odoo 17, 18, 19 i 20 konektor wycofuje wygasły mandat, gdy tylko GoCardless o tym poinformuje, zostawia obciążenie anulowane w błędzie z jego przyczyną i ostrzega w karcie klienta, aby przed następną fakturą poprosić o nowy mandat.

Czytaj dalej

GoCardless mandate_not_inactive: mandatu nie można reaktywowaćGoCardless zwraca mandate_not_inactive przy reaktywacji mandatu aktywnego lub już wysyłanego do banków. Kiedy można go reaktywować i co robi konektor w Odoo.Błąd mandate_is_inactive w GoCardless przy tworzeniu pobrania z OdooGoCardless zwraca mandate_is_inactive przy płatności z mandatem anulowanym, nieudanym lub wygasłym. Dlaczego tak się dzieje i jak obsługuje to konektor w Odoo.GoCardless MD01: mandate_cancelled i authorisation_disputed przy płatności SEPAKod SEPA MD01 pojawia się w GoCardless jako mandate_cancelled lub authorisation_disputed przy nieudanej, zwróconej lub anulowanej płatności. Co z tym robi Odoo.
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
  • docs.gocardless.com/docs/api-reference/events/payment
  • docs.gocardless.com/docs/api-reference/mandate
  • 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 83 w 17.0 (d203ee6), wiersz 83 w 18.0 (e2ab18b), wiersz 83 w 19.0 (ce7f5a3) i wiersz 82 w 20.0 (688d86b)
  • Kod modułu: flexigo_payment_gocardless: models/payment_token.py, wiersz 131 w 17.0 (d203ee6), wiersz 131 w 18.0 (e2ab18b), wiersz 131 w 19.0 (ce7f5a3) i wiersz 130 w 20.0 (688d86b)
  • Kod modułu: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, wiersz 1148 w 17.0 (d203ee6), wiersz 1148 w 18.0 (e2ab18b), wiersz 1148 w 19.0 (ce7f5a3) i wiersz 1155 w 20.0 (688d86b)
  • Kod modułu: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, wiersz 495 w 17.0 (d203ee6), wiersz 495 w 18.0 (e2ab18b), wiersz 495 w 19.0 (ce7f5a3) i wiersz 497 w 20.0 (688d86b)
  • Kod modułu: flexigo_payment_gocardless: const.py, wiersz 76 w 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) i 20.0 (688d86b)
  • Kod modułu: flexigo_payment_gocardless: models/payment_transaction.py, wiersz 914 w 17.0 (d203ee6), wiersz 914 w 18.0 (e2ab18b), wiersz 913 w 19.0 (ce7f5a3) i wiersz 937 w 20.0 (688d86b)
  • Kod modułu: flexigo_payment_gocardless: models/payment_transaction.py, wiersz 725 w 17.0 (d203ee6), wiersz 725 w 18.0 (e2ab18b), wiersz 724 w 19.0 (ce7f5a3) i wiersz 748 w 20.0 (688d86b)
  • Kod modułu: flexigo_payment_gocardless: models/payment_transaction.py, wiersz 754 w 17.0 (d203ee6), wiersz 754 w 18.0 (e2ab18b), wiersz 753 w 19.0 (ce7f5a3) i wiersz 777 w 20.0 (688d86b)
  • Kod modułu: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, wiersz 436 w 17.0 (d203ee6), wiersz 436 w 18.0 (e2ab18b), wiersz 436 w 19.0 (ce7f5a3) i wiersz 438 w 20.0 (688d86b)
  • Kod modułu: flexigo_payment_gocardless: models/payment_transaction.py, wiersz 278 w 17.0 (d203ee6), wiersz 278 w 18.0 (e2ab18b), wiersz 278 w 19.0 (ce7f5a3) i wiersz 289 w 20.0 (688d86b)
  • Kod modułu: flexigo_payment_gocardless: models/payment_transaction.py, wiersz 321 w 17.0 (d203ee6), wiersz 321 w 18.0 (e2ab18b), wiersz 321 w 19.0 (ce7f5a3) i wiersz 332 w 20.0 (688d86b)
  • docs.gocardless.com/docs/api-reference/responses-and-errors
  • Kod modułu: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, wiersz 1233 w 17.0 (d203ee6), wiersz 1233 w 18.0 (e2ab18b), wiersz 1233 w 19.0 (ce7f5a3) i wiersz 1240 w 20.0 (688d86b)
  • Kod modułu: flexigo_payment_gocardless: views/payment_token_views.xml, wiersz 15 w 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) i 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: views/payment_token_views.xml, wiersz 23 w 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) i 20.0 (688d86b)
  • Kod modułu: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, wiersz 998 w 17.0 (d203ee6), wiersz 998 w 18.0 (e2ab18b), wiersz 998 w 19.0 (ce7f5a3) i wiersz 1013 w 20.0 (688d86b)
  • Kod modułu: flexigo_payment_gocardless: models/payment_token.py, wiersz 162 w 17.0 (d203ee6), wiersz 162 w 18.0 (e2ab18b), wiersz 162 w 19.0 (ce7f5a3) i wiersz 161 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)
  • github.com/odoo/odoo/blob/17.0/odoo/http.py
  • github.com/odoo/odoo/blob/20.0/addons/payment/i18n/pl.po
  • github.com/odoo/odoo/blob/20.0/addons/account_payment/views/account_move_views.xml
  • Kod modułu: flexigo_payment_gocardless: __manifest__.py, wiersz 31 w 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) i 20.0 (688d86b)