I'm a developer and looking to create a form where people can pay/donate money in Bitcoin. Many have suggested to just post the recipient wallet address and let folks take that and go off and pay on their own. However, I don't want that. I would like to create a form taht gathers the necessary information for settlement and then goes off does the payment collection, much as someone who accepts credit cards will collect a credit card number, security code, and expiration date before handing that off to a payment processor.

My question is, is it possible to gather such information for a payment? If so, what is the information I'd need to collect?

If it simplifies things, we were thinking of using the Coinbase API to make this happen.

1 Answer 1


This model fundamentally won't work.

In the case of a credit card transaction, the funds are actually held by a third party: the customer's bank. You collect information from the customer (their card number, etc) and present it to the bank (via the Visa network or similar), to convince them that their customer has authorized the transaction. The bank then transfers the funds to you.

With Bitcoin, it is very different. The funds are held by the customer herself. There is nobody who can perform the transfer except her (that's what keeps her funds secure!). You cannot do it unilaterally on her behalf, and there is no bank holding the funds who can do it.

Strictly speaking, the "necessary information" to execute a transfer is the customer's private key. But the customer is the only one who has it, and she is not going to share it with you (don't even ask). So she has to execute the transfer herself.

The only way to collect a payment via Bitcoin is to give an address to the customer and wait for her to make a transfer to that address, signed with her own private key via her own wallet software. You can have a third-party processor like Coinbase handle that for you, but it doesn't change the fact that the customer actually has to do something besides giving you information.

  • Yeah but if you leave it to them to pay are you just waiting for the payment to show up in your bank account before you send them the good or service? Also when that payment does eventually show up, how do you know what its for?
    – Dave
    Sep 26, 2017 at 14:43
  • @Dave: Basically, yes, though it shows up in your Bitcoin address rather than your bank account. You'll need to have software that monitors Bitcoin transactions and notifies you (or automatically ships the goods) when the payment is made. You should give each customer a new unique address and keep a record of what order it goes with; then when payment is made to that address, you'll know who paid you and what it is for. Sep 26, 2017 at 14:47
  • (Note by "you" here I mean "you or your payment processor".) Sep 26, 2017 at 14:52
  • Ok, thanks. Last one -- in your view, should I be generating a different address per transaction so I can better track where folks are sending payments to?
    – Dave
    Sep 26, 2017 at 18:58
  • @Dave: Yes, you should. I can't see how things would work at all if you don't. Sep 26, 2017 at 20:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.