diff --git a/__manifest__.py b/__manifest__.py
index 3116aa078107c9227b9f5933cbfbfa3b6b8df2f7..3bb7d098d1e03ff66b621367103d2fac2ebb4c00 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -1,14 +1,11 @@
 {
     "name": "Financial - Deal Contract",
     "summary": "Du deal flow au contrat",
-    "author": "Le Filament",
+    "author": "Le Filament, Odoo Community Association (OCA)",
     "website": "https://le-filament.com",
     "version": "16.0.1.0.0",
     "license": "AGPL-3",
-    "depends": [
-        "financial_deal_flow",
-        "financial_contract",
-    ],
+    "depends": ["financial_deal_flow", "financial_contract", "loan_manager"],
     "data": [
         # "security/ir.model.access.csv",
         # datas
diff --git a/models/financial_contract.py b/models/financial_contract.py
index a44c6e53e33b707c772a9c6e207a5df5eca1c785..94b6fd829958dea6b5d1221ba1367a3484718765 100644
--- a/models/financial_contract.py
+++ b/models/financial_contract.py
@@ -1,12 +1,16 @@
 # © 2019 Le Filament (<http://www.le-filament.com>)
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+from datetime import datetime
+
+from ocb.odoo import api
 
 from odoo import fields, models
 
+MAP_DICT = {"loan": "loan.manager.loan", "invest": "", "warranty": ""}
+
 
 class FinancialContract(models.Model):
     _inherit = "financial.contract"
-
     deal_tool_id = fields.Many2one(
         comodel_name="financial.deal.tool",
         string="Deal Tool",
@@ -18,7 +22,58 @@ class FinancialContract(models.Model):
         related="deal_tool_id.deal_id",
         store=True,
     )
+    deal_tool_model_id = fields.Many2one(
+        "ir.model", compute="_compute_deal_tool_model_id", store=True
+    )
+    deal_tool_model_id_referenced_id = fields.Integer(
+        readonly=True, help="Id of the financial tool for this contract"
+    )
+    # ------------------------------------------------------
+    # SQL Constraints
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Default methods
+    # ------------------------------------------------------
 
     # ------------------------------------------------------
     # Computed fields / Search Fields
     # ------------------------------------------------------
+    @api.depends("deal_tool_id")
+    def _compute_deal_tool_model_id(self):
+        if self.deal_tool_id.type:
+            self.deal_tool_model_id = self.env["ir.model"].search(
+                [("model", "=", MAP_DICT[self.deal_tool_id.type])]
+            )
+
+    # ------------------------------------------------------
+    # Onchange / Constraints
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # CRUD methods (ORM overrides)
+    # ------------------------------------------------------
+
+    @api.model
+    def create(self, values):
+        contract = super().create(values)
+        # Create financial tool associated
+        financial_tool_record = self.env[contract.deal_tool_model_id.model].create(
+            {
+                "description": contract.name,
+                "first_term_date": datetime.now,
+                "payment_date": datetime.now,
+                "amount": contract.deal_tool_id.amount,
+                "partner_id": contract.deal_id.partner_id,
+            }
+        )
+        self.deal_tool_model_id_referenced_id = financial_tool_record.id
+        return contract
+
+    # ------------------------------------------------------
+    # Actions
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Business methods
+    # ------------------------------------------------------
diff --git a/views/financial_contract.xml b/views/financial_contract.xml
index 2bc1b257e19f8d89147dcdbf155deed494a4a4e5..14195bcaa23a1b9c4c90b4fd1112082654dde20c 100644
--- a/views/financial_contract.xml
+++ b/views/financial_contract.xml
@@ -12,7 +12,8 @@
         />
         <field name="arch" type="xml">
             <xpath expr="//field[@name='partner_id']" position="before">
-                <field name="deal_id" readonly="True" />
+                <field name="deal_tool_id" />
+                <field name="deal_tool_model_id" />
             </xpath>
         </field>
     </record>