Java (Spring Boot) Kiosk Demo

This is a demonstration Spring Boot app to show how BitPay can be used in the
context of a retail kiosk. It utilizes the the pos facade and with a simple
configuration file you can customize the posData fields that are sent to
BitPay. This app uses Liquibase to manage the database schema and by default
uses an embedded H2 database to make it easy to start.



If you'd like to utilize Instant Payment Notifications (IPN), you will need to either run the application somewhere publicly available, or use a tool such as ngrok to allow public traffic to tunnel to your local machine.


  • Java >= 17
  • BitPay Account


You can download or clone the project from GitHub.


Generate Test Token

  1. Log into
  2. Go to Payment Tools
  3. Click on API Tokens
  4. Click the Add New Token button
  5. Enter a label (this is just for your reference)
  6. Click the Add Token button
  7. Copy the value of the Token field from the Information section

Update Configuration

  1. Copy the token generated above
  2. Update the bitpay.token field in src/main/resources/application.yaml
  3. Update the other values in the configuration - see the README in

Run the Application

Run the following command

./gradlew clean bootRun

View the Application

You should now be able to visit a browser at http://localhost:8000 or the port that you configured.