use LWP::UserAgent; use Digest::SHA1 qw(sha1 sha1_hex sha1_base64); $sourcekey = 'Your_source_key_here'; $pin = '1234'; $command = 'cc:sale'; $amount = '5.50'; $invoice = '123123'; # Generate Hash $seed = rand(); $prehash = $command . ":" . $pin . ":" . $amount . ":" . $invoice . ":" . $seed; $hash = 's/' . $seed . '/' . sha1_hex($prehash) . '/n'; $ua = LWP::UserAgent->new; $res = $ua->post('https://sandbox.usaepay.com/gate.php', [ 'UMkey' => $sourcekey, 'UMhash' => $hash, 'UMname' => "Example Tester", 'UMcard' => "4444555566667779", 'UMexpir' => "0113", 'UMcvv2' => "999", 'UMamount' => $amount, 'UMinvoice' => $invoice, 'UMstreet' => "1234 Main Street", 'UMzip' => "12345", 'UMcommand' => $command ]); print "\n\nresult: ".$res->content; print "\n";