#dtfk

1 messages · Page 1 of 1 (latest)

topaz matrixBOT
dusk thicket
fallen aspen
#

Our business model is like this that we collect & save bank account details like acc number, routing etc. And then capture the amount later. So we were using another payment provider.

Now we want to integrate stripe ACH also

dusk thicket
#

The link I shared is how to collect ACH PaymentMethod using Stripe,

#

is it what you are looking for ?

fallen aspen
#

That link is to save acc details for future usage using Stripe. But we already have the saved details outside of stripe.

Now we want to build ACH functionality using Stripe so that we can capture amount from those saved accounts

dusk thicket
#

building the ACH functionnality, requires you to use Stripe for collecting the details of these bank accounts

fallen aspen
#

Yes we are PCI compliant

#

Ok so we need to create

  1. Payment intent
    2 Payment method using those saved details
#

Correct?

dusk thicket
#

create the PayemntMehtod, then create the PaymentIntent yes

fallen aspen
#

So our business model is like this, like I told you that we r PCI compliant and we have saved bank account details.

Now we have one Approve button that is used to charge from those customer accounts. So as soon as the authorized personnel clicks the that button, it will make a capture request

dusk thicket
#

yes I totally understand you, now when the customer click on Approve buttin, you create a PaymentIntent with the PaymentMehtod you created

#

You create a PaymentIntent like this:

const intent = await stripe.paymentIntents.create({
  payment_method_types: ['us_bank_account'],
  payment_method: // The PaymentMethod Id you created using this API https://stripe.com/docs/api/payment_methods/create#create_payment_method-us_bank_account with the bank details you have,
  customer: // your customerId,
  confirm: true,
  amount: 100,
  currency: 'usd',
});
fallen aspen
#

Actually customer won't click the approve button. It is an authorized personnel that will click the button from backend.
And it will be all server side calls. No js request

dusk thicket
fallen aspen
#

Ok please clarify the flow :

  1. Create Customer
  2. Create Payment method -- us_bank_account
  3. Create Payment Intent with attached customer & payment method
dusk thicket
#

yes like that

fallen aspen
#

While creating payment Intent below parameters value are correct:

  1. we don't need to provide "confirm" , "off_session" & "capture_method" parameter, I believe?

  2. Setup_future_usage: off_session

dusk thicket
fallen aspen
#

Ok , just with the parameters which are mentioned in js script payment Intent

dusk thicket
#

yes, that's nodesJs script

fallen aspen
#

Do we need to provide mandate data as well in payment intent?

waxen briar
#

Hi there 👋 I'm jumping in as my teammate needs to step away. Yes, if the customer is not the one actively completing the checkout process then it is not possible for us to collect mandate acceptance from them and so you must provide it.

fallen aspen
#

Hi @waxen briar , there is one mandate parameter also, which asks for id, what can be provided over there?

waxen briar
#

I don't believe you want to use the mandate field because you don't have a Mandate object already created to reference by its id. instead I think you'll want to use mandate_data.customer_acceptance to provide the details you logged when you were collecting mandate acceptance from your customer:
https://stripe.com/docs/api/payment_intents/confirm#confirm_payment_intent-mandate_data-customer_acceptance

fallen aspen
#

Ohh ok

#

Mandate field is for those who have collected mandate using Stripe from customers?

Mandate_data.customer_acceptance is for those who have collected mandate using their own custom way

#

Correct?

waxen briar
#

Correct, mandate is for referencing an already created Mandate object by its ID:
https://stripe.com/docs/api/mandates

mandate_data.customer_acceptance is for providing the details necessary to create a Mandate because the customer is not present to provide those details.

fallen aspen
#

So we are PCI compliant and we save the customer bank details through online form and during that process we show them a custom form that list out mandate terms and a checkbox for acceptance

#

So I believe we can provide all these details in mandate_data.customer_acceptance

#

Correct?

waxen briar
#

Sorry, compliance isn't our area of focus so I'm not sure my understanding of this is correct, but isn't PCI compliance for card payments, whereas ACH payments are subject to the rules and regulations put forth by Nacha?
https://support.stripe.com/questions/nacha-bank-account-validation-rule
https://www.nacha.org/content/ach-rules-compliance

#

I do believe mandate_data.customer_acceptance is the field you're looking for, but I'm not able to speak to whether your approach meets compliance requirements.

fallen aspen
#

Yes we are compliant to save those details

#

But just wanted to know that do we need to provide that custom online mandate details in mandate_data.customer_acceptance field

waxen briar
#

Yes, you need to provide mandate details.

fallen aspen
#

So we can provide the type :online, IP address, user agent etc details

waxen briar
#

Whether you provide offline or online depends on how you collected the mandate acceptance from your customer. If you collected it via a website, then you provide the details your site collected from your customer while they were providing consent for you to debit their account via the online hash, if it wasn't done online (such as an in person/writing agreement) then you use offline.

fallen aspen
#

By hash u mean all those details like IP, user agent, accepted at date time

#

Correct?

waxen briar
#

Yes, by hash I was referring to the object structure that the online parameter is expecting to be provided if it is used.

fallen aspen
#

Ok thank you so much @waxen briar @dusk thicket
It's really helpful

waxen briar
#

Happy to help!