diff --git a/docs/source/conf.py b/docs/source/conf.py
index 57b253090f83217d2830f7fd7240ffe6aabb3148..38af583cffad5bb6cc39c40f8c68f91a06da1544 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -12,6 +12,7 @@
 #
 import os
 import sys
+
 import django
 
 sys.path.insert(0, os.path.abspath("../../"))
@@ -20,12 +21,12 @@ django.setup()
 
 # -- Project information -----------------------------------------------------
 
-project = 'Sage Validation'
-copyright = '2024, GÉANT'
-author = 'GÉANT'
+project = "Sage Validation"
+copyright = "2024, GÉANT"
+author = "GÉANT"
 
 # The full version, including alpha/beta/rc tags
-release = '0.1'
+release = "0.1"
 
 
 # -- General configuration ---------------------------------------------------
@@ -34,13 +35,13 @@ release = '0.1'
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
 # ones.
 extensions = [
-    'sphinx.ext.autodoc',
-    'sphinx.ext.napoleon',
-    'sphinx_autodoc_typehints',
+    "sphinx.ext.autodoc",
+    "sphinx.ext.napoleon",
+    "sphinx_autodoc_typehints",
 ]
 
 # Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
+templates_path = ["_templates"]
 
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
@@ -53,9 +54,9 @@ exclude_patterns = []
 # The theme to use for HTML and HTML Help pages.  See the documentation for
 # a list of builtin themes.
 #
-html_theme = 'alabaster'
+html_theme = "alabaster"
 
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
\ No newline at end of file
+html_static_path = ["_static"]
diff --git a/docs/source/validations.rst b/docs/source/validations.rst
index 13bcc924a0d12787957fcbf346e91af60c155f65..5f2042ced17773463685c99c6ca99a4beaafc69b 100644
--- a/docs/source/validations.rst
+++ b/docs/source/validations.rst
@@ -60,4 +60,8 @@ The following table describes the validation rules applied when uploading a CSV
    * - Checks
      - `...TaxRate`
      - Validate against `[Tax code]` in `dbo.meoValidVAT`.
-     - Ensure valid tax rates.
\ No newline at end of file
+     - Ensure valid tax rates.
+
+    * - Checks
+    - `ChequeCurrencyName`, `ChequeToBankExchangeRate`, `ChequeValueInChequeCurrency`
+    - Cheque fields must be empty.
\ No newline at end of file
diff --git a/sage_validation/file_validator/forms.py b/sage_validation/file_validator/forms.py
index 7a7bfd7c24db3aecd7ace0604d72bb91f78968a0..96ca9437dff1cc478a595fa048995dcff129c8bb 100644
--- a/sage_validation/file_validator/forms.py
+++ b/sage_validation/file_validator/forms.py
@@ -45,6 +45,9 @@ class CSVUploadForm(forms.Form):
         "TaxValue",
         "SYSTraderGenerationReasonType",
         "GoodsValueInBaseCurrency",
+        "ChequeCurrencyName",
+        "ChequeToBankExchangeRate",
+        "ChequeValueInChequeCurrency",
     ]
 
     repeating_columns: ClassVar[dict] = {
@@ -83,6 +86,7 @@ class CSVUploadForm(forms.Form):
         error_list.extend(self._validate_source_and_trader_type(data))
         error_list.extend(self._validate_nominal_analysis_account(data))
         error_list.extend(self._validate_nc_cc_dep_combination_against_meo_sage_account(data))
+        error_list.extend(self._cheque_fields_must_be_empty(data))
         if error_list:
             raise forms.ValidationError(error_list)
 
@@ -251,3 +255,22 @@ class CSVUploadForm(forms.Form):
                     )
 
         return errors
+
+    @staticmethod
+    def _cheque_fields_must_be_empty(data: list[dict]) -> list[str]:
+        """Validate that cheque fields are empty.
+
+        The cheque fields are 'ChequeCurrencyName', 'ChequeToBankExchangeRate', and 'ChequeValueInChequeCurrency'.
+        """
+        errors = []
+        for index, row in enumerate(data, start=1):
+            cheque_currency_name = row.get("ChequeCurrencyName")
+            cheque_to_bank_exchange_rate = row.get("ChequeToBankExchangeRate")
+            cheque_value_in_cheque_currency = row.get("ChequeValueInChequeCurrency")
+
+            if any([cheque_currency_name, cheque_to_bank_exchange_rate, cheque_value_in_cheque_currency]):
+                errors.append(
+                    f"Row {index}: Unexpected values in the Cheque columns. All cheque columns must be empty."
+                )
+
+        return errors
diff --git a/test/conftest.py b/test/conftest.py
index 94a62ed9ada92e49af102a8213b29e3866eb9b90..1207568f8954c9f8cff2a5dfa862ff356cd880f8 100644
--- a/test/conftest.py
+++ b/test/conftest.py
@@ -37,6 +37,9 @@ def sample_input_file() -> SimpleUploadedFile:
         "SYSTraderGenerationReasonType",
         "GoodsValueInBaseCurrency",
         "TransactionReference",
+        "ChequeCurrencyName",
+        "ChequeToBankExchangeRate",
+        "ChequeValueInChequeCurrency",
 
         # NominalAnalysis repeating columns (Example: /1 for first occurrence)
         "NominalAnalysisTransactionValue/1",
@@ -79,6 +82,9 @@ def sample_input_file() -> SimpleUploadedFile:
         "1000",  # SYSTraderGenerationReasonType
         "1200",  # GoodsValueInBaseCurrency
         "BK123",  # TransactionReference(Batch Number)
+        "",  # ChequeCurrencyName
+        "",  # ChequeToBankExchangeRate
+        "",  # ChequeValueInChequeCurrency
 
         # NominalAnalysis repeating values (Example: /1)
         "500.75",  # NominalAnalysisTransactionValue/1
diff --git a/test/test_file_validator/test_forms.py b/test/test_file_validator/test_forms.py
index b5df1089c1430e9a898b62cd8449ef849415f422..24681bc19e067500ce5b59f16023c2868fa8fdb3 100644
--- a/test/test_file_validator/test_forms.py
+++ b/test/test_file_validator/test_forms.py
@@ -92,3 +92,11 @@ def test_validate_nc_cc_dep_combination_against_meo_sage_account(
     assert ("Row 1: 'NominalAnalysisNominalCostCentre/1' (Invalid_CC) is not a valid cost centre."
             in str(form.errors["file"][0]))
 
+
+def test_cheque_fields_must_be_empty(sample_input_file: SimpleUploadedFile, mock_meo_database: MagicMock) -> None:
+    """Test that cheque fields must be empty."""
+    modified_file = create_modified_csv(sample_input_file,
+                                        {"ChequeCurrencyName": "USD", "ChequeToBankExchangeRate": "1"})
+    form = CSVUploadForm(files={"file": modified_file})
+    assert not form.is_valid()
+    assert "Row 1: Unexpected values in the Cheque columns. All cheque columns must be empty." in form.errors["file"][0]