#Tonhom-ACH

1 messages · Page 1 of 1 (latest)

digital osprey
#

They should be different events. Newer version is payment_intent.succeed/processing/payment_failed, but old version should be charge.succeed/failed/pending

toxic echo
#

Okay! So, the next question is. What is the difference of events between T+4 and T+2? We are implementing our system to support the beta T+2 of the Charge API. Currently, we saw the difference between that is the order of the events. For T+4, the payout.created event always be sent after charge.succeeded. But, for the T+2, the payout.created is sent before charge.succeeded because the balance of the connect account is available to payout earlier right? I'm wondering is it still be the same scenario for the newer version with Payment Intent?

#

Actually, I want some implementation guideline for the webhooks events of the T+2 because It is different from the timeline in your official document. https://stripe.com/docs/ach-deprecated#ach-payments-workflow

Stripe supports accepting ACH payments—directly from bank accounts—alongside credit cards. We currently only support ACH for Stripe businesses based in the US.

digital osprey
#

By order of payout.created vs charge.succeeded, did you observe they were far apart, or happened simultaneously?

toxic echo
#

Far apart. If payment created on biz day 0. payout.created is on biz day 1 and charge.succeeded is on biz day 4 or 5

#

Our problem is, currently on the T+4, we transition the status of transaction to "paid" when "charged.succeeded" arrived. Then, to "depositing" when "payout.created" arrived. So, we have to adjust our status transition depend on the order of Stripe events that was changed on T+2. That is why I want to confirm the actual changed event timeline between T+4 and T+2 for the correct system design and implementation.

grand kiln
#

@toxic echo Can you share your account id so that I can take a closer look at how your integration currently works? You can find your account id by logging in to https://dashboard.stripe.com/settings/account. It'll be in the upper right hand corner and looks like acct_123

toxic echo
#

@grand kiln Got it! But, we already disabled the T+2 for now to implement our system to support it first. However, I can send you the Connect Account, Transfer, and Payment that was affected by T+2.

#

the ID is acct_1Gl1sjBoT4BLkOhv

grand kiln
#

i wanted to confirm, are you

  • shifting from the ACH direct debit on Sources -> ACH direct debit on PaymentIntents, or
  • specifically talking about ACH direct debit on Sources all the way, but with a difference in the settlement time i.e. T+4 -> T+2?
toxic echo
#

specifically talking about ACH direct debit on Sources all the way, but with a difference in the settlement time i.e. T+4 -> T+2

grand kiln
#

aaah, okay, if we're talking about ACH direct debit on Sources but with a faster settlement time

The only real difference here is that the charge will become available earlier to be paid out. But the charge.succeeded event will still be sent 5 business days after creation.

toxic echo
#

So, don’t have any new event right? To use it instead of “charge.succeeded” to handle status transition before “payout.created”

grand kiln
#

yep, there's no new event.

toxic echo
#

Do you have any recommend event? That can mean the charge from this payment is ready to be paid out. I am looking on the “transfer.created” and “balance.available” Is it able to use?

grand kiln
#

how are you currently creating payouts? like do you payout once a day? or do you intend to create a payout for every transaction?

toxic echo
#

Currently, automatically once a day by Stripe system. But. we are implementing to initiate payout manually by our system "once a day" also.

grand kiln
#

hmm, it sounds to me like you would like to continue automatic payouts once a day, but offer the ability to initiate manual payouts once a day too?

toxic echo
#

I forgot to mention that we are using destination charge that customer make a payment to the connect account so the payout I said is always be the payout of connect account

#

And we will switch from daily automatic to daily manual to make the "balance.available" event work.

grand kiln
#

sorry if this seems like i'm asking a lot of questions, but i'm not convinced that there's a good reason to switch to manual payouts

#

when you use automatic payouts, Stripe will create a payout ahead of time, such that the payout will land in the bank account on the date that the balance becomes available. Switching to manual payouts would actually make it such that it takes longer to get the payout in their bank account

#

also, when you use manual payouts, you no longer get an itemized payout breakdown

toxic echo
#

It's fine! Please ask me or recommend me as you wish. I want to confirm that what we are doing is correct or not.

#

I see. We are considering about that too as a tread-off.

grand kiln
#

it just seems like additional implementation work for you without significant benefits

#

generally users who want to use manual payouts, want to control the payout because they may want to hold the funds for a longer time e.g. to be able to claw back funds due to disputes / refunds

toxic echo
#

Can I ask more. When will you recommend to switch to the manual payout. Which use cases that we should use the manual payout?

#

Oh. you already answered me haha

grand kiln
#

predicting the future!

toxic echo
#

What about this use case. If we want to payout to many bank accounts in the same time? Can we do that on automatic payout?

#

Like, the users select which bank account for which collection of payments

grand kiln
#

aaah, then no, that wouldn't be possible on automatic payout and would be i feel a good reason to switch to manual payouts

toxic echo
#

I see. That is another reason. But we will do it soon, not now.

#

So, what I want to ask more is, when we switch to manual payout. We have to handle the breakdown of the payout ourselves right? Does it impact the reconciliation?

#

Of our connected accounts

grand kiln
#

your connected accounts are custom accounts - so i'd assume that you would have your own site for them to reconcile. It really depends on what kind of reporting you're offering them, and how they use that to reconcile

#

custom accounts don't have a Stripe Dashboard to access

toxic echo
#

I see. So, it depend on us to provide what. And it doesn't impact the reconciliation of our platform account right? because it is a transfer to the connect account already

grand kiln
#

yep, the connected account's reconciliation depends on what you (the platform) provides to them. And it doesn't impact the reconciliation of your platform account

#

to backtrack a bit, if you were to use manual payouts, i would probably refer to the balance.available event webhook to determine how much to payout. Alternatively, you could always query for the connected account's balance to know the available balance to payout

toxic echo
#

So, back to the ACH also, I have another question. You said

"if we're talking about ACH direct debit on Sources but with a faster settlement time, The only real difference here is that the charge will become available earlier to be paid out. But the charge.succeeded event will still be sent 5 business days after creation."

#

So, I wondering, if we switch to the new ACH on Payment Method and Payment Intent. Does it have a better option for implementation?

#

We are considering about the switching also. But after the T+2 of ACH direct debit on Sources is finished

#

And, we are currently using Plaid to verify and create the bank account both for Customer and Connect Accounts

#

Is Plaid still be available on the new ACH?

grand kiln
#

but give me a second to see if the new version supports Plaid too

toxic echo
#

More context for you, we are using Subscription and Invoices, didn't create a Charge or Payment Intent directly

#

And we plan to deprecate Subscription and use only Invoice in the future.

grand kiln
#

we don't support Plaid with the latest version of ACH direct debits (i.e. via PaymentIntents)

toxic echo
#

Possible in the future?

grand kiln
#

hmmm, i haven't heard of any plans on this at the moment

toxic echo
#

Got it. The Plaid topic is clear for me.

#

So, the other 2 questions

  1. As mentioned above, I didn't create the Charge or Payment Intent directly. What do we have to do for migration to the newer ACH?
  2. Is the newer ACH better? in term of implementation and webhook events handling fot T+2
grand kiln
#
  1. hmmm, whether or not it's better really depends on your current integration. For example,
  • with new ACH DD, there's no longer a separation of balances. In the past, you would have ACH direct debit transactions go into the ACH balance.
  • Checkout now supports new ACH DD for mode:subscription also, whereas previously Checkout didn't support it
toxic echo
#
  1. Yes, we use destination charge on Subscription & Subscription Schedule. So, you mean we don’t have to do anythings right? Just change to collect the bank account by SetupIntent to use with Subscription then Subscription automatically process the ACH via Payment Intent
grand kiln
#

well, i wouldn't say you don't need to do anything. If you were using Plaid before, you now need to switch to microdeposits or instant verification.

Previously you mentioned planning to switch to manual payouts. On the old ACH DD, you need to payout from two different balances. With the new ACH DD, you need to payout from a single type of balance.

You would need to evaluate your integration to see if there's any change to the webhook events you would need to listen to now also

toxic echo
#

So, for the 2. question

#

I asked you about handling event of T+2 in ACH on Source, and you said it has no new event to use instead of "charge.succeeded" in my use case right? So, what I mean "better" is does the new ACH DD have new event or better webhook events timeline compare to the old ACH on Source? For example, "payment_intent.succeeded" come before "payout.created" or the new event that I can use for transition status of the payment and payout.

grand kiln
#

here's no real difference in terms of how the events are meant to be handled. From what i understand the payment_intent.succeeded would be sent at 4 business days (not 5), but the funds would be available at 2 business days (this is a special setup for your account)

toxic echo
#

Okay, that is clear.

#

And, the last question! Currently, we are using Plaid not only for bank account verification, but also for checking the balance of the bank account to prevent insufficient fund. So, what I want to ask you is does Stripe have the bank account balance checking feature?

grand kiln
#

hmm, this is something which I haven't heard of before. No, i'm not aware of such a feature on Stripe. Could be worth mentioning to your contact in Stripe as a feature request

toxic echo
#

Got it. I will try to request this feature haha

#

Sorry for a lot of questions from me. You guys help me a lot to clarify all of these. Thanks! @grand kiln and @digital osprey.

grand kiln
#

we're here to help 😄 feel free to reach out if you have more questions