Clover data model
The Clover Platform REST API and Clover Android SDK provide access points for retrieving and working with data in several categories.
This topic describes the Clover Platform categories and provides insight into the relationships between them. Developers using the Clover APIs should understand the basics of these concepts before investing development time in a Clover app.
Association labels legend
|0||No instances (rare)|
|0..1||No instances, or one instance|
|1||Exactly one instance|
|1..1||Exactly one instance|
|0..*||Zero or more instances|
|*||Zero or more instances|
|1..*||One or more instances|
When a merchant account is created, a unique identifier called Merchant ID (MID) is associated with that merchant. The merchant is the central association point between employees, orders, and so on.
When using the APIs or SDK, your application makes requests on behalf of the merchant that has installed your app and accepted associated permissions to read or modify merchant data.
A merchant is associated with other data in the following ways:
- A merchant can be associated with one or more inventory items
- A merchant can have zero or more employees
- A merchant can have one or more customers
- A merchant can have zero or more orders
- A merchant can have zero or more payments
Employees are associated with merchants. Merchants manage (create, update, or delete) their employee records which, at a minimum, have an employee name. Other capturable data include employee ID, email, shift schedule, order records, and so on. Employees take orders which can be associated with the employee.
Employees are associated with other data in the following ways:
- An employee can be associated with a single merchant
- An employee can be associated with zero or more payments
- An employee can be associated with zero or more orders
Customers are associated with merchants. Merchants manage (create, update, or delete) their customer records using native Clover apps or an application using the APIs or SDK. Merchants can store customer credit card information at the time of purchase as a card on file. Cards on file are encrypted tokens that represent the credit card information.
Customers are associated with other data in the following ways:
- A customer can be associated with a single merchant
- A customer can be associated with zero or more orders
Inventory data is associated with merchants. Inventory items can include retail merchandise, services offered, or restaurant menu choices. Inventory can be added in three ways:
- Enter items individually on a Clover device or the Clover Web Dashboard.
- Scan merchandise barcodes.
- Import items as data from a spreadsheet.
With item variants, merchants can account for merchandise differentiation. For example, men’s shirts that have the same style but are available in two different fabrics.
Modifiers are similar to variants, but they are intended to capture additional details about the item. For example, in a restaurant, you can create a modifier group called Cooking Temperature with a modifier for each of the five steak cooking temperatures: rare, medium-rare, medium, medium-well, and well done.
Track and update stock quantities. By default, Clover tracks stock quantities for you. This function can be turned off.
Create and manage categories for grouping similar items for better inventory management.
Add labels to items to help organize them or perform functions on the items under one label, for example, run a report on all items with a specific label.
Inventory is associated with other data in the following way:
- Inventory can be associated with a single merchant
Orders are the core of Clover’s transaction data. Almost every transaction creates or updates an order. The data associated with an order is automatically synchronized between the Clover server and the merchants’ Clover devices.
Orders are associated with other data in the following ways:
- An order can be associated with zero or one customer
- An order can be associated with a single merchant
- An order can be associated with zero or more employees
The Remote Pay SDKs (plus Payment Connector) talk to our Clover on-device software to initiate payments, and our device software talks to Clover servers to take payments.
The Remote Pay SDKs themselves (Cloud, Windows, iOS, or Android) run on external devices and connect over a transport with a Pay Display app (SNPD, USB PD, Cloud PD).
An internal secure payments app on the device talks to the Clover servers to perform payment actions.
Payment Connector works similarly but runs on the device and skips some layers to talk directly to the payments app.
Payments are associated with other data in the following ways:
- Payments can be associated with a single employee
- Payments can be associated with a single merchant
- Payments can be associated with a zero or more customers
Updated 3 months ago