Salta al contingut principal
GoCardless · SEPA Core · retornament (chargeback)

GoCardless MD06: el client demana al seu banc que li retorni un cobrament

Un adeudament SEPA cobrat no és definitiu: durant 8 setmanes, el client pot demanar al seu banc que li'l retorni. Quan ho fa, GoCardless envia l'esdeveniment de pagament charged_back amb la causa refund_requested i el codi MD06, i et retira els diners.

FlexigoTech · Responsable: Víctor Gómez · Actualitzat el 6 de novembre de 2026

L'essencial

Versions
Odoo 17, 18, 19 i 20
Comprovat
al codi del connector, versió 17.0, 18.0, 19.0 i 20.0 · a les fonts enllaçades al final
Lectura
4 min

Què diu GoCardless

EsdevenimentCausaCodi SEPA CoreText de GoCardless
payments · charged_backrefund_requestedMD06This 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.

Targeta de la causa refund_requested de GoCardless
La causa, el seu codi SEPA Core MD06 i el text amb què la documenta GoCardless.

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

PasQuè 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 OdooS'anul·la, i la factura torna a estar pendent de cobrament.
El mandatContinua 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:

  1. 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.
  2. Si el client tenia raó, emet la factura rectificativa que correspongui i deixa l'original sense cobrar.
  3. 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.

Esquema: què envia GoCardless amb una devolució MD06 i què fa Odoo amb el connector
Esquema fet a partir del codi del connector (17.0, 18.0, 19.0 i 20.0) i de la documentació de GoCardless; el ratllat és el que el connector no fa amb aquesta causa.

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

GoCardless MD01: mandate_cancelled i authorisation_disputed en un cobrament SEPAEl codi SEPA MD01 arriba a GoCardless com a mandate_cancelled o authorisation_disputed, en un cobrament fallit, retornat o cancel·lat. Què fa Odoo amb ell.GoCardless insufficient_funds (AM04): el compte del client no tenia saldoUn deute de GoCardless falla amb insufficient_funds i el codi SEPA AM04. Què vol dir, quan el reintenta Success+ i què fa Odoo amb la factura.GoCardless refer_to_payer: MS02, MS03, RR04 i SL01 en un cobrament SEPArefer_to_payer agrupa a GoCardless els codis SEPA MS02, MS03, RR04 i SL01. Què indica cadascun, per què el mandat continua viu i com ho gestiona Odoo.
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)