Holy shamoly! This is incredible! I'm actually checking to make sure it's not Apr 1. I'm beyond-amazed at the sheer breadth of this list. I mean, PayPal itself only supports 20-odd currencies, I think.
I mean, the Brazilian Real? Literally almost no payment processors support that. And believe me, I've looked for them.
This is amazing news.
(As a side question, if anybody from Stripe is listening here: how exactly is this done -- via partnerships with local banks, or via dynamic currency conversion? I ask because, in the case of DCC, you will find that there are big problems involved with Brazil specifically, and many legitimate transactions will be refused. Brazil is a very special case, and calling the BRL a supported currency could mean very many different things.)
I dont't think Stripe is being misleading, but many people might be overstating the importance of this feature.
Even without this conversion, you can always (try to) accept payments denominated in U$ from people with Brazil-issued (or Uzbekistan etc) cards. Say you charge 10USD for a product. You get paid (10-fees)USD. Later the issuing bank will convert (say) 10USD into 20BRL and the customer will pay in BRL as usual. But the customer doesn't know beforehand what is the exact exchange rate, so at the time of the purchase they don't exactly how much it will cost them in BRL.
With currency conversion, you can instead charge some of your customers in BRL. In this case, the customer knows exactly how much the cost will be in BRL. Instead, the USD value you get becomes variable. But this doesn't solve the problem of Brazilian (or Uzbekistan) banks denying the payment (due to fraud prevention or because they aren't connected to Stripe's acquirers or whatever), and it doesn't solve the problem of accepting payments via Stripe as a Brazilian-based merchant.
The breadth of this list is helped by including currencies that aren't being used by anyone. For example both EEK (Estonian Kroon) and LVL (Latvian Lats) aren't in use, as both countries are actually in the eurozone and use EUR.
For a BRL charge the transaction will still be to a US merchant, rather than a local merchant. You're right that in some countries like Brazil, this can be a bit hit-or-miss.
They even support the Venezuelan Bolivar, which is under a very strict currency exchange restriction (venezuelans can only spend $300 online per year).
I'm guessing that this will still be charged in dollars, but still its very impressive!
Places with restricted conversion for regular citizens will also have a discrepancy between the official exchange rate and what people pay on the street. In recent history the difference has been roughly 30% in Venezeula, and 100000% in Zimbabwe. Caveat emptor.
Yes we have had this problem with many seemingly fine BRL transactions being refused. Given the small volume we do just gave up on it for now and charge them in USD.
So let me get this straight - a US based company can accept UZS (Uzbek Sum) payments from clients in Uzbekistan and Stripe will convert the UZS funds into USD?
I DO NOT BELIEVE THIS!!!
What are the strings attached? Any limitations?
I mean Uzbekistan has one of the most messed up economies in the world. Only here a used car costs more than a new car (I am not kidding) and Uzbekistan practically has non-existent conversion. People usually use black market to convert UZS to USD.
Thus, I cannot believe you pulled it off. And if you did do it, who do I talk to at Stripe to find out the details and rates?
While Uzbekistan is a contender for "most messed up economies in the world", Venezuela, Argentina and Zimbawe, for example will disagree with you :)
In Argentina used cars cost more than new ones as well, because new ones are often "vaporware" and take months to actually deliver. Both Venezuela and Argentina use the black market too (Venezuela being far worse than Argentina)
I live in Uruguay but we have to deal with Argentina's problems (next-door neighbour and 3rd biggest trade partner), and Venezuela is an important trade partner, so we're very aware of their problems.
I noticed the example uses "cny" in lower case. ISO currency codes are always uppercase. I imagine the API is case insensitive then. Which may pose a problem for the poor fellow who considers GBP the pound but GBp the pence. That is an established convention on some systems (e.g. Bloomberg, I think).
Interesting point. You're right; the currency param is case-insensitive. (And with regard to GBP vs GBp, our amounts are always denominated in the smallest unit of the currency.)
Wait, so if I tell you 100 GBp, is that closer to 100 dollars or 1 dollar? Is "gbp" pence or pounds for you? The "smallest unit" of some currencies may be ambiguous (e.g. 1 BTC vs. 1 Satoshi).
100 GBP in the API =~ $1. (The motivation behind always using the smallest denomination is to dissuade people from performing floating point math.) The smallest unit is pretty clear in most "normal" currencies, but you're right that Bitcoin kinda throws things off...
How do users or front-end developers know how to display 1 "usd" as 0.01 USD but 1 "inr" as 1 INR? I haven't seen an API for getting the display factors.
Our users are generally picking prices themselves (rather than having to render arbitrary currency/amount pairs), and so they tend to be aware of these subtleties, but we perhaps should start recommending good currency display libraries. (Or even including something in the official Stripe libraries.)
But 100 JPY would be 100 Japanese Yen, right? I've seen somewhere (I think paymill) where they still expect decimal points to the currency, even when it doesn't exist or makes no sense.
Similarly, 1/10 of one chinese yuan is called a jiao 角, and 1/100 is a fen 分. (Jiao are common in prices; fen are so rare that you could live your life without being aware of them. I would own a big pile of one-jiao coins if I didn't habitually discard them for being near-worthless.) What are stripe amounts denominated in if they're coded CNY?
btw, you had/have a subtle bug where the email generated after the first successful transaction said "Payment of ¥9.00 from ..." whereas the amount charged was 900.
p.s. I absolutely LOVE stripe. In particular as a European micro-business, the activation process for accepting real payments was a breeze. Compared to pretty much all other competitors who force a very long and bureaucratic process just to get started.
This is excellent timing I was literally just this past week looking into switching to a different processor to get access to the local currencies in a few potential markets.
Legal tender has a very specific definition that many people are not clear about; Scottish notes are not legal tender, not even in Scotland[0]. Although, they are convertible with English notes.
(IANAL, this is my lay understanding and is provided for entertainment only and should not be taken as legal advice, etc:)
Legal tender means you cannot claim a debt remains unpaid if you were offered repayment in the form of legal tender.
So if I owe you £1000, you could in principle refuse to accept Scottish notes if you chose to and maintain that the debt stands (although that would be pretty crap of you, and you must accept the English notes after I've changed them at the bank).
Retailers are allowed to accept pebbles in exchange for goods if they want, and would normally accept Scottish notes on this same basis (they want your business). I believe they could even refuse to accept legal tender: a retail transaction is considered to be making a contract rather than repaying a debt and therefore has little to do with legal tender (see also: 'invitation to treat').
I also suggest that retailers in London accept Scottish notes almost without exception.
In either case, this is really awesome. What sets this apart from Stripe's competitors, is that those companies (or at least Braintree) require you to set up a different account for each currency, which is a huge pain in the ass. Or at least this was the case last time I checked.
For myself, Poland. I've also had clients in Italy and the Czech Republic make similar noises (although, I must confess, I know comparatively little about their local alternatives).
+1 for Poland (and the rest of Central Europe! Remove the obstacles - you'll be first from the West there instead of competing with others elsewhere in Europe(PayPal, etc.)
PayPal didnt really get much traction in PL. Never heard about FastSpring. There's a local alternative PayU, which is the most used option for payment integration.
Could you please make a blog post about the difficulties involved in serving new countries? Obviously it's related to bullshit regulations, artificial barriers to entry and so on, but it would be lovely to know any specifics.
We've actually considered doing this. Why would you like to see it, out of curiosity? Just because it'd be interesting, or in order to better understand why we're taking so long? :-)
+1 for this. I trust you're working hard on these problems, but can't fantom why it takes so long. I'm really curious about what bureaucratic mess is hidden under the hood of currencies.
How about a generalised list of things you need to do for each country.
1) Decide country
2) Hire finance lawyer for that country
3) Deal with banks / APIs
4) Make applications to governments
etc.
Give us some example timeline based on past experience etc for each step, maybe with some anecdotes when Stp X was particularly difficult /easy with country Y.
> Just because it'd be interesting, or in order to better understand why we're taking so long? :-)
Both, but mostly the latter. It's been.. how many years since you started? And the whole damn world has wanted to use Stripe HOW bad? :P
.. So yeah. What's taking so long? Why aren't you everywhere already? Anywhere you go, there will be lots and lots of businesses just desperate to use Stripe, right? It would make sense for you to spread everywhere as soon as humanly possible, but you've always been strangely silent about what's keeping you from doing exactly that.
I know it all boils down to: "Because governments are making it difficult for us to start serving new countries". But I do want more details.
Combined with Stripe Connect, this is great for marketplaces.
I did a test charge and was pleasantly surprised to find that Stripe's "market rate" is really the mid market rate and not something else. PayPal's spread is something like 2.5% and then there is sometimes (always?) a 1% cross-border transaction fee, so Stripe's flat 2% fee is looking pretty good.
(I work at Stripe.) This limitation is a large part of why we've kept Stripe in beta in Australia. We figured it's worth allowing the people who find the current product useful to do so now, but we fully agree that not being able to charge in USD is a major limitation. We're working on it as fast as we can. Unfortunately, it's not entirely in our control.
Both have been up and running in Australia longer than us, actually. And we want to launch multicurrency support in Australia properly: as a default part of every Stripe account with no paperwork. We could probably get a half-baked version out the door faster, but I don't think that's fair to our Australian users either.
Can you elaborate further on what restrictions are preventing multi currency support? If I'm not mistaken NAB are your acquiring bank, surely they would be able to assist you as they did for pin?
Braintree was founded in 2007, Stripe in in 2010. As an Australian company, Pin may have an easier time with Australian banks and regulations than Stripe. It's real easy to assume things are a lot simpler than they are when it comes to businesses that work with money, especially across borders.
Stripe is a bit younger, except Pin (which was operating in Australa first though). Pin did mention somewhere that they had a very special partnership with one of the 4 pillar banks that would have been difficult to create.
Both Pin and Braintree go through NAB; they seem to be the only bank that's willing to deal with international payment gateways (not sure why exactly). I know you can go through their API directly, but I'm not sure anyone would want to.
Pin Payments is owned by the big four Australian banks. They have a vested interest to make sure it is harder for competitors to enter the market, not easier.
Can the merchants keep the currency that they get paid in and elect to convert it at their choosing, or does it get immediately converted to whatever their home currency is?
To a certain extent, doesn't this weaken the case for Bitcoin?
One of Bitcoin's big selling points is "seamless international commerce". If a company (ie, Stripe) makes it painless to let customers pay in whatever currency they have, doesn't that advantage for Bitcoin go away?
Bitcoin has different selling points, one of them is independence of Stripe, PayPal and other intermediaries that are either too costly for some, or disallow certain transactions, or cause chargebacks, or not allowed in your country.
Another selling point is that BTC you can own while USD/EUR/RUR/CNY you cannot. Fiat currencies are always under control of the banking system and ultimately at the mercy of the central banks. "Bail outs", "bail ins", "QE", "haircuts", "freezing accounts" etc. are all effects of not being able to hold your own money. You can hold physical gold, but it's not portable or easily divisible. Bitcoin allows holding any amount of wealth, be it $1 or $1000000 even inside your brain. It's much easier to meddle with your savings in USD/EUR than in Bitcoin.
I sense ambiguity. For clarity: I meant "why can't it be both that bitcoin reduces the need for Stripe and that Stripe reduces the need for bitcoin", not "why can't we have both services?". You may well have understood - your answer could be appropriate either way. Competition reducing the need for a particular offering is a big portion of the reason competition is good.
I guess that definitively answers my previous question[1] about whether we can charge in US dollars or Euros as a UK business, then. :-)
Quick but obvious follow-ups:
1. How do we look up the currency conversion rates that were applied for each charge? There are various hints on the Stripe page about these new currencies[2] but looking at the corresponding API documentation either I'm missing something or it hasn't been updated yet.
2. Are there any plans to support payment methods beyond the existing card schemes, at least in countries where those cards might not be the preferred form of payment? (For example, there are various European national card schemes like Carte Bleue in France, and in China there is the UnionPay system.)
The currency conversion rates can be checked by retrieving the charge's balance transaction
Sorry, I'm definitely missing something then. Where in the response to that request does it show the conversion rate? I only see the amount, currency and fee information, which doesn't seem to be any different to what looking up the original charge already told me.
Thanks for sharing that, it does make everything clear.
If it helps, I didn't see anything in the API documentation to suggest that the currency in the balance transaction (which is type of a Stripe record we don't understand and have never had to consider before) would be different to that of the charge. Checking the API Reference page as I write this, it currently refers to "pence" in the left-hand column when describing the amount and fees, even though the example in the right-hand column says "usd", and it gives no description at all for the currency field.
A quick clarification in those API docs, including an explicit mention that balance transactions are operating in terms of your pay-out currency where charges are in terms of your pay-in currency, might help a lot here. I imagine this, along with how to navigate from a charge to the corresponding balance transaction, will be FAQs for anyone implementing multiple currencies...
Is Stripe ever going to support other payment methods?
Stripe has been in beta in the Netherlands for a while now, but with credit card only, choosing between Stripe and old school payment providers (which aren't half as bad as what is apparently is the case in the US) that support all of the most used payment methods, Stripe is really not an option.
Not unless I want to tell 80% of all clients to take their money elsewhere.
I was just wondering, to the customer user would this cost more if the foreign currency was used or their local one given the exchange rate is sometimes very good (e.g paying in US dollars instead of the local currency)
In our experience, the conversion rates most customers get aren't very good, and this will end up cheaper. More importantly, the price can be a sane amount (€14.99/month for a $19.99/month SaaS product) and will be predictable in advance. But you're right; there will sometimes be people who would be better off paying in dollars.
Sometimes is the opposite. In Argentina, for example, it is better to pay in Pesos, because if I pay in dollars, I have to pay 1) the local bank conversion rate, and 2) the conversino rate at the end of the month, which may be higher.
So if I make my charge in Naira, how do you pay me in Naira considering Nigerian banks are yet to be supported. Of course same question apples to other non supported countries whose currencies are supported.
The multi-currency capabilities (including the ability to charge in Naira) are only available to businesses based in Europe and the UK with banks in Europe and the UK. We do plan to bring Stripe to more countries, including Nigeria.
Sorry, just getting back around to this. I think my comment was way too general.
I had a project recently that I was researching that wanted subscription/recurring payments done in Indian Rupees. Found that because of banking regulations and I believe other issues, this was not doable.
Basically, from what I found there wouldn't be a way to run a subscriptions based website out of the US targeting India and Indian Rupee as the currency.
I mean, the Brazilian Real? Literally almost no payment processors support that. And believe me, I've looked for them.
This is amazing news.
(As a side question, if anybody from Stripe is listening here: how exactly is this done -- via partnerships with local banks, or via dynamic currency conversion? I ask because, in the case of DCC, you will find that there are big problems involved with Brazil specifically, and many legitimate transactions will be refused. Brazil is a very special case, and calling the BRL a supported currency could mean very many different things.)