Feature Updates
Date | Area | Update |
v1.0 | Initial Release | TreezPay Widget for SellTreez POS — full feature set described in this document. |
Feature Overview
The TreezPay Widget for SellTreez POS is the latest channel addition to the TreezPay SDK lineup, bringing the same embedded payment experience available across the Customer Facing Display, Virtual Terminal, and eCommerce directly into the SellTreez POS checkout flow.
With this release, the TreezPay SDK manages the payment UI and core payment logic within POS checkout. SellTreez POS continues to own the cart, register context, and post-payment completion — communicating with the widget via websocket — while the widget handles payment method presentation, status reconciliation, fallback mechanisms, and error handling. The result is a consistent payment experience across all TreezPay SDK channels with a shared foundation for configuration, reporting, and future payment feature releases.
Getting Started: The TreezPay Widget for SellTreez POS is currently in a controlled rollout . If you would like to be enabled sooner to benefit from some of the new feature functionality below, submit a request to your [email protected]
Why TreezPay Widget for SellTreez POS?
1. Familiar Checkout Experience, More Robust Payment Backend
The POS widget was intentionally designed to feel familiar — the checkout UI mirrors the integrated payment experience your staff already knows. What's changed is what happens under the hood. The backend now runs on the same robust status reconciliation pipeline used across all TreezPay SDK channels — with layered fallback mechanisms to capture payment status if the primary method fails — extending the full depth of the TreezPay SDK to the POS checkout experience.
2. SMS ACH Now Available at POS Checkout
For the first time, POS checkout supports ACH payment delivery via SMS paylink. Budtenders can initiate an ACH payment directly from the checkout screen, with a secure payment link sent to the customer's mobile device. This expands in-store ACH beyond QR-only delivery and gives retailers a flexible, terminal-free cashless option at the point of sale.
3. Manually Record Sale with Audit History
In the event a card payment completes but the TreezPay gateway does not receive a status confirmation from the provider, staff can now record the sale outcome directly from the POS checkout widget after a final verify sale check — no manager intervention or ticket adjustment required. All Record Sale actions are logged with the recording user and timestamp in the TreezPay Portal > Transaction Details for full audit traceability.
⚠️ Note: This scenario previously required closing the sale as cash and having a manager manually update the payment method via the POS ticket adjustment module — a multi-step process prone to user error and difficult to audit.
4. Future POS Payment Features Delivered Faster
The TreezPay Widget ships on its own release cycle, independent of the SellTreez POS update cadence. New payment capabilities — additional providers, modalities, and UX improvements — reach POS checkout as soon as they are available in the SDK, without requiring additional POS configurations.
5. Centralized Configuration via TreezPay Portal
All payment configuration for the POS widget is managed in the TreezPay Portal — the same hub used for CFD, Virtual Terminal, and eCommerce. Provider setup and payment enablement are controlled from a single interface, consistent with how other SDK channels are managed.
Pre-Conditions
The following must be in place before the TreezPay Widget can be used in SellTreez POS checkout. Contact your TreezPay representative with questions.
TreezPay Approved: The store must be underwritten and approved for payment processing via a TreezPay OneApp.
Providers Configured: At least one payment provider must be configured and active in the TreezPay Gateway.
Feature Flag Enabled: The TreezPay Widget must be "Checkout" enabled at the individual processor level within the TreezPay Portal > Provider Payment Configurations.
POS User Role Permissions
The following permissions are required for retail employees to operate the TreezPay Widget in POS checkout. Permissions are managed in Org Settings > Role Management.
Permission | Purpose |
TreezPay > Create Payment | Initiate a card payment |
TreezPay > Create Invoice | Initiate an ACH payment |
TreezPay > Read Entity Configuration | Surfaces enabled payment methods in the widget |
TreezPay > Read Payment Device Location | Ensures the correct terminal is ready at the correct location |
TreezPay > Cancel Payment | Cancel a payment in progress |
TreezPay > Read Payments | View payment status |
TreezPay > Record Sale | Manually record a transaction outcome when a terminal payment does not return a gateway status. |
Configuration
Once the feature flag is enabled for your organization, the only configuration required is enabling your desired payment providers in the TreezPay Portal.
Enabling Payment Providers
Steps
Navigate to TreezPay Portal > Settings > Payment Configuration.
Select the desired payment provider.
Toggle "Checkout" to enabled.
Save.
Business Logic
Any provider with Checkout enabled will be surfaced in the POS widget payment method selection view.
If multiple providers are enabled for the same payment type, the provider designated as Default will appear first and serve as the primary option.
Card - Terminal: Card-present options will route payment to the associated terminal at the POS hardware location.
Card - Not Present: CNP card options will push an SMS paylink to the customer's mobile device.
ACH: ACH will push an SMS paylink to the customer's mobile device.
Payment Flows
The following flows describe the expected experience for each payment type in the POS widget checkout. It is recommended to run a test transaction for each configured modality prior to go-live.
Card — Terminal
Proceed to the checkout screen in SellTreez POS. The TreezPay Widget initializes and surfaces available card payment methods based on the current hardware location.
Budtender selects the desired card payment type. POS checkout locks with in progress modal pending payment completion.
Payment request routes to the assigned terminal. The customer completes the transaction on-device.
Upon a successful terminal response, the widget surfaces a payment success state and POS advances to the completion screen.
⚠️ Note: To cancel a payment in progress, cancel directly on the terminal device — the widget and POS will register the cancellation.
Card — Not Present (SMS Paylink)
Proceed to checkout. The widget initializes and surfaces CNP card options if configured.
Budtender selects the CNP card option and confirms the customer's phone number.
An SMS paylink is sent to the customer's mobile device. The customer completes the card payment on their phone.
Upon successful submission, the widget surfaces a confirmation state and POS advances to the completion screen.
ACH — SMS Paylink
Proceed to checkout. The widget initializes and surfaces ACH if configured.
Budtender selects ACH and confirms the customer's phone number.
An SMS paylink is sent to the customer's mobile device. The customer completes the ACH authorization on their phone.
Upon successful authorization, the widget surfaces a confirmation state. The budtender selects "Complete and Capture" in POS to finalize the sale.
⚠️ Note: ACH follows an auth/capture flow. The payment is authorized at checkout but not debited from the customer until capture is performed. Budtenders will be prompted to complete capture after authorization in checkout, however, if they choose they can capture and complete simply by saving the order
Split Payments
Split payments combining cash and an integrated payment type are supported in parity with existing POS behavior.
Apply the cash portion in SellTreez POS before the customer initiates payment in the widget. The remaining balance due is passed to the widget.
The customer completes the integrated payment portion via the widget.
Budtender completes the sale in POS as normal.
⚠️ Note: The cash portion must be applied before the customer begins interacting with the widget. Once an integrated payment is initiated, POS checkout is locked.
Edge Case Handling
In rare cases, a terminal payment may complete successfully but the TreezPay gateway does not receive a status confirmation from the provider. The POS widget includes two recovery functions to resolve these scenarios without requiring manual ticket adjustments.
Verify Sale
If a customer has an Approved receipt but the widget is in an unresolved or loading state, use Verify Sale to query the provider directly for the transaction's actual status. Verify Sale is accessible from the widget within the POS checkout flow. If the provider confirms the transaction, status updates to Successful and all associated attributes are logged.
Record Sale
Record Sale is available when Verify Sale cannot resolve the status — typically when the provider returned a non-deterministic status back to TreezPay but provided receipt of payment success. A permissoned user can manually record the transaction outcome directly from the POS checkout widget, using the customer's physical receipt as the source of truth. All Record Sale actions are logged with the recording user and timestamp, providing a full audit trail without requiring a ticket adjustment in POS.
⚠️ Note: While Record Sale can be performed directly in checkout with POS SDK now, it can also be invoked retroactively to adjust amounts at a future point within your TreezPay portal > Transactions > Details. Any updates made via Record Sale will automatically reflect on the POS ticket.
Support Resources
Book a Demo: treez.io/request-demo
TreezPay Help Center: https://support.treez.io/en/collections/8972166-treezpay
Treez Support: [email protected]