<p>You're right, it is confusing in the specification. Particularly:</p>

<blockquote>
  <p>When the merchant's server receives the Payment message, it must determine whether or not the transactions satisfy conditions of payment. If and only if they do, if [sic] should broadcast the transaction(s) on the Bitcoin p2p network.</p>
</blockquote>

<p>and</p>

<blockquote>
  <p>Customer authorizes payment to the merchant's address and broadcasts the transaction through the Bitcoin p2p network.</p>
</blockquote>

<p>The image particularly shows the Wallet broadcasting the transaction.</p>

<p><img src="https://i.sstatic.net/LZhMa.png" alt="BIP70"></p>

<p>What is established, however, is that the transaction in the Payment message sent to the merchant is the same transaction the wallet app broadcasts. IMHO, I think it's safe to assume that both the customer's wallet and the merchant attempt to broadcast the transaction. When both parties hold the transaction, they can both ensure that it was broadcast to the network..</p>

CC BY-SA 3.0
2015-05-24T11:21:05.183Z
Yes. I've now proved by experiment that the Bitcoin Core wallet and the Android wallet broadcast the transactions as well as sending the BIP70 Payment to the URL specified in the Payment Request. This seems an odd design to me. If there was a communication failure or similar the merchant might not get the notification and will end up with a payment he maybe can't reconcile? Am I missing something here?
Colin Messitt
CC BY-SA 3.0
2015-05-24T12:17:30.470Z
@ColinMessitt actually, in the event the Merchant doesn't recieve the Payment, it doesn't reply with a PaymentACK, then the Wallet could (and should) notify the user so that they could speak to the Merchant themselves.
Amin Shah Gilani
CC BY-SA 3.0
2015-05-23T01:36:40.033Z
2015-05-24T12:09:30.923Z
2015-05-24T12:09:30.923Z
Amin Shah Gilani
<p>The BIP70 specs I'm reading confuse me about who broadcasts the underlying transactions to the bitcoin network. My reading seems to suggest that both the user's wallet and the server at the payment_url do. </p>

<p>Is that true, or is it the user's wallet unless a payment_url is specified in the payment request, in which case the server at the payment_url does?</p>

<bip70-payment-protocol>
BIP70 who issues the transactions, wallet or payment_url server?
Colin Messitt
# BIP70 who issues the transactions, wallet or payment_url server?

(Asked by: username_0 on 2015-05-22)

The BIP70 specs I'm reading confuse me about who broadcasts the underlying transactions to the bitcoin network. My reading seems to suggest that both the user's wallet and the server at the payment\_url do.

Is that true, or is it the user's wallet unless a payment\_url is specified in the payment request, in which case the server at the payment\_url does?

**Tags:** bip70-payment-protocol


---

## 1 answers

### Answer by username_1 on 2015-05-23. Score: 1

You're right, it is confusing in the specification. Particularly:

> When the merchant's server receives the Payment message, it must determine whether or not the transactions satisfy conditions of payment. If and only if they do, if [sic] should broadcast the transaction(s) on the Bitcoin p2p network.

and

> Customer authorizes payment to the merchant's address and broadcasts the transaction through the Bitcoin p2p network.

The image particularly shows the Wallet broadcasting the transaction.

![BIP70](https://i.sstatic.net/LZhMa.png)

What is established, however, is that the transaction in the Payment message sent to the merchant is the same transaction the wallet app broadcasts. IMHO, I think it's safe to assume that both the customer's wallet and the merchant attempt to broadcast the transaction. When both parties hold the transaction, they can both ensure that it was broadcast to the network..

> **Comments:**
> **username_0**: Yes. I've now proved by experiment that the Bitcoin Core wallet and the Android wallet broadcast the transactions as well as sending the BIP70 Payment to the URL specified in the Payment Request. This seems an odd design to me. If there was a communication failure or similar the merchant might not get the notification and will end up with a payment he maybe can't reconcile? Am I missing something here?  
> **username_1**: @username_0 actually, in the event the Merchant doesn't recieve the Payment, it doesn't reply with a PaymentACK, then the Wallet could (and should) notify the user so that they could speak to the Merchant themselves.  

---

