Skip to main content

GoCardless and Odoo: practical guides

20 guides on GoCardless and Odoo (Odoo 17, 18, 19 and 20): error guides. Every figure is checked in the source code or the linked source.

Error guides

GoCardless internal_server_error and request_timed_out: the failure is on GoCardlessGoCardless returns 500 internal_server_error or 504 request_timed_out when it fails on its side. What the connector does in Odoo and how to avoid double chargesGoCardless invalid_bank_details: AC01 and BE06, the bank account specified does not existGoCardless invalid_bank_details with AC01 or BE06: the mandate's bank account does not exist. Why it appears and what Odoo does with the connector.GoCardless bank_account_closed: AC04 and MD07, the account no longer existsGoCardless bank_account_closed with AC04 (account closed) or MD07 (holder deceased): the mandate is cancelled. What Odoo does with the invoice and customer.GoCardless direct_debit_not_enabled: AG01 and AC06, an account that does not accept direct debitGoCardless direct_debit_not_enabled with AG01 or AC06: the customer's account does not accept SEPA direct debits, or is blocked. What Odoo does next.GoCardless insufficient_funds (AM04): the customer's account had no fundsA GoCardless direct debit fails with insufficient_funds and SEPA code AM04. What it means, when Success+ retries it, and what Odoo does with the invoice.GoCardless mandate_expired: the mandate expired from not being usedGoCardless marks a mandate as expired when no collection has been attempted with it during the whole dormancy period. What Odoo does and how to keep collecting.GoCardless 409 idempotent_creation_conflict: the payment already existedGoCardless returns 409 idempotent_creation_conflict when an idempotency key already created something. Why that is fine: it prevents a double charge.GoCardless mandate_is_inactive error when creating a collection from OdooGoCardless returns mandate_is_inactive when a payment is created against a cancelled, failed or expired mandate. Why it happens and how Odoo handles it.GoCardless MD01: mandate_cancelled and authorisation_disputed in a SEPA collectionSEPA code MD01 reaches GoCardless as mandate_cancelled or authorisation_disputed, on a failed, charged-back or cancelled collection. What Odoo does with it.GoCardless MD06: the customer asks their bank to refund a collectionThe customer asks their bank to refund a GoCardless direct debit: charged_back, refund_requested and MD06. What happens to the invoice and the mandate in Odoo.GoCardless 429 rate_limit_exceeded: too many requests per minuteGoCardless returns 429 rate_limit_exceeded above 1,600 requests per minute. How the connector waits and retries, and what to do if it fails again.GoCardless refer_to_payer: MS02, MS03, RR04 and SL01 in a SEPA collectionrefer_to_payer groups the SEPA codes MS02, MS03, RR04 and SL01 in GoCardless. What each one means, why the mandate stays active and how Odoo handles it.GoCardless refund_payment_invalid_state: this collection cannot be refunded yetGoCardless returns refund_payment_invalid_state if the payment is neither confirmed nor paid_out. GoCardless and connector refund timing rules.GoCardless total_amount_confirmation_invalid: the total refunded does not matchGoCardless rejects a refund with total_amount_confirmation_invalid if the total refunded does not match, or with number_of_refunds_exceeded after 5.GoCardless mandate_not_inactive: the mandate cannot be reinstatedGoCardless returns mandate_not_inactive when you reinstate an active or already submitted mandate. When you can reinstate one and what Odoo does.GoCardless mandate_replaced: the mandate has a replacement (the connector texts are in English)GoCardless cancels a mandate and replaces it with a new one (scheme_identifier_changed). Charging the old one returns mandate_replaced. What the connector does.GoCardless retry_failed error when retrying a collection from OdooGoCardless returns retry_failed when a payment has not failed or no longer allows retries. When Odoo shows “Retry collection” and what the connector does.GoCardless access_token_revoked: Odoo can no longer talk to your accountGoCardless rejects requests from a dead token with access_token_revoked, access_token_not_active or unauthorized. What Odoo does and how to reconnect.GoCardless bank_account_transferred: AMEND, the mandate moves to another accountGoCardless sends transferred with the AMEND code when the mandate moves to another account. What the Odoo connector does and what you need to do.GoCardless webhook: 498 Token Invalid, 204 and the Webhook-Signature headerGoCardless stops retrying on 498 (signature mismatch) and 204 (unknown event). What Odoo 17, 18, 19 and 20 reply, and why Odoo 20 sends a 401.