Auth and Capture principle for longer periods

1,192 views
Skip to first unread message

Aziz Mirzabekov

unread,
Oct 21, 2016, 12:03:27 PM10/21/16
to Stripe API Discussion
Hi, 

I am having problems with of auth and capture principle when dealing with customer orders.

Observation:
My customers make their service orders 20-25 days in advance. As a marketplace, based on customer order I am trying to find right service provider for the customer and sometimes it takes more than 7 days to find appropriate service provider. Once found, let's say on 6th day, I capture payment into service provider's managed account.

Problem: 
If did not find service provider for the customer in 7 days, funds get released to customer. After that, let's say I found service provider on 8th day and when I try to auth and capture payment, there could be no money on customer card as money was released on 7th day. Then I have to cancel client's order and cancel service provider as client's did not have enough money on card. After that if client still wants that order to be processed, I have to call him/her to top up card and organise card charge again.

Question:
Is there any way to auth card and capture it somehow in 20-25 days? Or maybe some other ways to reach the same goal?

Thanks in advance.

Mark X. 


Remi J.

unread,
Oct 21, 2016, 6:42:40 PM10/21/16
to api-d...@lists.stripe.com
Hey Mark,

If I understand your flow correctly here, you're creating an authorization on the customer card, directly on your platform first. Then you search for a service provider while you hold the authorization. If in the next 7 days you find a provider, you capture the charge on your platform. If you don't find one, you release the authorization.

This leads to the first problem here. The flow here means that you, as the platform, hold the funds. Then once the service provider is found, I assume that you send the funds using a Special Case Transfer [1]. Those can't be used 100% of the time in most cases though. The documentation says

> Another helpful rule of thumb is that, over time, the transfers API should be less than 10% of your overall net volume from all transactions performed. Being under this volume does not guarantee that you are compliant, but use cases significantly over that volume are unlikely to be permitted.

This doesn't mean it's never possible, though it's rarely what you want to do. In general, you are expected to create the charge *on behalf of* the service provider, at charge creation instead.

For this reason, I'd highly recommend that you talk to our support team directly [3]. You can explain your exact business models in details, clarify how often you payout to providers, where they are based, what percentage of providers are US-based, etc. They can they help guide you around the limitations to make sure you handle payments and transfers in a compliant way.

Now to address your technical question itself, there's currently no way to create an authorization that lasts for over 7 days. There's also no way to capture the charge on behalf of a certain provider after the authorization has already been created.

What we usually recommend in that situation is to save the card first but not charge it until you find the service provider. Once you do, you can then charge the card on their behalf. If the charge is successful, the provider will move forward, knowing he will get his funds. If the charge fails then the order is put on hold while you reach out to your customer, either via phone or an automated email to have them try the order again. You could also decide to move forward with the order and then reach out to your customer to figure out a way to get the funds afterwards.

Hope this helps!
Remi


--
You received this message because you are subscribed to the Google Groups "Stripe API Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to api-discuss+unsubscribe@lists.stripe.com.
To post to this group, send email to api-d...@lists.stripe.com.
Visit this group at https://groups.google.com/a/lists.stripe.com/group/api-discuss/.

Michael

unread,
Oct 22, 2016, 6:27:49 PM10/22/16
to Stripe API Discussion
Hello!

It sounds like you'd like extend the authorization period above 7 days. This is impossible with Stripe.

However, you can easily create a new Charge from the expired authorized charge. Here's some example code:


Hope this help!

Mike
To unsubscribe from this group and stop receiving emails from it, send an email to api-discuss...@lists.stripe.com.

Matthew Arkin

unread,
Oct 22, 2016, 6:29:44 PM10/22/16
to Jake K.
One should note that the there is no guarantee that second charge will auth successfully. The 7 day limitation is put in place by card brand rules, so if you really need to get around it, I'd recommend reaching out to Stripe support first before just creating new charges.

To unsubscribe from this group and stop receiving emails from it, send an email to api-discuss+unsubscribe@lists.stripe.com.
Reply all
Reply to author
Forward
0 new messages