Vai al contenuto principale
GoCardless API · invalid_state · reinstate

GoCardless mandate_not_inactive: il mandato non si può riattivare

Riattivare un mandato (reinstate) significa ripresentare alle banche uno annullato o scaduto. GoCardless lo rifiuta con mandate_not_inactive se il mandato è già attivo o in invio. Con il connettore la richiesta è possibile solo fuori dalla produzione, perché in produzione GoCardless limita questa funzione.

FlexigoTech · Responsabile: Víctor Gómez · Aggiornato il 6 novembre 2026

In breve

Versioni
Odoo 17, 18, 19 e 20
Verificato
nel codice del connettore, versione 17.0, 18.0, 19.0 e 20.0 · nelle fonti collegate in fondo
Lettura
4 min

Cosa dice GoCardless

ReasonTipoTesto di GoCardless
mandate_not_inactiveinvalid_state«Mandate could not be reinstated» e «it is already active or being submitted.»

GoCardless separa le due parti del testo con un trattino. Nel riferimento dell'API lo specifica: «This will fail with a mandate_not_inactive error if the mandate is already being submitted, or is active.». È un errore invalid_state e, per questi casi, GoCardless chiede di avvisare l'utente senza consentire nuovi tentativi («invalid_state → inform the end user, do not allow retry.»).

Scheda dell'errore mandate_not_inactive di GoCardless
Il reason, il suo tipo invalid_state, l'azione di riattivazione (actions/reinstate) e il testo di GoCardless.

Quali mandati si possono riattivare

La riattivazione ha condizioni più restrittive dello stato:

  • È una funzione limitata: «Restricted this endpoint requires approved custom payment pages».
  • Vale solo per un mandato annullato dalla Dashboard o dall'API: «A mandate can only be reinstated if it has been cancelled through the dashboard or the API.». Un mandato annullato dalla banca no: «Any mandate that has been cancelled by the bank cannot be reinstated.».
  • Serve per mandati annullati o scaduti («Reinstates a cancelled or expired mandate to the banks.»), e un mandato può essere ripresentato fino a 10 volte («Mandates can be resubmitted up to 10 times.»).

Dopo la richiesta il processo è quello di una nuova attivazione: arriva resubmission_requested e poi, come dice GoCardless, «so you will receive a submitted webhook, followed by a reinstated or failed webhook up to two working days later.».

Cosa fa Odoo con il connettore

Nella scheda del metodo di pagamento del cliente, il connettore mostra il pulsante «Reinstate mandate (sandbox)». Compare solo se il mandato è di GoCardless, il provider non è in produzione (in Odoo 17, 18 e 19, lo stato del provider; in Odoo 20, la casella di produzione) e «Mandate Status» è cancelled, failed o expired.

Premendolo:

  1. Il connettore chiede a GoCardless la riattivazione di quel mandato.
  2. Se GoCardless l'accetta, lo stato passa a reinstate_requested e nella scheda del cliente compare «Reinstatement of the GoCardless mandate requested. It stays unusable until the bank confirms it.». Il metodo di pagamento resta archiviato.
  3. Quando arriva reinstated, il connettore lo considera di nuovo valido: lo riattiva e scrive «The GoCardless mandate is usable again (reinstated).».

Se GoCardless risponde mandate_not_inactive, il connettore non lo intercetta: Odoo mostra «GoCardless rejected the request.» con il messaggio di GoCardless, il reason e il request_id, e il mandato resta com'era. Succede quando Odoo ritiene il mandato non più valido mentre in GoCardless è già attivo o in invio, perché i suoi eventi non sono ancora arrivati a Odoo. Dopo una richiesta accettata il pulsante non compare più, perché lo stato passa a reinstate_requested.

La nota che il mandato è di nuovo utilizzabile la scrive il connettore nell'applicare l'evento, senza intervento di nessuno. Il connettore non è tradotto in italiano: questi testi compaiono sempre in inglese, anche in un Odoo in italiano, sia che li avvii un utente sia un'azione pianificata: «The GoCardless mandate is usable again (reinstated).».

Schema: cosa invia GoCardless con mandate_not_inactive e cosa fa Odoo con il connettore
Schema realizzato a partire dal codice del connettore (17.0, 18.0, 19.0 e 20.0) e dalla documentazione di GoCardless.

Cosa fare

  1. Se compare mandate_not_inactive, cerca il mandato nella Dashboard di GoCardless. Se è attivo o in invio, non c'è nulla da riattivare: attendi l'arrivo dei suoi eventi. L'azione pianificata che ogni ora recupera gli eventi persi li porta.
  2. Se il mandato è stato annullato dalla banca, non provarci: GoCardless non riattiva questi mandati. Chiedi al cliente un nuovo mandato.
  3. In produzione, il connettore non offre la riattivazione: la strada è un nuovo mandato firmato dal cliente.
  4. Per provarlo, usa il sandbox di GoCardless con il provider in test.

Perché il pulsante compare solo fuori dalla produzione?

Perché GoCardless limita la riattivazione a chi dispone di pagine di pagamento personalizzate approvate, e il connettore la offre solo fuori dalla produzione.

Quanto tempo serve perché il mandato torni valido?

Il tempo necessario alle banche: secondo GoCardless, prima avvisa che è stata richiesta la riattivazione, poi che il mandato è stato presentato e, fino a due giorni lavorativi dopo, se è stato riattivato o se è fallito. Fino ad allora, il connettore non lo utilizza.

Con il nostro connettore

In Odoo 17, 18, 19 e 20 il connettore offre la riattivazione di un mandato annullato, fallito o scaduto solo fuori dalla produzione e non lo riutilizza finché GoCardless non conferma la riattivazione con il suo evento.

Continua a leggere

GoCardless mandate_expired: il mandato è scaduto per inutilizzoGoCardless segna un mandato come expired quando per tutto il periodo di inattività non si è tentato alcun addebito. Cosa fa Odoo e come continuare a incassare.GoCardless MD01: mandate_cancelled e authorisation_disputed in un incasso SEPAIl codice SEPA MD01 arriva da GoCardless come mandate_cancelled o authorisation_disputed, in un incasso fallito, stornato o annullato. Cosa fa Odoo con esso.Errore mandate_is_inactive di GoCardless alla creazione di un incasso da OdooGoCardless risponde mandate_is_inactive se crei un pagamento con un mandato annullato, fallito o scaduto. Perché succede e come lo gestisce il connettore.
Verificato nel codice del connettore (versione 17.0, 18.0, 19.0 e 20.0) e nelle fonti collegate

Fonti

  • docs.gocardless.com/docs/api-reference/responses-and-errors
  • docs.gocardless.com/docs/api-reference/mandate
  • docs.gocardless.com/docs/api-reference/events/mandate
  • Codice del modulo: flexigo_payment_gocardless: const.py, riga 134 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: views/payment_token_views.xml, riga 23 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: views/payment_token_views.xml, riga 22 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, riga 998 in 17.0 (d203ee6), riga 998 in 18.0 (e2ab18b), riga 998 in 19.0 (ce7f5a3) e riga 1013 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_token.py, riga 176 in 17.0 (d203ee6), riga 176 in 18.0 (e2ab18b), riga 176 in 19.0 (ce7f5a3) e riga 175 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_token.py, riga 173 in 17.0 (d203ee6), riga 173 in 18.0 (e2ab18b), riga 173 in 19.0 (ce7f5a3) e riga 172 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, riga 1004 in 17.0 (d203ee6), riga 1004 in 18.0 (e2ab18b), riga 1004 in 19.0 (ce7f5a3) e riga 1019 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_token.py, riga 170 in 17.0 (d203ee6), riga 170 in 18.0 (e2ab18b), riga 170 in 19.0 (ce7f5a3) e riga 169 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_provider.py, riga 397 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_provider.py, riga 462 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, riga 521 in 17.0 (d203ee6), riga 521 in 18.0 (e2ab18b), riga 521 in 19.0 (ce7f5a3) e riga 523 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: const.py, riga 158 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_token.py, riga 77 in 17.0 (d203ee6), riga 77 in 18.0 (e2ab18b), riga 77 in 19.0 (ce7f5a3) e riga 76 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, riga 1157 in 17.0 (d203ee6), riga 1157 in 18.0 (e2ab18b), riga 1157 in 19.0 (ce7f5a3) e riga 1164 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: views/payment_token_views.xml, riga 15 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, riga 785 in 17.0 (d203ee6), riga 785 in 18.0 (e2ab18b), riga 785 in 19.0 (ce7f5a3) e riga 800 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: const.py, riga 117 in 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
  • github.com/odoo/odoo/blob/17.0/odoo/http.py
  • Codice del modulo: flexigo_payment_gocardless: __manifest__.py, riga 31 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)