Btcpay Server
Installation
Add this line to your application's Gemfile:
gem 'btcpay'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install btcpay
Usage
Required Params
Auth Token
At least one of the following auth tokens are required. Auth tokens can be created via the following:
auth_token
Scoped Api Tokens can be created via
/Manage/APIKeys
BTCPAY_AUTH_TOKEN
environment variable can also be used
basic_auth_token
Legacy Api Key can be created per store via
/stores/{store-id}/Tokens
BTCPAY_BASIC_AUTH_TOKEN
environment variable can also be used
Base Url
A base_url
is required to interact with the server.
BTCPAY_BASE_URL
environment variable can also be used
client = BtcPay.new(auth_token: 'foobar', base_url: 'http://localhost:49392')
Response
A response consists of the following accessible attributes:
#body
- rubified response body#code
- response status code#headers
- response headers#raw
- unaltered response body#status
-:success
/:failure
Request object types
All endpoints are accessed via namespaced Api resource. Example: client.users.create({ email: '[email protected]', password: 'password', isAdministrator: false })
Api Keys:
GET #current
POST #create(payload)
DELETE #revoke(key)
DELETE #revoke!
Health:
GET #status
Lightning:
- TODO - Set up local lightning network, testing, etc.
Pull Payments:
GET #get(pull_payment_id)
GET #payouts
POST #create_payout(pull_payment_id, payload)
Server:
GET #info
Store:
GET #all
POST #create(payload)
GET #get(store_id)
DELETE #delete(store_id)
PUT #update(store_id, payload)
- ##### Invoices:
GET #all(store_id)
POST #create(store_id, payload)
GET #get(store_id, invoice_id)
DELETE #delete(store_id, invoice_id)
POST #update_status(store_id, invoice_id, payload, status)
POST #unarchive(store_id, invoice_id)
- ##### Payment Requests:
GET #all(store_id)
POST #create(store_id, payload)
GET #get(store_id, request_id)
DELETE #delete(store_id, request_id)
PUT #update(store_id, request_id, payload)
- ##### Payouts:
POST #approve(store_id, payout_id, payload)
DELETE #delete(store_id, payout_id)
- ##### Pull Payments:
GET #all(store_id)
POST #create(store_id, payload)
DELETE #delete(store_id, pull_payment_id)
Users:
GET #me
POST #create(payload)
Request helpers
Api Keys:
- ##### Authorize
GET #html(permissions: [], application_name:, strict: true, selective_stores: false)
#link(permissions: [], application_name:, strict: true, selective_stores: false)
Environment Variables
btcpay
can be initialized with either arguments or ENV:
Variable | Description | Default |
---|---|---|
BTCPAY_AUTH_TOKEN |
BtcPay Auth Token | - |
BTCPAY_BASIC_AUTH_TOKEN |
BtcPay Basic Auth Token | - |
BTCPAY_BASE_URL |
BtcPay Base Url | - |
BtcPay Docker Compose
To get up and running locally quickly, a BTCPayServer docker-compose file has been added to test local API interactions. To get up and running:
$ docker-compose -f docker-compose.btcpay.yml up
$ open http://localhost:49392
- Note:
regtest
environment default to allow for block/coin creation for test purpose testnet
environment should be used for integration/staging testing prior to production promotion.mainnet
is the real network.
- Note:
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on Gitlab at https://gitlab.com/snogrammer/btcpay.
License
The gem is available as open source under the terms of the MIT License.