# Expensify

### Overview

The Veza integration for Expensify enables discovery of users, workspaces, and roles within the expense management system.

Use it to:

* Search for any Expensify user by department or who they submit expenses to.
* Review Expensify Role and Workspace assignments for all users or specific Workspaces.
* Create rules and alerts when changes occur (such as when a new Policy Admin is detected or a Workspace is added).

See [notes and supported entities](#notes-and-supported-entities) for more details.

### Configuring Expensify

The integration uses the Expensify Enterprise Import/Export API to fetch the data.

* To connect, Veza will need your Expensify `partnerUserID` and `partnerUserSecret`.
* Veza recommends creating a unique user and using their API credentials for the integration. The integration user should have the `AUDITOR` role to gather the required authorization metadata.

To get the User ID and User Secret, log in to Expensify and go to the Integrations page: `https://www.expensify.com/tools/integrations/`.

* If you've already generated these for another application, you will need to use the existing ID and Secret. Otherwise you can regenerate the credentials.
* See the [official documentation](https://integrations.expensify.com/Integration-Server/doc/#authentication) for more details.

### Configuring Expensify on the Veza Platform

1. In Veza, open the **Integrations** page.
2. Click *Add Integration* and pick Expensify as the type of integration to add
3. Enter the required information and *Save* the configuration

| Field               | Notes                                                                     |
| ------------------- | ------------------------------------------------------------------------- |
| Insight Point       | Choose whether to use the default data plane or a deployed Insight Point. |
| Name                | A friendly name to identify the unique integration.                       |
| Partner User ID     | Expensify User ID for making API calls.                                   |
| Partner User Secret | Expensify Secret Key to use for the connection.                           |

### Notes and Supported Entities

Veza creates Access Graph entities to represent Expensify Users and Expensify Groups. You can create filters and rules based on the following attributes.

#### Expensify Users

Expensify Users represent individual employees who log to report or approve expenses, or any other task on the platform.

| Attribute    | Notes                                                    |
| ------------ | -------------------------------------------------------- |
| `Id`         | Expensify User ID                                        |
| `Name`       | Expensify User Name                                      |
| `submits_to` | Email address of User that this User submits Expenses to |

#### Expensify Workspaces (as Groups)

Expensify Workspaces define common rules for expense management, used to organize departments, teams, or other groups of users.

| Attribute         | Notes                           |
| ----------------- | ------------------------------- |
| `Name`            | Name of Workspace               |
| `Type`            | Workspace Type (e.g. Corporate) |
| `output_currency` | Currency                        |
| `owner`           | Email of owner user             |

#### Expensify Roles

Roles define the relationship an individual users has to a Workspace, such as `Policy Admin`, `Auditor` or `Employee`, and represent a set of permissions.

| Attribute | Notes               |
| --------- | ------------------- |
| `Name`    | Expensify Role Name |


---

# Agent Instructions: 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:

```
GET https://docs.veza.com/4yItIzMvkpAvMVFAamTf/integrations/integrations/expensify.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
