Què diu GoCardless
| Esdeveniment | Causa | Codi SEPA Core | Text de GoCardless |
|---|---|---|---|
| payments · charged_back | refund_requested | MD06 | This payment was charged back by the customer's bank at the customer's request within the 8 week cool-off period. |
El text ho diu gairebé tot: la devolució la demana el client, la tramita el seu banc i cap dins del període de 8 setmanes que GoCardless anomena cool-off period. No és un error del cobrament: els diners van arribar, i ara tornen.

Quan te n'adones
Una devolució MD06 arriba amb el cobrament ja tancat. A Odoo, la transacció estava feta i la factura, pagada: el connector dona un cobrament per fet quan GoCardless el marca confirmed o paid_out. Després hi ha un altre esdeveniment que convé conèixer, chargeback_settled: «This charged back payment has been settled against a payout.». És a dir, la devolució es descompta d'una liquidació de GoCardless, no te la carreguen a part.
Si el banc del client es fa enrere, GoCardless envia chargeback_cancelled i el pagament torna a comptar com a cobrat. Entre una cosa i l'altra poden passar dies, i convé no prendre decisions amb el client sense mirar abans en quin estat és la transacció a Odoo: és el reflex de l'últim esdeveniment que va enviar GoCardless. La transacció s'obre des de la factura, amb el botó «Transacció de pagament» de dalt; el menú de transaccions només surt en mode desenvolupador, i a Odoo 20 no existeix.
Què fa Odoo amb el connector
| Pas | Què canvia |
|---|---|
| La transacció | Passa de «Confirmat» a «Error»: una devolució desfà un cobrament que estava bé. |
| El missatge | «GoCardless reported a chargeback for this payment (refund_requested). The funds have been taken back and will be deducted from a future payout.» |
| El pagament a Odoo | S'anul·la, i la factura torna a estar pendent de cobrament. |
| El mandat | Continua sent vàlid: refund_requested no és una de les causes amb què el connector arxiva el mandat. |
El missatge l'escriu el connector en aplicar l'esdeveniment, sense ningú 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: «GoCardless reported a chargeback for this payment (refund_requested). The funds have been taken back and will be deducted from a future payout.».
La transacció queda en error amb el mandat actiu, però no mostra el botó «Retry collection». Des de la versió 1.1.4, el connector només l'ofereix si el pagament és en failed a GoCardless, i un pagament retornat és en charged_back. Va en línia amb la documentació de GoCardless: el reintent només val per a pagaments que han fallat, i a un pagament retornat li respondria retry_failed.
Que el mandat continuï viu és el correcte. Demanar la devolució d'un rebut no és revocar l'autorització; si el client volgués això, la causa seria una altra (mandate_cancelled, amb el codi MD01). Amb el chargeback_cancelled, el connector torna a donar la transacció per cobrada.
Què fer
Una devolució MD06 és una conversa amb el client abans que un problema tècnic. Pregunta què va passar: un import que no esperava, un servei amb el qual no està conforme o un càrrec duplicat. Amb la resposta:
- Si la factura és correcta i el client ho accepta, cobra-la una altra vegada amb un cobrament nou, amb el seu mètode de pagament desat: el mandat continua disponible. La transacció retornada no té botó de reintent.
- Si el client tenia raó, emet la factura rectificativa que correspongui i deixa l'original sense cobrar.
- Si les devolucions es repeteixen amb el mateix client, planteja't una altra forma de pagament per a ell.
Quant de temps té el client per retornar un cobrament?
Per a un MD06, el text de GoCardless parla d'un període de 8 setmanes: la devolució la demana el client al seu banc dins d'aquest termini. Per això un cobrament SEPA confirmat no és del tot ferm durant aquest temps.
On veig que va ser una devolució i no un error?
A la transacció, que obres des de la factura amb el botó «Transacció de pagament»: el camp «GoCardless Cause» diu refund_requested i el missatge parla d'una devolució, no d'un cobrament que no es va poder fer.

Amb el nostre connector
El connector de GoCardless per a Odoo 17, 18, 19 i 20 no deixa una factura marcada com a pagada amb uns diners que ja no tens: anul·la el pagament, reobre la factura i desa la causa. I no castiga el client arxivant el seu mandat per una devolució puntual.
Continua llegint
Comprovat al codi del connector (versió 17.0, 18.0, 19.0 i 20.0) i a les fonts enllaçades
Fonts
- Codi del mòdul: flexigo_payment_gocardless: const.py, línia 15 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 694 a 17.0 (d203ee6), línia 694 a 18.0 (e2ab18b), línia 693 a 19.0 (ce7f5a3) i línia 717 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: const.py, línia 41 a 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) i 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 713 a 17.0 (d203ee6), línia 713 a 18.0 (e2ab18b), línia 712 a 19.0 (ce7f5a3) i línia 736 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 529 a 17.0 (d203ee6), línia 529 a 18.0 (e2ab18b), línia 529 a 19.0 (ce7f5a3) i línia 531 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, línia 356 a 17.0 (d203ee6), línia 356 a 18.0 (e2ab18b), línia 356 a 19.0 (ce7f5a3) i línia 358 a 20.0 (688d86b)
- docs.gocardless.com/docs/api-reference/events/payment
- 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)
- docs.gocardless.com/docs/api-reference/events/mandate
- Codi del mòdul: flexigo_payment_gocardless: views/payment_transaction_views.xml, línia 13 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 63 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 418 a 17.0 (d203ee6), línia 418 a 18.0 (e2ab18b), línia 417 a 19.0 (ce7f5a3) i línia 432 a 20.0 (688d86b)
- github.com/odoo/odoo/blob/20.0/addons/payment/i18n/ca.po
- github.com/odoo/odoo/blob/20.0/addons/payment/views/payment_transaction_views.xml
- Codi del mòdul: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, línia 1016 a 17.0 (d203ee6), línia 1016 a 18.0 (e2ab18b), línia 1016 a 19.0 (ce7f5a3) i línia 1031 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, línia 567 a 17.0 (d203ee6), línia 567 a 18.0 (e2ab18b), línia 567 a 19.0 (ce7f5a3) i línia 569 a 20.0 (688d86b)
- docs.gocardless.com/docs/api-reference/payment
- docs.gocardless.com/docs/api-reference/responses-and-errors
- Codi del mòdul: flexigo_payment_gocardless: models/payment_transaction.py, línia 469 a 17.0 (d203ee6), línia 469 a 18.0 (e2ab18b), línia 468 a 19.0 (ce7f5a3) i línia 487 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, línia 521 a 17.0 (d203ee6), línia 521 a 18.0 (e2ab18b), línia 521 a 19.0 (ce7f5a3) i línia 523 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: models/payment_provider.py, línia 397 a 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) i 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: views/payment_transaction_views.xml, línia 22 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/account_payment/views/account_move_views.xml
- Codi del mòdul: flexigo_payment_gocardless: models/payment_transaction.py, línia 435 a 17.0 (d203ee6), línia 435 a 18.0 (e2ab18b), línia 434 a 19.0 (ce7f5a3) i línia 449 a 20.0 (688d86b)
- Codi del mòdul: flexigo_payment_gocardless: models/payment_transaction.py, línia 247 a 17.0 (d203ee6), línia 247 a 18.0 (e2ab18b), línia 247 a 19.0 (ce7f5a3) i línia 258 a 20.0 (688d86b)
