Ask HN: How do you process payments?
I found an old post from 2009 about this, wondering what the answers will be a decade later : https://news.ycombinator.com/item?id=526517
I found an old post from 2009 about this, wondering what the answers will be a decade later : https://news.ycombinator.com/item?id=526517
For our clients, our preference is still Stripe, though we had a client deplatformed by them because their bank had problems with the product. (In our case, specifically, adult toys.) We had spoken with Stripe at length before investing in using them, and confirmed that this would be acceptable, as they had other adult toy companies on their platform, but Wells Fargo, paragons of fucking virtue that they are, decided to step in an try to get extremely and very awkwardly hands on with our specific products. (They tried to dictate what colors we could and couldn't offer, for instance. It was unpleasant, and we recognized we needed to leave immediately.)
We ended up back at a higher-risk merchant service provider, though we're paying typical rates because we fulfill an actual, physical product (not, say, porn), and our chargeback rate is very low. Still a frustrating experience, and yet another reason to hate Wells.
What kind of bank would do that, and why?
I don’t comprehend the logic that would drive such a decision.
They are:
https://www.quora.com/How-can-PayPal-function-without-a-bank...
In the EU you either work with a bank or you need to be a bank to do what Paypal does. In the US not (yet).
It still makes zero sense for me why more fraud would happen specifically at adult toy stores compared to other categories.
I just don’t get how banks make their decisions. Mine declined my credit card when I tried to add it to Patreon. I called the bank and the rep told me that online subscriptions can be fraudulent and that a bank needed to protect its customers. I told her Patreon was certainly not a scam site. She replied that she’d never even heard of Patreon and that she wasn’t going to white-list Patreon for me and “jeopardize tens of thousands of other customers.”
I feel I’m never going to get behind banks.
That's bad. It deserves media attention.
- Stripe Elements [0] + Stripe Webhook [1]
- Stripe Checkout [2] + Stripe Webhook [1]
- PayPal Smart Payment Buttons [3]
And one repository:
- basic Stripe Checkout with Webhook in React + Express [4]
Personally I preferred Stripe Checkout over Elements, because they take care about the look and feel.
- 0 https://github.com/stripe/react-stripe-elements
- 1 https://stripe.com/docs/webhooks
- 2 https://stripe.com/docs/payments/checkout
Stripe Checkout force you to gave client email to stripe. With Elements you can just use stripe for card processing (with zipcode of course).
Stripe's developer UX is godly, from api docs to the dashboard it's something all B2B companies that offer APIs should aspire to.
Secondly, with stripe elements it can be styled into the website much nicer than PayPal buttons.
PayPal does support more countries and still has some brand recognition with customers as "a safe way to pay online", but between the bad UX for both business and developer, as well as their tendency to randomly freeze accounts, we try to dissuade clients away from it unless it's a significant revenue stream.
Seriously, does anybody care about the style used on a website when making a payment?
Also, as a user, I'd rather see a single consistent style so I have some confirmation about what bank I'm dealing with.
Stakeholders tend to.
Style may have been a poor choice of wording, as I meant the workflow as well as aesthetics. Keeping the user on the site and having complete control of the checkout process can lead to better conversion rates and up-selling than throwing them to a payment provider and maybe getting them sent back.
> as a user, I'd rather see a single consistent style so I have some confirmation about what bank I'm dealing with
Which is one of the reasons I listed to include PayPal, as the logo is well recognised.
[0] https://github.com/rwieruch/nextjs-firebase-authentication
We've been quite happy with Chargebee overall and would recommend them. The only downside is their customer support is very bizarre sometimes and a bit frustrating.
For example, they limit API access to my own (events) data to the last N months. I contacted and asked them to remove the restriction, and they said that wasn't possible because the data was "archived". I pointed out that their UI allowed me to see all the data and their page loaded quickly so clearly the data is close at hand. They then said they'd give me access to all my data over the API for one week. I told them I'm not going to build a script that will be broken in a week and instead will just have to scrape their website - they seemed happy with that resolution.
From what you describe it just seems like a hassle with them acting as gatekeeper to your own historical transaction records.
I believe Stripe does more and more of this stuff, but it isn't cheap and in our experience Chargebee has perfected a lot of that functionality.
We use the above-mentioned things, and they also take care of providing a UI where customers can change their plan, cancel it, download PDF invoices. Upon plan changes, they deal with proration. They send dunning emails for failed charges and cancel the plan after N retries. You can set up coupons, discounts, trials, credit, refunds, welcome emails, etc. through them.
> List events, going back up to 30 days.
If you're able to go further than that you may be paying extra for it.
Now, if you have the event id then you'll be able to pull it, but you can't simply list them out unless that documentation is lying.
Anyone have recommendations for similar services that have a lower price of entry?
While I have your attention, some unsolicited feedback: Chargebee's core is great (and that's what we care most about), but a lot of the UX is kind of whacky and the new redesign of the Customer Portal and Signout flow was also a bit whacky and we won't be upgrading.
Last thing, small pet-peeve of mine: password rotation is annoying and is an outdated practice. Both Microsoft[1] and the FTC[2] are encouraging people to stop using it. It ends up wasting my time because I can never remember what I've incremented the last digit to (I now track it in a file). I've given your support that feedback, but doubt anything will happen unless you give the order.
[1] https://arstechnica.com/information-technology/2019/06/micro...
[2] https://www.ftc.gov/news-events/blogs/techftc/2016/03/time-r...
[1] https://www.chargebee.com/docs/plans.html#pricing-attributes
Tangentially, I'd recommend everyone to stay away from Paypal. You will lose your money or your account sooner or later. Let someone else (like Paddle) handle Paypal payments and that risk.
The problem with Stripe is they have a large list of prohibited businesses, which mainly is inherited from the credit card networks as I understand it. Even if you’re a perfectly legal and legitimate business, if you fall under one of these broad categories you can’t use Stripe’s platform (even if you only use their ACH product and don’t touch credit cards). PayPal has a similar list.
The credit card networks justify it by claiming certain categories of business are riskier (and I’m sure some are). But then you see how a lot of these categories may have come from Operation Chokepoint, chosen by unelected bureaucrats seemingly without any evidence.
Personally it disturbs me that so many legitimate businesses are severely hamstrung from collecting payments online because of extremely opaque decisions by an oligopoly of payment networks.
But about Dwolla - it’s not quite as smooth as Stripe; you have to build out your own customer onboarding screens, and production plans are priced through a sales rep rather than a SaaS-y paygo model. But I feel much more in control from the business end of things using them.
The main reason is that it makes my life a lot easier, they act as a reseller so I effectively sell my product to them, and they sell it on to customers. At the end of each month I just need to enter a single payment into my accounting platform, and they handle all currency conversions (I sell in USD, my accounting is in GBP) and sales taxes. They of course charge more, but for the amounts I'm talking about the cost outweighs the time I was spending dealing with Stripe payments.
They also support PayPal which I've had a lot of people ask for, so that's a win too.
If you want to hear a success story about it, we talked about it when Dan (the guy who runs Real Python) went over his entire tech stack on this podcast: https://runninginproduction.com/podcast/4-real-python-is-one...
36:36 is when the Paddle bits starts.
Did you have a bad experience with it? If so, how long ago was that? I was thinking about using it on a future project.
What is your approach to bank account verification? Plaid/Yodlee, a more traditional "deposit x money, ask for verification", or both?
We mostly do outbound so no verifications are done
We built our own quote logic including prorating, etc. then apply that as recurring subscription using Braintree if customer wants to pay with PayPal, or Stripe if customer wants to pay with credit/debit card.
Breakdown by processor:
73% Stripe
26% Braintree/PayPal
0.7% GitHub Marketplace
0.3% Coinbase Commerce
[2]: https://stripe.com/
[3]: https://www.braintreepayments.com/
For the same reasons as rwieruch's comment above, some international customers prefer PayPal: https://news.ycombinator.com/item?id=22178646
1. I don't have to write code or maintain a server to process payments. I realize that I'm an outlier for not wanting an API, but my business web page is completely static, and it's convenient for me to keep it that way.
2. They are unified with USPS for shipping, which has the best rates and service for packages that weigh just a few ounces. I can click on a button in PayPal and it spits out a USPS shipping label for me.
I greatly prefer not having to handle any of my customers data. The only info I ever see is their shipping address and whatever e-mail address they signed up to PayPal with.
Stripe just came out of private beta in India but their processing fees are pretty high. We are looking at two providers as they are promising better fees. Razorpay and Payu:
- Razorpay is pretty much Stripe of India with the documentation and UI similar to Stripe.
- Payu is an old dog in Indian Payment Industry with good sales team but bad integration and overall product.
They have an Australian focus but global capability. If you use a scheme card for Fastmail, you probably paid via Pin Payments.
Pin have a Stripe-like API but a small-team feel during contact i.e. we know one another by name, and when escalating a technical query I've had dialogue directly with a dev lead. I've even received hand-written Christmas cards from them.
I live in mortal terror of Pin being bought by Stripe, or (worse) an Australian financial institution, with all the consequences for competence and customer service level that follow.
We also handle bulk/large payments via CS2 (the Aus equivalent of ACH, for Usonian readers), with handling fee.
Your fear about Pin being bought by an Australian financial institution may be unfounded (or it's already happened depending on your perspective). Back in the early days, it was fairly well known that National Australia Bank was a part owner in Pin, but I can't find anything to support that now. NAB is listed first on their partners page (https://pinpayments.com/company/partners) and their Terms of Service (https://pinpayments.com/terms/national-australia-bank) are a 3 way agreement between NAB, Pin and yourself.
I'm sure it would be worse if Pin was fully absorbed into NAB though.
I ended up choosing stripe but only because Stripe has better branding and was 'cooler' to use.
Have you used Stripe as well? Authorize.net always got the job done. Then Stripe came along. I was honestly surprised of its success at the time. It was mainly just more of a joy to use - not cheaper or much easier. Just 'fun' as I remember it.
Last I saw on their forums, a few months ago, a few people has asked about it but Authorize.Net didn't have anything yet. (Support has been kind of spotty in general among payment processors [2]).
I was going to check their forums again to see if anything has changed, but the forum link on their developer site is giving me a 404 right not.
[1] https://usa.visa.com/dam/VCOM/global/support-legal/documents...
[2] https://3dmerchant.com/blog/cenpos/which-payment-gateways-su...
With Operation Chokepoint over, the DEA/FDA still have colluded to prevent the kratom industry from processing credit cards. For my website www.getkratom.com, we take checks, echecks, and cryptocurrency. Sales are about 1/3 of what they were when we were able to take credit cards.
Frankly, I've been in the legal drug space running www.getkratom.com for 13 years and things are fine because the plant actually is so profoundly safe. Orrin Hatch plus lots of veterans of the US armed forces calling their representatives is what saved it from a federal ban. It already went through that due process and didn't get banned.
Running a crypto hedge fund feels more dangerous to me in many ways that my simple, though controversial, ecommerce business. :) I'm doing fine and must like living on the edge.
I’ll message you if I come to SF, I don’t travel as much as I used to, too many responsibilities at home now a days. Glad your business is safe!
Tip - most of the major traders I know are incorporated offshore now, just makes things easier.
At my sales volume I can't reasonably fly under the radar this way; I'm sure a tiny or start up operation could for at least a little while but it's not sustainable.
I used to use Stripe, but had an issue where my account was flagged as fraudulent by their ML model for God knows what reason. They sent me a link to click on to provide more information and escalate the issue, but the link went to a 404 page. I forwarded the email to their support but never heard back from them. Tried to call them, no dice. That's when I realised my business was relying on a service which could go down at any moment and didn't provide adequate phone support. Cancelled the account and signed up with PIN Payments on the spot. The few times I've spoken to them, I've received a response from a real person that actually knew what they were talking about. Couldn't recommend them more.
Customers from Turkey, Pakistan and a few other places are not happy (PayPal banned in their territories), but for the most part, few complaints. Ancient key/value pair API continues to work, which is nice.
Hate their website, hate the lack of ways to get reports, particularly on subscriptions.
Could be done so much better (and likely is), but the micropayment account saves me thousands of dollars a year.
I’ve built payment integrations my entire 20 year career and have always appreciated how ease of use relates to cost, e.g. it’s hard to build tools as easy to use as stripe or Braintree, but I’ve wondered how these features play out when it’s so close to the actual money itself.
1) When you collect money long before a user might file a chargeback - like if you're selling tickets for an event that will happen in 5 months, or if you're selling a product that you'll be shipping much later.
2) When your 'pattern' changes dramatically. eg, you've made 5k/month worth of sales for the past 2 years and this month you've suddenly sold 20k.
Paypal is significantly more expensive. Recurring subscriptions are really bad (the "vintage" UI is stuck circa 1999).
But what's really bad is that at some point, after 5 or 6 years of significant usage, someone calls us once at 4.30 PM, gets no answer, and flags us as "suspicious". At that point, we could not retrieve any money for the account, could not call anyone (you cannot contact the fraud team - we'll call you back), and it started a lengthy (like, a couple of months) process where we were asked a lot of previous information in order to unlock the account. I mean, I understand you may want/need more information, but you talk to us first and then, if you do not receive good answers, you lock the account. Our bank charges per year way less than PayPal and gives us an account who knows who we are, comes visit yearly, and whose mobile number I have.
So, even if we still use Paypal by popular demand, I'd rather not.
Funny thing is that I'm working on debugging an issue with the Stripe API right now (or the library I'm using)
Business is for digital goods.
Would like to support worldwide bank transfers if it can be safe and quick for both sender and receiver, anyone got any tips?
We wrote a blog post about how we built on top of Stripe's "subscriptions" API: https://www.daily.co/blog/implementing-api-billing-with-stri...
People have figured out that the overhead is only about $0.50 if you're willing to wait, but most consumer apps don't make it easy to default to the lower fee.
(I haven't looked into this for some time, so that last paragraph is a bit dated.)
I've actually started using BitCoin to pay for things recently and I was surprised to find out how easy and quick this actually is. This really is a no-bullshit electronic cash. No registration, no verification, no borders, quick and easy. I hope more goods and services are going to be offered for cryptocurrencies in future.
On the BTC blockchain, this can be a real problem. The best one can do is to hope that the BTC price doesn't swing more than the equivalent fee amount of a credit card transaction to make it worthwhile.
If you are willing to keep some of your crypto on an exchange (but remember, it is only really your crypto if you have the keys), you can try to automate the swap between BTC<-> stablecoin to reduce the exposure to price swings.
We've processed over $200k in orders with over $100k being in BTC and ETH payments since 2017. Crypto merchandise website.
Disclaimer and shameless plug: I was working on Raiden last year and now I am working on a self-hosted payment gateway that can leverage Raiden (https://github.com/mushroomlabs/hub20)
Love the developer friendly aspect, and their customer service is awesome.
Due to a misunderstanding[1], they believed our service violated their TOS. Stripe offered us a week to migrate AND suggested a competitor that allows those types of Txns.
Luckily, with a message to Customer Support (via Twitter) we resolved the misunderstanding and never had to migrate.
Also worth noting, the issue was addressed on a Saturday.
1: Stripe mistakenly thought we were doing online prescriptions.
I'm asking because if twitter was the first escalation and it worked, Great!
If twitter was another resort after unsuccessful support.... not so great.
I felt satisfied with the level of effort I had to put in to resolve the issue.
Can you say what your company was actually selling?
Their service was great and was trivial to interact with. We were working only in the UK, and Direct Debit isn't available everywhere but GoCardless offers some equivalent in a lot of countries.
The customer service or tech support isn't as great as Stripe but they have a really intuitive model for marketplaces
We also vaulting the cards there.
There are third-party partners who extend on the platform. (I'm looking for a simple option for invoices-statements without trying to compete as Online Bookkeeping service.)
They increased pricing and added a bunch of features we dont use, plus our payment processor (DPS now Windcave) refuse to export our customer card data.
So for the past few years we are slowly migrating people away as they update their card details, but its been a frustrating experience.
Don't use Chargify or DPS/Windcave
This is usually an ideal payment in .nl, and various other payment methods in other european countries.
SaaS - mostly Stripe credit cards, with a tiny percent in PayPal.
PayPal is utter trash.
All done via serverless functions, for both initialisation and confirmation(via Stripe's webhooks).
public class PaymentRequest{}
public class PaymentResponse{}
Golang:
type PaymentRequest struct {}
type PaymentResponse struct {}
Kotlin:
data class PaymentRequest("")
data class PaymentResponse("")