<p>This model fundamentally won't work.</p>

<p>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.</p>

<p>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.</p>

<p>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.</p>

<p>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.</p>

CC BY-SA 3.0
2017-09-26T14:43:17.490Z
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
CC BY-SA 3.0
2017-09-26T14:47:07.100Z
@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.
Nate Eldredge
CC BY-SA 3.0
2017-09-26T14:52:41.283Z
(Note by "you" here I mean "you or your payment processor".)
Nate Eldredge
CC BY-SA 3.0
2017-09-26T18:58:43.510Z
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
CC BY-SA 3.0
2017-09-26T20:36:59.567Z
@Dave: Yes, you should.  I can't see how things would work at all if you don't.
Nate Eldredge
CC BY-SA 3.0
2017-09-22T22:18:04.770Z
2017-09-22T22:18:04.770Z
Nate Eldredge
<p>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.</p>

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

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

<wallet><api><private-key><payment><payment-processors>
What info do I need in a form where people can pay/donate with Bitcoin?
Dave
# What info do I need in a form where people can pay/donate with Bitcoin?

(Asked by: username_0 on 2017-09-22)

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.

**Tags:** wallet, api, private-key, payment, payment-processors


---

## 1 answers

### Answer by username_1 on 2017-09-22. Score: 2 | Accepted answer

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.

> **Comments:**
> **username_0**: 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?  
> **username_1**: @username_0: 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.  
> **username_1**: (Note by "you" here I mean "you or your payment processor".)  
> **username_0**: 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?  
> **username_1**: @username_0: Yes, you should.  I can't see how things would work at all if you don't.  

---

