On our system, the users can reserve to an event for a few days in the future (for that we authorize the transaction with event value), then the capture of the money is made after the user attended the event, only if the user attended it.
Now we are implementing extensions for the events. On this new feature the users could extend the service when they are the event, also the user can buy the extension multiple times. So, we need to charge the user for more money than the previously authorized for, and the amount will be updated each time a user buys a new extension. And is not all, also, it is a business requirement to generate only one charge on the user credit card.
Which is the best alternative to be able to implement this on Authorize.net.
Thanks
โ09-15-2017 08:29 AM
You won't be able to capture more than you authorized. In your case, probably better to create a Customer Profile and Customer Payment Profile with a createCustomerProfileRequest, then, once all of the charges have been calculated, do an authCaptureTransaction to charge the customerProfile:
<profile> <customerProfileId>{INT}</customerProfileId> <paymentProfile> <paymentProfileId>{INT}</paymentProfileId> </paymentProfile> </profile>
โ09-15-2017 11:57 AM - edited โ09-15-2017 12:02 PM
I don't understand. What should I do with the authorization? How can we be sure the money would be captured after the user got our service?
Let me explain better the system:
When the users register on our system they have to add their credit card. At that moment we create a customer payment profile using:
AuthorizeNet::API::CreateCustomerPaymentProfileRequest.new
So we already have the payment information of all our users. So at the moment of the reservation, we only need to authorize the transaction to be sure the user has founds to pay, and for that, we use:
AuthorizeNet::API::TransactionTypeEnum::AuthOnlyTransaction
And at the end of the event we capture the money by using:
AuthorizeNet::API::TransactionTypeEnum::PriorAuthCaptureTransaction
But now we need to update the amount of money we are going to charge at the end of the event. And that should be done all on only one charge on the user's credit card, as a business decision.
So, what flow do you suggest to we use to be able to do that, while we are sure that the money will be captured after finished the event (this last one is very important because we because we do the service before charge it to the user)
Thanks
โ09-15-2017 01:04 PM
You're in a better place where you already have the payment information / Customer Payment Profile.
Payment processors won't allow you to capture more than you authorize. You could however authorize for the most it could possibly be, then capture the actual lesser amount, but many customers would not like that, if they don't know what is going on. They might accept it, if you tell them in advance, we need to authorize for X amount, just in case, but you will only get charged the actual amount.
โ09-15-2017 01:43 PM - edited โ09-15-2017 01:53 PM
Isn't any way to change the amount of an authorization? Can we at least, authorize another transaction and the cancel the original authorization?
โ09-21-2017 05:23 AM
Yes, you could authorize and capture a new transaction.
โ09-21-2017 05:28 AM