> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt # Linking Clover as a source **Alpha release** This source is currently in **alpha**. The interface and available tables may change. ![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_9608fcca70) ![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_dark_a92b0e022d) Let AI connect your sources for you Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog. `npx @posthog/wizard warehouse` ![PostHog Wizard hedgehog](https://res.cloudinary.com/dmukukwp6/image/upload/wizard_3f8bb7a240.png) ![](https://res.cloudinary.com/dmukukwp6/image/upload/wizard_3f8bb7a240.png)Let AI connect your sources for you The Clover connector syncs your [Clover (Fiserv)](https://www.clover.com/) point-of-sale and payment data into PostHog, including orders, payments, customers, inventory items, employees, and more. > **Note:** This source uses full refresh syncing only and has not yet been verified against a live Clover account. ## Prerequisites - A Clover merchant account - A merchant API token (generated in your Clover developer dashboard) - Your alphanumeric **Merchant ID** from the Clover dashboard - Your merchant's **region**: North America, Europe, Latin America, or Sandbox Each source imports data from **one merchant**. To import data from multiple merchants, create a separate source for each. ## Sync modes All Clover tables use **full refresh** syncing. Each sync re-downloads every row for the selected tables. Incremental and webhook sync modes are not supported. Full refresh ensures that updates to existing records (such as a modified order or updated customer) are always captured, since Clover's API does not expose verified incremental filters. ## Adding a data source 1. In PostHog, go to the [Data pipeline page](https://app.posthog.com/pipeline/sources) and click the **Sources** tab. 2. Click **\+ New source** and select **Clover** by clicking **Link**. 3. Select your **Region**: North America, Europe, Latin America, or Sandbox. 4. Enter your **Merchant ID** (the alphanumeric identifier from your Clover dashboard). 5. Enter your **API token** (a merchant API token with the required permissions — see below). 6. *Optional:* Add a prefix to your table names. 7. Click **Next**. The data warehouse then starts syncing your Clover data. You can see details and progress in the [data pipeline sources tab](https://app.posthog.com/pipeline/sources). ## Required permissions Your API token must have the correct permissions for the tables you want to sync. Grant these in the Clover developer dashboard: | Tables | Required permission | | --- | --- | | `orders`, `line_items` | Read orders | | `payments`, `refunds`, `credit_refunds` | Read payments | | `items`, `categories`, `modifier_groups`, `modifiers`, `discounts`, `tax_rates` | Read inventory | | `customers` | Read customers | | `employees`, `shifts` | Read employees | | `tenders` | Read merchant | If your token is missing a permission, PostHog shows an error when you try to sync that table. Grant the permission in the Clover dashboard and try again. ## Configuration | Option | Type | Required | | --- | --- | --- | | `Region` | select | Yes | | `Merchant ID` | text | Yes | | `API token` | password | Yes | ## Supported tables | Table | Description | Sync method | Incremental field | Primary key | | --- | --- | --- | --- | --- | | `orders` | Orders rung up on the merchant's Clover devices, with amounts and payment states. | Full refresh | — | id | | `line_items` | Individual items on each order. | Full refresh | — | order\_id, id | | `payments` | Payments taken against orders, one row per tender attempt. | Full refresh | — | id | | `refunds` | Refunds issued against payments. | Full refresh | — | id | | `credit_refunds` | Credit refunds recorded by the merchant. | Full refresh | — | id | | `items` | Inventory items the merchant sells. | Full refresh | — | id | | `categories` | Categories used to group inventory items on the register. | Full refresh | — | id | | `modifier_groups` | Groups of modifiers (such as toppings or sizes) that can be applied to items. | Full refresh | — | id | | `modifiers` | Options that change an inventory item's price or preparation. | Full refresh | — | id | | `customers` | Customer records saved on the merchant account. | Full refresh | — | id | | `employees` | Employees who can sign in to the merchant's Clover devices. | Full refresh | — | id | | `shifts` | Clock-in and clock-out shifts recorded by employees. | Full refresh | — | id | | `tenders` | Tender types the merchant accepts, such as cash, credit or a custom tender. | Full refresh | — | id | | `discounts` | Discounts configured on the merchant account and available at the register. | Full refresh | — | id | | `tax_rates` | Tax rates the merchant applies to items and orders. | Full refresh | — | id | The Clover source supports 15 tables: - **Commerce:** `orders`, `line_items`, `payments`, `refunds`, `credit_refunds` - **Inventory:** `items`, `categories`, `modifier_groups`, `modifiers` - **People:** `customers`, `employees`, `shifts` - **Settings:** `tenders`, `discounts`, `tax_rates` A few things to note: - All Clover timestamps are **epoch milliseconds**. Tables with a creation timestamp also include a `created_at` column converted to UTC. - Money amounts are integers in the merchant's **smallest currency unit** (for example, cents for USD). - `line_items` are fetched per order. The `order_id` and `order_created_time` columns link each line item back to its parent order. ## Troubleshooting ### "Clover rejected your credentials" Your API token is invalid or expired. Generate a new merchant API token in the Clover developer dashboard and update the source in PostHog. ### 403 Forbidden error Your API token is missing the required permission for the table you're trying to sync. Check the [required permissions](#required-permissions) table above, grant the missing permission in the Clover dashboard, and sync again. ### "Clover could not find this merchant" The merchant ID or region is incorrect. Double-check both values in your Clover dashboard and update the source configuration. ### "Clover supports full refresh only" You've set a table to incremental sync mode. Clover only supports full refresh. Change the sync mode to **full refresh** in the table settings. For more help, see the [Data Warehouse troubleshooting guide](/docs/data-warehouse/troubleshooting.md). ### Still have questions? Ask PostHog AI ### Was this page useful? HelpfulCould be better