My client needs a system where people can “authorize funds” on their credit card, and be charged once we have the actual weight of their cheese.
So for Cheese, instead of only being able to select 1 item, the options would be: =/-300g, +/-1Kg, ½ wheel (+/-2.7Kg) or whole wheel (+/-5.5Kg). Then, we would receive the “order” once the cheese has been selected. We would come back with the weight and their card would be charged for the actual weight
Is this possible?
There’s legal limits on the amount of time that a credit card can sit authorized but not charged,I believe on Shopify Payments that’s 7 days and other payment processors are around that time too. I could only suggest that you capture the payments instead since the only way to extend the auth window is to change the laws.
Casey, thanks for the response. I am very new to e commerce and I’m not familiar with “capturing” the payment. Could you please explain (in idiot speak lol) it to me?
Payments have two steps. An authorization (I am going to give this money to you) and capture (I am receiving the money you are giving me). Google is the better teacher for the longer explanation but that’s about as simple as it gets!
Or I guess if you’re an old like me you can think of it as the difference between writing a cheque (which authorizes the money) and cashing the cheque (which captures the money).
LOL, what a great explanation! Thanks for your explanation.
BTW, I have a funny feeling I’m older than you!
Using shopify payments, is it possible to e.g. pre-authorise $100, but only capture $95?
Not sure if you’re still looking for a way to do this, we have a few farms using our app (Downpay) to do weight based transactions where the amount at checkout might change. Basically a customer can leave a deposit for the product, then once the order has been finalized and prepared with all the correct weights, it can be edited and the right amount can then be collected directly from the card on file. If you want to chat about it, dm me anytime!
Yes, and the mechanism you want is partial capture rather than anything specific to weighing.
At the network level, you can capture less than you authorised. You cannot capture more. That asymmetry is the whole design of this: you authorise an amount comfortably above the likely final price, then capture the actual amount once the cheese is on the scale, and the difference is released back to the customer.
So the direction you err in matters and it is not symmetric. Authorise high and you have held more of somebody’s money than you were going to take, which customers notice, particularly on a debit card where it is real available balance. Authorize low and you are stuck, because topping up a capture is not something you can do. You would need a second transaction, which means new consent, which puts you exactly where the pre-order threads on this forum have been for five years. Err high.
The bit worth checking before you build anything: partial capture is a network and gateway capability, and whether the Shopify admin exposes it to you depends on which gateway you are on. Confirm you can actually capture a lower amount from the order page on the client’s specific setup, because the entire design rests on that one button existing.
Two things I would put in from the start.
Say it at checkout. If the customer sees a figure and the hold on their card is higher, that needs to be stated plainly at the point they agree to it, along with the fact that the final charge is based on weight. It is one line and it is the difference between a customer who understands the hold and a customer who disputes it.
And measure the tail, not the average. Whatever margin you set the authorisation at, the number that costs you is the percentage of orders that come in above it, because each of those becomes a manual second transaction and a conversation. The average variance between estimate and actual will look reassuring and will tell you nothing. Look at the distribution and set the margin off the far end of it, then check it again after a hundred orders, because a cheese counter in December is not a cheese counter in June.