I work for an online retailer, and we're currently testing a Coinbase payment implementation for our checkout. One of our big concerns is being able to send a refund in the event that we're unable to ship an item on time, or if a customer cancels an order, or for whatever other reason.
There are a few things that I've managed to find out, but I'm still confused.
- Coinbase's API (relevant docs here and here) doesn't seem to have a way for us to find the address of the wallet or account that the payment for an order was sent from.
- Even if it did have a "Sender Address" response, this question/answer makes it pretty clear that using that would probably not be a good idea.
So what options do we have for issuing a refund? I can think of at least a few... each has its own downsides though.
If an order can't be delivered on time, contact them and ask for an address to send BTC to.
- We do get contact information (Phone, Email, and Address) when they check out - but we can't perfectly verify it.
- We may be stuck in limbo if we can't get in touch with the customer.
At checkout, ask for an address to send any refunds to with a "just in case" note explaining why we're asking for that.
- As far as I know, nobody does this.
- Some users may have privacy concerns when they see us asking for a wallet address.
Mail a check for dollar value of the transaction to the address provided at checkout.
- Again, we do get a customer's address - but we can't verify it to be 100% accurate.
- Let's be honest, this really doesn't seem like a good idea at all.
Are there better ways? Is there, universe willing, a standard way of refunding transactions?