btcpay
    TypeScript icon, indicating that this package has built-in type declarations

    0.2.5 • Public • Published

    node-btcpay

    Install

    npm i btcpay

    Private key generation

    • Generate and save private key:
    $ node -p "require('btcpay').crypto.generate_keypair().getPrivate('hex')"
    XXXXXXXXXXXXXXXXXXXXX

    Store the printed value in a safe place, e.g. environment variables

    Pairing

    After generating your private key, you have to pair your client with your BTCPay store:

    • On BTCPay Server > Stores > Settings > Access Tokens > Create a new token, (leave PublicKey blank) > Request pairing
    • Copy pairing code:
    • Pair client to server and save returned token:
    # Replace the BTCPAY_XXX envirnoment variables with your values and run:
    
    $ [space] BTCPAY_URL=https://mydomain.com/ BTCPAY_KEY=... BTCPAY_PAIRCODE=... node -e "const btcpay=require('btcpay'); new btcpay.BTCPayClient(process.env.BTCPAY_URL, btcpay.crypto.load_keypair(Buffer.from(process.env.BTCPAY_KEY, 'hex'))).pair_client(process.env.BTCPAY_PAIRCODE).then(console.log).catch(console.error)"
    
    # (prepend the line with a space to prevent BTCPAY_KEY from being saved to your bash history)
    
    >>> { merchant: 'XXXXXX' }

    Store the value of "merchant" in a safe place, e.g. environment variables

    Recreating a client

    After pairing your client to the store, you can recreate the client as needed and use it in your code

    const btcpay = require('btcpay')
    const keypair = btcpay.crypto.load_keypair(new Buffer.from(<PRIVATEKEY>, 'hex'))
    
    // Recreate client
    const client = new btcpay.BTCPayClient(<BTCPAYURL>, keypair, {merchant: <MERCHANT>})

    Get rates

    Fetches current rates from BitcoinAverage (using your BTCPayServer)

    client.get_rates(['BTC_USD'], <STOREID>)
      .then(rates => console.log(rates))
      .catch(err => console.log(err))

    The first argument accepts a comma-separated list of currency pair.

    Create invoice

    See BitPay Invoice API documentation

    client.create_invoice({price: 20, currency: 'USD'})
      .then(invoice => console.log(invoice.url))
      .catch(err => console.log(err))

    Get invoice

    client.get_invoice(<invoice-id>)
      .then(invoice => console.log(invoice.status))
      .catch(err => console.log(err))

    Keywords

    none

    Install

    npm i btcpay

    DownloadsWeekly Downloads

    395

    Version

    0.2.5

    License

    MIT

    Unpacked Size

    15.8 kB

    Total Files

    15

    Last publish

    Collaborators

    • takinbo
    • nicolas.dorier