Search code examples
apipaypalexpress-checkout

Probably yet another ExpressCheckout API Error Code 10401 with item totals


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!


Solution

  • 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"