diff --git a/sites/all/modules/commerce_authnet_arb/commerce_authnet_arb.commerce.inc b/sites/all/modules/commerce_authnet_arb/commerce_authnet_arb.commerce.inc
index 6e5cc4d..9383ab9 100644
--- a/sites/all/modules/commerce_authnet_arb/commerce_authnet_arb.commerce.inc
+++ b/sites/all/modules/commerce_authnet_arb/commerce_authnet_arb.commerce.inc
@@ -8,7 +8,7 @@
 /**
  * Authnet ARB payment method settings form.
  */
-function authnet_arb_commerce_settings_pane ($settings = NULL) {
+function commerce_authnet_arb_commerce_settings_pane ($settings = NULL) {

   $arb_settings = NULL;
   if (!empty($settings)) {
@@ -28,3 +28,46 @@ function authnet_arb_commerce_settings_pane ($settings = NULL) {

   return $form;
 }
+
+/**
+ * Authnet ARB payment method settings form validation.
+ */
+function commerce_authnet_arb_payment_pane_validate($payment_method, $pane_form, $pane_values, $order, $form_parents = array()) {
+
+  $valid = TRUE;
+
+  // Validate the credit card fields.
+  module_load_include('inc', 'commerce_payment', 'includes/commerce_payment.credit_card');
+  $settings = array(
+    'form_parents' => array_merge($form_parents, array('credit_card')),
+  );
+  if (!commerce_payment_credit_card_validate($pane_values['credit_card'], $settings)) {
+    $valid = FALSE;
+  }
+
+  // Validating recurring settings.
+  if(authnet_arb_recurring_info_pane_validation($pane_values['recurring_options'], $form_parents) === FALSE) {
+    $valid = FALSE;
+  }
+
+
+  if ($valid === FALSE) {
+    return FALSE;
+  }
+
+  // Validate card processing.
+  $charge = commerce_payment_order_balance($order);
+
+  // If the line items was not added yet, set amount to $0.01
+  if (empty($charge['amount'])) {
+    $charge['amount'] = '1';
+  }
+
+  if (!authnet_arb_verify_payment($charge, $pane_values['credit_card'])) {
+    $prefix = implode('][', $form_parents) . '][';
+    form_set_error($prefix, t('The card can\' be authorized.'));
+    $valid =  FALSE;
+  }
+
+  return $valid;
+}
