Skip to content

Releases: Such-Software/btcpayserver-grin-plugin

v1.0.9 — Auto-redirect on payment broadcast

13 Apr 16:27

Choose a tag to compare

Auto-redirects customer to the store's order page on payment broadcast (detection), instead of making them wait for 10 confirmations. The order is already created in Medusa via the InvoiceProcessing webhook (v1.0.8).

v1.0.8 — Instant redirect on payment broadcast

31 Mar 15:52

Choose a tag to compare

Dispatches InvoiceProcessing webhook when customer's slatepack is broadcast, enabling instant order creation before confirmations complete.

v1.0.7 — Return-to-store redirect on payment complete

31 Mar 15:21

Choose a tag to compare

Fix

After payment confirmation, the checkout complete page now shows a Return to store button and auto-redirects after 5 seconds (when redirectUrl was provided in the invoice creation request).

Previously, customers were stuck on the green checkmark page with no way to get back to the store.

Installation

tar xf btcpayserver-grin-plugin-1.0.7.tar.xz -C /var/lib/docker/volumes/generated_btcpay_pluginsdir/_data/BTCPayServer.Plugins.Grin/
# Restart BTCPay Server

v1.0.6 — Fiat Conversion, Webhook Support

31 Mar 15:17

Choose a tag to compare

What's New

Fiat currency conversion

  • The POST /stores/{storeId}/plugins/grin/invoices endpoint now accepts a currency field (e.g., "USD")
  • Automatically converts fiat amounts to GRIN using the Gate.io GRIN/USDT rate
  • Rounds up to nearest whole GRIN to prevent undercharging
  • Previously, passing amount: 11 with currency: "USD" would charge 11 GRIN instead of ~300 GRIN

Webhook support (from v1.0.5)

  • HTTP webhooks dispatched on invoice confirmation and expiry
  • BTCPay-compatible payload format with HMAC-SHA256 signature (btcpay-sig header)
  • Configurable Webhook URL and Secret in Grin store settings

Settings UI

  • Added Webhook URL and Webhook Secret fields to the Grin store settings page

Installation

Extract the tarball into your BTCPay Server plugins directory:

tar xf btcpayserver-grin-plugin-1.0.6.tar.xz -C /var/lib/docker/volumes/generated_btcpay_pluginsdir/_data/BTCPayServer.Plugins.Grin/

Then restart BTCPay Server. Database migrations run automatically.

v1.0.5

20 Mar 14:22

Choose a tag to compare

Webhook support for payment notifications

The Grin plugin now dispatches HTTP webhooks when invoice status changes, enabling real-time integration with e-commerce platforms and other systems.

  • Payment confirmed webhook (InvoicePaymentSettled) — fired when a Grin transaction reaches the configured minimum confirmations
  • Invoice expired webhook (InvoiceExpired) — fired when an unpaid invoice exceeds the 24-hour expiry window
  • Webhooks are signed with HMAC-SHA256 (btcpay-sig header) for verification
  • Payload format matches BTCPay Server's standard webhook schema — works with any integration that consumes BTCPay webhooks
  • Invoice metadata

Invoices now store SessionId, OrderId, and RedirectUrl from the creating system

SessionId is included in webhook payloads so the receiving system can match the payment to its internal records

Configuration

In your Grin plugin store settings, configure:

Webhook URL — the endpoint to receive payment notifications (e.g., https://your-api.com/hooks/payment/grin_grin)
Webhook Secret — shared secret for HMAC-SHA256 signature verification

v1.0.4

10 Mar 08:59

Choose a tag to compare

Release notes for v1.0.4:

What's New

  • Node API URL setting: Optional field to point at your Grin node's API endpoint for detailed sync monitoring
  • Sync percentage: When node URL is configured, shows sync progress (e.g. "Node syncing... 72%") with sync phase info (header_sync, body_sync, etc.)
  • Improved footer panel: GRIN sync indicator now shows percentage and sync phase when available
  • Updated SETUP.md: Accurate documentation that owner_api_listen_interface is ignored by grin-wallet (hardcodes 127.0.0.1), socat proxy is the correct approach for Docker

Upgrade Notes

  • New NodeApiUrl database column is added automatically via migration
  • If running your own grin node, enter http://127.0.0.1:3413 (or your node's address) in the new Node API URL field to see sync progress
  • If using a public node, leave Node API URL empty — wallet-only sync check still works

v1.0.3

10 Mar 00:35

Choose a tag to compare

v1.0.3

  • Node sync status in BTCPay footer panel (appears alongside BTC/LTC in "Your nodes are syncing" indicator)
  • Live node status on Grin settings page (synced/syncing/unreachable with block height)
  • Remote node guidance on settings page (public nodes: grincoin.org, grinnode.live:3413)
  • Remove Grin logo from sidebar navigation (standard green/grey status dot)
  • Add SETUP.md deployment guide (node options, Docker networking, encrypted API, troubleshooting)

v1.0.2

10 Mar 00:23

Choose a tag to compare

v1.0.2

  • Remove Grin logo from sidebar navigation (use standard green/grey status indicator)
  • Add SETUP.md with full deployment guide (node options, wallet config, Docker networking, troubleshooting)
  • BTCPay Server v2.3.5 compatibility (EF Core factory update)

v1.0.0.1

09 Mar 14:27

Choose a tag to compare

Update to target latest stable release v0.2.3.5 btcpayserver

Initial release

09 Mar 11:44

Choose a tag to compare

Fix confirmation count race condition

Capture node height BEFORE retrieve_txs in both the status endpoint
and the background monitor to prevent a +1 discrepancy when a block
arrives between the two RPC calls.