#paul_api

1 messages · Page 1 of 1 (latest)

opal kelpBOT
#

👋 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.

normal archBOT
green steppe
#

Hi, let me help you with this.

candid breach
#

Sure, 1 minute

#

req_Pnrg3VrfRJHtuu

green steppe
#

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

candid breach
#

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?

green steppe
#

Yes, I don't see moto being passed on this given PaymentIntent

candid breach
#

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

green steppe
#

Does it work if you pass it?

candid breach
#

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

fossil egret
#

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.

candid breach
#

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

fossil egret
#

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?

candid breach
#

We are in an internal application, in that scenario it was from a postal order

fossil egret
#

so to answer my question, an employee of yours, someone who's not the cardholder?

candid breach
#

yes that's correct

fossil egret
#

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.

candid breach
#

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?

fossil egret
#

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.

candid breach
#

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?

fossil egret
#

no sorry

candid breach
#

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."

fossil egret
#

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.

candid breach
#

sure, I see that. I'm just trying to dig through and see why we were told to do the opposite before

fossil egret
#

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.

candid breach
#

"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

fossil egret
#

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.

candid breach
#

ah ok, thank you that helps me understand why we're seeing that

fossil egret
#

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

candid breach
#

😭

#

Do you have any suggestions on how to go forward with this?

fossil egret
#

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