protected function processBankAccountTransaction($data, $as_partner = 0)
 {
     $o_bat = new BankAccountTransaction();
     $o_bat->setType(BankAccountTransaction::$XS_BAT_TYPE_DEBIT);
     $o_bat->setMethod(BankAccountTransaction::$XS_BAT_METHOD_CCD);
     $o_bat->setEffectiveDate(date('m-d-Y H:i:s'));
     $o_bat->setToken($data['payer_vault_id']);
     $o_bat->setAmount($data['total_amt']);
     if (isset($data['fee_amt']) && !empty($data['fee_amt']) && isset($data['rsq_vault_id']) && !empty($data['rsq_vault_id'])) {
         $cf10val = $data['rsq_vault_id'] . "," . $data['fee_amt'];
         $o_bat->setCustomField10($cf10val);
     }
     if ($as_partner == 0) {
         $o_bcpc = new BaseCommerceClient(RENTSQUARE_MERCH_USER, RENTSQUARE_MERCH_PASS, RENTSQUARE_MERCH_KEY);
     } else {
         $o_bcpc = new BaseCommerceClient(RENTSQUARE_PARTNER_USER, RENTSQUARE_PARTNER_PASS, RENTSQUARE_PARTNER_KEY);
     }
     $o_bcpc->setSandbox(BC_SANDBOXVALUE);
     $o_bat = $o_bcpc->processBankAccountTransaction($o_bat);
     if ($o_bat->isStatus(BankAccountTransaction::$XS_BAT_STATUS_FAILED)) {
         //Transaction Failed
         return array('status' => '0', 'info' => $o_bat->getMessages());
     } else {
         if ($o_bat->isStatus(BankAccountTransaction::$XS_BAT_STATUS_CREATED)) {
             //Transaction went through successfully
             return array('status' => '1', 'info' => $o_bat->getBankAccountTransactionId());
         }
     }
 }