Q:

Shipping charges not showing up using PayPal express checkout

I am using PayPal express checkout as payment option for non-registered users. So need to deduct default shipping charges while using express checkout. Here is the array which is posted to PayPal:                                                                                   
    Array
(
    [CURRENCYCODE] => USD
    [L_NAME0] => The Matrix
    [L_AMT0] => 30.00
    [L_NUMBER0] => 6
    [L_QTY0] => 1
    [L_TAXAMT0] => 0.00
    [L_NAME1] => Blade Runner - Director's Cut
    [L_AMT1] => 30.00
    [L_NUMBER1] => 5
    [L_QTY1] => 1
    [L_TAXAMT1] => 0.00
    [L_NAME2] => Unreal Tournament
    [L_AMT2] => 89.99
    [L_NUMBER2] => 22{5}10
    [L_QTY2] => 1
    [L_TAXAMT2] => 0.00
    [L_NAME3] => Microsoft IntelliMouse Explorer
    [L_AMT3] => 64.95
    [L_NUMBER3] => 26{3}8
    [L_QTY3] => 1
    [L_TAXAMT3] => 0.00
    [ITEMAMT] => 214.94
    [TAXAMT] => 0
    [ADDROVERRIDE] => 1
    [SHIPTONAME] => MARY ROE
    [SHIPTOSTREET] => SUITE 5A-1204, 799 E DRAGRAM
    [SHIPTOCITY] => Tucson
    [SHIPTOSTATE] => AZ
    [SHIPTOCOUNTRYCODE] => US
    [SHIPTOZIP] => 85705
    [L_SHIPPINGOPTIONNAME0] => Flat Rate (Best Way)
    [L_SHIPINGPOPTIONLABEL0] => Flat Rate (Best Way)
    [L_SHIPPINGOPTIONAMOUNT0] => 5.00
    [L_SHIPPINGOPTIONISDEFAULT0] => true
    [CALLBACK] => http://example.com/test/ext/modules/payment/paypal/express.php?osC_Action=callbackSet
    [CALLBACKTIMEOUT] => 5
    [INSURANCEOPTIONSOFFERED] => false
    [SHIPPINGAMT] => 5.00
    [AMT] => 219.94
    [MAXAMT] => 324.94
) 

The shipping charges are posted to PayPal ([SHIPPINGAMT] => 5.00) but do not show up on paypal page.
Please help.

A:

Which version of the API are you using? I know that SHIPPINGAMT will work with 60 or earlier but later versions changed the defintion
Here's the API reference for SetExpressCheckout (which is what I think you're calling). They list SHIPPINGAMT as depreciated and prefer PAYMENTREQUEST_n_SHIPPINGAMT instead (i.e. PAYMENTREQUEST_0_SHIPPINGAMT). So you can either roll your API version call back to 60 or change to this new field.

