"your customer pays in bitcoin and you receive dollars in your bank account", will Stripe allow us to receive in bitcoins too? I personally would love to use that option. BitPagos does that already but their service is currently limited to Argentinian Hotels. Payza allows it as well, but Payza requires users to create an account and go through a painful process.
I would also like that. Right now it's too transparent, I always get USD and have no idea whether someone paid with Bitcoin. I'd like to just keep the Bitcoin.
Our users tend to want unified behavior across payments of all different types. Of course, it's possible to filter by payment type in the API, dashboard, and data exports.
To the original question: drop us a line at bitcoin@stripe.com if you want to talk more about not converting the payments. It's definitely something we'll support if there's user interest, but it's not something we do today.
That would be handy as it seems like it would get around some of the pretty big list of businesses stripe can't get involved in due to restrictions from their banking partners.
It seems like refunds would be hackable. If they're made in bitcoin, I could get back more than I paid if bitcoin value goes up. If they're made in dollars, I could get back more than I paid if it goes down.
If you look at credit cards and foreign currency is that not something 'hackable' too? If say the Ruble appreciated and then depreciated wildly you could get a refund and redo the payment if it was against you.
In practice the refund will just post for whatever converted value you've paid in the first place and processors will take the difference in either direction
What I understood is as a 'hack' is the system could be taken advantage of (by doing the transaction in BTC) (for your own Stripe account by your own BTC wallet) and refund it if the price moves against you or allow it to convert (BTC->USD) if the price has moved in your favour. Since you get the USD from BTC yourself you have a sort of 'hedge'/call option to reverse it (premium being the initial conversion fees).
If the volatility is such that its more than the fees (in this case BTC is 'free' during the Beta) it can be taken advantage of - The refund & near zero fees being a mechanism of a one way bet.
I suppose this can be done already with credit cards and foreign currency purchases (if you have your own stripe account). Though the fees of 2.9%+ are significantly more than the volatility involved.
Thanks for the clear description. In Stripe's case, this arbitrage won't work. When we refund a bitcoin payment, we refund the USD value of the payment (converted to bitcoin at the time of the refund). The customer does not necessarily receive the same bitcoin amount that they sent.
For example:
(1) At the initial time, each bitcoin is worth 100 USD. A Stripe user accepts a 10 USD payment (0.1 bitcoin).
(2) Bitcoin then increase in value to 1,000 USD each. The Stripe user fully refunds the payment. Their customer receives 0.01 bitcoin (10 USD).
The Stripe user and their customer both have a net of zero USD in this scenario.
We could have implemented refunds in the opposite way: a net of zero BTC and non-zero USD. However, that would have introduced the issue that you describe.
A possible, though minor hack with this arrangement would be:
- You have 0.1 BTC and wish to protect against BTC value loss vs USD
- You make a payment to your own Stripe account of 0.1 BTC, say 10 USD
- After BTCUSD falls, you refund the payment
- You receive 10 USD, say 0.2 BTC
- End result: you can keep your Bitcoin constant at 10 USD, redeemable into BTC whenever you make the refund request
Of course it would be just as easy to keep the money in USD/your stable currency of choice in the first place and convert when you want BTC; and Stripe won't lose more than BTC conversion fees (unless Stripe decide to hold BTC as a corporation). Out of curiosity, do you have a time limit for refunds?
Regardless of the currency paid in, guaranteed refunds pegged to an exchange rate at the time the refund is issued will be a potential vector for manipulation. Consider these two cases using relevant historical data.
Case 1, Bitcoin refunds are pegged to the USD price at the time of sale and refund (your current strategy): It is currently 12/7/2014. The price per Bitcoin is approximately $380. I purchase a Christmas gift for someone,which just so happens to be exactly $380. I pay one Bitcoin, and my package is shipped. I receive the package on the 18th, at which point the exchange rate is approximately $310 per Bitcoin (about a 20% drop). At a 3% fee, I decide it would be prudent to ask for a refund, so I initiate the process and send back my gift. I am refunded $380 in Bitcoin at $310 each, and therefore receive 1.225 Bitcoin in return. I have effectively short-sold my Bitcoins while simultaneously locking the USD value in at the higher exchange rate (the value of the gift). This is a no-risk hedge, and is effective at any point the exchange rate fluctuates downwards more than 3% over the maximum refund interval. If the price goes up, I don't get a refund, and keep the gift, effectively locking in its value.
Case 2, Bitcoin refunds are pegged to the amount of Bitcoin initially spent: It is currently 11/4/2014. The price per Bitcoin is approximately $320. I buy a really nice bottle of Scotch from someone, that happens to cost exactly $320. I pay with one Bitcoin. On 11/13/2014, the price has risen to $420 per Bitcoin. I decide to get a refund, and as the amount of Bitcoin I spent is refunded, I receive 1 Bitcoin in return. This is again a no-risk hedge, as if the price drops, I keep the Scotch (or sell it, and increase my net Bitcoin holdings).
The only way that I can see you guys not having a financial risk as a counterparty, is if you do refunds in a way pegged to both USD and Bitcoin. You could achieve this by refunding an amount of Bitcoin equal to the product value in USD pegged to the exchange rate at the time of refund if the exchange rate rises, and refund an amount of Bitcoin equal to the amount initially paid if the exchange rate falls. This (rightly, in my opinion) puts all risk of exchange rate fluctuations solely on the person requesting the refund.
I understand that in charging a 3% fee on each transaction, all users of Stripe are in effect insuring your company against anyone attempting to game the system in this way, so my point may be moot (you can eat the losses from the malicious <1% of users), but I am of the strong belief that any system that can be gamed for a profit, most likely will be gamed, by some unscrupulous individual. Your company is effectively able to be used (currently) as a hedge against falling prices (scenario 1) in what is, at the moment, a year-long bear market for the exchange rate. This doesn't really feel to me like the smartest road to go down. What are your thoughts on this?
(As an aside, Stripe prices bitcoin payments at 0.5% rather than 3%.)
I don't follow your description of Case 1. On Dec 18, to use the timing from your example, you have two options: (a) keep the $380 object (b) exchange it (via a refund) for $380 worth of bitcoin. These are the same options that you would have if Stripe was not in the picture: keep your funds outside of bitcoin or buy bitcoin at the market price. I don't see what benefit you derive from the refund API (beyond using it as a fairly priced bitcoin/USD exchange). Sorry if I am misreading the example!
this is very heigh fee.
the whole purpose of bitcoin is to get rid of the middle-man who try to take a cut out of simple transaction. i see the added value of easy-api but the fee is way too much for a free alternative. and yes, i know that bitpay and others take 1% but i'm sure they will adapt once cheaper alternatives will be available. as for me - i develop my own free solution.
Is it really a high fee? Bitcoin cuts out the middleman if you're willing to keep the bitcoin, sure. For the users elsewhere in the thread who were asking if they could just keep the bitcoin, perhaps the price should be negligible.
However, if what you want is fiat currency, like the US dollar, then a middleman needs to sell the bitcoin for currency and give you the currency. The middleman has a risky and complicated job, which I assume includes holding enough currency in reserve so as not to delay transactions; and they probably need to decouple the currency transfers from the bitcoin sales, which means they take on some risk from fluctuations in price in the bitcoin market. The market on which the middleman sells bitcoins might also take a cut. The middleman is taking on responsibilities and risk, and needs to be compensated for it.
I don't work in payments, so the above is my own layman's understanding. How will you exchange bitcoin for dollars in a way that's free, and doesn't incur a transaction %?
This. Stripe is a business. They need to make money to stay alive. 0.5% is a whole lot better than 2.9% + $0.30. They are providing all of the infrastructure, auto conversion, and risk mitigation so it's not that high of a price.
Was a fast setup; already in place. I'm seeing live mode transactions with a "Test" banner in upper right corner, but some tests with an online hosted wallet show these transactions to be real and live, not test-mode. Is this a bug in the Stripe console?
This was using my live mode keys. I was able to perform transactions in and then refund, using my Circle account, so they're live transactions. Those transactions are showing up in my live mode in the console, next to live CC transactions, which of course don't have the "test" banner.
If you were using your testmode keys, then we would not generate a valid bitcoin address (to avoid all kinds of confusion). It must be the case that these were your livemode keys. If you're able to reproduce an inaccurate "test mode" banner, can you send a bug report to bitcoin@stripe.com? You can cc me, christian@stripe.com. I'm happy to take a look, but I haven't been able to reproduce on my side.
When will this statement "your customer pays in bitcoin and you will receive dollars in your bank account" become "you the customer pay in bitcoin and you will accept a charge in dollars through your bank account"
I suggest Stripe change the title. It's actually not a Bitcoin guide, and anyone looking to learn more about Bitcoin or for a definitive guide would be disappointed.