Our client wants to keep everything on his website and he has an https cert so we're implementing using Payment Transactions.
The client sells many items so an order can contain many products, including subscriptions. We understand that we can only capture once per authorisation so what is the best way to cope with the situation where a customer orders 5 items (so we do an authorisation for the complete cost at the time of order) but, subsequently, 2 are not available and are removed from the order.
We could just delete those items from the order and capture less than the authorised amount - would that then release the authorisation for the higher amount on the customer's card?
Best, David
03-18-2016 02:07 AM
Hello @silversquonk
If the transaction has settled, then you can issue one or more refunds to reflect a change in the order.
If the transaction has not settled, then your option is to void the entire transaction. You would then need to submit a new transaction for authorization.
Richard
03-18-2016 11:34 AM
Thank you @RichardH for your advice. Just so I can get this totally clear. Say the client had an order for 3 items, A @ $10, B @ $20 and C @ $30. Not all items are in stock so are shipped at different times.
1. Script authorizes for $60 with createTransactionRequest and stores the customer profile.
2. Client charges $20 (script issues createTransactionRequest for a capture of $20) and ships B.
3a. A is available for despatch. Original transaction has not settled. Script voids the transaction, issues a new authorization for $60 using customer profile and captures $30. Client ships B.
3b. A is available for despatch. Original transaction has settled. Using customer profile, script issues a new authorization for $40 and captures $10. Client ships B.
4a. C is available for despatch. Last transaction has not settled. Script voids the transaction, issues a new authorization for $60 using customer profile and captures $60. Client ships C.
4b. C is available for despatch. Last transaction has settled. Using customer profile, script issues a new authorization for $10 and captures $10. Client ships C.
Update: I now see that you can't use a Customer Profile for Authorization so the client would have to ask the customer for the credit card details again, which is unacceptable. So client cannot ship items at different times unless he charges all upfront and then refunds if item does not ship. what happens if you refund before total amount has settled? Not good practice really.
This does seem overly complicated and it would be much easier if multiple captures (up to the auth limit) could be made on an authorization - SagePay in the UK do it like this. Oh well.
Or have I got it totally wrong?
Best, David
03-19-2016 03:23 AM
... or is it best to do 3 authorizations, one for each item, on the same payment method when the order is placed, so that each one can either be captured or voided.
David
03-19-2016 10:12 AM