Wow, two years later, and I'm just now responding!
Okay. It looks like usaEpay requires the state to be in the two letter format. Zencart tries to send it as a state name. i.e. "Arizona" instead of "AZ". This is a problem!
If you open up usaepay_api.php and replace the billing and shipping address code around line 228 with this, it will validate the address properly.
PHP Code:
// Billing Information
$tran->billfname=($order->billing['firstname']);
$tran->billlname=($order->billing['lastname']);
$tran->billcompany=($order->billing['company']);
$tran->billstreet=($order->billing['street_address']);
$tran->billstreet2=($order->billing['suburb']);
$tran->billcity=($order->billing['city']);
//change billing state abbreviation
$state_abbr = $db->Execute("select zone_code
from " . TABLE_ZONES . "
where zone_name = '" . $order->billing['state'] . "'");
$order->billing['state'] = $state_abbr->fields['zone_code'];
$tran->billstate=($order->billing['state']);
//echo ' '.$tran->billstate;
$tran->billzip=($order->billing['postcode']);
$tran->billcountry=($order->billing['country']['title']);
$tran->billphone=($order->customer['telephone']);
$tran->email=($order->customer['email_address']);
// Shipping Information
$tran->shipfname=($order->delivery['firstname']);
$tran->shiplname=($order->delivery['lastname']);
$tran->shipcompany=($order->delivery['company']);
$tran->shipstreet=($order->delivery['street_address']);
$tran->shipstreet2=($order->delivery['suburb']);
$tran->shipcity=($order->delivery['city']);
// change delivery state abbreviation
$state_abbr = $db->Execute("select zone_code
from " . TABLE_ZONES . "
where zone_name = '" . $order->delivery['state'] . "'");
$order->delivery['state'] = $state_abbr->fields['zone_code'];
$tran->shipstate=($order->delivery['state']);
$tran->shipzip=($order->delivery['postcode']);
$tran->shipcountry=($order->delivery['country']['title']);
$tran->shipphone=($order->customer['telephone']);
$usaepay_error = (!($tran->Process()));
$result = $tran->result;
$resultcode = $tran->resultcode;
$authcode = $tran->authcode;
$refnum = $tran->refnum;
$batch = $tran->batch;
$avs_result = $tran->avs_result;
$cvv2_result = $tran->cvv2_result;
$error = $tran->error;
$errorcode = $tran->errorcode;
$curlerror = $tran->curlerror;
$acsurl = $tran->acsurl;
$pareq = $tran->pareq;
$response_msg_to_customer = $reason = $tran->error;
I hope that helps you! I've gotten past this part and am receiving another error entirely! I'll update the zencart module if I fix it (w00t for open source!)