I'm trying to update arb subscriptions to point at new customer payment profiles. However, the API returns error E00013 with message "Phone is invalid. Phone can be one of following formats: 111- 111-1111 or (111) 111-1111."
I'm not even submitting the phone number with the request. Here's the code I'm using to construct the request (ruby SDK):
profile = CustomerProfileIdType.new(@info[:profile_id],@info[:payment_profile_id]) ARBUpdateSubscriptionRequest.new( nil, nil, @subscription_id, ARBSubscriptionType.new(nil,nil,nil,nil,nil,nil,nil,nil,nil,profile) )
That code contructs a request that looks like this:
<arbupdatesubscriptionrequest> <subscriptionId>395823xx</subscriptionId> <subscription> <profile> <customerProfileId>19217479xx</customerProfileId> <customerPaymentProfileId>19557806xx</customerPaymentProfileId> </profile> </subscription> </arbupdatesubscriptionrequest>
Why should I get a phone number error in this case?
Maybe the phone number on the customer profile is invalid. But if that's the case, then why am I able to submit the create customer profile request and the create subscription request without error?
If you are seeing this error it is likely that you would see this error when/if you attempted to process transactions using the stored profile data as well, which is why you are seeing the error at this step.
I can guess at the cause, but without specific details that may not be the best approach.
I would suggest using our Developer Support email form found at https://developer.authorize.net/support/contact_us/ to reach out to our support staff. Please provide them with full subscription, profile ID and payment profile ID information for reference when reviewing your account.
I filled out the contact form a few days ago, but they still haven't replied yet.
I can cofirm processing transactions using the "invalid" profile information works perfectly fine. We are able to charge our user's cards, and the monthly subscription payments also work fine. We're just not able to update a subscription to use a different payment profile.
As a stopgap measure, when users update their profile to use a different card, I've been cancelling their current subscription and creating a new subscription that begins on their next billing date. I don't want to have to continue doing this because we lose certain other information like how many payments they've made on their current subscription.
We deal with international customers, so storing phone numbers in the USA only format of (111) 111-1111 is out of the question.
For example, it's impossible to store the number +442071838750 using the """correct""" format