Common use cases
POS Integration Tiers

Core Integration

11min

Level

Features including all previous integration levels

Core

  • Ability to get transaction history
  • Ability to get and update contacts
  • Ability to get inventory levels, cost/ margin





Core Integration Guide

AIQ offers two integration methods for point-of-sale (POS) systems:

  • Option 1: Provide AIQ with REST API endpoints
  • Option 2: Send our endpoints data at your leisure using our public REST API endpoints

Please reach out to us to determine which integration method best suits your needs!

Option 1: Provide AIQ with REST API endpoints to:

  • Get transactions & customer records by time range
  • It is preferred to make sure that we have inventory stock, margin, and cost within those calls in order to calculate advanced analytics + facilitate automated recommendations of products to customers and staff

After we integrate those features all POS systems have the premium option to integrate our loyalty wallet and redemptions of discounts directly within the POS native UI. You can see an example of these endpoints in action both within Dutchie & LeafLogix (videos on page):

Option 2: Send our endpoints data at your leisure using the endpoints below

If needed, our team is also well versed in pulling the required data in from other sources (Database tables, flat files such as CSV's, daily OneDrive drops, etc.

Add + update POS transactions

Use this endpoint to post transactions that are occuring on your service to AIQ. We will handle accruing points for loyalty programs, analyzing, updating inventory, etc. We leverage pos_user to map to a full contact ("Persona") we should attribute the sale to.

JS


Submit personas attached to transactions

Use this endpoint so that AIQ can "attach" order details to the customer that made the transaction. This allows for deep analysis and segmentation on customer preferences. AIQ can also fire off new opt-in requests to join loyalty or member club programs. The response will include the contactID and the srcID which you can store to use when submitting sales and redeeming discounts.

AIQ recommends using /api/v2/loyalty as these are completed in real time and are queryable instantly.

If an invalid phone number is submitted, AIQ will process it as a blank value.

JS


Alternatively, you can use this v1.1 endpoint. Submissions to this endpoint are subject to your capture process which can take up to 24 hours to process.

JS


Update Personas

To update an existing persona in AIQ, you will need to submit a POST request to /api/v2/loyaltyContact/override/:uid/:contactID. This endpoint will allow you to update fields for an existing persona. This endpoint will only update fields provided. For fields you do not want to update, simply omit them from the payload. For every available field, see our swagger.

Example: A customer requests to change their phone number and/or email

  1. Change the customer's record in the POS.
  2. Pull the customer's contactID using this endpoint using their old phone number or email.
  3. Submit the customers new email/phone to the override endpoint (See example below)
JS


If an invalid phone number is submitted, AIQ will process it as a blank value.

Create and Update Inventory

To update inventory sent POST requests with an array of items. Max items per call is 100 with SKU/product ID as required params.

JS