over 1 year ago Syntax Podcast
Accepting Money on the Internet in 2025
- 02:38 Overview of payment processors
- 04:01 Experience with Stripe and Braintree
- 06:11 PayPal improving developer experience
- 09:44 Types of checkout experiences
- 12:33 Custom checkout with iframe elements
- 15:43 Benefits of standardized checkout UIs
- 18:22 Overview of checkout flow and payment intents
- 23:19 Instant and delayed bank transfers
- 26:06 Buy now pay later services
- 29:50 Merchant of record services
- 32:56 Handling fraud and disputes
Handling fraud and disputes
Wes Bos
last mile carriers
Wes Bos
My bad on that one. I think that's all we have here for accepting money on the Internet.
Wes Bos
luckily, and then you come, again, you come back to the client with that payment intent. I should say that the actual creating the payment intent, your server data rules and whatnot for for handling sensitive information because it's actually going to Stripe directly. Right? The other option is you have a a custom checkout. So the embedded checkout, if you don't Mhmm. And is implementing this themselves.
Wes Bos
I forgot I bought that, or, oh, I didn't realize that that what's that's what that was,
Wes Bos
right now, but I have a a couple methods. It's just search Wes Bos, convert USD And it's there's, like, a local Chinese carrier. You know? It goes on a boat, and then it it shows up. And then
Scott Tolinski
and
Scott Tolinski
That one that you said about, like,
Wes Bos
I have a couple approaches that will get around
Wes Bos
one very important thing to turn on is is Stripe Radar
Wes Bos
You know? It's, and hit the subscribe button. Of course, we're on all the other platforms as well. Leave us a little review if you can. We appreciate that.
Wes Bos
Hold on. I should probably know this. Canada provinces,
Wes Bos
I work in construction. I never would have bought that. And if you can refund it Like, what the hell is going on here in in PayPal? And it turned out that there's two different teams.
Scott Tolinski
I'm I'm stuck into that flow now. I I've, like you know, the place has gotta have free returns and free shipping, and then I can do all that. But, yeah, that's where I'm at. I've been using Parcel for,
Scott Tolinski
disputes, like, very personally when it was, like, somebody who And that is a intense
Wes Bos
fees from PayPal.
Wes Bos
little notes. And all of that stuff is combined and creates a radar score,
Wes Bos
over time. Although the the Amazon shipping in Canada has gotten really fast, so I almost never track it anymore. It just shows up, and it showing up tomorrow. Yeah. Yeah.
Scott Tolinski
Yeah.
Wes Bos
their name does not match the name on the credit card or, before it is
Wes Bos
seems bad, their IP address a platform that is going to sort of process your transactions.
Scott Tolinski
I just click that refund button really quickly. Or get this. If anybody ever emailed me asking for a refund on anything, I would give it to them in one second. And that's the thing that makes me so mad about it. It's like, you could've just emailed asking for a refund, and I would've done that. Instead,
Wes Bos
it's important to have that as well as, like a lot of times people email me and say, hey. What does this charge? And they're like, oh, it's a web development course. They're like, times.
Wes Bos
disputed, then you don't get hit with that $15 fee. So that's that's good. It's per week? You're good. Node California roll. No. I'm not gonna I'm not financing my sushi here.
Wes Bos
all my, like, Canadian taxes because I do have to provinces? Twelve, thirteen? I don't even know.
Scott Tolinski
Being in The US, you know, you you just most of my, customers are in The US or or Node. Sanity,
Wes Bos
because often,
Scott Tolinski
every time.
Wes Bos
Apple Pay. Everything else is so much more secure
Scott Tolinski
some kind of way. If it's if it's legitimate not a great thing. You know? But, hey, and it's a stolen or it's, like, somebody who didn't mean to sign up or there there's a lot of reasons that could be legitimate.
Scott Tolinski
codes in, your delivery stuff, puts it into a nice UI in a widget.
Scott Tolinski
kids charging stuff on their parents' Yarn, like, I've had that in and, like,
Scott Tolinski
And I gotta say,
Scott Tolinski
I've watched the videos. Now I'm just gonna do a a chargeback or whatever. Yeah. I always took that very personally, and I would fight them,
Scott Tolinski
is that she does that. She just buys, like, two or three things of the same different sizes and then returns the ones that and I've, like throw it in your database. Like, you know, you cannot do that. That will that is illegal. I I always joke we've talked about this on the show before a long time ago. I had a client who was moving from their homegrown,
Wes Bos
and then his estate contacted me. And they were just, like had, like, so much debt or something like that, and they were trying to just, like, settle his estate. And they were just going through his credit card trying to get refunds for as much as they can. I was like, oh, yeah. Obviously, he's not gonna watch it. So
Wes Bos
I don't feel good about that. No? Okay. But, like so I I go to these, Cool. Alright. Thanks, everybody, for tuning in. Make sure you check us out on youtube, youtube.com/@syntaxfm, Big fan of that thing. So and iframe in the the PayPal.
Scott Tolinski
I've I've had, like, phone calls like that at least a few times with, like Yeah. Oh, yeah. People who Yarn like, who are you and what are you doing? Oh, I make web development tutorials. Oh, web development? Okay.
Scott Tolinski
iOS. I don't know if it is on Android, but I have to imagine there are other shipping manager apps. So Yeah. Just look for that type of thing, and it is a nice little life thing. Just put a little widget on my screen. I know where my stuff's at. We are in the era of you buy three sizes of something, try it on, and ship the other two back. You know? I mean, that's just where we're at right now. So I I got stuff coming all the time with, clo like, I do all of my clothes shopping there now. And, the way my wife shops for clothes and, this is a positive thing.
Wes Bos
it just man, I I love waiting for for packages to come. I know. It's it is a, dopamine hit that is probably like, good people get caught in it as well, and then you don't get their money.
Scott Tolinski
Just like, hey. Here's all my transactions. Here's my my books. You figure it out. You know? Yeah.
Wes Bos
But when there is is fraud, about your user, and, oh, sorry, also has the, like, user's name and email address and any other stuff you can attach to that.
Scott Tolinski
And like you said, you don't win them that often, and it's a losing battle. But I would I would definitely, like, feel
Scott Tolinski
just tells you It's like a five a year or something too. It's dirt cheap. Yeah. I would pay for it if I end up really liking it and using it all the time. But if you haven't used this,
Wes Bos
screenshots of email with the customer, and then I've I've won it, but probably However, You have to do that whole song and dance again Wes you send all that data back to to the server, So because people don't recognize it, and they immediately be selling stuff to people who that's wild to me that that even works.
Wes Bos
you both have a $15 So you can sign in with Amazon, and it will track where your stuff is
Scott Tolinski
you don't know anything about it, it is on
Scott Tolinski
shipping information inside of the app Parcel, and it's an app that you put all your shipping
Wes Bos
But I love that because it gives you a little little, like, push notification every time something updates, and it will just text you a Node, and then you put the code in, and then you're done. Then Stripe will remember your credit card number. That's I always thought, like, ah, that's dumb. You know? Yeah. I enabled it. Probably at least half of the people use that to check out. Yeah. Which is it just shows me, like, you think, like, yeah, we use password managers and all this stuff. Normal people are not using that stuff. Normal people
Wes Bos
calculate and remit taxes for all the provinces.
Wes Bos
hit on Stripe and and all of these things. So if somebody somebody uses stolen credit card to buy something or or they dispute it or whatever, Absolutely customer sensitive information they want to not have to fuss with remitting taxes in
Wes Bos
hey. If the radar score is below x, y, or z, then reject it. And it's a delicate balance because,
Wes Bos
never,
Wes Bos
and then you can set rules in your Stripe to say, and simply just Yes. Have them type in the form themselves.
Wes Bos
and then it gets put to one of these, like, random last mile carriers where it's, like, a just a dude with a Honda Civic that drives to your house. At least in Canada, that's that seems to be the way it's it's going.
Scott Tolinski
oh, my son is 20 Yarn old,
Scott Tolinski
Also,
Wes Bos
or whatever the equivalent is for your checkout. And what what that will do is they Yeah. Crazy, crazy
Scott Tolinski
I'll take it. The Amazon integration
Wes Bos
story where a guy about the course simple when the the world of money is not simple. You know? There's Yeah. There's legal things all over the place, and not Parcel.
Wes Bos
Alright.
Wes Bos
fan for this three d printer. It's three pin and not four pin. Mhmm. And I'm gonna return it, but, like, popular way. And it has sort of taken over,
Scott Tolinski
Okay. I can get down with that. I don't need I don't need beauty in my ups.
Wes Bos
Yeah. It's it's nice to do that. I was on the phone with my accountant the other day just going through all my,
Wes Bos
you're not in The US, but you're accepting money in The US? How do you then convert that to your local currency? it's probably worth spending So, yeah, we got embedded checkout.
Wes Bos
with,
Scott Tolinski
I don't know why. But he he must've he's a web developer, so chances are he bought this on our card. Now I'm gonna have to have that conversation with him, like, why are you buying stuff on my card? on the web, you got a store, you got a shop, or whatever, post a link to that shop below, post a link to whatever you're you're selling. Let's let's click on each other's links and and buy each other's stuff. But, also, tell us what what payment processor you're using, and I'll let you know what kinda what kinda stuff you're using there because, crypto,
Wes Bos
all of these little you send the information
Wes Bos
Sometimes I buy stuff at auction, Amazon returns.
Wes Bos
the the states, where you what do you have? Fifty fifty states, something like that? That's a little bit harder.
Wes Bos
Beautiful. Alright. Thanks for tuning in. Catch you later. Peace.
Wes Bos
places to try that because they'll they'll they'll have a list of 10,000 credit cards, and they'll just try them all And
Scott Tolinski
I took that,
Wes Bos
And,
Scott Tolinski
if you are accepting payment
Wes Bos
Oh, there's a lot of dropshippers as well. Well, if if it's a crappy product, no problem. I'm sending it back. You know? But, like Yes. Like, for example, I ordered the wrong
Wes Bos
So I've been, been enjoying parcelsapp.
Wes Bos
not so much of an issue now that, like, credit cards are especially American credit cards are catching up with the rest of the world people are looking for people email me all the time JS, what if you have
Wes Bos
I'm still, like, in between the two. But I'm switching over to Vercel they almost always are going to side with the customer.
Wes Bos
especially, like, everyone's like, oh, Amazon, whatever, and maybe some of the stuff. But there's a lot of, like, small businesses selling on there, and you're you're kinda hurting them as well.
Wes Bos
Parcelsapp.com.
Wes Bos
or it'll I think it also says Bos type. And then, like, they can they can contact me. They can call me. And a lot of times, it's just it says, oh, Yeah. On the credit card statement, you can you can write what it shows up JS, and I will try luckily, my name is very Scott, so it'll say, like, Wes Bos beginner JavaScript, PayPal and Braintree absolutely everybody, but that is a extremely
Wes Bos
The the refund or the the disputing it just for the hell of it, there's some bad people out there. Yeah. That is a bad thing to do. If you're out there and you do that about turning something to Amazon.
Scott Tolinski
land. But the the app is
Wes Bos
probably, like, seven Yarn, That's it for money. Let's move into sick picks and shameless plugs. What do you got for me today, Scott?
Wes Bos
little notes about the person visiting the website, You almost Stripe you can do a modal pop up Mhmm. So you have to go into your Stripe account,
Wes Bos
that it's slowly becoming less of an issue, but, you Node, I'll give you the refund. Just let me do it. Yeah. Sometimes the the chargebacks are simply just people don't recognize it, whether it's, oh, my son bought this course or whatever. So what I've gotten is so many of those.
Wes Bos
I don't know that I could do that. That seems the extortionist
Scott Tolinski
I'm interested in what's going on under the hood in some of these things. So, let us know. Here's your shop. What kind of payment processor? What kind of stuff are you using? Do you like it? Let us know.
Scott Tolinski
you know, it does, like, three at once or whatever. But it it does Yeah.
Wes Bos
PayPal.
Scott Tolinski
it's nice. And the free experience on this app is nice because,
Wes Bos
So maybe that'll be my my sick pick as well. It doesn't look as beautiful. But if it's more functional then But it is Yeah. It JS a little bit more functional.
Overview of checkout flow and payment intents
Scott Tolinski
checkout
Wes Bos
Stripe will take care of attaching the credit card or whatever payment method I'll order something from China, for But luckily, Canada only has, what, 13
Wes Bos
two probably most popular ones.
Wes Bos
What you do is and you want to redirect them to Stripe's own checkout. I'm not gonna go too much into that, but it's kind of a similar approach as well. Let's talk about methods to accept money. So, obviously, credit card bank transfer are the And the way that that works is that
Scott Tolinski
the checkout flow isn't well, it Sanity it depends, but if it's recurring or not recurring.
Wes Bos
the product and the user. You send that to your server,
Wes Bos
It has the method that the user wishes to pay with, you know, whether it's, and all of your different options as well. Right? Because on on one end, you can build something totally custom, and then on the other end, you can just sign up for a service and and have them do everything.
Wes Bos
you take that information, Cash App. Europe has a whole bunch of of weird ones as well. The nice thing about
Scott Tolinski
your payment provider.
Wes Bos
like, customer sessions,
Scott Tolinski
because
Wes Bos
Cash App, all those.
Wes Bos
And and then take that payment intent, you send it back to the client,
Scott Tolinski
all those things, and then you're essentially having to hit their API anytime you want any real information. You want information about what the credit card on file is, what the, signed up and then was like, actually,
Scott Tolinski
that you can charge them. Right?
Wes Bos
Stripe uses something called a payment intent, and the dance that it does is is kind of complicated. But the way that it works JS, like, when you are ready to buy something, like, for example, you click on one of my courses and you click on buy, the Stripe elements simply just takes care Wes, like, you shouldn't just be allowed to know the secret number and then buy stuff on the Internet.
Wes Bos
a credit card or Apple Pay or,
Scott Tolinski
what what you actually do need to store is, like, a an ID for all these things, whether it is the the payment ID or the subscription ID, So having an app that you just paste in the,
Scott Tolinski
The whole flow
Scott Tolinski
attached to a user's, like, subscription object in their thing. So by saying that, like, hit go, I want to I want to subscribe to this, it is telling your payment processor
Scott Tolinski
involves familiar. You know? I I I just I had to do this for so many years with Stripe, PayPal, all these things. And in the past, it was never, like, super a lot of fun. Braintree was a disaster, and that's That's super fun. No. One, I like money. Hey. I like I like accepting money, and I I like having money. So, like, therefore, it's just something that you have to do in development if if you are, you know, having a SaaS or product or an app of any kind that you want to restrict access to or if you wanna keep it running because, hey, your services cost money. And if, you're the type of person who uses a lot of services to build your app, your app's gonna cost even more money. And so like you had mentioned with the sliding scale of how much these things do, that's the big determination
Wes Bos
they remove something from their cart while they have it open.
Scott Tolinski
having a product connected to, oh, that makes sense for, like, Linktree. What? It's just a page of links? But they were like, well, what if we gave you a a way to sell your products on on this thing as well? So I have no idea if this one's any good. I will say about beacons,
Scott Tolinski
that you have approved or the user has approved that credit card There's something called, like, PCI compliance Wes you have to make sure that you are compliant
Wes Bos
Some bank transfers are not instant.
Scott Tolinski
to hold on and be able to validate that that charge anytime once a month, whatever, etcetera.
Wes Bos
to that, then you confirm that payment intent, and that is what will actually charge the card or take the money out of their account.
Scott Tolinski
because your payment processor, They're, one of those they started off as, like, a Linktree competitor. Right? Okay.
Wes Bos
what you need to then do is create a payment intent, and that payment intent describes several things. It has the price
Scott Tolinski
the user's credit card number, all of that stuff,
Scott Tolinski
what they're doing is they're holding on to
Scott Tolinski
So let's talk about the whole
Scott Tolinski
but it's not saving that information anywhere in your system. It's sending it to them. It's sending that credit card, and it's getting an approval by halfway through, you're just like, come on. Like, really? You can't just make this a little bit easier? Just give me an API key or something like that. Just Yeah. It's it's like they don't want you to use it. It's it's wild. Scott complex. The only thing I had to do to get Apple Pay working you are accepting payment, Oh, man. You know what? I have a a shameless or a shameless plug. I have a sick pick of something that you sick picked, I believe, a really long time ago. I I would have to look up when this was because it feels like ancient days in in syntax,
Scott Tolinski
And, typically, how that works is, again, you're just getting an ID of the user. You're getting ID of the transaction,
Scott Tolinski
When you're able to purchase that product, it knows the price. It knows everything. It validates Right? PayPal and just normal credit Yarn.
Scott Tolinski
current subscription level is, what other options are there, what's the user information. Any of that stuff, you're taking that information along with your API keys, and you're having to pull it from them. Because when you do that credit card information or whatever, there's a lot of information that will come back to your server, but you shouldn't be saving that in your database. There's just not a lot of good reason to. You should be pulling that directly from the payment processor.
Wes Bos
bank checkout, Alipay, I do not think that I should
Wes Bos
coupon code, someone changes their email address, the the high level UI. So they kinda they kinda do everything.
Scott Tolinski
Yeah. And if you are doing recurring payment, this process, again, is
PayPal improving developer experience
Scott Tolinski
things now out there as well in terms of, like,
Scott Tolinski
You can just, send somebody your bank details,
Wes Bos
a million. Every single country, even Node. Canada, you can pay via, like, a I think it's called an IBAN, like a bank transfer.
Wes Bos
a a necessary evil when accepting money on the Internet, and a lot of people are just like, well, screw PayPal. Right. But, like, I'm not as much as I hate it, I still like money. Yes. I'm Scott still pay me via PayPal, so I have to support it. Stripe does now have PayPal And I find that it's a bit better at finding these, like, random update that payment intent. You don't have to create a new one. You simply update it. It's kinda nice to update it because you can see in Stripe what they have done. Like, you can see if they've opened the checkout several times, And what that means is that never really liked that vibe. It's hard, man, especially because, like, also, my courses are That kinda just happens. That happened with PayPal. That's why a lot of people don't like PayPal. It just got complex. But I don't know that you
Wes Bos
over the last Yarn or so
Wes Bos
Let's talk about checkouts. So 10 provinces, three territories. So 13 was right. Luckily, it's not that complicated, but if you have to do that for somebody has has finished that,
Wes Bos
support. So one thing with Stripe is you can have many payment methods.
Wes Bos
the team that does the docs and the team that does the examples,
Scott Tolinski
Apple Pay, Android Pay, those types of things, you know, there's all those if you wanna consider that stuff. Ally Pay, the Yeah. Bank checkout. So I their credit card comes into your email from the website? Yeah. And, like,
Scott Tolinski
is is its own thing. Yeah. It's where you put the credit card information
Wes Bos
there's this is not like cart functionality. I I guess it could be cart functionality, but that's that's sort of a whole separate
Wes Bos
credit card being one of them. And then, like you said, there's Apple Pay and and whatever the Android Pay JS, and then you're you're sorta you're out that much money plus I believe it's plus a $15 hit as well.
Wes Bos
thing. But, like, the actual check the checkout experience itself is it's called Stripe Elements. And Stripe Elements provides you with a bunch of different components
Scott Tolinski
Yeah. That's a that's a it's a bummer. And
Wes Bos
I feel really bad. There's one time the docs were, like, you couldn't select anything in the docs, and I, like, tweeted about it. I was like, you can't even highlight copy paste code in the docs.
Wes Bos
payment methods, On they'll throw it on the dark web.
Wes Bos
Jeez. The entire doc site, which just like, that stuff is really frustrating,
Wes Bos
And I was very excited. I enabled it, but it's not available in Sanity, not available in US. It's, like, only in Europe or some weird Never mind. Thing. So to to see if they're still still valid or not. And then they'll go sell that list of of credit cards saying, like, yes. They work.
Scott Tolinski
and then they Yes. That's, like, the weirdest thing. Sending money by just giving them your bank details is very odd. That that's actually wild to me. Like, yeah, everybody else, it's just like, I'll let Braintree handle it and take care of the taxes how I need to, shoot it all to you know? For me, when I had a business like this accepting payment from all over the world, I left that stuff up to my accountant.
Wes Bos
Yeah. In The States, you guys have this thing called ACH. And
Wes Bos
those numbers are having audits and and getting approvals of their servers and and all that. It's it's pretty tricky.
Wes Bos
I redid mine, and I think I have the option of something like 20 different possible
Wes Bos
all you have to do is give them, like, a void check, and then you just take money out of your account. Like, how is that allowed? How is that allowed? Yeah. And, like, those numbers are not secret. They're on your check that you give to anybody. I haven't written a check-in years, but, like, eight, ten, 12 percent on some of these.
Wes Bos
somebody who had written an example their stuff. They had, like, a million SDKs. They had, like, a JavaScript SDK and a Node SDK and a Python and PHP. They, like, nuked and those can be handy if you and then that will Stripe has a whole webhook API. For example, if if somebody's marks had to, like, put some CSS code that was, like, leaked to global and disabled selecting I had to write it twice.
Wes Bos
almost everything, and they're just cleaning up all the crap, which is so good because when you googled anything for PayPal, you would just go on this, like, you know, kinda tweak them here and there to match what my CSS looked like, but it's essentially just iframed in inputs that live
Scott Tolinski
given that there's a lot of different, The API call is,
Overview of payment processors
Wes Bos
forward, the most developer friendly. It's By far. Yeah.
Scott Tolinski
once I I wanted to get more serious about it, I moved it to Braintree. Reason being in Yep. And your shipping information, whatever, and that sends that to the payment processor.
Wes Bos
is big in the space as well. And then there's, I don't know, there's millions of millions of other ones that are are out there. Stripe is the most developer
Wes Bos
and then
Wes Bos
it's kinda kinda complex.
Wes Bos
can keep things likely, you wanna create a database for the u put the user in the database. You wanna send them an email with their product, give them access, etcetera.
Wes Bos
Stripe is probably the biggest one out there.
Wes Bos
complex in the last couple years.
Wes Bos
Gotten incredibly a gift card to a local goat farm because they're like, we're gonna do it.
Wes Bos
But you have to pick a pick a payment processor or pick multiple payment processors every country that is out there. So what they will do is they will not you want to attach additional information to the user last
Wes Bos
are another option out there. Square is is another one that seems to be gaining quite a bit of momentum.
Instant and delayed bank transfers
Wes Bos
things like that. I asked on Twitter, like, what people's thoughts are on this.
Wes Bos
Different wallets. Apple Pay was one of the main reasons for me was I wanted I love when websites have Apple Pay. It's so simple. You know? You just look at it, double tap, and you don't have to put your credit card into some sketchy website.
Scott Tolinski
Again, we've been using this tool for a long time, and it totally rules. Alright.
Wes Bos
was that acts as a merchant of record, meaning that died, Europe. They have this, like, secure two three d or two d secure.
Wes Bos
of Apple Pay and Google Pay for you. Which is a good thing because Apple Pay Yeah. I've I've had some some crazy calls. I had one
Scott Tolinski
friendly
Wes Bos
for when it is accepted. So if somebody were to buy something and do a bank transfer,
Wes Bos
but sort of, like, put them on on ice for a little bit. And then when Stripe does get the money, they will ping your server via a webhook,
Wes Bos
add those domain names Yep. And then you have to put, like, a special you build and you wanna track it, like, the entire way.
Wes Bos
that will send a webhook to my server, and I'll immediately disable that account. There's a whole bunch of that type of webhooks out there, which are really handy. Yeah. Totally.
Scott Tolinski
You don't want a production application out there that, well, you have no visibility into in case something is blowing up, and you might not even know it. So head on over to century.i0/syntax.
Wes Bos
And if that's the case and you still want to accept them, you need to set up a webhook URL, just because app,
Scott Tolinski
sucks to set up. They're like, Apple Yeah. Has to be the least
Wes Bos
a a charge as, like, fraud,
Wes Bos
to test Apple Pay because I needed to run it locally, but it had to be on a So they want you to click a button and redirect you to some totally different website like checkout.stripe.com it again for for PayPal. So
Scott Tolinski
you'll want to check out Sentry at century.i0/syntax.
Wes Bos
you have to then create their account And then once So you confirm it. You can confirm it server or client side. And then once it's then confirmed, you selling it in that country.
Scott Tolinski
web platform, you know, out there. The amount of hoops that I had to jump through to get Apple Pay going was just
Wes Bos
public facing domain name in order for Apple Pay to to work even in test mode. And if you want to see all of the errors in your application, Stripe also has this concept of, and you are allowed to then dispute it and you can provide all of this information.
Types of checkout experiences
Scott Tolinski
We went to their place, and we're like, so when an order comes in, and have that thing just have everything in one place, I like it. I like it a Scott. And that that, makes me really you know, I have fun feelings for,
Wes Bos
which is
Wes Bos
to sort of avoid that. But let let's talk about the possible options for for checkout first. So you can either have it has to be on a confirmed domain name. So it will not work on local host, and it will not work on any domain name that is not confirmed.
Wes Bos
a embedded checkout,
Scott Tolinski
like, hand rolled ecommerce solution that somebody had built for them in the nineties or something to a Magento based site. This was back in 02/2011.
Scott Tolinski
this information
Scott Tolinski
if Her name is Courtney Grow, I believe. My wife's name's Courtney as well. So but her name is Courtney Grow, and my wife sent sent her the same message. She also blocked my wife, for just being like, hey. You might not know this, but you're actually scamming people. Block,
Scott Tolinski
the the wrong thing to do is take their credit card information,
Scott Tolinski
what now? You use those as the same implementation.
Wes Bos
So I can't use Stripe's coupons because I've got custom logic, and I I don't wanna have to reimplement What are your options? How do you even approach this type of thing? We are going to break it on down. I rewrote my whole checkout flow maybe about six months ago.
Wes Bos
touch your Vercel, and there are a few things you can do
Wes Bos
I have a custom custom coupon input. You know? And and Stripe has coupons, but I also need PayPal.
Scott Tolinski
somebody submits an order online, like, what's the flow like right now? And the guy's like, well, it sends me an email with their credit card number, and I type it in my machine and charge it. And we were just like,
Scott Tolinski
to handling
Scott Tolinski
yeah. You can't do that. So these these checkout flows are designed now to make that process as nice as possible for you. As a rule of thumb, you never ever want to have
Scott Tolinski
operation
Scott Tolinski
in a correct, secure way.
Wes Bos
I framed into your actual website.
Wes Bos
the HTML, CSS, and JavaScript yourself.
Wes Bos
a custom checkout is or even just like a disgruntled person, Mhmm. But if you're selling it in your currency and it's being converted, there's if you need to pay taxes in those countries that you are selling to, And man, oh, man. Like Mhmm. Personally, Yes. Exactly. You don't you don't want any of that, that happening. So that's another option is is doing a custom checkout and then simply just iframing in the bits that you want. And then the other one, which is what everybody wants you to do, is the redirect checkout.
Scott Tolinski
only because you're sending something that is secure information.
Experience with Stripe and Braintree
Scott Tolinski
of things for PayPal, which I just didn't feel like I wanted to do. And so Braintree allowed me to essentially
Scott Tolinski
I that would have been nice because Stripe working with Stripe was infinitely better than working with Braintree, but then I woulda had to have a whole second implementation
Scott Tolinski
change the end date to be this current month, and then resave that. Like, there's no pause or cancel or whatever. It's like, I gotta manually look through this data. I there's an opportunity for for something to get messed up there or whatever.
Scott Tolinski
there's no API call to pause or cancel someone's subscription.
Scott Tolinski
is that we had a lot of people who PayPal was an essential thing for them,
Scott Tolinski
and they needed PayPal. And so for me, it was either support Stripe and PayPal separately, which Yeah. It is a hard one. Yeah. I know. There there's a lot of predatory things you can do out there, and sure, many of them might work. Wes gotta
Scott Tolinski
you know, the the famous example I use, when talking about the why it's so painful
Scott Tolinski
And so I made that made that change, but, like, Braintree's API is just kind of not designed to be friendly. It's designed to just, like, be functional.
Scott Tolinski
subscription information.
Scott Tolinski
oh, get their current,
Scott Tolinski
is that
Scott Tolinski
But,
Scott Tolinski
That whole flow was able to be done in a little bit more connected of a way.
Scott Tolinski
and and this very well may have changed by now. I haven't touched Braintree in a year and a half, but I doubt it. If you were doing a subscription based flow
Scott Tolinski
and you want to cancel someone's subscription, how hard is that? Yeah. And I complained to customer support about that one time just being like, why doesn't this just exist? And they're like, well, you couldn't use these following services, Recurly and whatever. I'm like, well, they take another percent cut off the top. Like, that that's just what they do. They wanna provide low level tools, and they don't wanna make it easy on you. So Yeah. Stripe is kind of an interesting game where they are both providing the low level tools, but they also are providing
Scott Tolinski
There's too many opportunities for something to to to get wrong. But it's like, why can't you just give us a simple method that says cancel or pause? Like,
Scott Tolinski
Now
Transcript
Wes Bos
or at if you want full control, in in my case, I still wanna accept Stripe and PayPal at the same time, or if you wanted your own coupon system, that type of thing, then it makes sense to trying to get new couriers added, things like that. And I've been a big fan of it, but I actually am
Scott Tolinski
how much money you're going to lose on any given transaction.
Wes Bos
how much money, you know, or if you have to hire an entire engineer at somebody took their shoes off and put them back in the box or Mhmm. I'm not buying shoes, but, like, they just clearly put the broken one back in the box and sent it back.
Scott Tolinski
accepting money on the Internet because Shopify stores. And then the interface is so
Scott Tolinski
With me, as always, is Scott Tolinski. How are you doing, Scott? Hey. I'm doing good. And let me tell you, Wes, one of the best parts about working at Century is that I no longer have to deal with Yeah. It's all complex, and I I don't I have thankfully, I've never had to deal too much with any of that.
Scott Tolinski
of
Wes Bos
I don't know, two months of your life building a totally custom checkout. But if that two months of your life is worth and description of what the person is is purchasing.
Wes Bos
Welcome to Syntax. Today, we're gonna talk about accepting money on the Internet. You're building an app, and you need to start accepting money from people.
Wes Bos
Yeah. And in a lot of cases, it's worth it. You can either spend, are in charge of what to do next because,
Scott Tolinski
when you are accepting payment.
Wes Bos
how things are done Wes were fairly different.
Wes Bos
And you probably wanna choose something somewhere in between depending on what you're doing.
Wes Bos
When you are going to be accepting money on the Internet, you need to pick a payment processor, which is a
Wes Bos
however much. But at a certain scale never will win it to a point where it's just not worth even even fighting them unless it's clearly somebody trying to pull the wool over your eyes. But if it's legitimate fraud Parcel is really good.
Wes Bos
So I thought, like, let's break it down into all the different parts One thing that's very popular now is these, like, buy now, pay later, Klarna, Afterpay, text file somewhere on your server, and it will then reach out to the server, look for that file, and then come back. So I actually ended up using Cloudflare tunnels used, 2,000 kilometers away, or,
Wes Bos
$200
Wes Bos
a year to to build this thing, whatever country you are in and and whatnot.
Wes Bos
I was on Stripe. I still use Stripe, but the and whatnot. And then they also have data about, like, this credit card was used Depending on where you are, what the rules are, and then you put it put that payment intent into your checkout, and that will then render out,
Wes Bos
So my name is Wes Bos, developer from Canada.
Scott Tolinski
The more a platform does for you, the more money they're going to take per transaction
Merchant of record services
Scott Tolinski
this is what I wanna say. I I
Scott Tolinski
your scam here.
Scott Tolinski
these these are the easiest easiest ways to get going. In large part, I think they're a good idea for a lot of people. Have you seen, you know, beacons.ai?
Scott Tolinski
book, but it's actually, I I was so sick of just going through and having to click on the email and check the thing, and Wes don't have shipping information for you. I'll go to the email, check it, whatever. It's like, oh, I gotta do all that process, and I I feel like I do it way too much.
Scott Tolinski
And I reached out to Beacons on LinkedIn. I I followed the CEO who had a mutual. So I reached out to him on on LinkedIn, and then I'd sent them a message or whatever. And they took it down, like, instantly. So Scott out to beacons for actually
Scott Tolinski
coming through big time there. So That's great. Wow.
Wes Bos
One other thing to talk about is is, like, handling fraud and and handling disputes.
Wes Bos
ESLint the checkout.
Wes Bos
They have set use Stripe directly, but they will use a service I guess pnpm area we didn't touch upon is you get immediately get docked $15,
Wes Bos
not me, that is well worth it, so they don't have to fuss with with that, and they hire an accountant and all that type of stuff.
Wes Bos
Stripe or Lemon Squeezy is going to be selling it on your behalf.
Scott Tolinski
My my wife got scammed out of a an AI book. There was an influencer she was following pushing a book that was clearly written by AI.
Scott Tolinski
And so because it was somebody she's followed for, like, six, seven years, she's like, this book looks good. I'll buy it. She bought it, and we were both looking at it like, not only was the author clearly fake, but, like, when you're reading it, it's, like, very clearly bad, disjointed,
Scott Tolinski
I remember. They now have the same thing because I I was on something the other day, and it Wes, like, took me to a Beacons merchant. And I was just like,
Scott Tolinski
like, not. And it was it was garbage. And so we mess I messaged the influencer personally. I said, hey. Just so you know, you're hooking this,
Wes Bos
cut they take is extremely high. I've seen, like, 10 the checkout from we'll use Stripe as an example. The checkout from Stripe, probably should've checked a little closer that my bad. You know?
Scott Tolinski
one, it's a scam. It's written by this AI author. It's not real. She blocked me. She straight up blocked me. And then Courtney name there, Scott. Oh, man.
Scott Tolinski
I wanted to get this off the Internet because it was a big scam, and she was pushing it to all of her followers and stuff. Yeah. And because she was such an to me, I was like, you know what? I know you're getting a kickback for this, so I'm gonna get this taken down. That way, you you don't get your kickback for,
Wes Bos
But for a lot of people, still, now if you go to the gym and you wanna set up, like, pre authorized debit, You cannot avoid it in some use cases.
Scott Tolinski
which that's crazy. So the good folks at Beacons, Now
Buy now pay later services
Scott Tolinski
weird to me, but I've I kinda, like, have
Wes Bos
If anyone wants to bring I want a goat so bad, actually. One day in my life, I'll have a goat. You could toss, to a point now where I order my sushi, and it's like, would you like to pay over four weeks for $2.36 you are technically
Wes Bos
a, a bunch of goat goat coffee and, every aspect of the labels and the inputs. There was not a single piece that I was not able to to find out. I still had to, like, match them,
Wes Bos
cannot afford it. But a lot of people said they simply just use Afterpay and whatever
Wes Bos
the examples big examples of these right now are Lemon Squeezy, Gumroad, and Paddle. And Stripe bought Lemon Squeezy
Scott Tolinski
toss out that, Yeah. Totally.
Wes Bos
as a credit card, and they pay it off at the end of the month. I don't know if that's the case for
Wes Bos
it's kind of complicated
Wes Bos
accepting the money is one thing, and dealing with taxes is another.
Wes Bos
the industry now where you I have not enabled it on yet just because I have yet to find a a convincing argument for it. The, like, money making guy in me wants to just turn it on and and have people pay however they want. But Yeah. Money go bird. Yeah. Yeah. It's it's a hard one.
Wes Bos
like, people are taking them to try to get a better Bos. So, like, maybe they should should be financing it. Maybe they shouldn't be. And some people said in different countries, it is very common. People use that instead of credit cards in some countries. Other people say, like, they have some family members who have gone severely into debt.
Wes Bos
it's kind of fuzzy
Wes Bos
you can just set it up. With the exception of PayPal, people can pay in any way they want. And I said on a podcast are just collecting to see. And he's he DM'd me. He's like, dude, that was me. I'm so sorry. It was out of all kinda bad, but it was it was funny to see. But they were PayPal's really working on So you can submit, like, server logs and all the proof that you have. I think once
Scott Tolinski
Yeah. Right. Yeah. No kidding. I I don't know that. Yeah. That feels we've seen behind the scenes a little too much. We're very too technical occasionally, and we're just too handsome to really, have a good handle on how to do, the things that normal folks are doing. Right? So yeah. Yeah. No. I I agree. Anytime,
Wes Bos
But for a lot of people,
Wes Bos
for a lot of indie makers, people who are developers trying to sell something, I'm not gonna go into that it to the customer. Yep. And then Stripe will simply just pay you a cut. The
Wes Bos
when selling digital products.
Wes Bos
gotta know where you're at. Yeah. Totally.
Wes Bos
Because hot potatoes it to Stripe, and then Stripe comes back with the payment intent to your server. Your server sends it back to the client, which is kinda complicated.
Wes Bos
And there's all kinds of different ones. Obviously, PayPal is is another Node. AliPay, start to think about what your your checkout looks like, which is the the next step that we have here. Actually, before I even get into that, you used I used Stripe. You used Braintree. Right? Yeah. For a long time. Yes. And I'd used Stripe before that, actually, Wes. The first version of LevelUp was built on Stripe. And then,
Wes Bos
your cabin. Yeah. Just use the goat. Let's talk about merchant of record. So this is type in your phone number and and then just check out.
Scott Tolinski
I will accept payment via goat. That's that one, man.
Wes Bos
many years ago, if somebody wants to pay me in a goat, I'll take the goat. And Stripe actually sent me these, like, Amazon return stores every now and then.
Scott Tolinski
giant, John Deere tractor you got up at your,
Scott Tolinski
I said that on a podcast.
Benefits of standardized checkout UIs
Scott Tolinski
like, you can observe somebody using your app, your site, whatever, and seeing how they use it or seeing what they might expect there to be there like that, it can help you. This is one of those cases.
Scott Tolinski
Yeah. I mean, I I I think it's hard to get a handle on how people use these things sometimes because
Wes Bos
So is when people are typing into that box, it looks like it's on your website, but it's it's technically on Stripe's website. Yeah. And because of that, you do not need to follow all of those
Wes Bos
are, I don't have my credit card. It's it's upstairs. I'll check this out later. You know? And if you Yarn selling a digital product in somebody's local currency, dispute it. So it's PayPal is getting better. I know I've said this for many years. It is getting better. I've talked to quite a bit of people at PayPal
Scott Tolinski
websites that use, like, just a really nice experience.
Scott Tolinski
unless you know exactly what you're doing, yeah, just use one of these iframe, flow
Wes Bos
it's really nice. I I, for the longest time, thought, Node one no one's using this. I'm gonna turn this off, but I was very surprised that how many people actually use the
Wes Bos
Yeah. And, like, unless you're, like, a major, major corporation
Wes Bos
something like that, you might wanna do that. But most people listening to this podcast are probably not gonna be on the Stripe Vercel. And
Scott Tolinski
Yeah. Yeah. Totally. I I do. So I use it. I,
Scott Tolinski
solutions.
Scott Tolinski
You mentioned, like, custom checkout. You can do it in just a straight up form on your website, but, like, the rules around that if you're not iframing it in are, like I said, with PCI compliance, way more intense. And you probably don't want to do that. So,
Wes Bos
and it's very similar Wes if you put in your phone number or email address, If something changes, like, for example, somebody inputs a and I've emailed the developer probably five or six times over the years at like, reporting bugs or, it's still not totally gone, especially if you're selling low item values. You sell something for 3 or 4 or $5, hundreds and hundreds of other ones I've I've lost. And
Scott Tolinski
I just
Wes Bos
Yeah. Talking about your you're talking about Shop Pay. So Stripe has one called Stripe ESLint,
Custom checkout with iframe elements
Wes Bos
Very easy. You don't leave, but it's not flexible at all. You've got custom checkout, which is kinda best of both worlds, and then you have the redirect checkout, which is by far the simplest because you don't have to fuss with any of that. You simply just
Wes Bos
Another one ESLint
Scott Tolinski
Shopify does so well because people Yes. People know the Shopify input. You know? You know what? When I'm buying something online and I hit that shop pay that's what it's called, the shop, whatever the the little, like, widget JS, and then it goes all my details across different, you gotta issue a chart like, a a fraudulent chargeback, which actually hurts me instead of, like,
Wes Bos
Yes. But the credit card input, the billing address, a couple of those,
Wes Bos
data, and then you put that alongside your your regular HTML form inputs.
Wes Bos
And you can style I was very surprised at this.
Wes Bos
the sensitive inputs are are iframed in. And on my website, you cannot tell that it is an iframe.
Wes Bos
or whatever, then you do all of the payment stuff, and then you they redirect you And, like, sometimes you get stuff where it's clearly Authorize.net they might not have everything you want. So in my case, And I find that these random tiny little carriers are not as well covered.
Wes Bos
And when I possibly can, I can I can use pop ups? So, for example, when you wanna pay with PayPal, to sort of build your own. So let's start with payment processors.
Wes Bos
But if when possible, I like to keep the person on the website just, like, rabbit chase Oh. Of of trying to find what you're looking for. But, like, PayPal is and then you create a payment intent.
Wes Bos
that can be used for inputting customer, I've, like, sent that sort of absolves you from accidentally having an input type of number and and name of credit Yarn, and then somebody submits it accidentally, goes to your database, then it's in your logs. You know? You don't wanna have to do that. Sanity.
Wes Bos
back to the website. I don't love that experience.
Wes Bos
In many cases, you can iframe in that. And then in some cases, you still have to redirect to their bank and come back. So you you do have to be set up for both of those. You know? You have to be able to handle somebody leaving your website and then coming back, and then you lose all state. If you're holding state in in JavaScript, you're kinda screwed, so you gotta save that on the server.
Wes Bos
you just generate what's called a payment intent. We'll talk about that in a second, and then redirect them to a different URL. I don't love that because you it it just looks like a regular Stripe pnpm. But then again, I
Wes Bos
don't know. People like standardized inputs. There's a reason why