diff --git a/energy_selfconsumption/wizards/contract_generation_wizard.py b/energy_selfconsumption/wizards/contract_generation_wizard.py
index 10204acbf12621b99896f111de2ef984304425b3..bb8933a707dd58701ed9cf79475f7f6907b441e9 100644
--- a/energy_selfconsumption/wizards/contract_generation_wizard.py
+++ b/energy_selfconsumption/wizards/contract_generation_wizard.py
@@ -48,31 +48,7 @@ class ContractGenerationWizard(models.TransientModel):
 
         # Create contracts
         for supply_point_assignation in distribution_id.supply_point_assignation_ids:
-            contract_lines = [
-                (
-                    0,
-                    0,
-                    {
-                        "product_id": product_id.id,
-                        "automatic_price": True,
-                        "company_id": self.env.company.id,
-                        "qty_type": "variable",
-                        "qty_formula_id": formula_contract_id.id,
-                        "name": _(
-                            """CUPS: %s
-                        Owner: %s
-                        Invoicing period: #START# - #END#"""
-                        )
-                        % (
-                            supply_point_assignation.supply_point_id.code,
-                            supply_point_assignation.supply_point_id.owner_id.display_name,
-                        ),
-                        "supply_point_assignation_id": supply_point_assignation.id,
-                    },
-                )
-            ]
-
-            self.env["contract.contract"].create(
+            contract = self.env["contract.contract"].create(
                 {
                     "name": _("Contract - %s - %s")
                     % (
@@ -80,18 +56,15 @@ class ContractGenerationWizard(models.TransientModel):
                         supply_point_assignation.supply_point_id.partner_id.name,
                     ),
                     "partner_id": supply_point_assignation.supply_point_id.partner_id.id,
-                    "invoice_partner_id": supply_point_assignation.supply_point_id.partner_id.id,
+                    "journal_id": journal_id.id,
+                    "recurring_interval": self.selfconsumption_id.product_id.contract_template_id.recurring_interval,
+                    "recurring_rule_type": self.selfconsumption_id.product_id.contract_template_id.recurring_rule_type,
                     "recurring_invoicing_type": "post-paid",
                     "date_start": fields.date.today(),
-                    "company_id": self.env.company.id,
-                    "contract_line_ids": contract_lines,
-                    "project_id": self.selfconsumption_id.project_id.id,
                     "contract_template_id": self.selfconsumption_id.product_id.contract_template_id.id,
-                    "recurring_interval": self.selfconsumption_id.product_id.contract_template_id.recurring_interval,
-                    "recurring_rule_type": self.selfconsumption_id.product_id.contract_template_id.recurring_rule_type,
                 }
             )
-
+            contract._onchange_contract_template_id()
         # Update selfconsumption and distribution_table state
         self.selfconsumption_id.write({"state": "active"})
         self.selfconsumption_id.distribution_table_state("process", "active")
diff --git a/energy_selfconsumption/wizards/define_invoicing_mode_wizard.py b/energy_selfconsumption/wizards/define_invoicing_mode_wizard.py
index 93bbe2a1a0e4524ed9b1e169996ec14d781eed67..b6e87f368f0d8e82c96e03dfb4439d0b10a9f896 100644
--- a/energy_selfconsumption/wizards/define_invoicing_mode_wizard.py
+++ b/energy_selfconsumption/wizards/define_invoicing_mode_wizard.py
@@ -79,6 +79,7 @@ class ContractGenerationWizard(models.TransientModel):
             "contract_line_ids": contract_line,
             "recurring_interval": self.recurrence_interval,
             "recurring_rule_type": self.recurring_rule_type,
+            "recurring_invoicing_type": "post-paid",
         }
 
     def save_data_to_selfconsumption(self):