Client's complaining he's getting:
[ACK] => Failure [VERSION] => 89.0 [BUILD] => 5551055 [L_ERRORCODE0] => 10401 [L_ERRORCODE1] => 10426 [L_ERRORCODE2] => 10413 [L_ERRORCODE3] => 10431 [L_SHORTMESSAGE0] => Transaction refused because of an invalid argument. See additional error messages for details. [L_SHORTMESSAGE1] => Transaction refused because of an invalid argument. See additional error messages for details. [L_SHORTMESSAGE2] => Transaction refused because of an invalid argument. See additional error messages for details. [L_SHORTMESSAGE3] => Transaction refused because of an invalid argument. See additional error messages for details. [L_LONGMESSAGE0] => Order total is invalid. [L_LONGMESSAGE1] => Item total is invalid. [L_LONGMESSAGE2] => The totals of the cart item amounts do not match order amounts. [L_LONGMESSAGE3] => Item amount is invalid. [L_SEVERITYCODE0] => Error [L_SEVERITYCODE1] => Error [L_SEVERITYCODE2] => Error [L_SEVERITYCODE3] => Error
But when I piece apart the string sent to the ExpressCheckout API, everything looks very nicely in order:
&L_NAME0=Socks OC11-002
&L_AMT0=10
&L_QTY0=1
&L_NAME1=Socks TC-001 X2
&L_AMT1=10
&L_QTY1=1
&L_NAME2=Tuxedo
&L_AMT2=650
&L_QTY2=1
&L_NAME3=Paypal Fee
&L_AMT3=26.13
&L_QTY3=1
&AMT=786.63
&TAXAMT=90.50
&ITEMAMT=696.13
Tax amt is 13%. Everything looks nicely matched up to me, in spite of the error. Mysterious. Any insights are very much appreciated!
Not sure, but those are deprecated variables. The following works:
VERSION=97.0
L_PAYMENTREQUEST_0_NAME0=Socks OC11-002
L_PAYMENTREQUEST_0_AMT0=10
L_PAYMENTREQUEST_0_QTY0=1
L_PAYMENTREQUEST_0_NAME1=Socks TC-001 X2
L_PAYMENTREQUEST_0_AMT1=10
L_PAYMENTREQUEST_0_QTY1=1
L_PAYMENTREQUEST_0_NAME2=Tuxedo
L_PAYMENTREQUEST_0_AMT2=650
L_PAYMENTREQUEST_0_QTY2=1
L_PAYMENTREQUEST_0_NAME3=Paypal Fee
L_PAYMENTREQUEST_0_AMT3=26.13
L_PAYMENTREQUEST_0_QTY3=1
PAYMENTREQUEST_0_TAXAMT=90.50
PAYMENTREQUEST_0_ITEMAMT=696.13
PAYMENTREQUEST_0_AMT=786.63
PAYMENTREQUEST_0_CURRENCYCODE=USD
PAYMENTREQUEST_0_PAYMENTACTION=Sale
As an aside, refer to the PayPal User Agreement section: "4.6 No Surcharges"