# BTCPay Server Payment Provider – Accept Bitcoin payments in XenForo 2

BTCPay XenForo Banner

Maintained (opens new window) GitHub License (opens new window) GitHub contributors (opens new window)

GitHub release (latest SemVer) (opens new window) GitHub all releases (opens new window)

# Requirements

# Notes

  • The add-on does not support recurring payments
  • The add-on does not support refunds

# Installation

  1. Download the add-on from the releases page (opens new window)
  2. Install the add-on via control panel (opens new window) or manually (opens new window)

# Configuration

# Payment Profile

  1. Go to XenForo Admin Panel (/admin.php)
  2. Click on [Setup] -> [Payment Profiles]
  3. Click on [Add Payment Profile]
  4. Choose "BTCPay Server" in the "Provider" dropdown
  5. Click on "Proceed..."
  6. In the field "Host", enter the full URL of your host (including the https) – https://btcpay.mydomain.com

# Create API Key

  1. Go to your BTCPay Server
  2. Click on [Account] -> Manage Account on the bottom left
  3. Go to the tab "API Keys"
  4. Click [Generate Key]
  5. Check the following permissions:
    • Create an invoice (btcpay.store.cancreateinvoice)
    • View your stores (btcpay.store.canviewstoresettings)
  6. Below the permissions click on [Select specific stores] and select the store created already (this ensures the API key is restricted to this single store)
  7. Click on [Generate API Key]
  8. Copy the generated API Key to your BTCPay Server payment profile settings form

# Setup Webhook

  1. Go to your BTCPay Server
  2. Click on [Settings]
  3. Go to the tab "Webhooks"
  4. Click [Create Webhook]
  5. Enter the following URL, replacing "https://mydomain.com" with your forum URL, in the "Payload URL" field: https://mydomain.com/payment_callback.php?_xfProvider=btcPayServer
  6. Below "Which events would you like to trigger this webhook?" choose "Send me specific events" and select "An invoice has been settled"
  7. Click on the eye icon near the "Secret" field and copy the secret to your BTCPay Server payment profile settings form
  8. Click on [Add Webhook]

Note: When testing a webhook, it may produce a 403 error - this is normal.

# Payment Profile (continued)

  1. Go to your BTCPay Server
  2. Click on [Settings]
  3. Copy the "Store ID" to your BTCPay Server payment profile settings form
  4. Click on [Save]

# Usage

You can use this integration wherever payment goes through XenForo payment profiles.

In most cases, a newly created payment profile requires activation in certain contexts. Let's look at an example of activating a newly created profile for user upgrades:

  1. Go to XenForo Admin Panel (/admin.php)
  2. Click on [Setup] -> [Users] -> [Users customization]-> [User upgrades]
  3. Click on the user upgrade you want to activate the payment profile for
  4. Select the payment profile you created in the "Payment profile" select box
  5. Click on [Save]