Skip to main content

Tills

TypeBase PathTrigger Name
REST resource~{realm}/tills/tills

This resource holds a list of all trusted devices. For historical reasons, this resource and the related entity objects use the term till (that is, cash register), but ordering devices are also trusted devices, and more types may be added in the future.

Endpoints

NameMethodRelative PathPayloadResponseDescription
addTillPOST~{realm}/tills/TillStored_TillAdds a new trusted device to the list.
listTillsGET~{realm}/tills/N/AStored_Till[]Retrieves a list of trusted devices.
getTillGET~{realm}/tills/{id}N/AStored_TillRetrieves a trusted device.
putTillPUT~{realm}/tills/{id}TillStored_TillReplaces a trusted device.
updateTillPATCH~{realm}/tills/{id}Partial_TillStored_TillUpdates specified trusted device fields.
removeTillDELETE~{realm}/tills/{id}N/AN/ADeletes a trusted device.

Permissions

PermissionDescription
bind-control-unitClient is allowed to set the control-unit-id property, if this was previously unset.
bind-tillsClient is allowed to set the device-id and device-key properties, if these were previously unset.
edit-locationClient is allowed to modify the account-config and location properties.
edit-till-configClient is allowed to modify the config property.
edit-tillsClient is allowed to add new trusted devices and to modify or delete existing trusted devices.
show-tillsClient is allowed to query the trusted device list and to fetch individual trusted devices.

Entities

Interface Till

namespace Till {
type Type = 'till' | 'ordering-device' | 'external-journal';
}

interface Till {
'name': string;
'type'?: Till.Type;
'description'?: string;
'location'?: number;
'config'?: TillConfig;
'account-config'?: AccountConfig;
'device-id'?: string;
'device-key'?: Base64String;
'control-unit-id'?: string;
'client-version'?: string;
'client-user-agent'?: string;
'cloud-control-unit'?: CloudControlUnit;
'id'?: number;
'created'?: DateTime;
'updated'?: DateTime;
'deleted'?: DateTime;
'updated-by'?: number;
'updated-from'?: number;
'tags'?: string[];
'labels'?: number[];
}
PropertyData TypeDescription
nameStringThe legal name of the trusted device.
typeTill.Type?Type of trusted device. till (or null) means a cash register.
descriptionString?A human-readable name of the trusted device.
locationInt64?ID of Location this device belongs to.
configTillConfig?Settings that applies to this trusted device only.
account-configAccountConfig?Account configuration overrides for this trusted device.
device-idString?The UID (physical hardware ID) of this trusted device.
device-keyBase64String?The secret key used for device authentication. See Authentication & Authorization.
control-unit-idString?The UID/serial number of the control unit in use by this cash register.
client-versionString?Used to notify trusted devices that there is a software update available. If this version is greater than the software currently in use, the cashier will be prompted to upgrade.
client-user-agentString?The last seen User-Agent string of this trusted device. Will be updated automatically by the system.
cloud-control-unitCloudControlUnit?A configuration object for cloud-based, online-only control units.
idInt64?The resource ID of this entity.
createdDateTime?Date and time when this entity was first created.
updatedDateTime?Date and time when this entity was last modified.
deletedDateTime?Date and time when this entity was deleted.
updated-byInt64?ID of User who last modified this entity.
updated-fromInt64?ID of Till (trusted device) which last modified this entity.
labelsInt64[]?A list of Label IDs associated with this entity.

Interface AccountConfig

interface AccountConfig {
'payment-methods'?: PaymentMethodAccount[];
'product-groups'?: ProductGroupAccount[];
'rounding'?: number;
'mismatches'?: number;
'gratuities'?: number;
'journal-series'?: string;
'cost-center'?: CostCenter;
}
PropertyData TypeDescription
payment-methodsPaymentMethodAccount[]?A list of account overrides for payment methods.
product-groupsProductGroupAccount[]?A list of account overrides for product groups.
roundingInt32?Account override for receipt rounding.
mismatchesInt32?Account override for Z-report/reconciliation mismatches.
gratuitiesInt32?Account override for gratuities.
journal-seriesString?Account override for journal/verification series.
cost-centerCostCenter?Account override for cost center.

Interface CostCenter

interface CostCenter {
'code': string;
'name': string;
}
PropertyData TypeDescription
codeStringThe short cost center name or identifier.
nameStringThe name of the cost center.

Interface PaymentMethodAccount

interface PaymentMethodAccount {
'payment-method'?: number;
'method': PaymentMethod.Type;
'account?': number;
'clearing-account?': number;
'vat-account'?: number;
}
PropertyData TypeDescription
payment-methodInt64?ID of custom PaymentMethod, if any. Required if type is anything except cash, card or credit.
methodPaymentMethod.TypeType of payment method.
accountInt32?Account override for transaction account.
clearing-accountInt32?Account override for clearing account. Set it to same value as account if unused.
vat-accountInt32?Account override for VAT account (if applicable).

Interface ProductGroupAccount

interface ProductGroupAccount {
'product-group': number;
'account'?: number;
'vat-account'?: number;
'discount-account'?: number;
}
PropertyData TypeDescription
product-groupInt64ID of ProductGroup.
accountInt32?Account override for sales account.
vat-accountInt32?Account override for VAT account (if applicable).
discount-accountInt32?Account override for discount account. Set it to same value as account if unused.

Interface TillConfig

interface TillConfig {
'peripheral-bindings'?: PeripheralBinding[];
'auto-close-batch-schedules'?: string[];
'button-map'?: number;
}
PropertyData TypeDescription
peripheral-bindingsPeripheralBinding[]?A list of all know peripherals (printers, scanners etc.), including information about what this trusted device uses them for.
auto-close-batch-schedulesCronExpr[]?A cash register-specific schedule for automatic Z-reports/reconciliations.
button-mapInt64?A reference to this trusted device's button map (if unset, the global default will be used).

Interface PeripheralBinding

interface PeripheralBinding {
'name': string;
'address'?: string;
'exclusive': boolean;
'device-id': string;
'device-name': string;
'device-type': string;
'device-model': string;
'device-version': string;
'service-bindings': PeripheralServiceBinding[];
}
PropertyData TypeDescription
nameStringThe name of the peripheral (may differ from device-name if configured via the peripherals resource).
addressString?Address (IP address, device path, etc) of peripheral, if available.
exclusiveBooleanIf true, the trusted device should keep this peripheral connected and not share it with others.
device-idStringUnique peripheral ID.
device-nameStringPeripheral name.
device-typeStringPeripheral type.
device-modelStringPeripheral model.
device-versionStringPeripheral software version.
service-bindingsPeripheralServiceBinding[]A list of services the peripheral provides, and what this trusted device uses them for.

Interface PeripheralServiceBinding

interface PeripheralServiceBinding {
'functions': Peripheral.Function[];
'name': string;
'service-id': string;
'service-name': string;
'service-type': string;
'service-hint'?: string;
}
PropertyData TypeDescription
functionsPeripheral.Function[]What this trusted device uses this service for. See the documentation of the Peripheral entity
nameStringName of the service. (may differ from service-name if configured via the peripherals resource).
service-idStringUnique service ID.
service-nameStringService name.
service-typeStringService type.
service-hintString?If the peripheral knows that a printer or VFD is connected to serial port service, for instance, that may be communicated here.