API Reference

Solink tags video to restaurant transactions based on a unique place and time pairing. Time is absolute and must adhere to the convention defined here.

Metadata Fields (required)

dataType: String. Must be set to "restaurant" to specify which data type the current event is (ie. "retail", "restaurant", etc).
schemaVersion: String. Must be set to "1" to specify which version of the schema is being used for this event (ie. "1", "2", etc).
startTime: Number | String. Start time of the transaction in either Unix time format milliseconds or ISO-8601 compliant format.
endTime: Number | String. End time of the transaction in either Unix time format milliseconds or ISO-8601 compliant format.
storeId: String. Unique store identifier within the customer's set of stores(locations).
registerId: String. Unique id of the POS or register generating the transaction.
transactionId: String. Unique id which identifies the transaction in the originating POS software.


status: String. Describes the type of transaction. One of "SALE" or "VOID".
tableNumber: String. Identifies the table at which the order was taken.
guestCount: Number. States the number of guests served by this transaction.
items: Array(ItemDetails). The list of items, actions or events processed in the transaction.

Metadata Fields (optional)

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.

ItemDetails Fields (required)

time: Number | String. Start time of the transaction in either Unix time format milliseconds or ISO-8601 compliant format.
quantity: Number. Quantity of the item.
description: String. Description of the item.
unitPrice: Number. Per unit price of the item.
type: 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.

ItemDetails Fields (optional)

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.

JSON Example

{
    "dataType": "restaurant",					// determines which object format is being used. future will support restaurant, accessControl
    "schemaVersion": "1",             // specify the schema version for this event, should be "1" for the current object format
​
    "startTime": 1557943653649,				// start time in unix time format (milliseconds since jan 1 1970). also supports ISO time format (2023-10-21T14:00:12-0400)
    "endTime": 1557943678649,					// end time in unix time format (milliseconds since jan 1 1970). also supports ISO time format (2023-10-21T14:00:12-0400)
    "storeId": "123",									// ID of the store for this data, needs to be configured on the associated Solink system
    "registerId": "1",								// ID of the register for this data, needs to be configured on the associated Solink system (for camera associations)
    "transactionId": "93688",					// ID of the transaction
    
    "employeeId": "27",						    // ID of the employee doing the transaction
    "employeeName": "MICHELLE",			  // optional, name of the Employee doing the transaction
    "status": "SALE",									// Type of transaction. Supported options are SALE and VOID
​
    "customerId": "",									// optional, ID of the customer making the transaction
​
    "tableNumber": "12",              // identifier for the specific table associated with this transaction
    "guestCount": 1,                	// number of guests at the table
​
    "items": [												// list of items included in the transaction (sale items, returns, voids, taxes, payments, etc)
        {
            "type": "sale",						// type of item. supported options are sale, return, void, tax, payment and change due
            "quantity": 1.0,					// quantity of the current item, defaults to 1 if not specified
            "description": "Burger",	        // description of the item
            "unitPrice": 22.00,				// unit price of this item
            "time": 1555898203000			// optional, used to specify item time, otherwise will default to start time
        },
        {
            "type": "modifier",
            "quantity": 1.0,
            "description": "No onions",
            "unitPrice": 0,
            "time": 1555898203000
        },
        {
            "type": "tax",
            "quantity": 1.0,
            "description": "PST",
            "unitPrice": 2.00,
            "time": 1557943678649
        },
        {
            "type": "gratuity",       	// use for gratuities
            "quantity": 1.0,
            "description": "Tip",
            "unitPrice": 5.00,
            "time": 1557943678649
        },
        {
            "type": "payment",
            "quantity": 1.0,
            "description": "Credit",   	// Credit
            "unitPrice": 20.00,
            "cardNumberLast4": "1234", 	// optional, last 4 of card number for card payments
            "time": 1557943678649
        },
        {
            "type": "payment",         	// can have multiple payment objects
            "quantity": 1.0,
            "description": "Cash",
            "unitPrice": 10.00,
            "time": 1557943678649
        },
        {
            "type": "change due",      	// change due object for cash payments
            "quantity": 1.0,
            "description": "Change",
            "unitPrice": 1.00,
            "time": 1557943678649
        }
    ]
}