02-06-2017 02:49 PM
I am using the PHP SDK to create Subscriptions for customers in the following flow.
Create customer -> add payment profile -> create subscription.
The first subscription is created perfectly. After that if I try to create a subscription that on my side is a different subscription but has the same amount, interval, and occurrences I get the following error.
Error Code E00012
"You have submitted a duplicate of Subscription 4362497. A duplicate subscription will not be created."
The issue I have with this is that I'm passing a different refId and a different subscription name.
Is there anyway to create multiple subscriptions that have the same amount, interval and occurrences? There must be some way to define a different subscription that has those other fields the same.
02-06-2017 03:13 PM - edited 02-06-2017 03:15 PM
It is not possible to create an identical subscription. We use the following fields to check for duplicates:
subscription.article.merchantID subscription.article.customerInfo.payment.creditCard.cardNumber subscription.article.customerInfo.payment.eCheck.routingNumber subscription.article.customerInfo.payment.eCheck.accountNumber subscription.article.customerInfo.customerID subscription.article.customerInfo.billingInfo.billToAddress.firstName subscription.article.customerInfo.billingInfo.billToAddress.lastName subscription.article.customerInfo.billingInfo.billToAddress.company subscription.article.customerInfo.billingInfo.billToAddress.streetAddress subscription.article.customerInfo.billingInfo.billToAddress.city subscription.article.customerInfo.billingInfo.billToAddress.stateProv subscription.article.customerInfo.billingInfo.billToAddress.zip subscription.orderInfo.amount subscription.orderInfo.invoice subscription.recurrence.startDate subscription.recurrence.interval subscription.recurrence.unit
If all of these fields are duplicated in an existing subscription, E00012 will result. Modifying any of these fields should result in a unique subscription.
We typically see developers changing the value for subscription.orderInfo.invoice to avoid duplicates.