Use Bitcoin Lightning payments as the trigger for IFTTT (If This Then That) actions.
Powered by ⚡ Lightning Charge and paypercall.
$ npm install -g ifpayttSetup Lightning Charge, then:
- 
Get your IFTTT maker key from IFTTT's Webhook settings page (shown as
https://maker.ifttt.com/use/[MAKER-KEY-HERE]). - 
Open the new applet page, click "this", enter "Webhooks", click "Receive a web request", enter a descriptive event name prefixed by
ifpaytt_containing only numbers, lowercase letters and_(e.g.ifpaytt_lightup_room404orifpaytt_vend_machine137_item56), and click "Create Trigger". - 
Configure your "then" action and finish creating the IFTTT applet.
 - 
Start the
ifpayttserver:$ ifpaytt --charge-token [mySecretToken] --ifttt-key [myMakerKey] --currency BTC \ --price-lightup_room404 0.00001 --price-vend_machine137_item56 0.000063 Running on http://localhost:6000 
That's it! The server is now ready to accept payments and trigger IFTTT actions.
Users can access the IFTTT action through a three-part process:
- 
Send an empty
POSTrequest to/{event-name}to get the BOLT11 payment request and theX-Tokenheader:$ curl -i -X POST http://localhost:6000/lightup_room404 HTTP/1.1 402 Payment Required X-Token: lmbdmJeoSQ0ZCB5egtnph.af1eupleFBVuhN2vrbRuDLTlsnnUPYRzDWdL5HtWykY Content-Type: application/vnd.lightning.bolt11 lnbcrt8925560p1pdfh7n2pp54g5avyupe70l988h30u0hy8agpj2z7qsveu7ejhys97j98rgez0...
 - 
Make the payment:
$ lightning-cli pay lnbcrt8925560p1pdfh7n2pp54g5avyupe70l988h30u0hy8agpj2z7qsveu7ejhys97j98rgez0...
 - 
Send the request again, this time with the
X-Tokenheader echoed back and optionally withvalue1,value2andvalue3in the request body (passed along to IFTTT):$ curl -i -X POST http://localhost:6000/lightup_room404 \ -H 'X-Token: lmbdmJeoSQ0ZCB5egtnph.af1eupleFBVuhN2vrbRuDLTlsnnUPYRzDWdL5HtWykY' \ -d value1='brightness=80,color=red' HTTP/1.1 200 OK Content-Type: text/plain Congratulations! You've fired the ifpaytt_lightup_room404 event
(if
value[1-3]are not set, they'll automatically be populated with some useful information about the payment.) 
$ ifpaytt --help
  Trigger IFTTT actions with Bitcoin Lightning payments
  Usage
    $ ifpaytt [options]
  Options
    -c, --charge-url <url>      lightning charge server url [default: http://localhost:9112]
    -t, --charge-token <token>  lightning charge access token [required]
    -k, --ifttt-key <key>       IFTTT maker key (available in https://ifttt.com/services/maker_webhooks/settings) [required]
    -r, --ifttt-prefix <prefix> prefix for IFTTT event names [default: ifpaytt_]
    -x, --currency <name>       the currency prices are quoted in [default: BTC]
    --price-{event} <price>     price to send events of type {event}
    -d, --db-path <path>        path to store payperclick sqlite database [default: ifpaytt.db]
    --invoice-expiry <sec>      how long should invoices be payable for [default: 1 hour]
    --access-expiry <sec>       how long should paid active tokens remain valid for [default: 1 hour]
    --token-secret <secret>     secret used for HMAC tokens [default: generated based on {charge-token}]
    -p, --port <port>           http server port [default: 6000]
    -i, --host <host>           http server listen address [default: 127.0.0.1]
    -e, --node-env <env>        nodejs environment mode [default: production]
    -h, --help                  output usage information
    -v, --version               output version number
  Example
    $ ifpaytt -t chargeAccessToken -k iftttMakerKey -x BTC \
              --price-lightup_room404 0.00001 --price-vend_machine137_item56 0.00023MIT