PayPal error with shipping totals & Instant Update API
===

I am trying to call ExpressCheckout and do the Instant Update API, but no matter what I do it seems to return with an invalid shipping total error. I know that when running on live you need to use SSL, however I am trying to test against the sandbox and still getting these errors. 

My simple HTML test page:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Express Checkout with Callback API - PayPal</title>
    </head>
    <body>
    <h1 align="center"> Express Checkout with Callback API </h1>
    <h3 align="center"> PayPal </h3>
         <form method=post action=https://api-3t.sandbox.paypal.com/nvp> 
    		<input type=hidden name=USER value=xxxxxxxxxxx> 
    		<input type=hidden name=PWD value=xxxxxxxx> 
    		<input type=hidden name=SIGNATURE value=xxxxxxxxxxxxxxxxxxxxxxx> 
    		<input type=hidden name=VERSION value=63.0> 
    		<input type=hidden name=PAYMENTREQUEST_0_PAYMENTACTION value=Sale> 
    		<input name=PAYMENTREQUEST_0_AMT value=19.95> 
    		<input type=hidden name=RETURNURL value=https://www.YourReturnURL.com> 
    		<input type=hidden name=CANCELURL value=https://www.YourCancelURL.com>
            <input type=hidden name=MAXAMT value=100.00>
            <input type=hidden name=callback value=....../callback.php>
            <input type=hidden name= callbacktimeout value=5>
            <input type=hidden name= l_shippingoptionisdefault0 value=true> 
            <input type=hidden name= l_shippingoptionname0 value=Ground>
            <input type=hidden name= l_shippingoptionlabel0 value=5 Days>
            <input type=hidden name= l_shippingoptionamount0 value=10.00>
            <input type=hidden name= shippingamt value=10.00>
    	    <input type=submit name=METHOD value=SetExpressCheckout> 
    	</form>
    </body>
    </html>

My callback.php script which is hosted on my server:

    <?php
    foreach ($_POST as $key => $value) {
    $value = urlencode(stripslashes($value));
    $req = "&$key=$value";
    }
    
    //Build string
    $method = $_POST['METHOD'];
    $version = $_POST['CALLBACKVERSION'];
    $token = $_POST['TOKEN'];
    $currencycode = $_POST['CURRENCYCODE'];
    $localecode = $_POST['LOCALECODE'];
    $street = $_POST['SHIPTOSTREET'];
    $street2 = $_POST['SHIPTOSTREET2'];
    $city = $_POST['SHIPTOCITY'];
    $state = $_POST['SHIPTOSTATE'];
    $country = $_POST['SHIPTOCOUNTRY'];
    $zip = $_POST['SHIPTOZIP'];
    
    //If PayPal acocunt has US address
    if ($country=="US") {
    	echo "METHOD=CallbackResponse&L_SHIPPINGOPTIONNAME0=Ground&L_SHIPPINGOPTIONLABEL0=5 to 7 Days&L_SHIPPINGOPTIONAMOUNT0=10.00&L_SHIPPINGOPTIONISDEFAULT0=true";
    	}	
    	
    //If PayPal account has a non-US address	
    else {
    	echo "METHOD=CallbackResponse&L_SHIPPINGOPTIONNAME0=Next Day Air&L_SHIPPINGOPTIONLABEL0=7 to 14 Days&L_SHIPPINGOPTIONAMOUNT0=20.00&L_SHIPPINGOPTIONISDEFAULT0=true";
    	}
    ?>

I have removed some sensitive info from the code and have changed all the shipping values 100 times so please excuse me if there are some silly errors. Any help would be appreciated, THANKS!