<p>If you're not running a Bitcoin client of some sort, or referencing a 3rd party (rely on an external service) then your usability will suffer. </p>

<p>For example you can create private keys and address pairs for receiving funds using a library, so you can accept payments just fine without a node or a 3rd party. The draw back is you don't have a way to monitor the blockchain, check for UTXOs, or push transactions. </p>

<p>If you're looking to do those things as well with as little 3rd party as possible, I'd suggest use a library to create addresses, and build transactions, and then line up a series of open API's that allow you to check the UTXO set, and push a signed transaction. If one fails, then hit the next one, and if that fails hit the next, etc. It's a little extra work, but you won't have to sign up with a service, you don't have to run a node, and you don't have to feel like you're relying on an API service since you'll have fall backs.</p>

<p><strong>Here are some push tx endpoints:</strong><br>
<a href="https://api.blockcypher.com/v1/btc/main/txs/push" rel="nofollow noreferrer">https://api.blockcypher.com/v1/btc/main/txs/push</a><br>
<a href="https://chain.so/api/v2/send_tx/BTC/" rel="nofollow noreferrer">https://chain.so/api/v2/send_tx/BTC/</a><br>
<a href="https://btc.blockr.io/api/v1/tx/push" rel="nofollow noreferrer">https://btc.blockr.io/api/v1/tx/push</a></p>

<p><strong>Here are some APIs to get the UTXO of an address</strong><br>
<a href="https://blockchain.info/unspent?active=1bitcoineateraddressdontsendf59kue" rel="nofollow noreferrer">https://blockchain.info/unspent?active=1bitcoineateraddressdontsendf59kue</a><br>
<a href="https://chain.api.btc.com/v3/address/1bitcoineateraddressdontsendf59kue/unspent" rel="nofollow noreferrer">https://chain.api.btc.com/v3/address/1bitcoineateraddressdontsendf59kue/unspent</a><br>
<a href="https://api.smartbit.com.au/v1/blockchain/address/1bitcoineateraddressdontsendf59kue/unspent" rel="nofollow noreferrer">https://api.smartbit.com.au/v1/blockchain/address/1bitcoineateraddressdontsendf59kue/unspent</a></p>

CC BY-SA 3.0
2016-11-29T03:21:22.080Z
2016-11-29T03:21:22.080Z
m1xolyd1an
<p>You can accept by having a QR code.  Where the sender will broadcast the transaction on your behalf.</p>

CC BY-SA 3.0
2016-12-01T20:19:53.083Z
You could make this a better answer by explaining where the QR code comes from, and answering how to check that the transaction was broadcast.
Jestin
CC BY-SA 3.0
2016-12-05T09:09:21.623Z
I've downvoted this answer, because it doesn't provide sufficient explanation to address the answer fully.
Murch
CC BY-SA 3.0
2016-11-28T12:49:51.997Z
but how do i check the payment has actually been done?
ntonnelier
CC BY-SA 3.0
2016-11-28T11:20:12.640Z
2016-11-28T11:20:12.640Z
oshirowanen
<p>Is there a way to accept Bitcoin payments without running a full node or rely on an external service? </p>

<p>I'm thinking in some way to validate the transaction and then broadcast it to the network.</p>

<client><payment><validation>
Easy way to accept bitcoin payments without external service
ntonnelier
# Easy way to accept bitcoin payments without external service

(Asked by: username_0 on 2016-11-28)

Is there a way to accept Bitcoin payments without running a full node or rely on an external service?

I'm thinking in some way to validate the transaction and then broadcast it to the network.

**Tags:** client, payment, validation


---

## 2 answers

### Answer by username_1 on 2016-11-29. Score: 2 | Accepted answer

If you're not running a Bitcoin client of some sort, or referencing a 3rd party (rely on an external service) then your usability will suffer.

For example you can create private keys and address pairs for receiving funds using a library, so you can accept payments just fine without a node or a 3rd party. The draw back is you don't have a way to monitor the blockchain, check for UTXOs, or push transactions.

If you're looking to do those things as well with as little 3rd party as possible, I'd suggest use a library to create addresses, and build transactions, and then line up a series of open API's that allow you to check the UTXO set, and push a signed transaction. If one fails, then hit the next one, and if that fails hit the next, etc. It's a little extra work, but you won't have to sign up with a service, you don't have to run a node, and you don't have to feel like you're relying on an API service since you'll have fall backs.

**Here are some push tx endpoints:**  
<https://api.blockcypher.com/v1/btc/main/txs/push>  
<https://chain.so/api/v2/send_tx/BTC/>  
<https://btc.blockr.io/api/v1/tx/push>

**Here are some APIs to get the UTXO of an address**  
<https://blockchain.info/unspent?active=1bitcoineateraddressdontsendf59kue>  
<https://chain.api.btc.com/v3/address/1bitcoineateraddressdontsendf59kue/unspent>  
<https://api.smartbit.com.au/v1/blockchain/address/1bitcoineateraddressdontsendf59kue/unspent>


---

### Answer by username_2 on 2016-11-28. Score: -1

You can accept by having a QR code. Where the sender will broadcast the transaction on your behalf.

> **Comments:**
> **username_0**: but how do i check the payment has actually been done?  
> **username_3**: You could make this a better answer by explaining where the QR code comes from, and answering how to check that the transaction was broadcast.  
> **username_4**: I've downvoted this answer, because it doesn't provide sufficient explanation to address the answer fully.  

---

