New Customer Profile and Recurring Billing Enhancements

by Administrator Administrator ‎11-09-2015 10:35 AM - edited ‎11-12-2015 02:47 PM (86,189 Views)

Update - 11/12/2015


These changes are coming soon to our SDKs.  We'll update here again when they are available.



Today we are announcing several new and improved Authorize.Net API methods and features:


Recurring Billing and Customer Profile Integration

Recurring billing now uses customer profiles for secure payment data storage.  This means that customer profiles can now be used for both subscriptions and one-time payments. This release also provides enhanced API support for customer profiles within subscriptions as well as providing a new API method to report on customer payment profiles:



The enhanced GetCustomerPaymentProfile now returns an unmasked expiration date if you set the unmaskExpirationDate flag.












































This is a new API method that is based on the recently added ARBGetSubscriptionsList. It provides a consistent reporting API for customer profiles and subscriptions.  For example, using this method, developers can obtain a list of cards expiring this month along with their payment profile IDs.


getCustomerPayment ProfileList.png



This is a new API method that returns subscription information including status and associated customer profile IDs.  Please note: This method will supersede ARBGetSubscriptionStatus, which will be deprecated sometime in the future.

Sample Request and Response






The error response for CreateCustomerPaymentProfile now returns the profile ID if a duplicate profile already exists.



by dbinott
on ‎11-12-2015 09:11 AM

Why is the expiration date not unmasked on Get Customer Profile?

by Administrator Administrator
on ‎11-13-2015 02:42 PM


Hi dbinott ,


We recently added unmaskExpirationDate field for the getCustomerPaymentProfile API request. The unmasked card expiration date is not available for getCustomerProfile requests. If you are looking for a list of payment profiles expiring in a given month, you can alternatively use the new getCustomerPaymentProfileList call.





by Christophe
on ‎11-25-2015 04:55 PM
It is nice to have added unmaskedExpirationDate as an option in getCustomerPaymentProfile, but I am using getCustomerProfile - like many other developers - because it returns all payment profiles in one call and it is simpler and more efficient code than looping over getCustomerPaymentProfile. Please make the interfaces consistent and provide unmaskedExpirationDate option in getCustomerProfile.
by emedicalfusion
on ‎11-30-2015 03:55 PM

Can someone please explain how to create a subscription using the new API methods from an existing CIM profile? Seems that this is finally possible given the integration between the two, but the method isn't specified above.


Secondly, I reported an issue today that is a bug related to the new CIM/ARB integration. Issue is that if we attempt to create a new CIM profile simialar to an existing one but say the expiration date is different, the udpate is failing today which then causes the subsequent transaction to fail becasue the CIM didn't update.  And with the existing CIM methods (prior to the update) user could not see the wrong expiration date so the issue is masked.  This is creating major issues.  Please advise when this willb be fixed or what we need to do as a quick workaround.

by Administrator Administrator
on ‎11-30-2015 06:11 PM

Hello @emedicalfusion


The ability to create a subscription using a customer profile is not yet available, but work is already underway as mentioned in this thread:



by emedicalfusion
on ‎12-03-2015 12:50 PM

Richard thanks for confirming that point -- I was just hopeful.  One more important question.  When using the CreateCustomerPaymentProfile method we end up creating a profile even if the create profile transaction returns a decline.  How do we avoid doing that/? In other words, if the create payment profile transaction for $.00/$.01 gets declined, we would like to not store the card, but presently it is getting stored anyway. Is there a way to fix that other than by usign deletecustomerpaymentprofile to delete it after it was created.  That seems llike such a waste of processing time. Please advise.

by Administrator Administrator
on ‎12-03-2015 01:12 PM

@emedicalfusion If you set ValidationMode to Livemode in the request it will not create a payment profile if the transaction is unsuccessful.

by dephils
on ‎03-12-2016 04:14 AM

Hello Richard, please i want to know if you can assist us with our integration and what will be the cost ?

thank you