diff --git a/bt5/erp5_base/PropertySheetTemplateItem/portal_property_sheets/CurrencyConstraint.xml b/bt5/erp5_base/PropertySheetTemplateItem/portal_property_sheets/CurrencyConstraint.xml
new file mode 100644
index 0000000000000000000000000000000000000000..03c5b89dac7f27e4867d9e0a56843f0f7199904f
--- /dev/null
+++ b/bt5/erp5_base/PropertySheetTemplateItem/portal_property_sheets/CurrencyConstraint.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Property Sheet" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_count</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>_mt_index</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>_tree</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>CurrencyConstraint</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Property Sheet</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="Length" module="BTrees.Length"/>
+    </pickle>
+    <pickle> <int>0</int> </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="OOBTree" module="BTrees.OOBTree"/>
+    </pickle>
+    <pickle>
+      <none/>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="OOBTree" module="BTrees.OOBTree"/>
+    </pickle>
+    <pickle>
+      <none/>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_base/PropertySheetTemplateItem/portal_property_sheets/CurrencyConstraint/reference_existence_constraint.xml b/bt5/erp5_base/PropertySheetTemplateItem/portal_property_sheets/CurrencyConstraint/reference_existence_constraint.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fc6b9fd245fa5cfdafc9a2098e3f95e0d3d2aaca
--- /dev/null
+++ b/bt5/erp5_base/PropertySheetTemplateItem/portal_property_sheets/CurrencyConstraint/reference_existence_constraint.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Property Existence Constraint" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_identity_criterion</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>_range_criterion</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>constraint_property</string> </key>
+            <value>
+              <tuple>
+                <string>reference</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>reference_existence_constraint</string> </value>
+        </item>
+        <item>
+            <key> <string>message_no_such_property</string> </key>
+            <value> <string>Reference must be defined</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Property Existence Constraint</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_base/PropertySheetTemplateItem/portal_property_sheets/CurrencyConstraint/reference_unicity_constraint.xml b/bt5/erp5_base/PropertySheetTemplateItem/portal_property_sheets/CurrencyConstraint/reference_unicity_constraint.xml
new file mode 100644
index 0000000000000000000000000000000000000000..13a056b7da3bba54449e4f4016e27576edb10d5d
--- /dev/null
+++ b/bt5/erp5_base/PropertySheetTemplateItem/portal_property_sheets/CurrencyConstraint/reference_unicity_constraint.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Attribute Unicity Constraint" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_identity_criterion</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>_range_criterion</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>filter_parameter</string> </key>
+            <value> <string>python: {\'portal_type\': (\'Currency\', ), \'validation_state\': (\'validated\', ),\'reference\': object.getReference()}</string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>reference_unicity_constraint</string> </value>
+        </item>
+        <item>
+            <key> <string>message_invalid_attribute_unicity</string> </key>
+            <value> <string>Another currency with reference ${value} already exists</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Attribute Unicity Constraint</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_base/bt/template_property_sheet_id_list b/bt5/erp5_base/bt/template_property_sheet_id_list
index ff6ac4088e5cc38bc6915d66dd4cebc4af7a8313..cba71193f6f8c5eb03f4174f6719ec9b143333d8 100644
--- a/bt5/erp5_base/bt/template_property_sheet_id_list
+++ b/bt5/erp5_base/bt/template_property_sheet_id_list
@@ -1,3 +1,4 @@
+CurrencyConstraint
 LoginConstraint
 PreviousCausalityMovementGroup
 TemplateToolERP5LoginUserManagerConstraint
\ No newline at end of file