#AngusMc
1 messages · Page 1 of 1 (latest)
- What PHP SDK version is required for the new India thing to work? I'm wondering if I can do it with the one I already have integrated, or if I have to update that too and risk having to fix other things in process.
India recurring is only supported on Payment Intent and Setup Intent. If your PHP SDK version supports both of them, you can still it.
- I tried a few test payments with my current integration, using the India test cards, and I get no errors about mandates, or the new regulation requirements in India. I don't have an Indian business or card to test this live. How is it possible for me to test this, other than bother my Indian client to test each thing for me, and wait to hear back from him? There has to be a better way.
Can you share the request ID that has India mandate error?
- It looks like the mandates take a while to be resolved. Should my application keep the customer on hold until it gets a webhook about it giving the green light, or should I give access and then revoke it if the mandate didn't go through? What's best practice or recommended?
Mandate is required for using the saved payment method. For the initial charge, you can use Payment Intent with saving payment method, so that the payment method can be charged immediately and doesn't have to wait for mandate to become valid. Mandate is only required when it's charged on recurring stage: https://stripe.com/docs/india-recurring-payments?integration=paymentIntents-setupIntents#create-mandate
- For subscriptions, does the initial mandate hold good for the rest of the sub, or does each payment afterwards need a new one? And is that handled by Stripe, or does my application need to deal with it each new term payment?
If you use Subscription to create the payment method and mandate, it's only required during the sign up phase and recurring payment will use the mandate on the sign up.
Thanks for the replies, river!
-
My integration supports payment and setup intents, I added those when the whole 3DS thing in Europe happened some years ago. Okay, good, I can use what I have there then.
-
I got one request ID from one of my Indian clients: req_xSXLLbwz1oxy6M. I don't have the details of his Stripe logs, though, and the error message doesn't mention a mandate, only the message: "PaymentMethods of type card cannot be attached to Customers directly without 3DS due to Indian payment regulations. Please instead provide the PaymentMethod and Customer alongside a SetupIntent or PaymentIntent with the
setup_future_usageparameter. " -
Okay! so the payment intent is enough for the on-session payment, and the mandate is only needed for the off-session payments? does that mean that the mandate is only needed for subscriptions, and not for a single, one-time, on-session payment?
-
great
- I got one request ID from one of my Indian clients: req_xSXLLbwz1oxy6M. I don't have the details of his Stripe logs, though, and the error message doesn't mention a mandate, only the message: "PaymentMethods of type card cannot be attached to Customers directly without 3DS due to Indian payment regulations. Please instead provide the PaymentMethod and Customer alongside a SetupIntent or PaymentIntent with the setup_future_usage parameter. "
Do you use India mandate test cards here for your own testing: https://stripe.com/docs/india-recurring-payments?integration=subscriptions#testing
In https://admin.corp.stripe.com/request-log/req_xSXLLbwz1oxy6M, the payment method was created from Payment Method API https://dashboard.stripe.com/logs/req_5LbM3msez3KSCV and attach to customer later instead of using Setup Intent. Payment method should be created from Setup Intent API directly with mandate collection instead of using Payment Method API for India recurring: https://stripe.com/docs/india-recurring-payments?integration=paymentIntents-setupIntents#create-mandate
- Okay! so the payment intent is enough for the on-session payment, and the mandate is only needed for the off-session payments? does that mean that the mandate is only needed for subscriptions, and not for a single, one-time, on-session payment?
Yup! Mandate is only required for off-session payment as described in the doc above:
If you’re an India-based Stripe user or an international (non-IN) Stripe user, your business is affected if you have customers who use India cards for:
- Off-session payments
- Subscriptions or Invoices where the collection_method is set to charge_automatically
Do you use India mandate test cards here for your own testing
I think I did use those, but I will have to try them again to make sure.
the payment method was created from Payment Method API and attach to customer later instead of using Setup Intent. Payment method should be created from Setup Intent API directly instead of using Payment Method API for India recurring
So I need to change the flow of how I do it in my current integration... Would the flow I need to use for the India subscription, work fine for all the other sites using my integration in other countries? Do I need to use this flow specifically for India, or is it safe for everyone?
Yup! Mandate is only required for off-session payment as described in the doc above
OK!
And if I add the mandate to my integration, and it's used by a business with customers outside of India, is it just silently ignored by Stripe or would it give an error for using it when not required? I'm basically trying to figure out if I need to make an India specific version of my integration, separate from the rest of the world, or if it'll work fine everywhere.
Note
You can pass the payment_method_options[card][mandate_options] parameter for all requests. Stripe ignores these parameters if your customer is using a non-India issued card because the regulation doesn’t apply to them.
It's safe to pass mandate in all requests
You can use the same integration for non-India and India cards