Paypal with multiple recurrent subscriptions only accepts the first one - paypal

Im trying to make a CreateRecurringPaymentsProfile on Paypal with two subscription items, but only works for the first one, the second one fails with "Failure" and returns an 11581 error ("Profile description is invalid").
What I do first is a SetExpressCheckout call with something like:
...
L_BILLINGTYPE0=RecurringPayments
L_BILLINGTYPE1=RecurringPayments
L_BILLINGAGREEMENTDESCRIPTION0=First subscription
L_BILLINGAGREEMENTDESCRIPTION1=Second subscription
...
I get a Success response, then I call CreateRecurringPaymentsProfile for each subscription item with all the required POST fields with their correct DESC field that matches the L_BILLINGAGREEMENTDESCRIPTION0 and L_BILLINGAGREEMENTDESCRIPTION1 in the SetExpressCheckout call.
The first subscription gets a Success response, but not the second one with the error mentioned above.
The DESC fields are short alphanumeric strings (Paypal wants a 127 string length limit).
Any ideas about what I am doing wrong?

Related

REST: If the procedure is a DB UPDATE command, should your API call strictly be PUT?

Consider the following invoice table with two entries, id 1 and 2:
id, item, date_paid
1, 'apple', ''
2, 'banana', ''
When a payment is made date_paid column needs to be updated.
What is a proper REST verb for this?
POST invoices/1/payments
or
PUT invoices/1/payments
I feel like POST is proper since I am "adding" a payment detail but then again internally I'm actually "updating" a DB row so PUT seems applicable also.
If I understand your example, you have an invoice that was created in your Invoice table at some point in the past. You're now updating said invoice to reflect that a payment was made. That's definitely an update and PUT is the correct verb. Presumably you might also have a Payment table with the actual payment details (amount, payer, etc.). If so, then that's where you would be adding a new payment record. That call would be a POST.

woocommerce customer Fetch with time filter

I am requesting customer data using Rest Api of woocommerce. Woocommerce api documentation says
"All endpoints (except for customer orders) support date filtering via created_at_min and created_at_max as ?filter[] parameters. e.g. ?filter[created_at_min]=2013-12-01".
However, when I am giving date filter in request URL it results in blank response!!
My question is,can the customer data be fetched via date filter in woocommerce.
Thanks.
You can pass Filter with time in REST API of WooCommerce.
Just pass the filter in H:i:s format.
Note : while trying to generate the signature, I found, the URL encoding needs to be done twice because of extra space between DateTime filter criteria. Just encode the clean text once to get RFC3986 encoding, and do it again to generate the signature. Pass the first encoded string and append the generated signature. I saw the filter to be working.

Get ARAccountRef is invalid when adding second invoice for the same customer

I have invoices that add ok but will not sync. Below is the error I get back from SyncStatusRequest. Research suggests this error is related to payments but I am adding invoices. And stranger still, I only seem to have this problem when I add two invoices in a row for the same customer (1st is fine, 2nd will not sync). Anyone have any ideas?
QBXML validation error:
[severity=FATAL_ERROR,message=cvc-complex-type.2.4.a:
Invalid content was found starting with element 'ARAccountRef'. One of '{CustomerRef}' is expected.,
locator=url=null,
line=-1,
column=-1,
node=null,
object=com.intuit.sb.datasync.writeback.qbxml.schema.ARAccountRef#392ac48b,
field=null]
]

PayPal Transaction Search API does not return any result

I am calling PayPal API transaction Search [SOAP] from java and getting no results .
Here are my search Parameters
Transaction start date :- 04-Mar-2012
InvoiceId :- '1000010'
However the response is SUCCESS but with NO payment transactions.
I checked and this payment is present in my account [ created today ] .
Details :
1) sdk jar file : "merchant-java-sdk-1.2.95.jar"
2) Related properties/configuration file values.
service.Binding=SOAP
service.RedirectURL=https://www.sandbox.paypal.com/webscr&cmd=
service.DevCentralURL=https://developer.paypal.com
service.EndPoint.PayPalAPI=https://api-3t.sandbox.paypal.com/2.0
service.EndPoint.PayPalAPIAA=https://api-3t.sandbox.paypal.com/2.0
If you are currently pointing to sandbox, there is an issue that is preventing the TransactionSearch API from working correctly when searching via the invoice id. For example if you did a search just based on the start date, you should get results back.

Getting multiple invoices from intuit anywhere api at once

When I update an invoice in QB (after its been changed in my system), I want to avoid updating anything that the user has modified in QB. My plan was to use the filter API method and filter by Ids to get the list of invoices from QB that my app created. However, it doesn't look like InvoiceFilter accepts ListIdSet. It does have a TransactionIdSet, but I can't find a way to get ahold of that number (i.e., the TransactionId) via Data Services. It's certainly not in the response when invoices are read. So, how do I query for a specific set of invoices via the API?
The transaction id refers to the id of the invoice here.
For eg, the following invoice query will retrieve the invoice with Id 4 -
<InvoiceQuery xmlns="http://www.intuit.com/sb/cdm/v2">
<TransactionIdSet>
<Id idDomain="QB">4</Id>
</TransactionIdSet>
</InvoiceQuery>