Rewards NFC Display

com.bitcoinrewards.nfcdisplay
by 898d7f03…

Native BTCPay rewards display with NFC and QR scanning.

Rewards NFC Display is an open-source Android companion app for the Bitcoin Rewards BTCPay Server plugin. It is designed for in-store tablets and counters: - Display BTCPay-hosted rewards pages - Scan customer Lightning-address and standards-compliant LNURL-pay QR codes natively - Save the scan for the next Square order reward - Pair with BTCPay by scanning a Store QR followed by the login QR, with manual setup as fallback - Support NFC display/tap workflows when NFC hardware is available - Avoid browser camera permission issues Configure with the QR-only onboarding flow or enter your BTCPay Server URL and Store ID manually.

First release: Sep 26, 2026, 35 total releases.

Most recent release: Nov 10, 2026.

Website Repo

Appears in 1 app stack.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Nov 10, 2026 2.22.0
    # Rewards NFC Display 2.22.0 (version code 55) - Simplified native kiosk: one server-owned customer region, no stacked native Scan here/tutorial/NFC tiles, and the guarded Take payment action at the bottom. Confirmed check-in feedback and finite confetti replace the same customer region; personal text clears on interruption and idle. - External supported HID scanner and NFC are the default. Built-in camera check-in is optional and off by default, including after upgrade. Enable it in Settings and choose Save & launch display. Returning to an older display honors saved camera revocation; disabled mode does not discover/request/start/decode the camera or grant WebView camera access. Store/login QR setup is unchanged. - Preserves exact confirmed Trails-handle parsing, response capture/authentication, process-owned HID framing, financial-operation locks, payment/recovery and existing server routes. ## Companion backend requirement The complete simplified server waiting card, exact server-side Trails-handle presentation and healthy no-op polling (removal of periodic full-page refresh/green verification flashes) require the companion Bitcoin Rewards backend update. Backend deployment is not included or attested by this Android release. On the unchanged server, existing authenticated check-in and payment contracts remain supported, but legacy server text/custom templates and timed refresh remain. Installing this APK alone does not fix that server-owned refresh behavior. The `TrailsRewardsKiosk/1` user-agent is a presentation hint only, not an authorization credential.
    More…
    ## Distribution and acceptance Stable GitHub distribution with Zapstore main-channel metadata is intended; metadata does not prove Zapstore publication. Source approval, deterministic CI, protected production signing, GitHub publication, companion backend deployment and physical acceptance are distinct stages. Native device layout/accessibility, signed upgrade, physical HID/NFC/optional camera and production check-in/payment acceptance require separate hands-on confirmation. No automated production transaction, install, backend deployment or Zapstore publication is performed by this release worker.
  • Nov 7, 2026 2.19.0
    # Rewards NFC Display 2.19.0 - **Take payment needs no POS URL typing.** The app uses your existing BTCPay login session to discover active apps belonging to the configured Store ID. One suitable Keypad Point of Sale opens automatically; multiple keypads show their names and app IDs for explicit selection. Other POS styles and unrelated apps are never picked as a substitute. - Discovery reads BTCPay's cookie-authenticated exact-store apps page, not the API-key-only Greenfield apps API. It makes one bounded HTTPS request to the configured origin, never follows redirects with cookies, and does not create an invoice, collect API keys, or enumerate other stores. - Discovery cancels on pause/destruction and rejects late results or selections after lifecycle/profile changes. A missing login, store permission rejection, missing route and unsupported markup receive separate guidance. The optional profile-bound manual POS setting remains an explicit fallback, not the normal workflow. - Retains Back to rewards, native BTCPay Login Code scanning, same-origin WebView/TLS restrictions, camera/NFC/HCE suspension in payment mode, and all existing custom-payment recovery/history and unresolved-operation locks. Back still does not cancel a BTCPay invoice. No server/plugin changes, invoice creation or fund-moving tests were performed. Physical signed upgrade, authenticated tablet discovery, checkout/return, login/session, lifecycle and NFC/camera acceptance remain device-only checks.
  • Nov 7, 2026 2.18.0
    # Rewards NFC Display 2.18.0 - Prominent Customer rewards and Take payment staff actions on the main screen. - Take payment opens the merchant's existing native BTCPay POS in a dedicated in-app WebView with Back to rewards. Configure the optional HTTPS `/apps/APP_ID/pos` URL in Settings, then Save & launch display; no merchant URL is shipped as a default. The URL is bound to the configured server and Store ID. - Replaces new custom payment creation. Existing custom PaymentOperationStore operations and history remain recoverable with their original durable identity. Unresolved operations continue to block rewards and native POS until reconciled and explicitly finished. - Changing server or Store ID drops an inherited POS URL; configure the correct app URL for the new profile. Interrupted activity recreation shows a check-BTCPay-before-reopening warning rather than silently opening a fresh keypad. No invoice/session state is serialized. - Stops rewards camera/NFC capture and clears stale HCE rewards payloads before POS launch. Native POS does not add Android NFC payment functionality. - Preserves native BTCPay Login Code flow and CookieManager sessions, HTTPS same-origin navigation, TLS validation, NFC/rewards capture and scanner recovery. POS denies cross-origin resources, external intents, file/content access and WebView permission requests. No server changes or fund-moving acceptance tests. Physical tablet upgrade, camera/NFC ownership, merchant POS checkout and return-to-rewards acceptance remain device-only checks.
  • Nov 7, 2026 2.17.0
    ## Rewards NFC Display 2.17.0 - Adds **Collect payment**: staff enters the final CAD total calculated in Square, confirms it without a PIN, and hands the terminal to the customer. - Displays a Lightning invoice QR and supports compatible Boltcard taps through the paired BTCPay merchant-POS API. - Keeps payment collection separate from rewards check-in. The matching backend excludes collection sales from new rewards, including the configured Square external-payment source. - Adds durable payment identity, duplicate-tap guards, explicit reconciliation, and non-secret payment history for recovery after interruptions. - Preserves existing rewards check-in, camera scanning, settings, and BTCPay login. Collection remains unavailable with upgrade guidance when the required server API is missing. - Adds clean debug/release lint and unit-test CI, strict Gradle dependency verification, independent OpenCode review gating, and protected exact-commit signing/publication. Package: `com.bitcoinrewards.nfcdisplay` — version **2.17.0**, code **50**.
    More…
    Staff should continue manually recording completed Lightning sales using the existing dedicated Square **Sats/Rewards** external-payment button. The terminal does not calculate tax or discounts.
  • Oct 27, 2026 2.16.1
    # Rewards NFC Display 2.16.1 - Accepts BTCPay's native raw Store ID QR as well as the canonical Bitcoin Rewards display QR. - Uses the immediately following fresh BTCPay login QR to establish and validate the trusted HTTPS server origin for raw Store IDs. - Keeps the camera scanner and NFC reader disabled until the protected rewards check-in API is installed, reachable, and authorized for the current BTCPay session. - Keeps pending Store configuration unsaved until both the trusted display and protected check-in capability verification succeed. - Distinguishes an expired login from a missing or disabled Bitcoin Rewards server endpoint. - Scrubs the one-time login exchange from WebView history before capability verification and preserves confirmed non-secret Store setup through activity recreation.
  • Oct 27, 2026 2.16.0
    # Rewards NFC Display 2.16.0 - Adds QR-only kiosk onboarding: scan the canonical Bitcoin Rewards Store QR, confirm the detected BTCPay server and Store ID, then scan a fresh BTCPay login QR. - Removes the need to type the Store ID or login code during the QR setup path while preserving manual server and Store ID entry as a fallback. - Rejects malformed, non-HTTPS, foreign-route, credential-bearing, query-bearing, fragmented, or non-canonical Store QR payloads. - Keeps the one-time BTCPay login URL only in consume-once process memory and constructs the exact rewards display destination locally. - Saves the scanned Store configuration only after the authenticated trusted display loads successfully; cancellation, rejection, or failed login leaves the existing configuration unchanged. - Preserves pending non-secret setup state across activity recreation and invalidates scoped scanner metadata only after a successful store change.
  • Oct 27, 2026 2.15.0
    # Rewards NFC Display 2.15.0 - Gives the camera scanner the full screen width and a substantially larger live preview. - Moves the example-wallet tutorial into the lower display area and shows it only while waiting for a customer check-in. - Automatically replaces the tutorial with the checked-in or reward-ready display as soon as the server reports that state. - Uses customer-facing “sats” language instead of “bitcoin” language throughout the native rewards experience. - Keeps foreground NFC reader interception active during check-in confirmation so Boltcard taps do not open or prompt for Glow, Fountain, or another wallet app; duplicate submissions remain blocked. - Preserves authenticated Boltcard submission, strict QR parsing, TLS validation, QR fallback, and the 30-attempt BTCPay/StartOS restart recovery.
  • Oct 24, 2026 2.13.5
    # Rewards NFC Display 2.13.5 - Restores the longer restart-recovery window that previously kept kiosk displays alive through BTCPay and StartOS service restarts. - Retries temporary HTTP 408, 425, 429, 500, 502, 503, and 504 responses as well as main-frame network and TLS failures. - Uses bounded backoff for up to 30 attempts, reaching a 30-second interval instead of stopping after roughly 23 seconds. - Keeps the scanner and failed Chromium page hidden while reconnecting to the exact configured rewards display. - Never retries authentication, permission, or not-found responses; bypasses TLS validation; or replays a consume-once Login Code URL.
  • Oct 24, 2026 2.13.4
    # Rewards NFC Display 2.13.4 - Automatically retries the exact configured rewards display after transient main-frame network or TLS failures, using bounded exponential backoff. - Cancels stale retries after a successful display load or when the activity is destroyed. - Never bypasses Android TLS validation and never replays a consume-once BTCPay Login Code URL. - Keeps the inline customer scanner hidden until the trusted rewards display completes successfully. - Continues rejecting fixed BOLT11 invoices and now explains that rewards require a reusable Lightning address or LNURL-pay QR.
  • Oct 24, 2026 2.13.3
    # Rewards NFC Display 2.13.3 - Authenticates automatic inline scanner check-ins with the existing BTCPay WebView session cookie. - Sends the cookie only to the configured trusted HTTPS BTCPay origin and never persists, logs, or passes it through an Intent. - Pauses automatic scanning when the cookie is missing, BTCPay redirects to login, or BTCPay returns HTTP 401/403; HTTP 403 also explains that the account may be missing store-settings permission. - Preserves the automatic inline camera, strict Lightning-address and LNURL-pay parsing, duplicate-scan throttling, camera Flip control, and BTCPay Login Code flow.
  • Oct 24, 2026 2.13.2
    # Rewards NFC Display 2.13.2 - Restores the automatic inline customer rewards camera above the trusted rewards display and check-in pages. - Starts the camera without a manual scanner/provisioning button, pauses it on login, other pages, and app backgrounding, and retains the front/back Flip control. - Sends both strict Lightning-address and LNURL-pay scans through the deployed legacy check-in endpoint using the same safe parser and local status labels. - Preserves duplicate-scan throttling and the BTCPay Login Code WebView authentication flow introduced in 2.13.1. - Keeps the separately authenticated secure scanner provisioning available only in Settings for future scoped workflows. - LNURL-pay scans are prepared identically to Lightning addresses; servers without the matching plugin upgrade may reject LNURL-pay with a clear local status.
  • Oct 24, 2026 2.13.1
    # Rewards NFC Display 2.13.1 - Restores native scanning of short-lived BTCPay Login Codes for display authentication. - Accepts BTCPay login URL QR payloads and the legacy `code;baseUrl` format while requiring HTTPS and the configured server origin. - Never stores the one-time login code and ignores QR-provided return targets; the rewards display URL is constructed locally from the trusted server and Store ID. - Separates display readiness from optional scoped rewards-scanner provisioning, so the display can launch and authenticate without scanner credentials. - Preserves the WebView cookie session and replaces destructive legacy cleanup with migration of only the non-secret BTCPay URL and Store ID. - Keeps rewards-scanner device tokens isolated in Android secure storage and prompts for provisioning only when scanner functions are opened.
  • Oct 24, 2026 2.13.0
    # Rewards NFC Display 2.13.0 - Adds standards-compliant LNURL-pay QR scanning to the existing Lightning-address rewards workflow. - Strictly validates LNURL Bech32 payloads and decoded HTTPS destinations before submitting a check-in. - Preserves scan evidence and displays a destination label derived locally from the scanned QR. - Keeps the existing server-authoritative reward amount, confirmation, retry, cancellation, and terminal-status flow. - Preserves Lightning-address scanning while canonicalizing its server-facing value for reliable correlation.
  • Oct 4, 2026 2.12.3
  • Sep 29, 2026 2.12.2
  • Sep 28, 2026 2.12.1
  • Sep 27, 2026 2.12.0
    # Rewards NFC Display 2.12.0 - Moves the always-on rewards camera scanner to the top of the kiosk display. - Simplifies the counter layout so the customer sees scanner first, then the BTCPay display card below. - Keeps front-camera scanning, camera flip, scan confirmation, and WebView recovery behavior.
  • Sep 27, 2026 2.11.2
    # Rewards NFC Display 2.11.2 - Resets the kiosk WebView scroll to the top after the display reloads. - Keeps the always-on scanner behavior from 2.11.x. - Intended to pair with Bitcoin Rewards plugin 1.7.6, which changes a scanned customer from “Waiting” to a visible “Ready to reward” display state.
  • Sep 27, 2026 2.11.1
    # Rewards NFC Display 2.11.1 - Tightens the split-screen kiosk layout after the always-on scanner redesign. - Keeps the camera as a fixed lower panel so the rewards display no longer appears to bleed behind it. - Removes the scanner library's default instruction text from the bottom of the camera area. - Preserves the always-on front-camera Lightning-address scanner and visual confirmation flow from 2.11.0.
  • Sep 27, 2026 2.11.0
    # Rewards NFC Display 2.11.0 - Redesigns the kiosk display flow so rewards profile scanning is always open on the main rewards display. - Adds an embedded front-camera scanner panel; staff no longer need to tap Scan Rewards Profile. - Scanner posts Lightning-address QR check-ins directly to BTCPay and shows visual confirmation for the waiting customer. - Includes a camera flip control and keeps the scanner compact when a reward QR is already being displayed. - Keeps the screen-lock/network recovery from 2.10.1.
  • Sep 27, 2026 2.10.1
    # Rewards NFC Display v2.10.1 Clean standalone RewardsApp production release. - Keeps the Android app in the separate `RewardsApp` repository. - Bumps version above the old v2.8.0 app so existing installs can update normally. - Removes hard-coded signing passwords from Gradle. - Adds production launcher icon and round icon. - Adds Zapstore metadata/config and store-ready promotional assets. - Sets cleartext HTTP traffic off.
    More…
    - Marks NFC/HCE hardware optional so the app can install on tablets without NFC support. - Adds native customer Lightning-address QR scanning. - Adds native BTCPay login QR scanning. - Adds BTCPay login-code onboarding in settings. - Preserves NFC display/tap support when hardware is available. - Store ID is optional for BTCPay login-code setup; the app auto-detects stores from the BTCPay session when possible. - Uses the BTCPay 2.4-compatible `/login?loginCode=...` endpoint for login-code exchange. - Scan BTCPay Login QR now logs in immediately after scanning, matching BTCPay login-code behavior. - Hide the Scan Rewards Profile overlay on BTCPay login/account pages; only show it on Bitcoin Rewards display/check-in pages. - Persist BTCPay login-code session cookies and inject them into the WebView before opening the rewards display, preventing a second BTCPay login screen after authentication. - If a login-code session is missing or BTCPay redirects back to login, return to app settings for native QR login instead of showing BTCPay web camera/login pages. - Scan BTCPay Login QR now saves and launches the display automatically after a successful login; no separate Save & Launch tap is required. - Store the full BTCPay Set-Cookie lines and replay them into the WebView to keep the login-code session active when launching display. - Remove the manual Login with BTCPay Code button from setup; the native QR scan now owns the login flow. - Treat HTTP 200 from BTCPay login-code exchange as not authenticated instead of saving a partial login-page cookie; only redirect responses with session cookies are accepted. - Add login-flow diagnostics for session cookie replay and BTCPay login redirects. - Switch setup to BTCPay Server’s own web login-code scanner inside the WebView, with camera permission enabled. - Open BTCPay login with a rewards-display return URL so successful web login returns to the kiosk display. - Keep customer profile scan overlays hidden on BTCPay login pages while allowing the BTCPay web scanner to use camera access. - Rewards profile scanner now defaults to the front camera for customer-facing countertop use. - Add a Flip Camera control to switch between front and back cameras while scanning customer Lightning-address QR codes. - Automatically recover the WebView after screen lock/unlock or temporary DNS/network errors by reapplying cookies and retrying the rewards display. - Hide customer scan controls while reconnecting so Android WebView error pages do not leave kiosk controls over a failed page.
  • Sep 27, 2026 2.10.0
    # Rewards NFC Display v2.10.0 Clean standalone RewardsApp production release. - Keeps the Android app in the separate `RewardsApp` repository. - Bumps version above the old v2.8.0 app so existing installs can update normally. - Removes hard-coded signing passwords from Gradle. - Adds production launcher icon and round icon. - Adds Zapstore metadata/config and store-ready promotional assets. - Sets cleartext HTTP traffic off.
    More…
    - Marks NFC/HCE hardware optional so the app can install on tablets without NFC support. - Adds native customer Lightning-address QR scanning. - Adds native BTCPay login QR scanning. - Adds BTCPay login-code onboarding in settings. - Preserves NFC display/tap support when hardware is available. - Store ID is optional for BTCPay login-code setup; the app auto-detects stores from the BTCPay session when possible. - Uses the BTCPay 2.4-compatible `/login?loginCode=...` endpoint for login-code exchange. - Scan BTCPay Login QR now logs in immediately after scanning, matching BTCPay login-code behavior. - Hide the Scan Rewards Profile overlay on BTCPay login/account pages; only show it on Bitcoin Rewards display/check-in pages. - Persist BTCPay login-code session cookies and inject them into the WebView before opening the rewards display, preventing a second BTCPay login screen after authentication. - If a login-code session is missing or BTCPay redirects back to login, return to app settings for native QR login instead of showing BTCPay web camera/login pages. - Scan BTCPay Login QR now saves and launches the display automatically after a successful login; no separate Save & Launch tap is required. - Store the full BTCPay Set-Cookie lines and replay them into the WebView to keep the login-code session active when launching display. - Remove the manual Login with BTCPay Code button from setup; the native QR scan now owns the login flow. - Treat HTTP 200 from BTCPay login-code exchange as not authenticated instead of saving a partial login-page cookie; only redirect responses with session cookies are accepted. - Add login-flow diagnostics for session cookie replay and BTCPay login redirects. - Switch setup to BTCPay Server’s own web login-code scanner inside the WebView, with camera permission enabled. - Open BTCPay login with a rewards-display return URL so successful web login returns to the kiosk display. - Keep customer profile scan overlays hidden on BTCPay login pages while allowing the BTCPay web scanner to use camera access. - Rewards profile scanner now defaults to the front camera for customer-facing countertop use. - Add a Flip Camera control to switch between front and back cameras while scanning customer Lightning-address QR codes.
  • Sep 27, 2026 2.9.9
    # Rewards NFC Display v2.9.9 Clean standalone RewardsApp production release. - Keeps the Android app in the separate `RewardsApp` repository. - Bumps version above the old v2.8.0 app so existing installs can update normally. - Removes hard-coded signing passwords from Gradle. - Adds production launcher icon and round icon. - Adds Zapstore metadata/config and store-ready promotional assets. - Sets cleartext HTTP traffic off.
    More…
    - Marks NFC/HCE hardware optional so the app can install on tablets without NFC support. - Adds native customer Lightning-address QR scanning. - Adds native BTCPay login QR scanning. - Adds BTCPay login-code onboarding in settings. - Preserves NFC display/tap support when hardware is available. - Store ID is optional for BTCPay login-code setup; the app auto-detects stores from the BTCPay session when possible. - Uses the BTCPay 2.4-compatible `/login?loginCode=...` endpoint for login-code exchange. - Scan BTCPay Login QR now logs in immediately after scanning, matching BTCPay login-code behavior. - Hide the Scan Rewards Profile overlay on BTCPay login/account pages; only show it on Bitcoin Rewards display/check-in pages. - Persist BTCPay login-code session cookies and inject them into the WebView before opening the rewards display, preventing a second BTCPay login screen after authentication. - If a login-code session is missing or BTCPay redirects back to login, return to app settings for native QR login instead of showing BTCPay web camera/login pages. - Scan BTCPay Login QR now saves and launches the display automatically after a successful login; no separate Save & Launch tap is required. - Store the full BTCPay Set-Cookie lines and replay them into the WebView to keep the login-code session active when launching display. - Remove the manual Login with BTCPay Code button from setup; the native QR scan now owns the login flow. - Treat HTTP 200 from BTCPay login-code exchange as not authenticated instead of saving a partial login-page cookie; only redirect responses with session cookies are accepted. - Add login-flow diagnostics for session cookie replay and BTCPay login redirects. - Switch setup to BTCPay Server’s own web login-code scanner inside the WebView, with camera permission enabled. - Open BTCPay login with a rewards-display return URL so successful web login returns to the kiosk display. - Keep customer profile scan overlays hidden on BTCPay login pages while allowing the BTCPay web scanner to use camera access.
  • Sep 27, 2026 2.9.8
    # Rewards NFC Display v2.9.8 Clean standalone RewardsApp production release. - Keeps the Android app in the separate `RewardsApp` repository. - Bumps version above the old v2.8.0 app so existing installs can update normally. - Removes hard-coded signing passwords from Gradle. - Adds production launcher icon and round icon. - Adds Zapstore metadata/config and store-ready promotional assets. - Sets cleartext HTTP traffic off.
    More…
    - Marks NFC/HCE hardware optional so the app can install on tablets without NFC support. - Adds native customer Lightning-address QR scanning. - Adds native BTCPay login QR scanning. - Adds BTCPay login-code onboarding in settings. - Preserves NFC display/tap support when hardware is available. - Store ID is optional for BTCPay login-code setup; the app auto-detects stores from the BTCPay session when possible. - Uses the BTCPay 2.4-compatible `/login?loginCode=...` endpoint for login-code exchange. - Scan BTCPay Login QR now logs in immediately after scanning, matching BTCPay login-code behavior. - Hide the Scan Rewards Profile overlay on BTCPay login/account pages; only show it on Bitcoin Rewards display/check-in pages. - Persist BTCPay login-code session cookies and inject them into the WebView before opening the rewards display, preventing a second BTCPay login screen after authentication. - If a login-code session is missing or BTCPay redirects back to login, return to app settings for native QR login instead of showing BTCPay web camera/login pages. - Scan BTCPay Login QR now saves and launches the display automatically after a successful login; no separate Save & Launch tap is required. - Store the full BTCPay Set-Cookie lines and replay them into the WebView to keep the login-code session active when launching display. - Remove the manual Login with BTCPay Code button from setup; the native QR scan now owns the login flow. - Treat HTTP 200 from BTCPay login-code exchange as not authenticated instead of saving a partial login-page cookie; only redirect responses with session cookies are accepted. - Add login-flow diagnostics for session cookie replay and BTCPay login redirects.
  • Sep 27, 2026 2.9.7
    # Rewards NFC Display v2.9.7 Clean standalone RewardsApp production release. - Keeps the Android app in the separate `RewardsApp` repository. - Bumps version above the old v2.8.0 app so existing installs can update normally. - Removes hard-coded signing passwords from Gradle. - Adds production launcher icon and round icon. - Adds Zapstore metadata/config and store-ready promotional assets. - Sets cleartext HTTP traffic off.
    More…
    - Marks NFC/HCE hardware optional so the app can install on tablets without NFC support. - Adds native customer Lightning-address QR scanning. - Adds native BTCPay login QR scanning. - Adds BTCPay login-code onboarding in settings. - Preserves NFC display/tap support when hardware is available. - Store ID is optional for BTCPay login-code setup; the app auto-detects stores from the BTCPay session when possible. - Uses the BTCPay 2.4-compatible `/login?loginCode=...` endpoint for login-code exchange. - Scan BTCPay Login QR now logs in immediately after scanning, matching BTCPay login-code behavior. - Hide the Scan Rewards Profile overlay on BTCPay login/account pages; only show it on Bitcoin Rewards display/check-in pages. - Persist BTCPay login-code session cookies and inject them into the WebView before opening the rewards display, preventing a second BTCPay login screen after authentication. - If a login-code session is missing or BTCPay redirects back to login, return to app settings for native QR login instead of showing BTCPay web camera/login pages. - Scan BTCPay Login QR now saves and launches the display automatically after a successful login; no separate Save & Launch tap is required. - Store the full BTCPay Set-Cookie lines and replay them into the WebView to keep the login-code session active when launching display.
  • Sep 27, 2026 2.9.6
    # Rewards NFC Display v2.9.6 Clean standalone RewardsApp production release. - Keeps the Android app in the separate `RewardsApp` repository. - Bumps version above the old v2.8.0 app so existing installs can update normally. - Removes hard-coded signing passwords from Gradle. - Adds production launcher icon and round icon. - Adds Zapstore metadata/config and store-ready promotional assets. - Sets cleartext HTTP traffic off.
    More…
    - Marks NFC/HCE hardware optional so the app can install on tablets without NFC support. - Adds native customer Lightning-address QR scanning. - Adds native BTCPay login QR scanning. - Adds BTCPay login-code onboarding in settings. - Preserves NFC display/tap support when hardware is available. - Store ID is optional for BTCPay login-code setup; the app auto-detects stores from the BTCPay session when possible. - Uses the BTCPay 2.4-compatible `/login?loginCode=...` endpoint for login-code exchange. - Scan BTCPay Login QR now logs in immediately after scanning, matching BTCPay login-code behavior. - Hide the Scan Rewards Profile overlay on BTCPay login/account pages; only show it on Bitcoin Rewards display/check-in pages. - Persist BTCPay login-code session cookies and inject them into the WebView before opening the rewards display, preventing a second BTCPay login screen after authentication. - If a login-code session is missing or BTCPay redirects back to login, return to app settings for native QR login instead of showing BTCPay web camera/login pages.
  • Sep 27, 2026 2.9.5
    # Rewards NFC Display v2.9.5 Clean standalone RewardsApp production release. - Keeps the Android app in the separate `RewardsApp` repository. - Bumps version above the old v2.8.0 app so existing installs can update normally. - Removes hard-coded signing passwords from Gradle. - Adds production launcher icon and round icon. - Adds Zapstore metadata/config and store-ready promotional assets. - Sets cleartext HTTP traffic off.
    More…
    - Marks NFC/HCE hardware optional so the app can install on tablets without NFC support. - Adds native customer Lightning-address QR scanning. - Adds native BTCPay login QR scanning. - Adds BTCPay login-code onboarding in settings. - Preserves NFC display/tap support when hardware is available. - Store ID is optional for BTCPay login-code setup; the app auto-detects stores from the BTCPay session when possible. - Uses the BTCPay 2.4-compatible `/login?loginCode=...` endpoint for login-code exchange. - Scan BTCPay Login QR now logs in immediately after scanning, matching BTCPay login-code behavior. - Hide the Scan Rewards Profile overlay on BTCPay login/account pages; only show it on Bitcoin Rewards display/check-in pages. - Persist BTCPay login-code session cookies and inject them into the WebView before opening the rewards display, preventing a second BTCPay login screen after authentication.
  • Sep 27, 2026 2.9.4
    # Rewards NFC Display v2.9.4 Clean standalone RewardsApp production release. - Keeps the Android app in the separate `RewardsApp` repository. - Bumps version above the old v2.8.0 app so existing installs can update normally. - Removes hard-coded signing passwords from Gradle. - Adds production launcher icon and round icon. - Adds Zapstore metadata/config and store-ready promotional assets. - Sets cleartext HTTP traffic off.
    More…
    - Marks NFC/HCE hardware optional so the app can install on tablets without NFC support. - Adds native customer Lightning-address QR scanning. - Adds native BTCPay login QR scanning. - Adds BTCPay login-code onboarding in settings. - Preserves NFC display/tap support when hardware is available. - Store ID is optional for BTCPay login-code setup; the app auto-detects stores from the BTCPay session when possible. - Uses the BTCPay 2.4-compatible `/login?loginCode=...` endpoint for login-code exchange. - Scan BTCPay Login QR now logs in immediately after scanning, matching BTCPay login-code behavior. - Hide the Scan Rewards Profile overlay on BTCPay login/account pages; only show it on Bitcoin Rewards display/check-in pages.
  • Sep 27, 2026 2.9.3
    # Rewards NFC Display v2.9.3 Clean standalone RewardsApp production release. - Keeps the Android app in the separate `RewardsApp` repository. - Bumps version above the old v2.8.0 app so existing installs can update normally. - Removes hard-coded signing passwords from Gradle. - Adds production launcher icon and round icon. - Adds Zapstore metadata/config and store-ready promotional assets. - Sets cleartext HTTP traffic off.
    More…
    - Marks NFC/HCE hardware optional so the app can install on tablets without NFC support. - Adds native customer Lightning-address QR scanning. - Adds native BTCPay login QR scanning. - Adds BTCPay login-code onboarding in settings. - Preserves NFC display/tap support when hardware is available. - Store ID is optional for BTCPay login-code setup; the app auto-detects stores from the BTCPay session when possible. - Uses the BTCPay 2.4-compatible `/login?loginCode=...` endpoint for login-code exchange. - Scan BTCPay Login QR now logs in immediately after scanning, matching BTCPay login-code behavior.
  • Sep 27, 2026 2.9.2
    # Rewards NFC Display v2.9.2 Clean standalone RewardsApp production release. - Keeps the Android app in the separate `RewardsApp` repository. - Bumps version above the old v2.8.0 app so existing installs can update normally. - Removes hard-coded signing passwords from Gradle. - Adds production launcher icon and round icon. - Adds Zapstore metadata/config and store-ready promotional assets. - Sets cleartext HTTP traffic off.
    More…
    - Marks NFC/HCE hardware optional so the app can install on tablets without NFC support. - Adds native customer Lightning-address QR scanning. - Adds native BTCPay login QR scanning. - Adds BTCPay login-code onboarding in settings. - Preserves NFC display/tap support when hardware is available. - Store ID is optional for BTCPay login-code setup; the app auto-detects stores from the BTCPay session when possible. - Uses the BTCPay 2.4-compatible `/login?loginCode=...` endpoint for login-code exchange.
  • Sep 27, 2026 2.9.1
    # Rewards NFC Display v2.9.1 Clean standalone RewardsApp production release. - Keeps the Android app in the separate `RewardsApp` repository. - Bumps version above the old v2.8.0 app so existing installs can update normally. - Removes hard-coded signing passwords from Gradle. - Adds production launcher icon and round icon. - Adds Zapstore metadata/config and store-ready promotional assets. - Sets cleartext HTTP traffic off.
    More…
    - Marks NFC/HCE hardware optional so the app can install on tablets without NFC support. - Adds native customer Lightning-address QR scanning. - Adds native BTCPay login QR scanning. - Adds BTCPay login-code onboarding in settings. - Preserves NFC display/tap support when hardware is available. - Store ID is optional for BTCPay login-code setup; the app auto-detects stores from the BTCPay session when possible.
  • Sep 27, 2026 2.9.0
    # Rewards NFC Display v2.9.0 Clean standalone RewardsApp production release. - Keeps the Android app in the separate `RewardsApp` repository. - Bumps version above the old v2.8.0 app so existing installs can update normally. - Removes hard-coded signing passwords from Gradle. - Adds production launcher icon and round icon. - Adds Zapstore metadata/config and store-ready promotional assets. - Sets cleartext HTTP traffic off.
    More…
    - Marks NFC/HCE hardware optional so the app can install on tablets without NFC support. - Adds native customer Lightning-address QR scanning. - Adds native BTCPay login QR scanning. - Adds BTCPay login-code onboarding in settings. - Preserves NFC display/tap support when hardware is available.
  • Sep 26, 2026 1.11.2
    # Rewards NFC Display v1.11.2 Production/Zapstore readiness update. - Added production launcher icon and round icon. - Added Zapstore metadata/config and store-ready promotional assets. - Set Android app to disallow cleartext HTTP traffic. - Added Scan BTCPay Login QR onboarding in APK settings. - Login QR scanner accepts raw login codes, `/login/code?loginCode=...` URLs, and `code;baseUrl;email` QR payloads. - Password login fallback now points users to login QR when BTCPay rejects Basic auth, such as with 2FA/passkeys enabled.
    More…
    - Preserved native customer rewards-profile QR scanning. - Preserved open-source cleanup with no merchant-specific defaults.
  • Sep 26, 2026 1.11.4
    # Rewards NFC Display v1.11.4 Production/Zapstore readiness update with persistent release signing for future APK updates. - Added production launcher icon and round icon. - Added Zapstore metadata/config and store-ready promotional assets. - Set Android app to disallow cleartext HTTP traffic. - Added Scan BTCPay Login QR onboarding in APK settings. - Login QR scanner accepts raw login codes, `/login/code?loginCode=...` URLs, and `code;baseUrl;email` QR payloads. - Password login fallback now points users to login QR when BTCPay rejects Basic auth, such as with 2FA/passkeys enabled.
    More…
    - Preserved native customer rewards-profile QR scanning. - Preserved open-source cleanup with no merchant-specific defaults. - NFC hardware is optional in Android manifest so QR/login display installs on tablets without NFC/HCE support.
  • Sep 26, 2026 1.11.3
    # Rewards NFC Display v1.11.3 Production/Zapstore readiness update with persistent release signing for future APK updates. - Added production launcher icon and round icon. - Added Zapstore metadata/config and store-ready promotional assets. - Set Android app to disallow cleartext HTTP traffic. - Added Scan BTCPay Login QR onboarding in APK settings. - Login QR scanner accepts raw login codes, `/login/code?loginCode=...` URLs, and `code;baseUrl;email` QR payloads. - Password login fallback now points users to login QR when BTCPay rejects Basic auth, such as with 2FA/passkeys enabled.
    More…
    - Preserved native customer rewards-profile QR scanning. - Preserved open-source cleanup with no merchant-specific defaults.