Przejdź do głównej treści
GoCardless · SEPA Core · nieudana płatność i anulowany mandat

GoCardless bank_account_closed: AC04 i MD07, konto już nie istnieje

bank_account_closed to błąd, którego nie da się cofnąć: konto, na którym klient podpisał mandat, zostało zamknięte albo jego posiadacz zmarł. GoCardless informuje o tym w nieudanej płatności i w mandacie, który zostaje anulowany. Żadna ponowna próba tego nie naprawi.

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

ZdarzenieKod SEPA CoreTekst GoCardless
payments · failedAC04The bank account for this payment has been closed. The mandate will also be cancelled.
payments · failedMD07This payment failed because the customer is deceased.
mandates · cancelledAC04The bank account for this mandate has been closed. Any subscriptions and pending payment will also be cancelled.
mandates · cancelledMD07This mandate has been cancelled because the customer is deceased.

Przyczyna jest w każdym z czterech wierszy ta sama, bank_account_closed; kod wskazuje powód. Zwróć uwagę na trzeci wiersz: oprócz mandatu GoCardless anuluje też oczekujące płatności z tego mandatu, które dotrą do Ciebie jako płatności anulowane z tą samą przyczyną.

Karta przyczyny bank_account_closed w GoCardless
Przyczyna, jej kody AC04 i MD07 oraz tekst GoCardless dla AC04.

Dwa zdarzenia dla tego samego faktu

Zamknięcie konta trafia do Odoo dwa razy: z nieudaną płatnością i z anulowanym mandatem. Konektor obsługuje oba: pierwsze zdarzenie, które przyjdzie, archiwizuje mandat i wysyła powiadomienie, a drugie zastaje mandat już zarchiwizowany i nie powtarza powiadomienia. Jeśli któreś nie dotrze przez webhook, zadanie cykliczne, które co godzinę pyta GoCardless o zgubione zdarzenia, je odzyska, do 100 na przebieg.

Co robi konektor

  1. Przechodzi transakcję w stan błędu z komunikatem „GoCardless could not collect this payment (bank_account_closed).” i zapisuje przyczynę.
  2. Jeśli faktura była już opłacona tym poborem, anuluje płatność w Odoo i faktura wraca do stanu oczekującego.
  3. Archiwizuje sposób płatności klienta: bank_account_closed to jedna z czterech przyczyn, dla których konektor uznaje mandat za martwy, obok mandate_cancelled, mandate_expired i authorisation_disputed.
  4. Zapisuje to w karcie klienta: „The GoCardless direct debit mandate of … is no longer usable (bank_account_closed). No further collection can be taken against it. Ask the customer to set up a new mandate.”
  5. Tworzy aktywność „GoCardless mandate lost”, żeby ktoś zajął się tym przed następną fakturą.

Zarchiwizowany mandat pozostaje w Odoo jako historia, ale nie jest już proponowany do poboru. Transakcję otwiera się z faktury, przyciskiem „Transakcja płatnicza” u góry; menu transakcji widoczne jest tylko w trybie deweloperskim, a w Odoo 20 nie istnieje.

Te trzy teksty konektor zapisuje przy stosowaniu zdarzenia, bez udziału człowieka. Są one ogólnie dostępne tylko w języku angielskim, także w polskiej instancji Odoo: konektor nie jest przetłumaczony na polski, więc wszystkie jego komunikaty i etykiety pojawiają się zawsze po angielsku. Dokładnie te trzy cytaty zapisują się w bazie danych: „GoCardless could not collect this payment (bank_account_closed).”, „The GoCardless direct debit mandate of … is no longer usable (bank_account_closed). No further collection can be taken against it. Ask the customer to set up a new mandate.” oraz „GoCardless mandate lost”.

Jak sprawdzić, czy to AC04 czy MD07

Z poziomu Odoo nie da się tego rozróżnić. Przyczyna jest ta sama, konektor zapisuje przyczynę, a nie kod SEPA, a notatka w karcie klienta i aktywność mówią to samo w obu przypadkach. Kod zobaczysz w GoCardless. Według ich centrum pomocy powód każdej porażki pojawia się w osi czasu płatności, w Dashboardzie („You are able to view the reason for a payment failure in the status timeline of the payment in your GoCardless dashboard.”). W trybie zaawansowanym dokładny kod znajduje się też w zdarzeniu (details.reason_code), a Dashboard przechowuje wysyłki webhooków z ostatnich 3 miesięcy w Developers > Webhooks, wraz z ich treścią.

Jeśli kod to MD07

MD07 nie jest problemem technicznym. Posiadacz konta zmarł i mandat zostaje anulowany. Zaległych faktur tego klienta nie uda się pobrać przez polecenie zapłaty, a sposób ich odzyskania to kwestia dla Twojego doradcy podatkowego, nie konektora. Rozsądnie jest sprawdzić zaplanowane płatności i subskrypcje tego klienta w Odoo, aby nie generowały się kolejne. Notatka w Odoo prosi o nowy mandat także w tym przypadku, bo zna tylko przyczynę: przy MD07 o nowy mandat nie proś.

Co zrobić przy AC04

  • Skontaktuj się z klientem: ma nowe konto, albo je będzie mieć, i musi z nim podpisać mandat.
  • Gdy podpisze, nowy mandat pojawi się w Odoo jako kolejny sposób płatności; stary pozostaje zarchiwizowany.
  • Pobierz nowym mandatem zaległe faktury.
Schemat: co GoCardless wysyła przy bank_account_closed i co Odoo robi przez konektor
Schemat sporządzony na podstawie kodu konektora (17.0, 18.0, 19.0 i 20.0) oraz dokumentacji GoCardless.

Czy mogę ponowić płatność z bank_account_closed?

Nie ma to sensu: konto nie istnieje. Ponadto konektor archiwizuje mandat, a przy zarchiwizowanym mandacie przycisk „Retry collection” nie pojawia się w transakcji.

A jeśli klient zmienił bank przez usługę przeniesienia kont?

To nie jest zamknięcie: GoCardless przekazuje to jako mandat przeniesiony, z przyczyną bank_account_transferred, a mandat pozostaje ważny.

Z naszym konektorem

Konektor GoCardless dla Odoo 17, 18, 19 i 20 robi przy bank_account_closed to, co zrobiłaby uważna osoba: oznacza pobranie jako nieudane, ponownie otwiera fakturę, wycofuje martwy mandat, żeby nikt go nie użył, i zostawia w karcie klienta ostrzeżenie z przyczyną.

Czytaj dalej

GoCardless invalid_bank_details: AC01 i BE06, wskazany rachunek nie istniejeGoCardless invalid_bank_details z kodem AC01 lub BE06: rachunek z mandatu nie istnieje. Kiedy się pojawia przy płatności i mandacie oraz co robi konektor.GoCardless direct_debit_not_enabled: AG01 i AC06, konto, które nie obsługuje polecenia zapłatyGoCardless direct_debit_not_enabled z AG01 lub AC06: konto klienta nie obsługuje poleceń zapłaty SEPA albo jest zablokowane. Co robi Odoo z konektorem.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.
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

  • Kod modułu: flexigo_payment_gocardless: const.py, wiersz 15 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 442 w 17.0 (d203ee6), wiersz 442 w 18.0 (e2ab18b), wiersz 441 w 19.0 (ce7f5a3) i wiersz 456 w 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: const.py, wiersz 145 w 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) i 20.0 (688d86b)
  • docs.gocardless.com/docs/api-reference/events/mandate
  • 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: 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 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: 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: const.py, wiersz 117 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 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: 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: __manifest__.py, wiersz 31 w 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) i 20.0 (688d86b)
  • docs.gocardless.com/docs/api-reference/events/payment
  • Kod modułu: flexigo_payment_gocardless: views/payment_transaction_views.xml, wiersz 13 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 63 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 418 w 17.0 (d203ee6), wiersz 418 w 18.0 (e2ab18b), wiersz 417 w 19.0 (ce7f5a3) i wiersz 432 w 20.0 (688d86b)
  • Kod modułu: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, wiersz 1016 w 17.0 (d203ee6), wiersz 1016 w 18.0 (e2ab18b), wiersz 1016 w 19.0 (ce7f5a3) i wiersz 1031 w 20.0 (688d86b)
  • docs.gocardless.com/docs/api-reference/webhooks
  • github.com/odoo/odoo/blob/17.0/odoo/http.py
  • support.gocardless.com/hc/en-gb/articles/360001467265
  • Kod modułu: flexigo_payment_gocardless: const.py, wiersz 66 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