Què diu GoCardless
| Esdeveniment | Causa | Text de GoCardless |
|---|---|---|
| mandates · expired | mandate_expired | The 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 · cancelled | mandate_expired | The mandate expired before the payment could be collected. |
La descripció de l'esdeveniment ho deixa clar: «No collection attempts were made against the mandate within the dormancy period of your service user number.». I la conseqüència: «As a result it has expired, and no further collections can be taken against it.». L'estat del mandat passa a expired, que GoCardless defineix com a caducat per inactivitat.

Quan apareix
Li passa a un mandat que es va signar i després va deixar d'usar-se: un client que ja no compra, o un al qual es cobra tan de tant en tant que entre un cobrament i el següent passa tot el període d'inactivitat. Ho compta el temps sense intents de cobrament, no la data de la signatura.
Si quan caducava hi havia un cobrament esperant a presentar-se, GoCardless el cancel·la amb la mateixa causa: «The mandate expired before the payment could be collected.».
Què fa Odoo amb el connector
- L'esdeveniment del mandat caducat el retira. El connector dona per mort un mandat
expired: arxiva el mètode de pagament del client, escriu a la seva fitxa que el mandat ja no es pot usar i crea l'activitat «GoCardless mandate lost». Només ho fa la primera vegada; si un altre esdeveniment porta la mateixa notícia, ja el troba arxivat. - El pagament cancel·lat passa a «Error» la seva transacció, que s'obre des de la factura amb el botó «Transacció de pagament» de dalt, amb «GoCardless could not collect this payment (mandate_expired).». Si la factura ja estava pagada amb aquest cobrament, anul·la el pagament i la factura torna a estar pendent. I com que
mandate_expiredés una de les causes amb què el connector arxiva el mandat, aquest esdeveniment també el retira, com aexpired. - A la fitxa del mètode de pagament, «Mandate Status» diu
expired.
Aquests textos els escriu el connector en aplicar l'esdeveniment, sense ningú al davant. El connector no està traduït al català: aquests textos surten sempre en anglès, també en un Odoo en català, tant si els llança un usuari com una tasca programada: «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).».
Si Odoo intenta cobrar amb el mandat abans d'assabentar-se'n, perquè l'esdeveniment es va perdre pel camí, GoCardless contesta mandate_is_inactive. El connector consulta llavors el mandat, l'arxiva i posa a la transacció el seu propi missatge: «The customer's GoCardless mandate is expired, so it cannot be charged. Ask the customer for a new mandate.». La tasca que cada hora recupera els esdeveniments perduts acaba portant també l'esdeveniment del mandat.

Reactivar-lo o demanar-ne un altre?
GoCardless deixa dos camins. Per seguir cobrant a aquest client, diu, cal demanar-li permís i usar la reactivació del mandat («you should request their permission and use the reinstate endpoint»). Però aquest endpoint és restringit: demana pàgines de pagament pròpies aprovades per GoCardless («Restricted this endpoint requires approved custom payment pages»).
El connector no reactiva mandats en producció: el botó «Reinstate mandate (sandbox)» de la fitxa del mètode de pagament només surt amb el proveïdor en proves i amb el mandat cancel·lat, fallit o caducat. En producció, el camí és un mandat nou.
Què fer
- Parla amb el client: si segueix sent client, demana-li que signi un mandat nou. A Odoo serà un mètode de pagament nou.
- Cobra amb ell les factures pendents. Els cobraments que GoCardless va cancel·lar per la caducitat no es presentaran sols.
- Si un client es cobra molt de tant en tant, compta que el seu mandat pot caducar entre un cobrament i un altre.
Puc cobrar amb un mandat caducat si el client hi està d'acord?
Amb aquest mandat, no: GoCardless no deixa crear cobraments amb ell. Cal un de nou o, on es pugui usar, la reactivació de GoCardless.
Es pot provar la reactivació?
Sí, al sandbox de GoCardless. Amb el proveïdor en proves, la fitxa del mètode de pagament mostra «Reinstate mandate (sandbox)» quan el mandat està caducat.
Amb el nostre connector
A Odoo 17, 18, 19 i 20 el connector retira el mandat caducat tan bon punt GoCardless ho comunica, deixa el cobrament cancel·lat en error amb la seva causa i avisa a la fitxa del client, per demanar un mandat nou abans de la següent factura.
Continua llegint
Comprovat al codi del connector (versió 17.0, 18.0, 19.0 i 20.0) i a les fonts enllaçades
Fonts
- docs.gocardless.com/docs/api-reference/events/mandate
- docs.gocardless.com/docs/api-reference/events/payment
- docs.gocardless.com/docs/api-reference/mandate
- Codi del mòdul: flexigo_payment_gocardless: const.py, línia 33 a 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) i 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: models/payment_token.py, línia 83 a 17.0 (d203ee6), línia 83 a 18.0 (e2ab18b), línia 83 a 19.0 (ce7f5a3) i línia 82 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: models/payment_token.py, línia 131 a 17.0 (d203ee6), línia 131 a 18.0 (e2ab18b), línia 131 a 19.0 (ce7f5a3) i línia 130 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, línia 1148 a 17.0 (d203ee6), línia 1148 a 18.0 (e2ab18b), línia 1148 a 19.0 (ce7f5a3) i línia 1155 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, línia 495 a 17.0 (d203ee6), línia 495 a 18.0 (e2ab18b), línia 495 a 19.0 (ce7f5a3) i línia 497 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: const.py, línia 76 a 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) i 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: models/payment_transaction.py, línia 914 a 17.0 (d203ee6), línia 914 a 18.0 (e2ab18b), línia 913 a 19.0 (ce7f5a3) i línia 937 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: models/payment_transaction.py, línia 725 a 17.0 (d203ee6), línia 725 a 18.0 (e2ab18b), línia 724 a 19.0 (ce7f5a3) i línia 748 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: models/payment_transaction.py, línia 754 a 17.0 (d203ee6), línia 754 a 18.0 (e2ab18b), línia 753 a 19.0 (ce7f5a3) i línia 777 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, línia 436 a 17.0 (d203ee6), línia 436 a 18.0 (e2ab18b), línia 436 a 19.0 (ce7f5a3) i línia 438 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: models/payment_transaction.py, línia 278 a 17.0 (d203ee6), línia 278 a 18.0 (e2ab18b), línia 278 a 19.0 (ce7f5a3) i línia 289 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: models/payment_transaction.py, línia 321 a 17.0 (d203ee6), línia 321 a 18.0 (e2ab18b), línia 321 a 19.0 (ce7f5a3) i línia 332 a 20.0 (688d86b)
- docs.gocardless.com/docs/api-reference/responses-and-errors
- Codi del mòdul: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, línia 1233 a 17.0 (d203ee6), línia 1233 a 18.0 (e2ab18b), línia 1233 a 19.0 (ce7f5a3) i línia 1240 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: views/payment_token_views.xml, línia 15 a 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) i 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, línia 785 a 17.0 (d203ee6), línia 785 a 18.0 (e2ab18b), línia 785 a 19.0 (ce7f5a3) i línia 800 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: views/payment_token_views.xml, línia 23 a 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) i 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, línia 998 a 17.0 (d203ee6), línia 998 a 18.0 (e2ab18b), línia 998 a 19.0 (ce7f5a3) i línia 1013 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: models/payment_token.py, línia 162 a 17.0 (d203ee6), línia 162 a 18.0 (e2ab18b), línia 162 a 19.0 (ce7f5a3) i línia 161 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: const.py, línia 117 a 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/ca.po
- github.com/odoo/odoo/blob/20.0/addons/account_payment/views/account_move_views.xml
- Codi del mòdul: flexigo_payment_gocardless: __manifest__.py, línia 31 a 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) i 20.0 (688d86b)
