

Bitcoin guide - pablo-massa
https://stripe.com/docs/guides/bitcoin-beta

======
undefined0
"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.

~~~
StavrosK
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.

~~~
cca
(Christian from Stripe here.)

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.

~~~
RedSocks112
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.

------
tomschlick
I'm glad to see them rolling out alternative payment options! Hopefully there
will be an ACH beta soon!

~~~
lachyg
We do have ACH charges in beta! Email me: lachy@stripe.com and I can get you
on board.

------
borski
I'm assuming this doesn't work for recurring payments?

~~~
sintaxi
I tend to think that would be the case. Would be nice to get official word on
that.

------
devinmontgomery
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.

~~~
akhatri_aus
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.

~~~
jarek
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

~~~
akhatri_aus
Yes I believe this is so.

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.

~~~
cca
(Christian from Stripe here.)

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.

~~~
needmoney90
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?

~~~
cca
(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!

------
Everhusk
Does anyone know if the 2.9% + 30c stripe fees still apply for bitcoin
payments?

~~~
hayksaakian
The pricing for bitcoin payments is simple: free during the beta and 0.50
percent per payment when the API is out of beta in January 2015.

~~~
sagivo
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.

~~~
Pyxl101
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 %?

~~~
tomschlick
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.

------
saiko-chriskun
Kind of confused as to what exactly happens and how to deal with a user
sending bitcon to an expired receiver.

All the docs seem to say is "we will do our best to convert them to the
requested amount of USD, but the effects are not predictable."

Obviously the amount of USD converted won't be predictable, but it's a
situation that needs to be handled.

------
bdcravens
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?

~~~
lachyg
The 'test' banner is indicative of which Stripe publishable keys you're
using—test mode keys will result in the 'test' banner you see.

~~~
bdcravens
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.

~~~
cca
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.

------
romaster
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"

Eta innovation on the consumer side?

------
clooney
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.

------
gdh73
Will application_fee and Stripe Connect be supported?

