diff --git a/apps/treasury/forms.py b/apps/treasury/forms.py
index a06601b1383d62b9ed5d8ecbafc027a16c0ea15c..65fae3a4a560ec2254c375c76bde7005f1059a63 100644
--- a/apps/treasury/forms.py
+++ b/apps/treasury/forms.py
@@ -45,8 +45,35 @@ class ProductFormSetHelper(FormHelper):
 class RemittanceForm(forms.ModelForm):
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)
+
         self.helper = FormHelper()
-        self.helper.add_input(Submit('submit', _("Submit"), attr={'class': 'btn btn-block btn-primary'}))
+
+        if self.instance.pk:
+            self.fields["type"].disabled = True
+            self.fields["type"].required = False
+
+        if not self.instance.closed:
+            self.helper.add_input(Submit('submit', _("Submit"), attr={'class': 'btn btn-block btn-primary'}))
+            if self.instance.transactions:
+                self.helper.add_input(Submit("close", _("Close"), css_class='btn btn-success'))
+        else:
+            self.fields["comment"].disabled = True
+            self.fields["comment"].required = False
+
+    def clean(self):
+        if self.instance.closed:
+            self.add_error("comment", _("Remittance is already closed."))
+
+        cleaned_data = super().clean()
+
+        if "type" in self.changed_data:
+            self.add_error("type", _("You can't change the type of the remittance."))
+
+        if "close" in self.data:
+            self.instance.closed = True
+            self.cleaned_data["closed"] = True
+
+        return cleaned_data
 
     class Meta:
         model = Remittance
diff --git a/apps/treasury/tables.py b/apps/treasury/tables.py
index 3c30281341e6d0a15c043dc5d4cd5be0c2f78b02..d5f3f105b083fe97234cda79c1a5b80e15d1ff84 100644
--- a/apps/treasury/tables.py
+++ b/apps/treasury/tables.py
@@ -35,10 +35,10 @@ class InvoiceTable(tables.Table):
 
 
 class RemittanceTable(tables.Table):
-    edit = tables.LinkColumn("treasury:remittance_update",
-                             verbose_name=_("Edit"),
+    view = tables.LinkColumn("treasury:remittance_update",
+                             verbose_name=_("View"),
                              args=[A("pk")],
-                             text=_("Edit"),
+                             text=_("View"),
                              attrs={
                                  'a': {'class': 'btn btn-primary'}
                              }, )
@@ -52,7 +52,7 @@ class RemittanceTable(tables.Table):
         }
         model = Remittance
         template_name = 'django_tables2/bootstrap4.html'
-        fields = ('id', 'date', 'type', 'comment', 'count', 'amount', 'edit',)
+        fields = ('id', 'date', 'type', 'comment', 'count', 'amount', 'view',)
 
 
 class SpecialTransactionTable(tables.Table):
diff --git a/apps/treasury/views.py b/apps/treasury/views.py
index 89a009cf914d12215d3597c27304d698905866c7..71b07b0b6347b3217ce735d4e84cda7b1e203a9f 100644
--- a/apps/treasury/views.py
+++ b/apps/treasury/views.py
@@ -236,10 +236,12 @@ class RemittanceUpdateView(LoginRequiredMixin, UpdateView):
     def get_context_data(self, **kwargs):
         ctx = super().get_context_data(**kwargs)
 
+        form = ctx["form"]
         ctx["table"] = RemittanceTable(data=Remittance.objects.all())
+        data = SpecialTransaction.objects.filter(specialtransactionproxy__remittance=self.object).all()
         ctx["special_transactions"] = SpecialTransactionTable(
-            data=SpecialTransaction.objects.filter(specialtransactionproxy__remittance=self.object).all(),
-            exclude=('remittance_add', ))
+            data=data,
+            exclude=('remittance_add', 'remittance_remove', ) if self.object.closed else ('remittance_add', ))
 
         return ctx
 
diff --git a/templates/treasury/remittance_form.html b/templates/treasury/remittance_form.html
index 998306017451f53dcd0d8451d32a1a8bf4d8162c..af4170f48dae1247cc137484a6e0efe06faac7b6 100644
--- a/templates/treasury/remittance_form.html
+++ b/templates/treasury/remittance_form.html
@@ -4,7 +4,34 @@
 {% load crispy_forms_tags pretty_money %}
 {% load render_table from django_tables2 %}
 {% block content %}
+    <h1>{% trans "Remittance #" %}{{ object.pk }}</h1>
+
     <p><a class="btn btn-default" href="{% url 'treasury:remittance_list' %}">{% trans "Remittances list" %}</a></p>
+
+    {% if object.pk %}
+        <div id="div_id_type" class="form-group"><label for="id_count" class="col-form-label">{% trans "Count" %}</label>
+            <div class="">
+                <input type="text" name="count" value="{{ object.count }}" class="textinput textInput form-control" id="id_count" disabled>
+            </div>
+        </div>
+
+        <div id="div_id_type" class="form-group"><label for="id_amount" class="col-form-label">{% trans "Amount" %}</label>
+            <div class="">
+                <input class="textinput textInput form-control" type="text" value="{{ object.amount|pretty_money }}" id="id_amount" disabled>
+            </div>
+        </div>
+    {% endif %}
+
     {% crispy form %}
-    {% render_table special_transactions %}
+
+    <hr>
+
+    <h2>{% trans "Linked transactions" %}</h2>
+    {% if special_transactions.data %}
+        {% render_table special_transactions %}
+    {% else %}
+        <div class="alert alert-warning">
+            {% trans "There is no transaction linked with this remittance." %}
+        </div>
+    {% endif %}
 {% endblock %}