diff --git a/models/account_banking_mandate.py b/models/account_banking_mandate.py
index 052afb5699ae64c1e34e83e06e4da4670bfa8287..6de48460685bbaf08960708a90c79e2082d937e9 100644
--- a/models/account_banking_mandate.py
+++ b/models/account_banking_mandate.py
@@ -44,7 +44,7 @@ class AccountBankingMandate(models.Model):
         )
         return invoice_ids
 
-    def _change_invoice_mandate(self, invoice):
+    def _change_invoice_mandate(self, invoice_ids):
         """
         Affecte le mandat courant pur la facture passée en paramètre
         :param invoice : objet account.move
@@ -54,10 +54,32 @@ class AccountBankingMandate(models.Model):
         )
         if not payment_mode:
             raise UserError(_("Aucun mode de prélèvement SEPA configuré."))
-        invoice.update(
-            {
-                "payment_mode_id": payment_mode.id,
-                "partner_bank_id": self.partner_bank_id.id,
-                "mandate_id": self.id,
-            }
+
+        for invoice in invoice_ids:
+            invoice.update(
+                {
+                    "payment_mode_id": payment_mode.id,
+                    "partner_bank_id": self.partner_bank_id.id,
+                    "mandate_id": self.id,
+                }
+            )
+
+    def _remove_invoice_mandate(self, invoice_ids):
+        """
+        Supprime le mandat courant pur la facture passée en paramètre
+        :param invoice : objet account.move
+        """
+        payment_mode = self.env["account.payment.mode"].search(
+            [("name", "ilike", "Virement")]
         )
+        if not payment_mode:
+            raise UserError(_("Aucun mode de paiement 'Virement' configuré."))
+        for invoice in invoice_ids:
+            invoice.update(
+                {
+                    "payment_mode_id": payment_mode.id,
+                    "partner_bank_id": False,
+                    "mandate_id": False,
+                }
+            )
+        self.partner_id.customer_payment_mode_id = payment_mode
diff --git a/views/account_banking_mandate.xml b/views/account_banking_mandate.xml
index 8f7189dc362bbb6b77452db959fa6d28a01811c6..4e7a24a38a14c0e4499fd8ab708c93b49634b658 100644
--- a/views/account_banking_mandate.xml
+++ b/views/account_banking_mandate.xml
@@ -26,8 +26,18 @@
                             class="btn-outline-info"
                             style="margin-left: 15px;"
                             string="Affecter ce mandat aux factures ouvertes"
+                            context="{'action_type': 'update_mandate'}"
                             attrs="{'invisible': [('state', '!=', 'valid')]}"
                         />
+                        <button
+                            name="set_invoice_mandate"
+                            type="object"
+                            class="btn-outline-danger"
+                            style="margin-left: 15px;"
+                            string="Affecter 'Virement' aux factures et cotisations ouvertes"
+                            context="{'action_type': 'remove_mandate'}"
+                            attrs="{'invisible': [('state', 'not in', ['expired', 'cancel'])]}"
+                        />
                     </div>
                 </xpath>
             </field>
diff --git a/wizard/__init__.py b/wizard/__init__.py
index e0feed5416fab7eb083ee6cee672ffb42d5c700f..7ba516d5fb8846cac5148ab8d7baa7fe622ad4e4 100644
--- a/wizard/__init__.py
+++ b/wizard/__init__.py
@@ -4,3 +4,4 @@
 from . import account_banking_mandate_change_wizard
 from . import account_move_reversal
 from . import account_payment_line_create
+from . import scop_deces_wizard
diff --git a/wizard/account_banking_mandate_change_wizard.py b/wizard/account_banking_mandate_change_wizard.py
index 45fafcbc6e3339ef4fb1bbe9d8e870d98505771e..a7a5a54d62b8e0f0253829b178fb27eb83a3e783 100644
--- a/wizard/account_banking_mandate_change_wizard.py
+++ b/wizard/account_banking_mandate_change_wizard.py
@@ -35,5 +35,8 @@ class AccountBankingMandateChange(models.TransientModel):
     )
 
     def change_mandate(self):
-        for invoice in self.invoice_ids:
-            self.mandate_id._change_invoice_mandate(invoice)
+        if self.env.context.get("action_type") == "update_mandate":
+            self.mandate_id._change_invoice_mandate(self.invoice_ids)
+
+        elif self.env.context.get("action_type") == "remove_mandate":
+            self.mandate_id._remove_invoice_mandate(self.invoice_ids)
diff --git a/wizard/account_banking_mandate_change_wizard.xml b/wizard/account_banking_mandate_change_wizard.xml
index b3ebc0909444e62e59b999648d14d3aac332c463..2e796d1d361f911fc1a00b78b4ad03919a56670c 100644
--- a/wizard/account_banking_mandate_change_wizard.xml
+++ b/wizard/account_banking_mandate_change_wizard.xml
@@ -32,6 +32,8 @@
                                 string="Partenaire"
                             />
                             <field name="invoice_date_due" />
+                            <field name="payment_mode_id" optional="show" />
+                            <field name="mandate_id" optional="show" />
                             <field name="amount_untaxed_signed" string="Total HT" />
                             <field
                                 name="amount_total_signed"
@@ -63,6 +65,15 @@
                             string="Affecter le mandat"
                             class="btn-primary"
                             confirm="Valider le changement de mandat ?"
+                            invisible="context.get('action_type') != 'update_mandate'"
+                        />
+                        <button
+                            name="change_mandate"
+                            type="object"
+                            string="Supprimer le mandat"
+                            class="btn-danger"
+                            confirm="Valider la suppression des mandats et le passage en virement ?"
+                            invisible="context.get('action_type') != 'remove_mandate'"
                         />
                         <button special="cancel" string="Cancel" />
                     </footer>
diff --git a/wizard/scop_deces_wizard.py b/wizard/scop_deces_wizard.py
new file mode 100644
index 0000000000000000000000000000000000000000..d2954c0b3ea0b3f2c7ab883dd9a93c4425ec296a
--- /dev/null
+++ b/wizard/scop_deces_wizard.py
@@ -0,0 +1,29 @@
+# © 2020 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from odoo import models
+
+
+class ScopDecesWizard(models.TransientModel):
+    _inherit = "scop.deces.wizard"
+
+    def deces_action(self):
+        super().deces_action()
+        partner_id = self.env["res.partner"].browse(self.partner_id)
+        mandate_ids = self.env["account.banking.mandate"].search(
+            [
+                ("partner_id", "=", partner_id.id),
+                ("state", "=", "valid"),
+                ("company_id", "=", self.env.company.id),
+            ]
+        )
+        if mandate_ids:
+            for mandate in mandate_ids:
+                mandate.update({"state": "expired"})
+                invoice_ids = self.env["account.move"].search([
+                    ("mandate_id", "=", mandate.id),
+                    ("move_type", "in", ("out_invoice", "out_refund")),
+                    ("state", "in", ("draft", "posted")),
+                    ("payment_state", "in", ("draft", "not_paid", "partial")),
+                ])
+                mandate._remove_invoice_mandate(invoice_ids)