diff --git a/addons/account/models/account_payment.py b/addons/account/models/account_payment.py
index 2dd1f9cef83..62275fca65e 100644
--- a/addons/account/models/account_payment.py
+++ b/addons/account/models/account_payment.py
@@ -262,6 +262,7 @@ class AccountPayment(models.Model):
                 'credit': write_off_balance > 0.0 and write_off_balance or 0.0,
                 'partner_id': self.partner_id.id,
                 'account_id': write_off_line_vals.get('account_id'),
+                'analytic_account_id': write_off_line_vals.get('analytic_account_id'),
             })
         return line_vals_list
 
@@ -699,6 +700,7 @@ class AccountPayment(models.Model):
                     'name': writeoff_lines[0].name,
                     'amount': writeoff_amount * sign,
                     'account_id': writeoff_lines[0].account_id.id,
+                    'analytic_account_id': writeoff_lines[0].analytic_account_id.id,
                 }
             else:
                 write_off_line_vals = {}
diff --git a/addons/account/wizard/account_payment_register.py b/addons/account/wizard/account_payment_register.py
index 3fc91f716ad..35636774c7e 100644
--- a/addons/account/wizard/account_payment_register.py
+++ b/addons/account/wizard/account_payment_register.py
@@ -93,6 +93,7 @@ class AccountPaymentRegister(models.TransientModel):
     ], default='open', string="Payment Difference Handling")
     writeoff_account_id = fields.Many2one('account.account', string="Difference Account", copy=False,
         domain="[('deprecated', '=', False), ('company_id', '=', company_id)]")
+    writeoff_analytic_account_id = fields.Many2one('account.analytic.account', string="Difference Analytic Account", copy=False, domain="[('company_id', '=', company_id)]")
     writeoff_label = fields.Char(string='Journal Item Label', default='Write-Off',
         help='Change label of the counterpart that will hold the payment difference')
 
@@ -422,6 +423,7 @@ class AccountPaymentRegister(models.TransientModel):
                 'name': self.writeoff_label,
                 'amount': self.payment_difference,
                 'account_id': self.writeoff_account_id.id,
+                'analytic_account_id': self.writeoff_analytic_account_id.id or False,
             }
         return payment_vals
 
diff --git a/addons/account/wizard/account_payment_register_views.xml b/addons/account/wizard/account_payment_register_views.xml
index 16eec30e265..b9386567baa 100644
--- a/addons/account/wizard/account_payment_register_views.xml
+++ b/addons/account/wizard/account_payment_register_views.xml
@@ -65,6 +65,10 @@
                                            string="Post Difference In"
                                            options="{'no_create': True}"
                                            attrs="{'required': [('payment_difference_handling', '=', 'reconcile')]}"/>
+                                    <label for="writeoff_analytic_account_id" class="oe_edit_only" string="Analytic Account" groups="analytic.group_analytic_accounting"/>
+                                    <field name="writeoff_analytic_account_id"
+                                           groups="analytic.group_analytic_accounting"
+                                           options="{'no_create': True}" />
                                     <label for="writeoff_label" class="oe_edit_only" string="Label"/>
                                     <field name="writeoff_label" attrs="{'required': [('payment_difference_handling', '=', 'reconcile')]}"/>
                                 </div>
