Inventory FAQs
Why are fields like Online Status and item Description not available in the Clover Inventory API response?
Online Status and item Description not available in the Clover Inventory API response? These fields are part of the Clover Online Ordering (OLO) system and are not included in the standard Inventory API response. Access to OLO-specific data requires specialized permissions. To request access or inquire about developing apps for an Online Ordering partner, contact Clover Developer Relations at [email protected]
How can I assign a category to an item using the Clover REST API?
To assign a category to an item via the REST API, you must first create the category separately. Once the category exists, you can reference it by its ID when creating or updating the item.
- Create the category: POST to
/v3/merchants/{mId}/categoriesto get aCATEGORY_ID. - Create the item: POST to
/v3/merchants/{mId}/itemsto get anITEM_ID. - Associate the item with the category: Send a POST request to the association endpoint: POST
/v3/merchants/{mId}/category_items. You can associate multiple items with multiple categories in a single call by adding more objects to the elements array.
{
"elements": [
{
"item": { "id": "ITEM_ID" },
"category": { "id": "CATEGORY_ID" }
}
]
}
Why is the modifiedTime field missing when requesting Categories using the REST API? Can I filter categories by modification date?
modifiedTime field missing when requesting Categories using the REST API? Can I filter categories by modification date?The modifiedTime field is not included by default in the response from the /v3/merchants/{merchantId}/categories endpoint. Try using the expand=items parameter. To learn more about the expand parameter, see Use expandable fields for API responses.
Can I call a REST API from my site to load items into Clover and customize them per customer?
Yes, it is possible to call a REST API to pull item data from your site and load it into Clover. You’ll need to develop an app or script that interacts with both your server’s API and the Clover Inventory API. Use the appropriate endpoints to retrieve items from your site and upload them to Clover in the correct format. To display different items for different customers, your app can use customer-specific parameters (like customer ID) to filter items before sending them to Clover. When the customer checks out, use the Atomic 0rder endpoint (POST /v3/merchants/{mId}/atomic_order/orders) to push a pre-calculated order into the Clover system. This allows you to set custom prices or add line-item notes that are specific to that individual transaction.
Why are some inventory items missing from the /v3/merchants/{merchant_id}/items endpoint response?
/v3/merchants/{merchant_id}/items endpoint response?The Items endpoint may not return all items under certain conditions, even if those items appear in other endpoints like /categories?expand=items or when filtered directly by ID. This can happen due to:
- Item visibility or status: Items may be marked inactive or hidden, affecting their inclusion in general queries. Ensure your request does not include unintended filters (such as
filter=hidden=false) that might exclude valid items. - Pagination limits: The /items endpoint returns a maximum of 100 items per request by default. If the merchant has more than 100 items, you must use the offset and limit query parameters to page through the full list, such as
?limit=100&offset=100. - Import inconsistencies: Items imported via XLS may have metadata or formatting issues that affect how they’re indexed.
- API caching or sync delays: Recently added or updated items may not immediately appear in bulk queries.
If the item appears in the Merchant Dashboard and other filtered endpoints but not in the general /items response, it may require backend investigation. Email your request to Developer Relations: [email protected] with the test merchant, developer ID, and the item ID.
How can I connect a Single Page App (Vue or React) to Clover to access inventory data?
To connect a Single Page Application (SPA) built with Vue or React to Clover and retrieve inventory data, you can use the Clover REST API. Specifically, the GET /v3/merchants/{mId}/items endpoint allows you to fetch inventory items. This API can be integrated into your web app using JavaScript, which is compatible with both Vue and React frameworks. See Inventory API – Get Items endpoint.
If you plan to expand functionality later, such as enabling online food ordering, you can build on this integration by exploring additional Clover APIs.
Can I prevent age-restricted items (alcohol or tobacco) from being pulled via Clover API and keep them device-only?
Clover allows merchants to mark items as age-restricted directly from the Clover Dashboard or device. You can assign restrictions such as Alcohol, Tobacco, OTC drugs, or Vitamins & Supplements, and specify a minimum age for purchase. These items are flagged with an “ID required” badge and require age confirmation during checkout.
However, the Clover API does not automatically exclude age-restricted items from responses. To prevent these items from being pulled into your app, you must implement custom filtering logic in your API calls. You can:
- Use the Clover filtering capabilities to exclude items based on category, tags, or custom metadata.
- View and manage age-restricted items using the dashboard’s filter options.
For more information, see the Manage age-restricted items tutorial.
How can I sync selected inventory items across multiple merchant locations using the Clover REST API?
Clover does not currently support syncing specific inventory items across multiple merchant locations through a single API call. To update items across locations, you must make individual API requests for each merchant location. If your merchants are set up as multi-location merchants, they can manage shared inventory manually through the Merchant Dashboard. However, programmatic syncing of selected items must be handled by your application logic, which can identify the target merchant locations, loop through each location, and send an update request for the selected items. For assistance with MultiLocation setup, merchants should contact Clover support.
How can I synchronize Clover inventory data with my own website or web app?
To sync Clover inventory with your external system, you’ll need to use a combination of Clover REST APIs and webhooks. Clover requires a developer app to facilitate webhooks for real-time synchronization, and using them in conjunction with the Inventory API. You can:
- Use the Inventory API to fetch item data: Send a GET request to
/v3/merchants/{merchantId}/items
Authenticate using a private token generated from your Clover Developer account. - Set up Webhooks in the Developer Dashboard to listen for inventory changes: Provide a callback URL and verify it using a POST request containing a
verificationCode.
Can I pass line item details when using Clover Connect SDK for payments?
Clover Connect SDK is primarily designed for payment prompts and does not support passing inventory line items. Order creation and inventory management must be handled on your external POS system. You can initiate the payment prompt through Clover, but line item details will not be available in the orders search.
Updated 1 day ago
