← Back to all docs

Treez API

Treez is a cannabis retail technology platform delivering point-of-sale, payments, ecommerce, loyalty, and analytics for dispensaries. An unofficial API lets you programmatically pull customers, products, inventory (stock), tickets/orders, and invoices—and push updates like new customer profiles, order tickets, and payments back into Treez—even where the official Open APIs require Authorized Partner approval.

By Alex KlarfeldMay 30, 2026
Treez API

What is Treez?

Treez is a cannabis retail technology platform that delivers point-of-sale, payments, ecommerce, loyalty, and analytics software purpose-built for dispensaries. Retailers use Treez to ring up sales, process payments through TreezPay, run online menus and delivery, manage loyalty programs, and track inventory and compliance—then extend their stack through Treez Open APIs and a Partner Marketplace rather than a closed all-in-one suite.

Core product areas include:

  • Point of Sale (the Sell Treez module and Fulfillment Page)
  • Payments (TreezPay, including a Virtual Terminal)
  • Ecommerce (online menus and delivery)
  • Loyalty (real-time two-way loyalty integrations)
  • Retail Analytics and a Partner Marketplace of third-party integrations

Common data entities:

  • Customers, Caregivers, loyalty profiles, and merged duplicate records
  • Products, categories, and pricing
  • Tickets/Orders, line items, taxes, and order status
  • Stock/Inventory levels per dispensary location
  • Invoices and payment records

The Treez Integration Challenge

Dispensaries run mission-critical retail and compliance workflows on Treez daily, but turning them into reliable API-driven automation is non-trivial:

  • Authorized Partner gate: Treez Open APIs require partner registration and approval (emailing the partnerships team) before any client_id or credentials are issued
  • Separate credentials per API: Customer, Product, Ticket, Stock, and Invoice APIs each require their own access, with a client_id unique to each integration partner
  • Per-location rate limits: Products, Tickets, and Customer APIs cap at 10 TPS per dispensary location, so multi-store operators must throttle carefully
  • Two-step ticket lifecycle: orders are created first, then updated separately with payment; once paid, tickets are immutable and partial payments are unsupported
  • Cannabis compliance constraints: purchase limits are calculated at ticket creation, taxes are broken out per ticket, and fees are read-only—edge cases that break naive integrations
  • OAuth token management: bearer tokens plus a client_id header must be refreshed and replayed across high-frequency POS calls

How Supergood Creates Treez APIs

Supergood reverse-engineers authenticated browser flows and Treez's Open API surface to deliver a resilient, normalized API layer for your Treez account—across POS, payments, ecommerce, and inventory—without waiting on lengthy partner onboarding.

  • Handles OAuth 2.0 bearer tokens and the client_id header in a managed, auto-refreshing session
  • Respects the 10 TPS per-location rate limit with adaptive throttling across multi-store deployments
  • Normalizes responses across Customer, Product, Ticket, Stock, and Invoice APIs so you integrate once and rely on consistent objects
  • Models the two-step ticket-and-payment lifecycle and tax breakouts so order automation stays compliant

Use Treez with AI agents: Treez MCP Server →

Getting Started

  • Schedule Integration Assessment

Book a 30-minute session to confirm your Treez modules, store locations, and authentication model.

  • Supergood Generates and Validates Your API

We deliver a production-ready Treez adapter tailored to your account, locations, and entitlements.

  • Deploy with Monitoring

Go live with continuous monitoring and automatic adjustments as Treez evolves.

treez

API Endpoints

Authentication

POST/authenticate

Verify your client_id and API key through the Authorization API and obtain an OAuth 2.0 bearer token for downstream calls.

Customers

GET/customers

Search customers by ID, email, name, driver's license, or phone, and filter by signup or last-update date; includes caregivers.

Customers

POST/create_customer

Create a new customer profile, or merge duplicate records, in the Customer API.

Products

GET/products

Retrieve product catalog records, categories, and pricing for a dispensary location.

Tickets

GET/tickets

Get tickets (orders) by ticket ID, order number, or status, filtered by customer, creation, closed, or last-update date.

Tickets

POST/create_ticket

Create a new order ticket with line items; update it separately with payment to complete the two-step ticket lifecycle.

Use Cases

Sync customers and loyalty across the cannabis stack

- Pull customer and caregiver profiles from the Customer API into your CRM or data warehouse - Push new and merged customer records back into Treez to keep loyalty profiles deduplicated - Stream signup and last-update changes to downstream marketing and loyalty tools

Automate order and payment workflows

- Create order tickets programmatically from ecommerce, delivery, or kiosk front-ends - Update tickets with payment in the two-step flow and capture per-ticket tax breakouts - Sync closed-ticket status and line items to analytics and accounting systems

Keep inventory and catalog in sync across locations

- Pull stock levels per dispensary location from the Stock API - Reconcile product, category, and pricing data against menus and ecommerce platforms - Trigger reorder and low-stock alerts from real-time inventory webhooks

Reconcile invoices and revenue

- Sync invoices and payment records from the Invoice API into accounting and ERP tools - Match TreezPay transactions against tickets for revenue reporting - Surface tax totals and fees for compliance and bookkeeping

Technical Specifications

Authentication

OAuth 2.0 bearer tokens plus a per-partner client_id header, verified through the Authorization API and handled in a managed session

Connectivity

Treez Open APIs (Customer, Product, Ticket, Stock, Invoice) plus authenticated browser flows where partner access is gated

Response format

Normalized JSON across Customer, Product, Ticket, Stock, and Invoice objects with per-ticket tax breakouts

Rate limits

Adaptive throttling tuned to the 10 TPS per-dispensary-location cap on Products, Tickets, and Customer APIs

Session management

Automatic OAuth token refresh, client_id replay, and credential rotation

Data freshness

Near real-time pulls for tickets, customers, and stock with optional scheduled batch syncs

Security

Encrypted credential vault, scoped access tokens, SOC 2-aligned controls, and audit logging

Webhooks

Event callbacks for customer, ticket, product, and inventory changes

Latency

Sub-second reads on cached entities; multi-second writes when posting tickets and payments

Throughput

Horizontally scaled workers sized to multi-location dispensary volume within per-location TPS limits

Reliability

Retry, backoff, and idempotency keys for ticket creation, payment updates, and customer merges

Adaptation

Continuous monitoring of Treez Open API releases, Partner Marketplace changes, and account-specific configuration drift

Frequently asked questions

No. Supergood works with your existing Treez account and authenticated sessions. Formal Authorized Partner registration and a partner-issued client_id are only required when you consume the official Open APIs directly—Supergood can deliver a working API layer without waiting on that onboarding.

Yes. Supergood normalizes data across the Customer, Product, Ticket, Stock, and Invoice APIs so you integrate policy, catalog, order, inventory, and billing entities through one consistent surface.

Supergood applies adaptive throttling per dispensary location to stay within the 10 TPS cap on Products, Tickets, and Customer APIs, so multi-store operators can run high-volume syncs without hitting Treez-side limits.

Supergood models Treez's lifecycle exactly: a ticket is created first, then updated with payment in a separate call. We capture per-ticket tax breakouts and respect that paid tickets are immutable and partial payments are unsupported.

Yes. Supergood consumes Treez webhooks for customer, ticket, product, and inventory events, with near real-time pulls and optional scheduled batch syncs for downstream systems.

Ready to get a real API?