PHP (Laravel) Kiosk Demo

This is a demonstration Laravel 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 database migrations to manage the database schema and by default
uses an embedded SQLite 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.


  • PHP >= 8.1
  • 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



See the README in for configuration options.

  1. Copy the token generated above
  2. run composer install
  3. Copy .env.example to .env and configure it
  4. Copy application-example.yaml to application.yaml and configure it
  5. Run php artisan migrate to run DB migrations (and create sqlite DB if you use this database)
  6. Run php artisan key:generate to generate an encryption key

Run the Application

Run the following command

php artisan serve

View the Application

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