# Expensify integrations

> Call the Expensify API from any Tray.ai workflow with the HTTP Connector.

**Canonical page:** https://tray.ai/connectors/expensify-integrations/
**Categories:** Finance
**Connects through:** HTTP Connector

## Overview

Expensify is an expense management app for capturing receipts, filing expense reports, routing approvals, and reimbursing employees, with corporate card reconciliation. Tray.ai connects to Expensify through the HTTP Connector, so your workflows can call the Expensify API alongside the rest of your stack.

## Use cases

### Reports

Read, create, and update reports in Expensify from any Tray.ai workflow. The Expensify API covers calls such as create a report and export reports.

- Create a report
- Export reports
- Update a report status

### Policies

Read, create, and update policies in Expensify from any Tray.ai workflow. The Expensify API covers calls such as list policies and get a policy.

- List policies
- Get a policy
- Create a policy

### Expense rules

Create and update expense rules in Expensify from any Tray.ai workflow. The Expensify API covers calls such as create an expense rule and update an expense rule.

- Create an expense rule
- Update an expense rule

### Expenses

Create expenses in Expensify from any Tray.ai workflow. The Expensify API covers calls such as create expenses and reconcile card expenses.

- Create expenses
- Reconcile card expenses

## Challenges Tray.ai solves

### Keeping Expensify credentials out of logs

A raw API call usually means pasting a key or token into the request, where it ends up in step inputs, logs, and screenshots.

**How Tray.ai helps:** Store Expensify credentials once as a Tray.ai authentication and reference them from the HTTP Connector. Tray.ai masks authentication values in logs, so the secret never shows up in a step's input or output.

### Going from the Expensify API docs to a working call

Translating an example request from API docs into a workflow step means copying the method, URL, headers, and body by hand.

**How Tray.ai helps:** Paste a cURL example from the Expensify API docs into the HTTP Connector and Tray.ai fills in the method, URL, headers, and body for you.

### Handling files and non-JSON responses

Not every API answers in JSON. Some return XML, files, or binary data, or expect a multipart upload.

**How Tray.ai helps:** The HTTP Connector parses JSON and XML responses, returns files you can pass to the next step, and sends multipart form data for uploads.

## Frequently asked questions

### Does Tray.ai connect to Expensify?

Yes. Tray.ai connects to Expensify through the HTTP Connector, which calls the Expensify API directly. Any call the Expensify API documents can run as a step in a Tray.ai workflow.

### How does Tray.ai authenticate with Expensify?

The Expensify API uses OAuth 2.0. You save it once as a Tray.ai authentication, and the HTTP Connector adds it to every request.

### Can I get a dedicated Expensify connector?

Expensify runs through the HTTP Connector rather than a dedicated connector. If your team wants one, the Tray.ai connector SDK can build a dedicated Expensify connector from the Expensify API.

## Learn more

- Intelligent Integration: https://tray.ai/platform/intelligent-ipaas/
- Merlin Agent Builder: https://tray.ai/platform/merlin-agent-builder/
- Agent Gateway for MCP: https://tray.ai/platform/agent-gateway/
- Book a demo: https://tray.ai/contact/
