Nasko
Nasko

Reputation: 41

CreateRecurringPaymentsProfile Profile description is invalid Error: 11581

I'm trying to do a recurring payment using CreateRecurringPaymentsProfile.

data sent:

&TOKEN=EC-9VR75992DL646470M
&SUBSCRIBERNAME=Mr.Subscriber 
&PROFILESTARTDATE=2013-07-22T00:00:00Z
&DESC=Our+Monthly+Membership+Renewal+Plan%3A+You+payment+of+%240.1+will+be+deducted+monthly+from+your+account.+Cancel+anytime+after+6+months.+Additional+terms+and+conditions+can+be+found+in+the+Membership+Agreement+at+website.com.
&MAXFAILEDPAYMENTS=3
&AUTOBILLAMT=AddToNextBilling
&BILLINGPERIOD=Month
&BILLINGFREQUENCY=1
&AMT=0.10
&TOTALBILLINGCYCLES=
&CURRENCYCODE=USD" 


["TIMESTAMP"]=> string(20) "2013-06-22T11:50:36Z" 
["CORRELATIONID"]=> string(13) "9011114f8316f" 
["ACK"]=> string(7) "Failure" 
["VERSION"]=> string(2) "64" 
["BUILD"]=> string(7) "6202528" 
["L_ERRORCODE0"]=> string(5) "11581" 
["L_SHORTMESSAGE0"]=> string(12) "Invalid Data" 
["L_LONGMESSAGE0"]=> string(30) "Profile description is invalid" 
["L_SEVERITYCODE0"]=> string(5) "Error" }

could the problem be a too long description or something else. Maybe a field i'm missing?

I do:

$nvpstr = "";
$nvpstr .= "&VERSION=64.0";
$nvpstr .= "&TOKEN=".$_GET['token'];
$nvpstr .= "&PAYMENTACTION=Authorization";
$nvpstr .= "&PAYERID=".$_SESSION['PAYERID'];
$nvpstr .= "&AMT=".$_SESSION['recurringInitAmount'];
$nvpstr .= "&CURRENCYCODE=USD";
$nvpstr .= "&L_BILLINGTYPE0=RecurringPayments";
$nvpstr .= "&L_BILLINGAGREEMENTDESCRIPTION0=".$_SESSION['recurringDesc'];
$resArray = hash_call("DoExpressCheckoutPayment", $nvpstr); 

before sending the above info like:

$nvpstr = "";
$nvpstr .= "&TOKEN=".$_GET['token'];
$nvpstr .= "&SUBSCRIBERNAME=Mr.Subscriber ";
$nvpstr .= "&PROFILESTARTDATE=".date("Y-m-d", mktime(0, 0, 0, date("m", time())+1, date("d", time()), date("Y", time())))."T00:00:00Z";
$nvpstr .= "&DESC=".$_SESSION['recurringDesc'];
$nvpstr .= "&MAXFAILEDPAYMENTS=3";
$nvpstr .= "&AUTOBILLAMT=AddToNextBilling";
$nvpstr .= "&BILLINGPERIOD=Month";
$nvpstr .= "&BILLINGFREQUENCY=1";
$nvpstr .= "&AMT=".$_SESSION['recurringInstallment'];
$nvpstr .= "&TOTALBILLINGCYCLES=".$_SESSION['recurringInstallmentCycles'];
$nvpstr .= "&CURRENCYCODE=USD";
$resArray = hash_call("CreateRecurringPaymentsProfile", $nvpstr);

Upvotes: 1

Views: 5061

Answers (2)

Dan Cameron
Dan Cameron

Reputation: 756

For those receiving the same error but not hitting the byte limit make sure the description matches the billing agreement.

"You must ensure that this field matches the corresponding billing agreement description included in the SetExpressCheckout request."

https://developer.paypal.com/webapps/developer/docs/classic/api/merchant/CreateRecurringPaymentsProfile_API_Operation_NVP/

Upvotes: 7

Gerzie
Gerzie

Reputation: 2340

The desc variable has a character limit of 127. A shorter value should resolve the problem.

If a field was missing you would get a field format error which tells you the variable that wasn't provided.

Upvotes: 3

Related Questions