Ask HN: Best payment processor?
Hi HN,
Does anyone have any recommendations for a payment processor for use by a startup?
Some details:
-We have a high volume of payments with low margins.
-The tech stack is node.js with react/redux. There is a planned iOS/Android app.
-We're based out of Canada and only serve Canadian customers.
Even if your preferred processor doesn't cater to those bullet points, I would be interested in hearing your experience with them. Thanks in advance.
P.S. I'm sure this question has been asked many times already, but I found nothing too relevant from within the past year: https://hn.algolia.com/?query=payment%20processor&sort=byPopularity&prefix&page=0&dateRange=pastYear&type=story
71 comments
[ 4.3 ms ] story [ 141 ms ] threadMicropayments are tough (if that's what you're going for).
When Stripe was just barely starting out in YC (i.e. just announced but before demo day), I noticed a few minor typos in their docs. I got on the Stripe IRC channel, and asked where they wanted the diff sent, and Patrick Collison (founder) told me to just mail it to support@ since he'd be getting it anyhow. Patch sent, good deed done, and I'm all finished... or so I thought.
Afterwards, they sent me a Stripe t-shirt just to say thanks. Stripe is more than just developer-centric and easy to use, the people running the show are a class act.
With paypal and Braintree, I was able to easily get someone on the phone. Even though Braintree has been acquired by Paypal, Paypal had the best service, Braintree had issues with their phone system and the sales people were not as knowledgeable or helpful - this I did not expect from Paypal.
The person from Stripe explained that he could not talk to me on the phone (only e-mail) because they are growing so fast. Growing fast is a great thing for the people who own and invested in Stripe, but it is bad for me as the customer because it means I will get a more inferior experience while they catch up with their growth. (Even once their growth is complete, its hard to say what kind of company it will have turned into) If I'm going to run over 100k a year in sales through a company, I think it is very reasonable to expect to get someone on the phone. Also, this is a very important thing for our company. Its risky and unwise to do this much business with a company that I cannot get on the phone.
The next issue I had with Stripe is that they didn't have much interest in working with my small company. My first hint of this was their contact form. The lowest tier I could select on our monthly credit card revenue was "<75k a month". So I wasn't surprised when the rep explained to me that I couldn't get a rate below 2.9% until we did 80k a month in sales. We are a small company that does about 9k a month credit card sales. Paypal was willing to give us 2.5% because we did more than 3k a month, and if we went up to 10k a month, they would automatically reduce our rate again. Braintree quoted 2.4% based on our sales volume.
If using Stripe's super-friendly APIs (and management portal) isn't worth $36/month to you compared to PayPal's APIs, that's certainly your choice.
The "widest" gap will be if you grow to doing just under Stripe's $80K/month cutoff for their first tier of rate discounts, paying them 2.9% while you'd be at 2.2% with PayPal. Here the difference is at most 0.007 * 80000 = $560/month. At that point, how much developer time is it worth investing for you to "recover" 0.7% of revenue? Or is there some better use of that valuable time to grow your business by 0.7% -- at which time you have access to more favorable rates from Stripe?
(Disclaimer: happily abandoned PayPal's API several years ago, using Stripe happily since then! Maybe PayPal has improved, I don't know.)
The problem is that they communicated to me that my business is not worth very much to them. This is a precarious situation for my company to be in because our merchant processor is a key part of our business.
My experience as an entrepreneur has taught me that as a general rule, its not a good idea to work with companies that don't care about you as a customer or for which you are not a target customer. The reason this is not a good idea is because it significantly increases the risk that I will run into unanticipated problems that they will be unlikely to fix.
Stripe basically told me that I am not their target customer and that they don't care about me unless my business is 10x the size it is now. Based on their contact form, I was a little surprised that they were willing to take me as a customer at all.
Perhaps a good analogy is the big bank vs credit union situation. If I was a very large business, I would have a good experience working with a large, national bank. But (I think) statistically speaking, individual consumers are more likely to be happy with smaller credit unions where they are worth more as a customer.
Stripe used to be attractive, particularly for smaller and/or newer businesses, because of the rapid set-up and hands-off approach, the developer-friendly API, their famously well-presented and well-maintained documentation, immediate responses by in-the-loop staff to support questions, and generally a "we get it" kind of attitude that felt like working with a peer who understands your concerns.
Sadly, in recent times those seem to have given way to an ever-changing and sometimes breaking API, quite often incorrect or incomplete documentation, almost copy-and-paste half-responses sometimes arriving days after the original mail (or not), and generally an "if you're going through these channels, you probably aren't that important" kind of vibe.
The thing is, without those developer-friendly, real-person characteristics, what is left for a small business is mostly just another payments service with higher than average fees, a crazy high failed transaction rate in our experience (YMMV), and below par anti-fraud and security options. (Edit: They also seem to have had a lot of minor outages around their API recently, which don't always seem to be reflected in their pretty mostly-green status display.) There is a lot more competition in the payments space than there was even just a few years ago, both for processing services and for the payment methods themselves, and others do some or all of these things better today.
It seems clear at this point that Stripe have become victims of their own well-deserved success, and it looks like their focus has shifted to larger and presumably more lucrative businesses rather than the start-ups and side businesses where they established their reputation in the early days. That's an entirely understandable business move on their part, and I'm not going to criticise them for running a business like a business. However, objectively it also means they're no longer attractive for the smaller businesses in the way they once were.
Right now, Stripe is burning off some of their goodwill, but (based on what little I know), I don't really see an alternative for them that doesn't involve just turning away customers. It would be nice (but a total fantasy) to be able to measure how much the lost goodwill is actually costing over the long term vs. profit from the increase in company size now.
On the other hand, I also don't recommend them by default to people in my network with new startups or small businesses any more. I don't expect anyone in that sort of position who does sign up with them today to enjoy the same advantages that some of us did a few years ago.
Maybe Stripe have a clear idea of how this is going to work out for them in the long run. Objectively, I'm sure that if they lost every business that I personally work on today that still uses them, they wouldn't even notice. They could probably also lose every business that went with them in part because of my recommendation and not even notice, since as far as I know none of those businesses has yet exploded to unicorn-like proportions. Presumably the risk is that if they alienate the startup community as a whole then sooner or later they will start missing out on attracting startups that will go on to be very successful, and that would make a significant difference. However, if they're now doing well with more traditional and already-established businesses anyway, maybe it's still commercially in their best interests to go that way.
I think losing reputation and volume with the start-up community is probably very costly. An interesting thought is they might not have a viable alternative? If their cup is already too full, they have to cut back somewhere. Providing good service, at scale, while also growing rapidly is debateably impossible.
Obviously there are several other card payment services these days that might not be quite a easy to integrate as Stripe but might have compensating advantages in other respects.
However, there are other payment methods that might wind up being better bets anyway as they are increasingly available to smaller businesses through other new services. An obvious example here in the UK is GoCardless for Direct Debits, which easily beats Stripe on most of the important metrics but has the huge disadvantage of only being available to customers with a local bank account. However, SEPA is already starting to change what "local" means in that context, and if they start partnering up with other alternative payment schemes internationally, I could see them becoming a very good option for a lot of smaller businesses if they can avoid the same fate as Stripe.
The elephant in the room for me is whether there is now an opportunity for someone to out-Stripe Stripe. After all, they established the viability of the market for processing payments for small businesses, and they now seem willing to surrender that market as they move on to bigger things. That leaves quite an attractive gap for a new entrant to become the default payment service for startups for a while (probably before either following a similar growth path or being acquired by one of the incumbents, so you have multiple potential big exits as well).
Downside: The cost is somewhat higher. So I don't think they work for a low margin business.
1) https://github.com/stripe/stripe-node 2) https://stripe.com/docs/api/node#intro
I can't speak to my experience as a Braintree customer as sadly my app hasn't processed many payments but the initial integration using Braintree was much easier for me.
I don't personally know anyone who's actually done this, so I can't comment on how well it works in practice.
1) Dollar amount processed by month
2) Average dollar amount per transaction
From there, you can figure out the rest
For startups, the default is ALWAYS Stripe (IMHO) because you can get to processing cards right away - like in 5 minutes. Their API is easy, their virtual terminal works as expected for manually keyed in transactions. There is even a super dumb screen that is just HTML (Checkout) if you don't even want to deal with an API.
As far as the fees, the $0.30 per transaction fee is always going to be there. The 2.9% percent is negotiable, specially if you are doing volume. If you are doing $1,000/mo, 2.9% will be your rate.
If you are doing much higher volume, that rate goes down. For example, if you can show (with proof via bank statements or from your current merchant provider) something like $300-400k per month for the last 3 months, I was able to get them very close to what is called the "interchange rate" which is the lowest rate you can get even with traditional processors like Moneris (FirstData). My current "effective rate" is about 1.6-1.7% (effective rate is my quick math of fees/total).
Like somebody already said, micropayments are pretty bad.
High volume + low margins make it sound like you are operating a restaurant where the fees are much more different due to the physical nature of the business (less fraud due to card present) vs internet (card not present)
We're not doing micropayments. Each transaction is around $50-$200, with <5% margins. Volume is low 100ks. (Didn't mention this earlier because I didn't want to seem like I was getting my homework done by others, planned to research the general recommendations.)
Edit: For anyone else, I assume this is what you're talking about https://support.stripe.com/questions/accepting-ach-payments-...
You might find yourself requiring multiple providers for different requirements and redundancy.
Playspan was for example very good at the south american market, Vindicia very good at retrying failed payments and auto replacing card details for recurring subscriptions. And a lot of customers expected to be able to pay with Paypal whom are also good at fraud prevention.
But to echo everyone here, if my "next" startup requires a payments provider I would initially go with Stripe and/or Braintree.
Last I checked, no other service has any separate fee for micropayments. Paypal doesn't make it easy to find this info out, but it definitely still offers the product.
of course paypal can be really, really annoying to work with, as their code is VERY old and their APIs can be confusing. They also have a weird variety of products that semi-overlap, so selection of which specific product to use can be confusing (Express Checkout vs. Instant Checkout vs. Adaptive payments..?).
a few other things to note: paypal's international coverage is much better than any other provider, so if you want to expand to EU or South America quickly, they are good for that. also, paypals payout process (MassPay) is much easier to use than ACH or any other solutions I've seen, and much cheaper (2% transaction fee for payouts). Also, all the payee needs is an email address, no bank account info, etc.
Truthfully, those are two reasons we still use Paypal. Otherwise, it kinda sucks =)
1. payments from customers to you
2. payments from you to users
3. revshare marketplace payments (payments between two users, of which you take % a cut)
4. pure marketplace payments (payments between two users, and you charge a flat fee)
5. something else?
that would also impact what suggestions I and other would have, as different services are better than others for each case.
ACH payouts cost a flat fee of tens of cents afaik.
Good onboarding, snappy support replies by smart people, they do what they say they'll do, good transparency when there are mistakes, early heads up on changes. Overall, they are solid people running a solid business. We respect them and enjoy being clients of theirs.
We're a medium sized business and we run charges pretty regularly through out the day. Their status page only reports their larger outages. If you are running charges regularly, expect their end points do go down for 20 secs up to 2 minutes 2-3 times a month. Its to the point where our customer service chat knows what's going on and says things like "ask the customer to wait 2 minutes, it'll be right back". Its frustrating. We've considered setting up a fail over with spreedly and braintree but its juuuust inside the threshold of annoying enough to do all that.
That minor gripe said, I still have the Stripe afterglow because we suffered through the Auth.net days and the AMEX domination days. Stripe set us, and everybody else, free from that jazz. We're still grateful and probably always will be.
Lastly I note, if your volume merits, they will discuss alternative rates within reason.
You should go with Stripe.
I'd consider using Stripe and have in the past, but we're doing millions/month USD (less than you'd think with a high-dollar, low-margin business) almost entirely card-present, now with EMV, which puts us way outside Stripe's target market. We also have a complex approval process and capture/settlement several days after approval, which, again, isn't really in stripe's wheelhouse.
Don't use heartland. I've had to deal with them a lot over the past month and they're absolute garbage. Shit API, integration specialists that can't be bothered, NDAs before they'll look at you, just all-around bad experience. They also announced they're deprecating SHA-1 support, which would be prudent except that they gave merchants two weeks notice before doing it.
- Stripe
- Braintree
- Adyen
- Paypal
- Wells Fargo Merchant Services
- Chase Paymentech
- Vantiv (acquired Litle)
- Forte (acquired ACH Direct)
- WorldPay
- Skrill
- Moneris
- Coinbase
- AMEX
- Auth.net
Stripe is probably your best bet, but should you decide to choose anyone else, let me know if you'd like any help as I've integrated with most of these processors before :)
PS: Ultimately your decision should come down to your card blend, i.e., if you process mainly debit cards (Durbin regulated and basically zero interchange), go with a processor who will offer you interchange-plus pricing. If you process mostly premium cards, go with a processor who will offer you a blended rate, since they'll probably be eating their AMEX transaction fees (typically around 3.5%).
Stripe still has the 7 days transfers thing, despite having direct debit withdrawals on negative balances. Braintree have your cash to you in 2/3 days.
So far I haven't run into any problems. The only thing I really needed was to customize customer e-mails, so I used Braintree's webhooks to my server to send out my own e-mails.
Support wise, I was on the phone with them quite a bit in the beginning, and they were nice and knowledgeable. I used them pre-paypal and post-paypal i haven't noticed any differences.
Fraud wise, my customers tend to be reliable ones so I haven't had to worry about fraud yet.
If you process less than 80k a month: Use Stripe their API is the best and they just innovate faster than everyone else. Love these guys!
If you process 80k - 250k a month: At this level support becomes a bigger factor and unfortunately Braintree just kills Stripe on this side. The below forum post alone shows how much people hate Stripe support. I know their fixing this area but its really hard for medium size business to work with a processor without phone support. Braintree literally picks up the phone in minutes while sometimes Stripe takes days to get back. This is killer when your dealing with thousands of charges a month.
https://ecommerce.shopify.com/c/payments-shipping-fulfilment...
If you process 250k+ a month: I hate to say this but I would seriously look at Authorize or one of the traditional processors. They just provide the best rates and you have to factor how much the cost savings is worth with the increase in implementation pain.
I want to emphasize my feedback changes depending on the type of business your in and how quickly you need innovate/ change your processing. Stripe is really moving fast on new innovations which is awesome. But you have to realize basic merchant processing is a commodity so your paying a premium for non commoditized things like a great API. Also things like a great API are becoming commoditized. Stripe is smart and their launching new non commoditized features like Atlas/ Platform Functionality/ ACH etc. The only thing you have to ask yourself do you need these new innovations or just traditional merchant processing.
I've had a great experience so far, the staff is very open and responsive.
We originally intended to go with stripe, but they refused us as 'forbidden business' which we aren't as we reviewed their terms plenty of times to see what we fall under. I asked for a clarification/re-review multiple times, but i got no reply which i think is very unprofessional.
Based on this alone, you need to get your own merchant account and gateway. I highly recommend Beanstream in Canada for the gateway. A proper merchant account (interchange plus pricing, either Chase Paymentech or TD are good) will boost your margins. For example, processing a debit card has a much lower interchange rate than a credit card (I don't think the rate is as good as the USA, but its still 1%+ difference).
Beanstream will also give you the option of Interac Online - which is a flat transaction fee between 20-50c.
Thanks for bringing up beanstream by the way. I saw them earlier but hadn't considered them as everyone mainly favoured Braintree or Stripe. Being able to process Interact Online is a boon.
- what your fees are
- how international payments in different currencies work on your system
- how reliable transactions using your optimization tools typically are, and how this compares to other payment processing services
- an explanation of how an integration with your APIs and webhooks can be tested.
Do you have more information available somewhere?
- Fees are 1.89% on all cards (https://www.mondido.com/en/get-going)
- We are using data and business intelligence to customize each transaction according to both the merchant and consumer need. This means switching to fallback processing, alternative payment methods, etc.
- I'd say that our webhooks are very different and more flexible compared to others. You can customize both the body and headers and use any data from the payment such as; consumer, products, fraud-check etc. (https://www.mondido.com/blog/webhooks-payments-connected-to-...)
Read more about the tech in our docs: https://doc.mondido.com/api
The main differentiator is that we strive towards maximum payment conversion, to rescue all failed payments.
Where competitors have ~80%-90% we provide closer to 95% success rate, which is the real value of Mondido.
FYI, I'm not sure whether that get-going page is actually linked from anywhere on your main English site right now. I looked for some considerable time and didn't find anything like that page.
Maybe I would have to start the sign-up process to see it if I didn't have the link from you? If so, you might like to consider that you're asking me to give details and agree to terms and conditions in a language I don't speak before I can get anywhere, which is a barrier that I'm obviously not going to cross at this stage (or probably ever).
I did have a look through your documentation, including the API page you linked to, but still didn't find answers to some important questions like the ones I mentioned before. For example, if I were to charge a customer in a Eurozone country a price in EUR, but I'm in the UK and my accounts and bank work in GBP, how are exchange rates handled, how do I see the figures used in both currencies through your API, and are there any additional fees for doing the conversion? Testing the integration is also a big deal, and it seems you have some mechanisms to help with that, but again I couldn't find clear documentation about how they work and what isolates a test deployment from a production one.
I do think Mondido is very interesting, both as a possible service for some of my own business interests and more generally for online businesses here in the UK. Having a Europe-centric service similar to the likes of Stripe and Braintree would have some real advantages, particularly if you also have good support, an emphasis on reliability, and lower fees than some of the other services. I hope that in the future you'll fill in some of the missing details on your site and produce an English version of your legalese, because I can imagine Mondido attracting quite a lot of business from around here and of course having good competition in this space would be better for merchants as well.
Edit: The page you linked to also says "The total price for Mondido is 1.89% and 1.89 SEK per transaction", so does that mean actually the fees are 1.89%+1.89SEK, not just the 1.89% you mentioned before?
You bring up some other really valid points: - Exchange rates; if you charge in EUR and settle in GBP, a charge of 0,66% will be added.
- Test and production is almost the same; before you go live, your account will be in test mode, and after you are live you will always be able to send in "test=true" to make test transactions. No separate environments (unless you create multiple merchant accounts, which you can).
- Price; We'll charge a percent fee for all European countries except for Sweden which also has a fixed transaction fee.
Bedsides that, we also support Invoice, PayPal, DirectBank and Swish. Let me know if you have further questions or feedback!
Best, Robert
FWIW, I don't think the occasional post submitted to HN as you develop your service would be out of line either, certainly if you did update to be more accessible to UK businesses.