Pod Insights Syntax - Tasty Web Development Treats 890: Accepting Money on the Internet in 2025 About this episode Wes and Scott talk about the ins and outs of accepting payments online—from choosing processors like Stripe and PayPal to handling fraud, taxes, custom checkouts, and more.
Show Notes
00:00 Welcome to Syntax!
02:34 Payment processors Stripe
PayPal
Square
Authorize.net
09:29 Checkouts
18:22 The checkout flow
23:10 Methods of accepting money
25:30 Brought to you by Sentry.io
28:34 Merchant of Record Lemon Squeezy
Gumroad
Paddle
Beacons
32:51 Handling fraud, disputes, and refunds
41:25 Sick Picks + Shameless Plugs
Sick Picks Scott: Parcel
Wes: Parcels App
Shameless Plugs Syntax YouTube Channel
Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads
Wes: X Instagram Tiktok LinkedIn Threads
Scott: X Instagram Tiktok LinkedIn Threads
Randy: X Instagram YouTube Threads
Transcript Speaker names marked ? are inferred from speaking time and the show’s known hosts — they are not voice-verified.
0:00 Wes Bos? Welcome to Sentax. Today, we're going to talk about accepting money on the internet. You're building an app and you need to start accepting money from people. 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. I was on Stripe. I still use Stripe, but the how things are done were were fairly different. So I thought like, let's break it down into all the different parts and all of your different options as well, right? Because on one end, you can build something totally custom. And then on the other end, you can just sign up for a service and have them do everything. And you probably want to choose something somewhere in between, depending on what you're doing.
0:44 Wes Bos? So my name is Wes Boss, developer from Canada. With me as always is Scott Tolinski. How are you doing, Scott?
0:51 Scott Tolinski? Hey, I'm doing good. And let me tell you, Wes, one of the best parts about working at Sentry is that I no longer have to deal with accepting money on the internet because 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
1:13 Wes Bos? That's never fun, no.
1:14 Scott Tolinski? One, I like money. Hey, I like I like accepting money and I like having money. So like therefore, it's something that you have to do in development 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 want to 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 is going to 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 of how much money you're going to lose on any given transaction. The more a platform does for you, the more money they're going to take per transaction when you are accepting payment.
1:58 Wes Bos? Yeah. And a lot of cases, it's worth it. You can either spend, I don't know, two months of your life building a totally custom checkout. But if that two months of your life is worth how much money, you know, or if you have to hire an entire engineer at 200 grand a year to build this thing, it's probably worth spending however much. But at a certain scale, or if you want full control, in my case, I still want to accept Stripe and PayPal at the same time. Or if you wanted to do your own coupon system, that type of thing, then it makes sense to to sort of build your own. So let's start with payment processors. When you are going to be accepting money on the internet, you need to pick a payment processor,
2:42 Wes Bos? which is a platform that is going to sort of process your transactions. Stripe is probably the biggest one out there. PayPal and Braintree are another option out there. Square is another one that seems to be gaining quite a bit of momentum. authorize.net 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 out there. Stripe is the most developer forward, the most developer friendly.
3:11 Scott Tolinski? By far.
3:12 Wes Bos? It's certainly has gotten incredibly complex in the last couple of years. That kind of 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 can keep things simple when the the world of money is not simple. You know, there's, there's legal things all over the place and it's kind of, kind of complex. But you have to pick a, pick a payment processor or pick multiple payment processors. And then 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 use Stripe, you use Braintree, right?
3:53 Scott Tolinski? 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, uh, once I, I wanted to get more serious about it, I moved it to Braintree. Reason being is that we had a lot of people who PayPal was an essential thing for them. And they needed PayPal. And so for me, it was either support Stripe and PayPal separately, which That would have been nice because Stripe, working with Stripe was infinitely better than working with Braintree, but then I would have had to have a whole second implementation of things for PayPal, which I just didn't feel like I wanted to do. And so Braintree allowed me to essentially use those as the same implementation, right? PayPal and just normal
4:34 Scott Tolinski? credit card. That whole flow was able to be done in a little bit more connected of a way. 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. But you know, the famous example I use when talking about the why it's so painful is that, 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 and you want to cancel someone's subscription, there's no API call to pause or cancel someone's subscription. The API call is, oh, get their
5:15 Scott Tolinski? current subscription information. Now, change the end date to be this current month and then re-save that. Like, there's no pause or cancel or whatever. It's like, I gotta manually look through this data. There's an opportunity for, for something to get messed up there or whatever. 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, how hard is that?
5:42 Wes Bos? Yeah.
5:43 Scott Tolinski? 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 can use these following services recurrently and whatever. I'm like, they take another percent cut off the top. Like, that, that's just what they do. They want to provide low level tools and they don't want to make it easy on you. So.
5:59 Wes Bos? Yeah. Stripe is kind of an interesting game where they are both providing the low level tools, but they also are providing the, the high level UI. So they kinda, they kinda do everything. 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 over the last year or so, just because, 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. Like, what the hell's going on here in PayPal? And it turned out that there's two different teams. And the team that does the docs and the team that does the examples,
6:44 Wes Bos? somebody who had written an example had to like put some CSS code that was like leaked to global and disabled selecting
6:53 Scott Tolinski? Geez.
6:53 Wes Bos? the entire doc site, which just like that stuff is really frustrating to see. And he DM, he's like, dude, that was me. I'm so sorry. It was, I felt kind of bad, but it was, it was funny to see. But they were, PayPal's really working on 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 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, just like rabbit chase of, of trying to find what you're looking for. But like PayPal is a necessary evil when accepting money on the internet.
7:37 Wes Bos? And a lot of people are just like, well, screw PayPal.
7:40 Scott Tolinski? Right.
7:40 Wes Bos? But like, I'm not, as much as I hate it, I still like money.
7:44 Scott Tolinski? Yes.
7:44 Wes Bos? And people still pay me via PayPal, so I have to support it. Stripe does now have PayPal support. So one thing with Stripe is you can have many payment methods. And I was very excited. I enabled it, but it's not available in Canada, not available in US. It's like only in Europe or some weird thing. So I had to write it twice.
8:08 Scott Tolinski? Yeah, that's a, that's a, it's a bummer. And given that there's a lot of different things now out there as well in terms of like crypto, Apple Pay, Android Pay, those types of things. You know, there's all those, if you want to consider that stuff.
8:22 Wes Bos? Alipay, the
8:24 Scott Tolinski? Yeah.
8:24 Wes Bos? bank checkout. So I, I redid mine. And I think I have the option of something like 20 different possible payment methods, credit card being one of them. And then, like you said, there's Apple Pay and, and whatever the Android Pay is and. There's a million, every single country, even Canada. Canada, you can pay via like a, I think it's called an IBAN, like a bank transfer.
8:50 Scott Tolinski? Yeah.
8:51 Wes Bos? In the States, you guys have this thing called ACH and.
8:54 Scott Tolinski? You can just send somebody your bank details.
8:57 Wes Bos? Yes.
8:58 Scott Tolinski? That's like the weirdest thing, sending money by just giving them your bank details is very odd.
9:02 Wes Bos? That's actually wild to me, like, still, now, if you go to the gym and you want to set up like pre-authorized debit, all you have to do is give them like a void check and they can just take money out of your account. Like, how is that allowed?
9:16 Scott Tolinski? How is that allowed?
9:17 Wes Bos? 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, those numbers are, that's wild to me that that even works. Let's talk about checkouts. So, this is not like cart functionality, I guess it could be cart functionality, but that's, that's sort of a whole separate thing, but like, the actual checkout experience itself is, is its own thing.
9:44 Scott Tolinski? Yeah, it's where you put the credit card information in.
9:48 Wes Bos? Yep.
9:48 Scott Tolinski? And your shipping information, whatever, and that sends that to the payment processor. And that is a intense operation, only because you're sending something that is secure information. There's something called like PCI compliance, where you have to make sure that you are compliant to handling this information in a correct, secure way. Now, if you are accepting payment, the, the wrong thing to do is take their credit card information, throw it in your database, like, you know, you cannot do that. That will, that is illegal. I always joke, we've talked about this on this show before, a long time ago, I had a
10:29 Scott Tolinski? client who was moving from their homegrown, like, hand-rolled ecommerce solution that somebody had built for them in the 90s or something, to a Magento-based site, this was back in 2011. We went to their place and we're like, so, when an order comes in, uh, 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. What now? You... their credit card comes into your email from the website?
11:02 Wes Bos? Yeah.
11:03 Scott Tolinski? And like, uh, yeah, you can't do that. So these checkout flows are designed now to make that process as nice as possible for you.
11:12 Wes Bos? As a rule of thumb, you never ever want to have customer-sensitive information touch your server. And there are a few things you can do to sort of avoid that. But let's talk about the possible options for checkout first. So you can either have an embedded checkout, which is the checkout from, we'll use Stripe as an example, the checkout from Stripe i-framed into your actual website. And when people are typing into that box, it looks like it's on your website, but it's technically on Stripe's website.
11:50 Scott Tolinski? Yeah.
11:51 Wes Bos? And because of that, you do not need to follow all of those data rules and whatnot for handling sensitive information, because it's actually going to Stripe directly, right? The other option is you have a custom checkout. So the embedded checkout, if you don't, they might not have everything you want. So in my case, I have a custom coupon input, you know? And Stripe has coupons, but I also need PayPal. So I can't use Stripe's coupons because I've got custom logic and I don't want to have to re-implement it again for PayPal. So a custom checkout is you build the HTML, CSS, and JavaScript yourself.
12:33 Wes Bos? However, the sensitive inputs are i-framed in. And on my website, you cannot tell that it is an iframe.
12:42 Scott Tolinski? Yes.
12:42 Wes Bos? But the credit card input, the billing address, a couple of those, it's called Stripe Elements. And Stripe Elements provides you with a bunch of different components that can be used for inputting customer data. And then you put that alongside your regular HTML form inputs. And you can style, I was very surprised at this. Absolutely 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, you know, kind of tweak them here and there to match what my CSS looked like. But it's essentially just iframed in inputs that live on the Stripe server.
13:27 Wes Bos? And that sort of absolves you from accidentally having an input type of number and and name of credit card. And then somebody submits it accidentally goes to your database, then it's in your logs, you know? You don't want to have to do that.
13:41 Scott Tolinski? It's in your sentry.
13:42 Wes Bos? 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. So they want you to click a button and redirect you to some totally different website like checkout dot stripe dot com or whatever. Then you do all of the payment stuff and then you they redirect you back to the website. I don't love that experience. You cannot avoid it in some use cases. But if when possible, I like to keep the person on the website and simply just
14:22 Scott Tolinski? Yes.
14:22 Wes Bos? have them type in the form themselves. And when I possibly can, I can I can use popups. So for example, when you want to pay with PayPal, you can do a modal pop up and iframe in the PayPal. Another one is in Europe, they have this like secure two, three D or two D secure. 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 kind of screwed. So you got to save that on the server.
15:08 Scott Tolinski? Yeah, totally.
15:09 Wes Bos? So yeah, we got embedded checkout. Very easy. You don't leave, but it's not flexible at all. You've got custom checkout, which is kind of 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, 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 just looks like a regular Stripe input. But then again, I don't know, people like standardized inputs. There's a reason why Shopify does so well because people, people know the Shopify input, you know?
15:48 Scott Tolinski? You know what? When I'm buying something online and I hit that shop pay, if that's what it's called, the shop, whatever their little widget is, and it knows all my details across different Shopify stores. And then the interface is so familiar, you know, I just, I like it. I like it a lot. And that, that makes me really, you know, I have fond feelings for websites that use like just a really nice experience. 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 unless you know exactly what you're doing, yeah, just use one of these iframe solutions.
16:33 Wes Bos? Yeah, like unless you're like a major, major corporation where like, like you're a cell phone provider or something like that, you might want to do that. But most people listening to this podcast are probably not going to be having audits and getting approvals of their servers and all that. It's, that's pretty tricky. Yeah. Talking about your, you're talking about shop pay. So Stripe has one called Stripe Link. And it's very similar where if you put in your phone number or email address, it will just text you a code, 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?
17:11 Scott Tolinski? Yeah.
17:12 Wes Bos? I enabled it. Probably at least half of the people use that to checkout.
17:17 Scott Tolinski? Yeah.
17:17 Wes Bos? 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. I don't have my credit card. It's upstairs. I'll check this out later, you know? So it's really nice. I for the longest time thought, no one's using this. I'm going to turn this off. But I was very surprised that how many people actually use the type in your phone number and then just check out.
17:46 Scott Tolinski? Yeah, yeah, totally. I do. So I use it. I, yeah, I mean, I think it's hard to get a handle on how people use these things sometimes because 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, no, I agree. Anytime 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. So let's talk about the whole checkout flow.
18:26 Scott Tolinski? Because the checkout flow isn't, well, it depends if it's recurring or not recurring. The whole flow involves having a product connected to your payment provider. When you're able to purchase that product, it knows the price, it knows everything. It validates the user's credit card number, all of that stuff. 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 that you can charge them, right?
19:01 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 is like when you are ready to buy something, like for example, you click on one of my courses and you click on buy. What you need to then do is create a payment intent. And that payment intent describes several things. It has the price and description of what the person is purchasing. It has the method that the user wishes to pay with, you know, whether it's a credit card or Apple Pay or bank checkout, Alipay, Cash App, all of those. And the way that that works is that
19:43 Wes Bos? You send the information about your user and also it also has the like user's name and email address and any other stuff you can attach to that. What you do is you take that information, the product and the user, you send that to your server and then you create a payment intent and then you take that payment intent, you send it back to the client and then you put it, put that payment intent into your checkout and that will then render out the checkout. If something changes, like for example, somebody inputs a coupon code, someone changes their email address, they remove something from their cart while they have it open, you have
20:27 Wes Bos? to do that whole song and dance again where you send all that data back to the server, update that payment intent, you don't have to create a new one, you simply update it. It's kind of 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 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 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 kind of complicated. And then, once somebody has, has finished that, Stripe will take care of attaching the credit card or whatever payment method to that, then you confirm that payment intent
21:09 Wes Bos? and that is what will actually charge the card or take the money out of their account. So you confirm it, you can confirm it server or client side and then, once it's then confirmed, you are in charge of what to do next because likely you want to create a database for the, you put the user in the database, you want to send them an email with their product, give them access, et cetera.
21:31 Scott Tolinski? Yeah, and if you are doing recurring payment, this process again is, 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, because your payment processor, what they're doing is they're holding on to that you have a Or the user has approved that credit card 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 to hold on and be able to validate that, that charge anytime, once a month, whatever, et cetera.
22:12 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, 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 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. Cause 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.
22:52 Wes Bos? Stripe also has this concept of like customer sessions and those can be handy if you, you want to attach additional information to the user and you want to redirect them to Stripe's own checkout. I'm not going to 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 two probably most popular ones. Some bank transfers are not instant. And if that's the case and you still want to accept them, you need to set up a webhook URL for when it is accepted. So if somebody were to buy something and do a bank transfer, you have to then create their account,
23:36 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. And then that will, Stripe has a whole webhook API. For example, if, if somebody's marks a, a charge as like fraud, 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.
24:00 Scott Tolinski? Yeah, totally.
24:02 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. You don't have to put your credit card into some sketchy website. I'm a big fan of that thing. So the Stripe element simply just takes care of Apple Pay and Google Pay for you.
24:23 Scott Tolinski? Which is a good thing because Apple Pay sucks to set up. Like Apple has to be the least friendly web platform, you know, out there. The amount of hoops that I had to jump through to get Apple Pay going was just, by the 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, it's like they don't want you to use it. It's wild.
24:48 Wes Bos? So complex. The only thing I had to do to get Apple Pay working was it has to be on a confirmed domain name. So it will not work on localhost and it will not work on any domain name that is not confirmed. So you have to go into your Stripe account, add those domain names. And then you have to put like a special 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 to test Apple Pay because I needed to run it locally, but it had to be on a public facing domain name in order for Apple Pay to work, even in test mode.
25:30 Scott Tolinski? And if you want to see all of the errors in your application, you'll want to check out Sentry at sentry.io/syntax. 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 sentry.io/syntax. Again, we've been using this tool for a long time and it totally rules. All right.
25:54 Wes Bos? One thing that's very popular now is these like buy now, pay later, Klarna, Afterpay, things like that. I asked on Twitter like what people's thoughts are on this. And man, oh, man, like personally, I do not think that I should be selling stuff to people who cannot afford it. But a lot of people said they simply just use Afterpay and whatever 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 absolutely everybody, but that is an extremely popular way. And it has sort of taken over the industry now where you is to a point now where I order my sushi and
26:35 Wes Bos? it's like, would you like to pay over four weeks for $2.36 per week?
26:41 Scott Tolinski? You go one California.
26:42 Wes Bos? No, I'm not gonna, I'm not financing my sushi here.
26:46 Scott Tolinski? Yeah, right. Yeah. No kidding. I don't know that. Yeah, that feels weird to me, but I kind of like have never really liked that vibe.
26:54 Wes Bos? It's hard, man, especially because like also my courses are like people are taking them to try to get a better job. 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. I have not enabled it on yet just because I have yet to find a convincing argument for it. The like money making guy in me wants to just turn it on and have people pay however they want, but.
27:26 Scott Tolinski? Yeah, money gober, yeah.
27:27 Wes Bos? Yeah, it's a hard one.
27:29 Scott Tolinski? Yeah, it is a hard one. Yeah, I know. There's a lot of predatory things you can do out there and sure, many of them might work. Uh, you gotta, gotta know where you're at. Yeah, totally.
27:41 Wes Bos? Uh, there's all kinds of different ones. Obviously PayPal is is another one. Alipay, Cash App, Europe has a whole bunch of weird ones as well. The nice thing about Stripe is 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 many years ago, if somebody wants to pay me in a goat, I'll take the goat. And Stripe actually sent me. A bunch of goat coffee and a gift card to a local goat farm because they're like, "We're gonna do it."
28:15 Scott Tolinski? I said that on a podcast. I will accept payment via goat. That's that rules in.
28:21 Wes Bos? If anyone wants to bring, I want a goat so bad, actually. One day in my life, I'll have a goat.
28:25 Scott Tolinski? You could toss out that giant John Deere tractor you got up at your cabin. Yeah. Just use the goat.
28:34 Wes Bos? Let's talk about merchant of record. So this is for a lot of indie makers, people who are developers trying to sell something, accepting the money is one thing and dealing with taxes is another. Depending on where you are, what the rules are, it's kind of complicated when selling digital products. Because if you're selling a digital product in somebody's local currency, you are technically selling it in that country. 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, is kind of fuzzy for whatever country you are in and whatnot.
29:20 Wes Bos? But for a lot of people, they want to not have to fuss with remitting taxes in every country that is out there. So what they will do is they will not use Stripe directly, but they will use a service that acts as a merchant of record. Meaning that the examples, big examples of these right now are Lemon Squeezy, Gumroad and Paddle. And Stripe bought Lemon Squeezy and is implementing this themselves. And what that means is that Stripe or Lemon Squeezy is going to be selling it on your behalf. They have set up the businesses in all of these countries. They will collect and remit taxes for each of these countries themselves.
30:05 Wes Bos? And then you are not selling it to the customer. Stripe is selling it, or Lemon Squeezy is selling it to the customer.
30:11 Scott Tolinski? Yep.
30:12 Wes Bos? And then Stripe will simply just pay you a cut. The cut they take is extremely high. I've seen like 10, 8, 10, 12% on some of these. But for a lot of people, not me, that is well worth it. So they don't have to fuss with that and hire an accountant and all that type of stuff.
30:31 Scott Tolinski? Yeah, it's all complex and 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? They're one of those, they started off as like a link tree competitor, right?
30:46 Wes Bos? Okay.
30:47 Scott Tolinski? They now have the same thing because I was on something the other day and it was like, took me to a beacons merchant and I was just like, oh, that makes sense for like link tree. What it's just a page of links, but they were like, well, what if we give you the 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, and this is a positive thing. My, my wife got scammed out of an AI book. There was an influencer she was following pushing a book that was clearly written by AI. 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,
31:32 Scott Tolinski? but like when you're reading it, it's like very clearly bad, disjointed, like not. And it was, it was garbage. And so we mess it, I messaged the influencer personally. I said, hey, just so you know, you're hucking this book, but it's actually, 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.
31:52 Wes Bos? Namor Scott.
31:53 Scott Tolinski? Oh, man. Her name is Courtney Grow, I believe. My wife's name is 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, which that's crazy. So the good folks at beacons, this is what I want to say. I, I, 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.
32:21 Wes Bos? Yeah.
32:21 Scott Tolinski? 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 going to get this taken down. Uh, that way you, you don't get your kickback for your scam here. 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 shout out to beacons for actually coming through big time there, so. That's great. Wow.
32:51 Wes Bos? One other thing to talk about is like handling fraud and handling disputes. So one very important thing to turn on is Stripe Radar, or whatever the equivalent is for your checkout. And what that will do is they are just collecting little notes about the person visiting the website, their IP address and whatnot. And then they also have data about like, this credit card was used last used 2,000 kilometers away. Or their name does not match the name on the credit card. Or all of these little, little notes. And all of that stuff is combined and creates a radar score.
33:34 Wes Bos? And then you can set rules in your Stripe to say, hey, if the radar score is below X, Y, or Z, then reject it. And it's a delicate balance because like, good people get caught in it as well. And then you don't get their money. But when there is, is fraud, you both have a $15 hit on Stripe and all of these things. So if somebody, somebody uses a stolen credit card to buy something, or they disputed it or whatever, you get, immediately get docked $15. And you are allowed to then dispute it and you can provide all of this information. You almost never, never will win. To a point where it's just not worth even, even fighting them.
34:17 Wes Bos? Unless it's clearly somebody trying to pull the wool over your eyes. But if it's legitimate fraud, or even just like a disgruntled person, they almost always are going to side with the customer. So you can submit like server logs and all the proof that you have. I think once I've like sent screenshots of email with the customer and I've, I've won it. But probably hundreds and hundreds of other ones I've, I've lost. And then you are, you're sort of, you're out that much money. Plus, I believe it's plus a $15 hit as well.
34:51 Scott Tolinski? I took that disputes like very personally when it was like somebody who signed up and then was like, actually. I've watched the videos. Now I'm just gonna do a chargeback or whatever.
35:03 Wes Bos? Yeah.
35:03 Scott Tolinski? I always took that very personally and I would fight them every time. 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 some kind of way, if it's, if it's legitimate and it's a stolen cry or it's like somebody who didn't mean to sign up or there, there's a lot of reasons that could be legitimate. 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 have just emailed asking for a refund and I would have done that. Instead, you got to issue a charge, like a fraudulent chargeback, which actually hurts me instead of like, you know, I'll give you the refund. Just let me do it. Yeah.
35:47 Wes Bos? Sometimes the, the chargebacks are simply just, people don't recognize it, whether it's, oh, my son bought this course or whatever. So.
35:54 Scott Tolinski? Oh, I've gotten so many of those.
35:56 Wes Bos? Yeah. On the credit card statement, you can, you can write what it shows up as. And I will try, luckily my name is very short. So it'll say like West Boss Beginner JavaScript. Or it'll, I think it also says boss type. And then like they can, they can contact me, they can call me and a lot of times it's just, it's just, oh, I forgot I bought that or oh, I didn't realize that that was, that's what that was. Um, because people don't recognize it and they immediately dispute it. So it's, it's important to have that as well as like, a lot of times people email me and say, hey, what is this charge? And I'm like, oh, it's a web development course. Like, uh, I work in construction. I never would have bought that.
36:38 Wes Bos? And if you can refund it before it is disputed, then you don't get hit with that $15 fee. So that's, that's good. It's 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. Where like, you shouldn't just be allowed to know the secret number and then buy stuff on the internet. You know, it's, uh, Apple Pay, everything else is so much more secure that it's slowly becoming less of an issue, but. It's still not totally gone, especially if you're selling low item values. You sell something for three or four or five dollars. People are looking for places to try that because they'll have a list of 10,000 credit cards
37:22 Wes Bos? and they'll just try them all to see if they're still valid or not. And then they'll go sell that list of credit cards saying like, yes, they work. And they'll throw it on the dark web.
37:35 Scott Tolinski? That one that you said about like kids charging stuff on their parents' card? Like I've had that and like, oh, my son is 20 years old and I don't know why, but he must he's a web developer, so chances are he bought this on our card. Now I'm going to have to have that conversation with them like, why are you buying stuff on my card? I've had like phone calls like that at least a few times with like
38:00 Wes Bos? Yeah, oh, yeah.
38:00 Scott Tolinski? People who are like, who are you and what are you doing? Oh, I make web development tutorials. Oh, web development, okay. Yeah.
38:07 Wes Bos? I've had some crazy calls. I had one story where a guy bought the course, died, and then his estate contacted me and they were just like, he 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 going to watch it. So crazy, crazy times. The refund or the disputing it just for the hell of it. There's some bad people out there.
38:38 Scott Tolinski? Yeah, that is a bad thing to do. If you're out there and you do that, that hurts the creator. I don't feel bad about that.
38:45 Wes Bos? No, okay. But like, so I go to these, these like Amazon return stores every now and then. Sometimes I buy stuff at auction, Amazon returns. And like, sometimes you get stuff where it's clearly somebody took their shoes off and put them back in the box or I'm not buying shoes, but like they just clearly put the broken one back in the box and sent it back. And I don't know that I could do that. That seems Seems bad, 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 kind of hurting them as well.
39:23 Scott Tolinski? Oh, there's a lot of drop sippers as well.
39:25 Wes Bos? Well, if it's a crappy product, no problem. I'm sending it back, you know, but like,
39:29 Scott Tolinski? Yes.
39:30 Wes Bos? Like, for example, I ordered the wrong fan for this 3D printer. It's three pin and not four pin. And I'm going to return it, but like, probably should have checked a little closer that. My bad. You know, my bad on that one. I think that's all we have here for accepting money on the internet. I guess one area we didn't touch upon is people email me all the time is what if you have, you're not in the US, but you're accepting money in the US? How do you then convert that to your local currency? I'm not going to go into that right now, but I have a couple of methods. It's just search West Boss, convert USD PayPal. I have a couple of approaches that will get around the extortionist fees from PayPal.
40:16 Scott Tolinski? Yeah. I don't, thankfully have never had to deal too much with any of that. Being in the US, you know, you just, most of my customers are from the US or Canada. And 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. Just like, hey, here's all my transactions. Here's my, my books. You figure it out, you know? Yeah.
40:47 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, luckily, all my like Canadian taxes, because I do have to calculate and remit taxes for all the provinces. But luckily, Canada only has, what, 13 provinces, 12, 13? I don't even know. Hold on, I should probably know this. Canada provinces.
41:11 Wes Bos? 10 provinces, 3 territories, so 13 was right. Luckily, it's not that complicated, but if you have to do that for the states, where, what do you have? 50, 50 states, something like that? That's a little bit harder.
41:25 Scott Tolinski? Yeah.
41:26 Wes Bos? All right, that's it for money. Let's move into sick picks and shameless plugs. What do you got for me today, Scott?
41:33 Scott Tolinski? Oh, man. You know what? I have 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 would have to look up when this was because it feels like ancient days in syntax land. But the, the app is Parcel and it's an app that you put all your shipping codes in, your delivery stuff, puts it into a nice UI and a widget. And I gotta say, I was so sick of just going through and having to click on the email and check the thing. And we don't have shipping information for you. I gotta go to the email, check it, whatever. It's like, oh, I gotta do all that process. And I feel like I do it way too much.
42:16 Scott Tolinski? Um, so having an app that you just paste in the shipping information inside of the app and have that thing, just have everything in one place. It's nice. And the free experience on this app is nice because, you know, it does like three at once or whatever, but it does, just tells you.
42:35 Wes Bos? It's like five bucks a year or something too. It's dirt cheap.
42:39 Scott Tolinski? 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, um, you don't know anything about it. It is on iOS. I don't know if it is on Android, but I have to imagine there are other shipping manager apps. So 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. Uh, 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've got stuff coming all the time with clothes. Like I do all of my clothes shopping there now. And, uh, the way my wife shops for clothes 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.
43:22 Scott Tolinski? I'm stuck into that flow now. I've like, you know, the place has got to have free returns and free shipping. And then I can do all that. But yeah, that's where I'm at.
43:32 Wes Bos? I've been using Parcel for probably like seven years. And I've emailed the developer probably five or six times over the years at like reporting bugs or trying to get new couriers added, things like that. And I've been a big fan of it, but I actually am. I'm still like in between the two, but I'm switching over to Parcel's app, not Parcel. And I find that it's a bit better at finding these like random last mile carriers. Because often I'll order something from China and you want to track it like the entire way. And it's, there's like a local Chinese carrier, you know, it goes on a boat and then it shows up and then,
44:16 Wes Bos? and then it gets put to one of these like a 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 going. And I find that these random tiny little carriers are not as well covered. So I've been, been enjoying Parcel's app, Parcel's app.com. So maybe that'll be my, my sick pick as well.
44:40 Scott Tolinski? It doesn't look as beautiful, but if it's more functional than.
44:44 Wes Bos? But it is, it is a little bit more functional.
44:46 Scott Tolinski? Okay, I can get down with that. I don't need, I don't need beauty in my apps.
44:53 Wes Bos? But I love that because it gives you a little, little like push notification every time something updates and just, man, I love waiting for, for packages to come.
45:02 Scott Tolinski? I know. It's, it is a dopamine hit. That is probably not a great thing, you know, but hey, I'll take it.
45:09 Wes Bos? The Amazon integration with Parcel is really good. So you can sign in with Amazon and it will track where your stuff is over time, although the, the Amazon shipping in Canada has gotten really fast. So I almost never track it anymore. It just shows up.
45:26 Scott Tolinski? It'll just show up tomorrow. Yeah.
45:27 Wes Bos? Yeah. Cool. All right. Thanks, everybody for tuning in. Make sure you check us out on YouTube, youtube.com/AtSyntaxFM 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.
45:43 Scott Tolinski? Also, if you are accepting payment on the web, you've got a store, you've got a shop or whatever, post a link to that shop below, post a link to whatever you're selling. Let's, let's click on each other's links and buy each other's stuff. But also, tell us what payment processor you're using and all, you know, what kind of, what kind of stuff you're using there. Because 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 a payment processor, what kind of stuff are you using? Do you like it? Let us know.
46:12 Wes Bos? Beautiful. All right. Thanks for tuning in. Catch you later. Peace.
Previous 889: Planning A Build Next 891: Light and Dark Mode Page updated November 3, 2026 · transcript and summary are machine-generated