> For the complete documentation index, see [llms.txt](https://docs.harmony.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.harmony.io/integrations/saas-applications/mesh-payments.md).

# Mesh Payments

Connect Mesh Payments to sync employee corporate card data and expense information into Harmony

Mesh Payments is a corporate spend management platform that provides companies with visibility and control over employee expenses and corporate card usage. Connecting Mesh Payments to Harmony imports your Mesh employee directory and attributes corporate card spend to the application it was spent on, so IT teams can see which software the organization is paying for and which employee each charge belongs to.

#### What the Mesh Payments integration enables

| Capability            | Description                                                                                                                                                         |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Employee Sync         | Import employee profiles from Mesh Payments - name, email, permission level, and account status - synced every 24 hours                                             |
| SaaS Spend Visibility | Attribute corporate card expenses to the application they were spent on and to the employee the card is assigned to, synced every 6 hours using incremental updates |
| Permission Visibility | See each employee's Mesh permission level and account status alongside the rest of their IT footprint                                                               |

***

#### Prerequisites

* **Mesh Payments account**: An active Mesh Payments account. The Mesh Integrations page is reachable by an Administrator or by a user granted technical admin permissions (such as **Manage Integrations**)
* **Partner API consent**: Your Customer Success Manager at Mesh must enable Harmony as a partner on your account before you can grant consent (see Step 1 below)
* **Mesh sync enabled for your Harmony workspace**: Mesh Payments sync is enabled per workspace by Harmony and is off by default

{% hint style="warning" %}
**Mesh sync must be switched on for your workspace before any data flows.** Even after every step below is completed, Harmony will not collect Mesh data until the integration is enabled for your workspace. [Contact Harmony support](mailto:support@harmony.io) to have it enabled.
{% endhint %}

***

#### Connect Mesh Payments to Harmony

**Step 1: Request partner access from your Mesh CSM**

1. Contact your Mesh Payments Customer Success Manager and request that the Harmony partner integration be enabled on your account
2. Request both scopes: **Expenses** and **Employees**
3. Wait for confirmation that the partner option has been enabled before proceeding

{% hint style="info" %}
This step is required because Harmony connects via the Mesh Payments Partner API. Your Customer Success Manager must enable the partner on the Mesh backend before the consent option becomes visible to you.
{% endhint %}

**Step 2: Grant consent in Mesh**

1. Log in to the [Mesh Payments platform](https://app.meshpayments.com)
2. Navigate to **Settings** > **Integrations** > **Manage Partners**
3. Locate the partner entry for **Harmony**
4. Select both required scopes: **Expenses** and **Employees**
5. Confirm and save the consent

{% hint style="warning" %}
**Grant both scopes.** The **Employees** scope backs the employee profile sync and the **Expenses** scope backs the card expense sync. If only one is granted, the other data set will not be collected.
{% endhint %}

**Step 3: Retrieve your Mesh Company ID**

Harmony uses your Mesh **Company ID** to authenticate against the Mesh Partner API on your behalf.

1. Locate your **Company ID** in Mesh under **Settings** > **Integrations** > **Manage Partners**
2. If it is not shown there, ask your Mesh CSM to provide it

{% hint style="info" %}
Treat your Company ID as you would any internal account identifier - share it only with authorized Harmony and Mesh representatives.
{% endhint %}

**Step 4: Connect in Harmony**

1. Log in to your Harmony dashboard
2. Navigate to **Settings** > **Integrations**
3. Search for **Mesh Payments** and click **Connect**
4. Paste the **Company ID** you retrieved from Mesh
5. Click **Save**

No API key or secret is required from you - Harmony authenticates to Mesh with its own partner credentials, and the Company ID selects your account.

{% hint style="info" %}
You can access this documentation directly from the integration settings page. Navigate to **Settings** > **Integrations** > **Mesh Payments** to find a link to this setup guide without leaving the platform.
{% endhint %}

***

#### Disconnect Mesh Payments from Harmony

1. Log in to your Harmony dashboard
2. Navigate to **Settings** > **Integrations**
3. Find **Mesh Payments** and click the integration card
4. Click **Disconnect**
5. Confirm the disconnection when prompted

Once disconnected, Harmony stops syncing data from Mesh Payments. Previously synced data remains available in Harmony.

To also revoke Harmony's access on the Mesh side, return to **Settings** > **Integrations** > **Manage Partners** in Mesh and remove Harmony's consent, or contact your Mesh CSM.

***

#### What Harmony Syncs from Mesh Payments

| Data              | Description                                                                                                                                                                                 |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Employee profiles | Full name, email, permission level, and account status (active, pending, or inactive), synced every 24 hours                                                                                |
| License tier      | Whether the employee holds a Mesh seat or is a contact-only record with no platform access                                                                                                  |
| Card expenses     | Amount and currency, merchant, fund name and fund type, expense date, spend category, reimbursable flag, and the employees who reported and were assigned the charge - synced every 6 hours |

{% hint style="info" %}
**Card expenses are attributed per application.** Mesh groups spend into funds and tags software funds with a `SAAS` fund type, so each expense is recorded against the fund's name as the application (falling back to the merchant name when no fund name is present) and against the employee the card is assigned to. This is how Mesh contributes SaaS spend data to your application inventory.
{% endhint %}

{% hint style="info" %}
**Only card expenses are collected.** Harmony requests expenses of type `CARD_EXPENSE`. Reimbursements and other Mesh expense types are not synced.

Card expenses are also fetched incrementally: after the first sync, only expenses dated later than the most recent one already collected are requested, which keeps each sync cycle fast.
{% endhint %}

{% hint style="warning" %}
**Mesh Payments does not provide sign-in or usage data.** Mesh exposes no login-activity or software-usage API to Harmony, so this integration contributes inventory only. Unlike integrations that report sign-in activity, you will not see last-login dates, sign-in events, or per-user activity metrics for Mesh.
{% endhint %}

{% hint style="info" %}
**One Mesh company per connection.** A Mesh organization can contain several companies. Harmony syncs the single company identified by the Company ID you entered - other entities in the same Mesh organization are not included.
{% endhint %}

No per-user credential management is required. Once connected with your Mesh Company ID, Harmony keeps your data up to date on a continuous basis.

***

#### Permissions Explained

Harmony requests two consent scopes on the Mesh Partner API. Both are granted by you in Mesh (Step 2) and can be revoked by you at any time.

| Scope       | Description                            | Purpose                                                                      |
| ----------- | -------------------------------------- | ---------------------------------------------------------------------------- |
| `Employees` | Access to your Mesh employee directory | Sync employee profiles, permission levels, account status, and license tier  |
| `Expenses`  | Access to your Mesh expense records    | Sync card expenses and attribute SaaS spend per application and per employee |

Harmony reads Mesh data only - the integration never creates, modifies, or cancels cards, funds, or expenses in your Mesh account.

***

#### Troubleshooting

<details>

<summary>No data appears after connecting</summary>

**Possible causes:**

* Mesh sync has not been enabled for your Harmony workspace - it is off by default
* Consent was not granted in Mesh, or only one of the two scopes was selected
* The first sync cycle has not run yet - employee profiles refresh every 24 hours and card expenses every 6 hours

**Solutions:**

1. [Contact Harmony support](mailto:support@harmony.io) to confirm Mesh sync is enabled for your workspace
2. In Mesh, go to **Settings** > **Integrations** > **Manage Partners** and confirm both **Expenses** and **Employees** are selected for Harmony
3. Wait for the next sync cycle to complete

</details>

<details>

<summary>Data stopped syncing, or an access denied error appears</summary>

**Possible causes:**

* Consent for Harmony was revoked in Mesh, or the partner enablement was removed on the Mesh backend. Mesh then rejects Harmony's requests and the sync reports a *Mesh access denied - check partner permissions* error
* Consent for only one scope was removed, in which case only that data set stops updating

**Solutions:**

1. In Mesh, go to **Settings** > **Integrations** > **Manage Partners** and re-grant consent to Harmony for both **Expenses** and **Employees**
2. If the Harmony partner entry is no longer listed, contact your Mesh CSM to re-enable it

</details>

<details>

<summary>The sync runs without errors but no employees are imported</summary>

**Possible causes:**

* The Company ID entered in Harmony is incorrect. Harmony's connection check validates its own partner credentials but not your Company ID, so a wrong or mistyped value returns an empty employee list instead of an error

**Solutions:**

1. Verify the Company ID in Mesh and re-enter it in Harmony under **Settings** > **Integrations** > **Mesh Payments**
2. If you are unsure which value is correct, ask your Mesh CSM to confirm your Company ID

</details>

***

#### Data & Privacy

<details>

<summary>Key privacy principles</summary>

For information about how Harmony handles your data, see our [Privacy Policy](https://harmony.io/privacy).

* Harmony accesses Mesh Payments data in read-only mode and does not modify any data in your Mesh account
* Consent is per-scope and can be revoked at any time from the Mesh **Manage Partners** page, by contacting your Mesh CSM, or by disconnecting the integration in Harmony

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.harmony.io/integrations/saas-applications/mesh-payments.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
