diff --git a/ideal/ideal.module b/ideal/ideal.module
index 2679035..ef1a737 100644
--- a/ideal/ideal.module
+++ b/ideal/ideal.module
@@ -329,7 +329,7 @@ function ideal_check_open_transactions() {
   module_load_include('inc', 'ideal', '/includes/ideal.transaction');
   $acquirer = iDEALAcquirer::acquirer();
 
-  // Update the status for open transactions that have expipred more than 24
+  // Update the status for open transactions that have expired more than 24
   // hours ago.
   $transactions = array();
   $result = db_query("SELECT * FROM {ideal_transaction} WHERE status = '%s' AND (created + expiration_period + 86400) < %d", IDEAL_STATUS_OPEN, time());
@@ -362,4 +362,49 @@ function ideal_check_open_transactions() {
     $transaction = new iDEALTransaction($transaction_data);
     $acquirer->statusRequest($transaction);
   }
-}
\ No newline at end of file
+}
+
+/**
+ * Make a series of test transactions that is required for most acquirers.
+ *
+ * @return boolean
+ *   Whether the tests passed.
+ */
+function ideal_test_transactions() {
+  global $conf;
+
+  module_load_include('inc', 'ideal', '/includes/ideal.transaction');
+
+  if (($acquirer = iDEALAcquirer::acquirer())) {
+    $return = TRUE;
+    // Make sure these transactions go to the testing server.
+    $ideal_test = variable_get('ideal_test', TRUE);
+    $conf['ideal_test'] = TRUE;
+
+    // Execute the transactions that should result in a normal response.
+    $amounts = array(
+      100 => IDEAL_STATUS_SUCCESS,
+      200 => IDEAL_STATUS_CANCELLED,
+      300 => IDEAL_STATUS_EXPIRED,
+      400 => IDEAL_STATUS_OPEN,
+      500 => IDEAL_STATUS_FAILURE,
+    );
+    foreach ($amounts as $amount => $status) {
+      $transaction = new iDEALTransaction(array(
+        'amount' => $amount
+      ));
+      $acquirer->transactionRequest($transaction, 0);
+      if ($transaction->status != $status) {
+        print_r($transaction);
+        $return = FALSE;
+        break;
+      }
+    }
+    // Execute the transaction that should result in an error.
+
+    $conf['ideal_test'] = $ideal_test;
+    return $return;
+  }
+  return FALSE;
+}
+var_dump(ideal_test_transactions());
\ No newline at end of file
