Happy Business Starts Here

How to let our customers to update their credit card details in case of a failed renewal payment

Honor Student

How to let our customers to update their credit card details in case of a failed renewal payment

Hello,

We are using Zoura to implement subscription model. For creating the payment methods, we use hosted pages embedded in our website. If the auto renewal fails due to changes in credit card details (expiration, cvv etc..), we want to let our customers update the details directly in zoura (we don't want to handle their payment details, so the option of REST API's won't work for our case and also we dont want to share our zoura licenced instance with them). Using hosted pages creates new account everytime.

 

Does Zoura provide a way (may be a link / some hosted page / interface), to let our customers update their payment method against the account.

 

Please help us with your suggestion.

8 REPLIES 8
Zuora Staff

Re: How to let our customers to update their credit card details in case of a failed renewal payment

You should use the Zuora hosted page to 'update' payment methods. While you noted that 'using hosted pages creates new account everytime', that's not a Zuora limitation but a limitation of the implementation of that particular HPM page.

 

Zuora's HPM page is happy to work with an existing account and supports the addition of a new credit card to existing accounts. It sounds like the current HPM page is configured and coded to always create a new billing account, but it doesn't have to be. You can either enhance the existing page to accept an account id as an input so the new card gets added to that account, or you could create a new web page with HPM that is used for adding cards to existing accounts. There's some brief documentation on this later use case here:

https://knowledgecenter.zuora.com/CA_Commerce/T_Hosted_Commerce_Pages/B_Payment_Pages_2.0/Link_Payme...

 

One, possibly pedantic, point, I put 'update' in quotes above as you don't ever actually update a card with HPM, instead you create a new payment method everytime. Once added you can make that new card the default and so Zuora behaves as if the card has been updated, but in reality you have two payment methods on the billing account, the original one and the 'new/updated' one. This is intentional and allows you to clearly see the history over time. 

 

Hope this helps, let us know if you have any questions but if you can find out who did the implementation of the original HPM page on your site that person should be able to create a new page that does what you need.

 

I'd also add that we offer integration with Visa, MC and Amex's 'card updater' services with several of our gateways, this is card service where we send out existing cards and ask Visa/MC/Amex if the customer's card has been updated (for example their card expired and they were issued a replacement). If it has then a new card is created in Zuora automatically. This feature can obviously reduce the occurrences of errors like 'card expired'. While Zuora doesn't charge you for this feature, the card companies charge you for every update so be sure to investigate the pricing and determine if this service is worth your while. More info on this can be found here:

https://knowledgecenter.zuora.com/CB_Billing/L_Payment_Methods/D_Payment_Method_Updater/Using_Paymen...

Honor Student

Re: How to let our customers to update their credit card details in case of a failed renewal payment

Hello Richard, 

 

Many Thanks for the information. We have tried the approach you suggested, but that did not work. We followed the knowledge centre articles on how to create payment methods for existing accounts, and followed the steps to use the field_accountId as an input to the Zuora hosted page.

 

Below are the steps we followed:

1. we used the zuora account Id as input to the Zuora's HPM (we used field_accountId  from our client while loading the hosted page)

 

This still creates a new zuora account for each submit of the HPM Page.

 

Please help us with more details on how this functionality is supposed to work and how does the submit button click treats the parameters. Any detailed example sample implementation will be greatful.

 

Thanks

Zuora Staff

Re: How to let our customers to update their credit card details in case of a failed renewal payment

Are you using a Checkout Page and not a Hosted Payment Method Page? 

 

The two are compared and described here:

https://knowledgecenter.zuora.com/CA_Commerce/T_Hosted_Commerce_Pages/A_Hosted_Pages_Overview

 

The Checkout Page behaves the way you describe but Hosted Payment Pages only save a payment method (assuming success in both cases). With Hosted Payment Pages ask you to specify a callback function where you tell Zuora what to do next, for example you might display a 'please confirm your purchase of ....' and then create a billing account/subscription and associate it with the payment method. 

 

The easiest way to tell is to see if your page was created from the Commerce Settings 'Manage Checkout Pages'? Or from the Payments Settings, 'Setup Hosted Pages'?

 

If it's the later, a Hosted Page and NOT a Checkout Page, then you (well a developer) programmed what happened once the credit card is saved. And if you are finding that you are using Hosted Page and a billing account is always created, then the good news is, you can change that behavior. Though you might need a developer if you're not one yourself.

 

So if you are using a Checkout Page then you'll need to move to Hosted Pages (again this will require a developer, you can hire a Zuora one, but you may prefer to use your own) to get the behaviour you asked for in your original post. If you are using Hosted Pages and billing accounts are being created all the time you need to change the callback function, described here:

https://knowledgecenter.zuora.com/CA_Commerce/T_Hosted_Commerce_Pages/B_Payment_Pages_2.0/H_Integrat...

 

I hope this is the root of your question, but let me know.

 

 

 

Tutor

Re: How to let our customers to update their credit card details in case of a failed renewal payment

We use the HPM to replace the current payment method for our subscribers. You have to change the function being called when the HPM form is submitted in order to do it.

Honor Student

Re: How to let our customers to update their credit card details in case of a failed renewal payment

Hello Richard,

 

We were using hosted commerce pages to register a customer for a subscription model, so this creates a new zuora account for each submit as desired.

 

For Adding new payment method against existing zuora account, we are exploring the possibility with zuora HPM. Below is my understanding of HPM offerings after going through your reply and documents, please correct me if i am wrong.

 

1. Create a HPM page , load it in your website using Zuora javascript library with params and a callback function.

2. On HPM page submit, Zuora creates new payment method and associates it with account id provided in params, then call back function is triggered with zuora response.

3. Process the response

 

However, 'With Hosted Payment Pages ask you to specify a callback function where you tell Zuora what to do next, for example you might display a 'please confirm your purchase of ....' and then create a billing account/subscription and associate it with the payment method' confused me a little.

 

The callback function tells what to do post zuora created the payment method (say whether to associate with an account or if already associated, to make this payment method as default). On click of submit, payment method creation is taken care of.

 

Please correct if I am mistaken with the use of HPM.

 

Many Thanks!

Honor Student

Re: How to let our customers to update their credit card details in case of a failed renewal payment

Hello @russd2357

 

Are you referring to the call back function to be specified here? or 'https://apisandbox.zuora.com/apps/HostedPageLite.do?method'.

 

Also, can you please provide more details into how it is done.

 

Many Thanks in advance.

 

Zuora Staff

Re: How to let our customers to update their credit card details in case of a failed renewal payment

All I was trying to say was that HPM just saves a payment method, what happens next is under your control Smiley Happy

 

And your three steps are correct.

Tutor

Re: How to let our customers to update their credit card details in case of a failed renewal payment

Hi @falcons123

 

Yes, we use the HPM page to add a payment method to the user's account. Then we use the Zuora API to change the default payment method to the newly added CC, and so that the account only has one payment method, we delete the old one. You need to change the default PM first because the Zuora API will not allow you to delete the default payment method (rightly so).

 

Hope that helps.