littleshop/BTCPAY_SETUP.md
2025-09-04 21:28:47 +01:00

2.6 KiB

BTCPay Server Integration Setup

Current Status

BTCPay Server deployed at: https://pay.silverlabs.uk Admin account created: jamie@Silverlabs.uk Store created in BTCPay Server LittleShop BaseUrl updated to: https://pay.silverlabs.uk

Required Configuration Steps

1. Get Store ID

  1. Login to https://pay.silverlabs.uk
  2. Go to StoresSettingsGeneral
  3. Copy the Store ID (usually found in URL or displayed on settings page)

2. Generate API Key

  1. Go to AccountManage AccountAPI Keys
  2. Click Generate Key
  3. Label: LittleShop Integration
  4. Required Permissions:
    • btcpay.store.canviewstores
    • btcpay.store.canmodifyinvoices
    • btcpay.store.cancreateinvoice
  5. Copy the generated API key

3. Configure Webhook

  1. Go to StoresSettingsWebhooks
  2. Click Create Webhook
  3. Webhook URL: https://your-littleshop-domain.com/api/btcpay/webhook
  4. Events to enable:
    • Invoice payment settled
    • Invoice expired
    • Invoice invalid
  5. Copy the webhook secret

4. Configure Bitcoin Wallet

  1. Go to StoresSettingsBitcoin
  2. Click Set up a wallet
  3. For development: Choose Use the hot wallet
  4. Generate new wallet or import existing
  5. Complete wallet setup

LittleShop Configuration Template

Once you have the values above, update your appsettings.json:

{
  "BTCPayServer": {
    "BaseUrl": "https://pay.silverlabs.uk",
    "ApiKey": "YOUR_API_KEY_HERE",
    "StoreId": "YOUR_STORE_ID_HERE",
    "WebhookSecret": "YOUR_WEBHOOK_SECRET_HERE"
  }
}

Supported Cryptocurrencies

The LittleShop integration supports:

  • BTC (Bitcoin)
  • XMR (Monero) - requires additional setup
  • USDT (Tether)
  • LTC (Litecoin)
  • ETH (Ethereum)
  • ZEC (Zcash)
  • DASH (Dash)
  • DOGE (Dogecoin)

Note: Only Bitcoin is enabled by default. Additional cryptocurrencies require:

  1. Enabling them in BTCPay Server store settings
  2. Configuring wallets for each currency

Testing the Integration

After configuration:

  1. Start your LittleShop application
  2. Create a test order
  3. Select cryptocurrency payment
  4. Verify invoice creation in BTCPay Server
  5. Test payment flow and webhook notifications

Webhook Endpoint

The webhook endpoint is already implemented in LittleShop:

  • URL: /api/btcpay/webhook
  • Controller: BTCPayWebhookController.ProcessWebhook
  • Features:
    • HMAC-SHA256 signature validation
    • Proper BTCPay Server webhook format handling
    • Payment status mapping and processing
  • Handles: All BTCPay Server webhook events (invoice created, payment settled, expired, etc.)