diff --git a/datacenterlight/views.py b/datacenterlight/views.py
index 0851a33f..0dd5e5ad 100644
--- a/datacenterlight/views.py
+++ b/datacenterlight/views.py
@@ -438,6 +438,11 @@ class OrderConfirmationView(DetailView):
         stripe_utils = StripeUtils()
         card_details = stripe_utils.get_card_details(
             customer.stripe_id, request.session.get('token'))
+        if not card_details.get('response_object') and not card_details.get('paid'):
+            msg = card_details.get('error')
+            messages.add_message(self.request, messages.ERROR, msg, extra_tags='failed_payment')
+            return HttpResponseRedirect(reverse('datacenterlight:payment') + '#payment_error')
+
         context = {
             'site_url': reverse('datacenterlight:index'),
             'cc_last4': card_details.get('response_object').get('last4'),
@@ -462,15 +467,12 @@ class OrderConfirmationView(DetailView):
         stripe_utils = StripeUtils()
         charge_response = stripe_utils.make_charge(amount=final_price,
                                                    customer=customer.stripe_id)
-        charge = charge_response.get('response_object')
 
         # Check if the payment was approved
-        if not charge:
-            context = {}
-            context.update({
-                'paymentError': charge_response.get('error')
-            })
-            return render(request, self.payment_template_name, context)
+        if not charge_response.get('response_object') and not charge_response.get('paid'):
+            msg = charge_response.get('error')
+            messages.add_message(self.request, messages.ERROR, msg, extra_tags='make_charge_error')
+            return HttpResponseRedirect(reverse('datacenterlight:payment') + '#payment_error')
 
         charge = charge_response.get('response_object')
 
diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css
index d372a896..b2d673d7 100644
--- a/hosting/static/hosting/css/landing-page.css
+++ b/hosting/static/hosting/css/landing-page.css
@@ -557,6 +557,10 @@ a.unlink:hover {
     border-radius: 3px;
     padding: 5px;
 }
+.card-warning-error {
+    border: 1px solid #EB4D5C;
+    color: #EB4D5C;
+}
 
 .card-warning-addtional-margin {
     margin-top: 15px;
diff --git a/hosting/templates/hosting/payment.html b/hosting/templates/hosting/payment.html
index 237dffd1..7bf84645 100644
--- a/hosting/templates/hosting/payment.html
+++ b/hosting/templates/hosting/payment.html
@@ -59,7 +59,6 @@
                         {% csrf_token %}
                         {% bootstrap_field field show_label=False type='fields'%}
                         {% endfor %}
-                        {% bootstrap_form_errors form type='non_fields'%}
                     </form>
                 </div>
                 <div class="col-xs-12 col-sm-7 col-md-6 creditcard-box dcl-creditcard">
@@ -86,13 +85,29 @@
                             </form>
                             <div class="row">
                                 <div class="col-xs-12">
-                                    <p class="card-warning-content card-warning-addtional-margin">
-                                        {% blocktrans %}
-                                        You are not making any payment yet. After submitting your card
-                                        information, you will be taken to the Confirm Order Page.
-                                        {% endblocktrans %}
-                                    </p>
-                                </div>
+                                        {% if not messages and not form.non_field_errors %}
+                                            <p class="card-warning-content card-warning-addtional-margin">
+                                                {% blocktrans %}
+                                                You are not making any payment yet. After submitting your card
+                                                information, you will be taken to the Confirm Order Page.
+                                                {% endblocktrans %}
+                                            </p>
+                                        {% endif %}
+                                        <div id='payment_error'>
+                                            {% for message in messages %}
+                                                {% if 'failed_payment' or 'make_charge_error' in message.tags %}
+                                                 <ul class="list-unstyled"><li>
+                                                     <p class="card-warning-content card-warning-error">{{ message|safe }}</p>
+                                                </li></ul>
+                                                {% endif %}
+                                            {% endfor %}
+                                            {% for error in form.non_field_errors %}
+                                                <p class="card-warning-content card-warning-error">
+                                                    {{ error|escape }}
+                                                </p>
+                                            {% endfor %}
+                                        </div>
+                                    </div>
                                 <div class="col-xs-12">
                                     <div class="col-xs-6 pull-right">
                                         <button id="payment_button_with_creditcard" class="btn btn-success stripe-payment-btn"
@@ -130,12 +145,29 @@
                                 <div id="card-errors" role="alert"></div>
                                 <div class="row">
                                     <div class="col-xs-12">
-                                        <p class="card-warning-content">
-                                            {% blocktrans %}
-                                            You are not making any payment yet. After submitting your card
-                                            information, you will be taken to the Confirm Order Page.
-                                            {% endblocktrans %}
-                                        </p>
+                                        {% if not messages and not form.non_field_errors %}
+                                            <p class="card-warning-content">
+                                                {% blocktrans %}
+                                                You are not making any payment yet. After submitting your card
+                                                information, you will be taken to the Confirm Order Page.
+                                                {% endblocktrans %}
+                                            </p>
+                                        {% endif %}
+                                        <div id='payment_error'>
+                                            {% for message in messages %}
+                                                {% if 'failed_payment' or 'make_charge_error' in message.tags %}
+                                                 <ul class="list-unstyled"><li>
+                                                     <p class="card-warning-content card-warning-error">{{ message|safe }}</p>
+                                                </li></ul>
+                                                {% endif %}
+                                            {% endfor %}
+
+                                            {% for error in form.non_field_errors %}
+                                                <p class="card-warning-content card-warning-error">
+                                                    {{ error|escape }}
+                                                </p>
+                                            {% endfor %}
+                                        </div>
                                     </div>
                                     <div class="col-xs-12">
                                         <div class="col-xs-6 pull-right">
@@ -150,15 +182,6 @@
                                         <p class="payment-errors"></p>
                                     </div>
                                 </div>
-                                {% if paymentError %}
-                                <div class="row">
-                                    <div class="col-xs-12">
-                                        <p>
-                                            {% bootstrap_alert paymentError alert_type='danger' %}
-                                        </p>
-                                    </div>
-                                </div>
-                                {% endif %}
                             </form>
 
                             {% endif %}
diff --git a/hosting/views.py b/hosting/views.py
index f5fbd0a7..2b4c8d21 100644
--- a/hosting/views.py
+++ b/hosting/views.py
@@ -556,8 +556,9 @@ class PaymentVMView(LoginRequiredMixin, FormView):
             customer = StripeCustomer.get_or_create(email=owner.email,
                                                     token=token)
             if not customer:
-                form.add_error("__all__", "Invalid credit card")
-                return self.render_to_response(self.get_context_data(form=form))
+                msg = _("Invalid credit card")
+                messages.add_message(self.request, messages.ERROR, msg, extra_tags='make_charge_error')
+                return HttpResponseRedirect(reverse('hosting:payment') + '#payment_error')
 
             # Create Billing Address
             billing_address = form.save()
@@ -566,15 +567,12 @@ class PaymentVMView(LoginRequiredMixin, FormView):
             stripe_utils = StripeUtils()
             charge_response = stripe_utils.make_charge(amount=final_price,
                                                        customer=customer.stripe_id)
-            charge = charge_response.get('response_object')
 
             # Check if the payment was approved
-            if not charge:
-                context.update({
-                    'paymentError': charge_response.get('error'),
-                    'form': form
-                })
-                return render(request, self.template_name, context)
+            if not charge_response.get('response_object') and not charge_response.get('paid'):
+                msg = charge_response.get('error')
+                messages.add_message(self.request, messages.ERROR, msg, extra_tags='make_charge_error')
+                return HttpResponseRedirect(reverse('hosting:payment') + '#payment_error')
 
             charge = charge_response.get('response_object')
 
diff --git a/utils/stripe_utils.py b/utils/stripe_utils.py
index aaf3d9e9..c9604425 100644
--- a/utils/stripe_utils.py
+++ b/utils/stripe_utils.py
@@ -11,7 +11,7 @@ def handleStripeError(f):
             'error': None
         }
 
-        common_message = "Currently its not possible to make payments."
+        common_message = "Currently it's not possible to make payments."
         try:
             response_object = f(*args, **kwargs)
             response = {