07-10-2015 07:13 AM
I have CIM pretty much integrated with our system. but I am a little confused about one case:
When a user has entered their credit card info and submits a charge, and the charge is declined, the user then changes some or all of their credit card info and attempts to resubmit their charge.
Do I create a separate new Payment Profile every time the user changes & resubmits a charge?
It seems like if the user is having trouble with multiple credit cards or is having trouble entering information accurately, we could end up with dozens of invalud payment profiles for the user.
This is on a system with recurring payments, so I don't want to delete previous payment profiles that at one time had successful charges on them, in case we need to refund a past charge.
On a failed charge, I am tempted to just delete the payment profile of the failed charge (*** if there was never any successful past charge for that payment profile in our system ***), and then create a new payment profile to resubmt the charge. This would avoid piling up a bunch of invalid payment profiles for the user, but not sure if this is best practice or not.
Is there a better way to handle this?
07-15-2015 11:43 AM - edited 07-15-2015 11:56 AM
Can you please clarify what you are asking here? Generally speaking, the CIM Payment Profile will only be created if the card is successfully validated and you can store up to 10 payment profiles per customer. In most cases, this is more than enough for a customer who is merely trying to enter alternative payment methods.
07-23-2015 11:39 AM
Thanks for your reply.
Basically I am trying to figure out if I am supposed to just call updateCustomerPaymentProfileRequest every time the user needs to change or update credit card information, or if I need to create a new Payment Profile every time.
1. The customer is charged $100 for a year of service on 6/21/2014.
2. On 6/15/2015, the serivice is up for automatic renewal, and we attempt to charge the customer's card for $100, but it is declined.
3. The customer logs in and updates her credit card information, changing to a completely new credit card to charge the $100 renewal.
So, in this case, can we just update the Payment Profile? Or do we need to create a new Payment Profile (createCustomerPaymentProfileRequest) for the new credit card information?
What happens in the case that we have to refund both $100 charges that were charged using the same Payment Profile, but different credit cards? I would assume that the refund is processed using the information provided at the time of each transaction, but I want to be clear.
It seems from your reply that since there is a maximum of 10 payment profiles that it would not be recommended or necessary to create a new Payment Profile every time the user changes their credit card.
If you could confirm this, I would appreciate it.
Thanks again Joy!
07-23-2015 12:27 PM
In this case, you are probably better off using updateCustomerPaymentProfileRequest. You only need to create a new payment profile using createCustomerPaymentProfileRequest if you want to continue storing both credit card information for some reason.
When processing a refund, you can run the refund request using the createTransaction call with the transaction ID and last 4 digits of the card number of the original charge.