Solink tags video to retail transactions based on a unique place and time pairing. Time is absolute and must adhere to the convention defined here.
Required Object Fields
Field  | Type  | Description  | 
|---|---|---|
  | String  | Must be set to "retail" to specify which data type the current event is.  | 
  | String  | Must be set to "1" to specify which version of the schema is being used for this event (e.g. "1", "2", etc).  | 
  | Number / String  | Start time of the transaction in either Unix time format milliseconds or ISO-8601 compliant format.  | 
  | Number / String  | End time of the transaction in either Unix time format milliseconds or ISO-8601 compliant format.  | 
  | String  | Unique location identifier within the customer's set of locations.  | 
  | String  | A unique identifier representing the source of the transaction data, typically a point-of-sale (POS) register, kiosk, or fuel pump within the retail environment. This ID helps differentiate where each transaction originated within the store.  | 
  | String  | Unique ID which identifies the transaction in the originating POS software. If transaction numbers can repeat or roll over, it’s recommended to append a date/time suffix (e.g., YYYYMMDDHH) to ensure uniqueness over time. WARNING: Transactions sharing the same transactionId will be upserted, meaning the latest data will overwrite the previous record.  | 
  | String  | Describes the type of transaction. For example: "SALE" or "VOID". Supported Enum values: 'sale', 'void', 'refund', 'return', 'discount', 'exchange', 'cancel', 'no sale', 'post void', 'other', 'rebate'.  | 
  | Array  | The list of items, actions or events processed in the transaction.  | 
Optional Object Fields
| Field | Type | Description | 
|---|---|---|
employeeId | String | Unique employee id to identify the employee processing the transaction. | 
employeeName | String | The name of the employee processing the transaction. | 
customerId | String | The unique id to identify the customer being served. | 
salesAssociateId | String | A unique identifier for the sales/floor associate who assisted the customer and may be eligible for commission on this transaction. | 
salesAssociateName | String | The human-readable full name of the sales/floor associate who assisted the customer and may be eligible for commission. | 
revenueCenter | String | Identifies the department or service area within a location where the transaction occurred. In retail, this may be a store department (e.g., electronics or cosmetics). In restaurants, it may be a dining area or channel (e.g., bar, patio, takeout, drive-thru). Businesses use revenue centers to track and compare performance across different areas. | 
Required Item Object Fields
Field  | Type  | Description  | 
|---|---|---|
  | Number | String  | Start time of the transaction in either Unix time format milliseconds or ISO-8601 compliant format.  | 
  | Number  | Quantity of the item.  | 
  | String  | Description of the item.  | 
  | Number  | Per unit price of the item.  | 
  | String  | May be one of the following allowed values: "SALE": Item sold at list price. "MODIFIER": Item modified with/without corresponding price modifications. "SALE_OVERRIDE": Item sale price was overridden by the employee. Final override price is recorded in unitPrice "OVERRIDE_MODIFIER": Override item modified with/without corresponding price modifications "DISCOUNT": A discount was applied to the transaction. "DISCOUNT_MODIFIER": The discount was modified with/without corresponding price modifications. "RETURN": Item was returned. "RETURN_MODIFIER": Returned item modified with/without corresponding price modifications. "RETURN_DISCOUNT": Returned item discount. "RETURN_DISCOUNT_MODIFIER": Returned item discount modifier. "PAYMENT": Payment applied to the transaction "REFUND": Refund payment previously applied to the transaction "CHANGE_DUE": Change due to the customer for a cash payment tendered > transaction total "TAX": Tax to be applied to the transaction "REFUND_TAX ": Refund tax previously applied to the transaction "OTHER_CHARGES": Other charges associated with the transaction "REFUND_OTHER_CHARGES": Refund other charges previously applied to the transaction "GRATUITY": Gratuity offered by the customer "VOID": Item entry voided. "VOID_MODIFIER": Item modifier entry voided/cancelled. "VOID_DISCOUNT": Item discount entry voided/cancelled. "VOID_RETURN": Item returned entry voided/cancelled "VOID_PAYMENT": Payment entry voided/cancelled "VOID_CHANGE_DUE": Change due entry voided/cancelled "VOID_REFUND": Refund payment voided/cancelled  | 
Optional Item Object Fields
| Field | Type | Description | 
|---|---|---|
cardNumberLast4 | String | For credit/debit/gift card payment/refund/void. Last four digits of the card number. | 
sku | String | SKU or other unique item identifier. | 
category | String | Used to track Item Category | 
JSON Example
{
  "dataType": "retail",
  "schemaVersion": "1",
  "startTime": 1557943653649,
  "endTime": 1557943678649,
  "locationId": "123",
  "dataSourceId": "1",
  "transactionId": "93688",
  "employeeId": "27",
  "employeeName": "MICHELLE",
  "status": "SALE",
  "customerId": "",
  "items": [
    {
      "type": "sale",
      "quantity": 1.0,
      "description": "767062 - 1L COLA",
      "unitPrice": 2.29,
      "time": 1555898203000
    },
    {
      "type": "tax",
      "description": "PST",
      "unitPrice": 0.32,
      "time": 1557943678649
    },
    {
      "type": "payment",
      "description": "Credit",
      "unitPrice": 2.61,
      "cardNumberLast4": "1234"
    },
    {
      "type": "change due",
      "description": "Change",
      "unitPrice": 0.0,
      "time": 1557943678649
    }
  ]
}