#paul_api
1 messages · Page 1 of 1 (latest)
👋 Welcome to your new thread!
⏲️ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
⏱️ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
🔗 This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1227542738887512094
📝 Have more to share? Add more details, code, screenshots, videos, etc. below.
Hi, let me help you with this.
Could you please share the Request ID req_xxx? https://support.stripe.com/questions/finding-the-id-for-an-api-request
You need to provide a specific parameter when creating MOTO (mail order) charges. For that you'll need to reach out to Stripe Support so they enable it for your account: https://support.stripe.com/?contact=true
we have moto enabled on our account
and are passing off_session and moto at different points correctly as far as I'm aware
is that what you're refering to?
Yes, I don't see moto being passed on this given PaymentIntent
hmmm ok, one minute I had quite a discussion around when we should and shouldn't be passing these flags with a colleague of yours. I'll dig out what we decided on
Does it work if you pass it?
we went through a lot of changes with sending and not sending and when it was valid to send and when it wasn't so tbh I'm not sure. I'm just looking through all the communications around it
We’ve tried setting the MOTO flag as well as off_session on the paymentIntent however we get an error back saying that we can’t set off_session = true and MOTO = true.
and when I raised that with Stripe support we were told we don't need to do this after all and that it should be just doing off_session = true
hi just jumping in. To clarify a few things, CVC is required on the vast majority of payments, but MOTO is exempted.
Also off_session and MOTO are very different things so it really depends what you're trying to do and the use case and who is entering the card details and when.
yeah, I've had quite a long conversation with a colleague of yours about it
I've got diagrams and a long email chain I'm happy to send you if you like
I'd like to get to the bottom of it to ensure what we're doing is correct
ok then I just need a small bit of information really
you're using Elements to collect card details I see(in the example you shared that's failing). Who is typing the card details into Elements?
We are in an internal application, in that scenario it was from a postal order
so to answer my question, an employee of yours, someone who's not the cardholder?
yes that's correct
cool. Then that's MOTO and it would have worked if you used pamyent_method_options[card][moto] on the PaymentIntent . It was not a off_session use case.
Is that only applicable becuase we don't have CVC for these cards, for telephone orders where we do take CVC should we be setting off_session rather than MOTO?
no, you'd be using MOTO there too.
MOTO is Mail and Telephone Order which is what both your examples are.
off_session is for when your backend server is e.g. charging a saved card for some recurring payment in a batch job or so on.
Am I able to have a call with you where I can explain how we're interacting in full as we have multiple scenarios and have been told something different in the past?
no sorry
I understand, but I'm at a complete loss how to proceed. To quote directly from an email from a collegue of yours: "I did see that in the Payment Processor API section, you mentioned that you would set the MOTO flag to true when creating a future PaymentIntent. Instead of the MOTO flag, this should part of the integration should pass ‘off_session=true’, since this is an offline payment rather than a phone payment."
I'm not privy to any of those communications.
in the example you explained to me just now(cardholder gives you information over the phone, or you read their card number from a form they mailed to you), that is 100% MOTO and you'd use payment_method_options[card][moto] when processing the PaymentIntent. If you have other example scenarios I can try to help with those.
sure, I see that. I'm just trying to dig through and see why we were told to do the opposite before
well presumably whomever you're speaking to has more context. For example I just noticed you're actually using SetupIntents here? Do you know why? You also have an AE on your account too I think, so maybe they can help you and escalate things.
"In order to set the ‘off_session’ flag on a PaymentIntent, the card used for that payment must first be ‘set up’, by using a SetupIntent to save the card (with ‘usage=off_session'). So, for example, if your business model involves collecting customer cards over the phone, to later use for offline/off-session payments, then the correct approach is to set the MOTO flag when saving the card with a SetupIntent, and then set ‘off_session=true’ on later PaymentIntents you create for that customers."
yep we're using setupIntents to collect the card then charge them later
I see
well yeah you might be falling into a product gap here. What can happen is you don't need the CVC at the point of using the SetupIntent to save the card(because MOTO-SetupIntent is exempt from the requirement) but then your PaymentMethod does not have a CVC and future off_session payments do require one, and you get an error.
ah ok, thank you that helps me understand why we're seeing that
the hard requirement on CVC(returning that error you talked about) is fairly new and only implemented late last year so quite possible it has an edge case in this particular flow
reply back to whomever you're in contact with and make it clear you're blocked and you want advice/think it might be a bug