# Expensify

![Expensify-Logo-Horizontal.png](https://assets.relyanceuat.xyz/images/docs/5785004495373/5784635031437.png)
Expensify is a software company that develops an expense management system for personal and business use. It helps automate expense management and receipt tracking and makes it easy for individuals to track their transactions and submit expenses to their employer.

In order to integrate Expensify with Relyance AI you will need a **Partner User ID** and **Partner User Secret**.

#### In Expensify:

![Expensify-1.png](https://assets.relyanceuat.xyz/images/docs/5785004495373/5784826088077.png)
1. Login to your Expensify account.
2. Go to [https://www.expensify.com/tools/integrations/](https://www.expensify.com/tools/integrations/)
3. If not already set up you will see a page saying that the account isn’t set up for integration server access. Click on the button where it asks you if you want to set it up.
4. Here you should see:

5. Make note of both the **partnerUserID** and **partnerUserSecret** to be used in Relyance AI. You won’t be able to access the partnerUserSecret value again so store it somewhere secure.

**In the Relyance AI application:**

1. Login to your Relyance account.
2. Navigate to the **Settings** Menu in the bottom left-hand side.
3. Select **Integrations**.
4. Click on the **Vendor Integration** tab.
5. Find the **Expensify** integration card and click it to open its connections.
6. Under **Authentication Method**, choose **Custom**.
8. Paste the **Partner User ID** and **Partner User Secret** into their respective fields.

![Expensify-2.png](https://assets.relyanceuat.xyz/images/docs/5785004495373/5784837858829.png)

9. Click **Save.**
10. At this point, you should see the following result on the Vendor Integrations page:

![Expensify-3.png](https://assets.relyanceuat.xyz/images/docs/5785004495373/5784965748493.png)

11. Congratulations, you are now connected to **Expensify**.

<!-- auth-methods:begin (generated from the integration catalog; do not hand-edit) -->

## Authentication methods and fields

Pick one of these under **Authentication Method** on the connection wizard's **Authentication** step. This table is generated from the integration catalog, so it always matches what the form actually asks for.

| Method | Required | Optional |
| --- | --- | --- |
| **Custom** | `Partner User ID`, `Partner User Secret` (secret), `Export Report Days` | — |

<!-- auth-methods:end -->

<!-- terraform-examples:begin (generated from the integration catalog; do not hand-edit) -->

## Manage this integration with Terraform

Connections for this integration can be managed as code with the [Relyance Terraform provider](https://registry.terraform.io/providers/Relyance/relyance/latest). Non-secret fields go in `auth.params`; secret fields go in `auth.secrets_wo`, which is write-only — never stored in Terraform state. Rotate secrets by bumping `auth.secrets_wo_version`.

```hcl
resource "relyance_integration_connection" "expensify" {
  vendor = "expensify"
  name   = "<your connection name>"

  auth = {
    method = "partner-credentials"
    params = {
      partner_user_ID = "<partner_user_ID>"
      export_report_days = "30"
      data_storage_location = "us"
    }
    # Secret fields are write-only: sent to Relyance, never stored in state.
    secrets_wo = {
      partner_user_secret = var.expensify_partner_user_secret
    }
    secrets_wo_version = 1
  }

  scans = { "data-inspection" = { enabled = true } }
}
```

<!-- terraform-examples:end -->
