Skip to main content

Integrate a third-party POS with Growave and Shopify

Use Growave’s API to show balances, redeem rewards, and apply discounts from your POS.

Overview​

Important

Growave is fully built on Shopify’s data model and webhook ecosystem.
All loyalty logic depends entirely on Shopify orders, Shopify customers, and Shopify discount mechanisms. For this reason, any third-party POS must sync all transactions into Shopify, otherwise, Growave cannot track purchases, issue points, or apply rewards.

This guide explains how to connect a third-party POS system to Shopify and Growave so store staff can:

  • Look up a customer in Shopify from the POS.
  • Show the customer’s points balance, VIP tier, and active rewards from Growave.
  • Redeem rewards using Growave spending rules.
  • Apply discounts to the cart in Shopify.
  • Complete the sale as a normal Shopify order so Growave can track rewards and redemptions correctly.

The high-level flow looks like this:

  1. Authenticate your POS with Shopify and identify the Shopify customer ID.
  2. Add products to the customer’s Shopify cart (or equivalent checkout flow).
  3. Fetch customer data from Growave to show balance, tiers, and rewards.
  4. Redeem rewards and/or fetch active rewards from Growave.
  5. Apply the discount in Shopify and create the order.

Prerequisites​

  • A Shopify store with Growave installed and configured.
  • API credentials for Growave API v2 are available with Plus plan.
  • A third-party POS that can:
    • Authenticate with Shopify (custom / public app, POS plugin, etc.).
    • Call external REST APIs (for Growave).
    • Apply Shopify discounts/discount codes at checkout.

Step 1 – Define Shopify customer ID (auth)​

This step happens entirely on the POS + Shopify side.

Your goal here is to:

  1. Authenticate the POS with Shopify

    • Implement OAuth / app authentication (Shopify Admin API or Storefront API, depending on architecture).
    • Make sure your POS can:
      • Look up customers (by email/phone, loyalty card, etc.).
      • Apply discount codes to checkouts or orders.
      • Create orders in Shopify.
  2. Find or create the customer in Shopify

    When the customer identifies themselves at the POS (email, phone number, loyalty card, etc.):

    • Search for an existing Shopify customer.
    • If none is found, optionally create one (depending on merchant policy).
  3. Store the Shopify customer ID in your POS session

    • From now on, this Shopify customer ID is the primary identifier you pass to Growave.
    • You will use it in:
      • Get Customer
      • Get Spending Rules
      • Redeem a reward
      • Get Customer Active Rewards
Important

Growave calculates points and rewards based on Shopify orders. Always keep Shopify as the source of truth, and always use the Shopify customer ID when possible.


Step 2 – Add products to cart (Shopify side)​

Next, your POS builds the order in Shopify:

  1. Staff selects products in the POS.
  2. Your POS creates or updates a cart / draft order / checkout in Shopify.
  3. Store the Shopify checkout / draft order ID in the POS session if needed.

From Growave’s perspective, this step is neutral:

  • Growave does not require the cart contents for the loyalty API calls described below.
  • Growave will generate discounts according to the configured spending rules; Shopify will validate and apply these discounts to the cart.

Step 3 – Get customer data from Growave​

Use this step to show loyalty data (points, VIP tier, rewards) in the POS before or during checkout.

Endpoint: Get Customer

GET /v2/customers/getCustomer

View API docs

Typical logic:

  1. When the POS has the Shopify customer ID, call Get Customer in Growave.
  2. In the request, pass:
    • Bearer access token
    • Shopify customer ID.
  3. Parse the response and display key information in the POS UI, for example:
    • Current points balance.
    • Current VIP tier and perks.
    • Any other loyalty-related fields you want to show to staff.

Example POS UI elements:

  • “Loyalty balance: 1,250 points”
  • “VIP tier: Gold”
  • “Available rewards: shown in a separate section based on the next steps”
Tip

Call Get Customer as soon as the POS identifies the customer so staff can mention loyalty balance early in the conversation.


Step 4 – Redeem rewards through Growave​

Now that you know who the customer is, you can let staff redeem rewards from the POS.

This step has two main paths:

  • 4.1 Redeem using spending rules (e.g., Spend 1000 points for 10$ off).
  • 4.2 Apply an already active reward (e.g., reward previously redeemed online).

4.1 – Redeem by spending rules​

Use this flow when staff want to convert points into a discount during the POS transaction.

4.1.1 Get spending rules

Endpoint: Get Spending Rules

GET /v2/rewards/getSpendingRules

View API docs

Use this to:

  • Fetch available spending rules for the store (e.g., “$5 off”, “10% off”, “Free shipping”, etc.).
  • Filter or label rules in the POS, e.g. depending on:
    • Points cost.
    • Reward type (amount discount, percentage discount, gift card, etc.).
  • Show them in the POS so staff can choose which reward to redeem.

POS UX example:

Show a list like:

  • “500 pts → $5 off”
  • “1,000 pts → 10% off”
  • “2,000 pts → $20 Gift card”

Staff selects one rule to redeem.


4.1.2 Redeem a reward

Endpoint: Redeem

POST /v2/rewards/redeem

View API docs

Important
  • The Redeem endpoint does not return reward data (no discount code, etc.).
  • Treat this call as a pure side-effect: it creates a new reward for the customer and deducts points, but you must fetch the actual reward via a separate call.

Recommended flow:

  1. Staff selects a spending rule in the POS (you have spending Rule id).
  2. POS calls POST /v2/rewards/redeem with:
    • Shopify customer ID (or supported identifier).
    • Spending rule ID of the selected rule.
  3. On success (e.g., HTTP 200/204):
    • Subscribe to the Reward created webhook.
    • The webhook will be fired as soon as the reward is created.
    • Proceed to Get Customer Active Rewards (next section) to locate the newly created reward.
Important

Make sure you handle API errors gracefully (insufficient points, rule not allowed, etc.) and show a clear message to staff.


4.1.3 Fetch customer active rewards or find the newly redeemed reward

After redeeming, or when you just want to show what’s already available:

Endpoint: Get Customer Active Rewards

GET /v2/rewards/getCustomerActiveRewards

View API docs

Use this endpoint to:

  • Get a list of all active (non-expired / non-used) rewards for this customer.
  • Optionally filter rewards to find the latest one (e. to find the recently redeemed one).
  • Show them in the POS UI so staff can pick which one to apply to the current order.

Typical display:

  • “10% off any order – Code: LOYAL10”
  • “$20 off orders over $100 – Code: SAVE20”
  • “Free shipping on orders below $100”.

4.2 – Apply a discount in the POS​

From Growave’s perspective, applying the reward is always done by:

  1. Selecting one active reward from the list fetched by Get Customer Active Rewards.
  2. Applying the underlying discount in Shopify.

On the Shopify side this usually means applying a discount code to a checkout / cart / draft order.

Implementation details depend on which Shopify API you use (Admin, POS, Storefront), but the pattern is:

  1. Staff selects a reward in the POS.
  2. POS applies the corresponding discount to the Shopify cart or checkout.
  3. POS shows updated totals to staff and customer.
Important

Growave must see a normal Shopify order with the discount applied. Do not bypass Shopify’s discounts by manually changing prices in the POS only, otherwise Growave will not be able to correctly track redemptions and points.


Step 5 – Create the order in Shopify​

After discounts are applied and the customer confirms:

  1. Collect payment in the POS (card, cash, etc.).
  2. Create the order in Shopify using:
    • The existing checkout/draft order with the discount attached, or
    • A direct order creation call that includes the discount data, depending on your integration.
  3. Shopify will:
    • Save the order with discounts.
    • Trigger the usual webhooks and data flows.

Growave will then:

  • Receive the order data from Shopify.
  • Update:
    • Earned points for the order (according to Ways to earn rules).
    • Redeemed rewards status (mark redeemed/used).
    • VIP tier progress and so on.
Note

If the order is later refunded or partially refunded, Growave will adjust points and rewards based on standard Growave refund logic. This part is independent of the POS logic, as long as all actions go through Shopify.