{"code":401,"message":"Signature has expired"}401 Unauthorized #### #!/usr/bin/perl - wT use strict; use warnings; use HTTP::Request; use JSON; use HTTP::Tiny; use LWP::UserAgent; use JSON::WebToken; use Digest::SHA qw(hmac_sha256_hex); my $ua = LWP::UserAgent->new( ssl_opts => { verify_hostname => 0 }, ); $ua->agent("MyApp/0.1"); my $apiKey = 'key'; my $apiSecret = 'secret key'; my $urlcb = "https://api.poloniex.com/v2/wallets/withdraw"; my $url = URI->new($urlcb); my $urlpath = $url->path(); my $nonce = time; my %mas = ( "coin" => "USDT", "network" => "TRX", "amount" => "10", "address" => "TL81N0N8EEf4cAwayizMHuUuo6666666" ); my $json = encode_json \%mas; my $signature = hmac_sha256_hex($nonce.'POST'.$urlpath.$json, $apiSecret); my %payload = ( "key" => $apiKey, "signatureMethod" => 'HmacSHA256', "signatureVersion" => '2', "signTimestamp" => $nonce, "signature" => $signature ); my $req = HTTP::Request->new(POST => $url); $req->content_type('application/json'); $req->header(%payload); $req->content($json); my $resp = $ua->request($req); if ($resp->is_success) { print $resp->decoded_content; print $resp->status_line, "n"; } else { print $resp->decoded_content; print $resp->status_line, "n"; }