# Expensify

Manage Expensify: expense reports, exports, policies via Integration Server. Exposes **14 actions** covering the full API surface
the agent needs - read and write.

## What it can do

| Method | What it does |
| --- | --- |
| `expensify_get_employee_list` | List all employees in the organization - GetEmployeeList job. |
| `expensify_get_expense_report_list` | List expense reports with optional filters - GetExpenseReportList. |
| `expensify_get_expense_report` | Retrieve a single expense report by ID - GetExpenseReport. |
| `expensify_create_expense_report` | Create a new expense report - CreateExpenseReport. |
| `expensify_approve_expense_report` | Approve an expense report - ApproveExpenseReport. |
| `expensify_reject_expense_report` | Reject an expense report - RejectExpenseReport. |
| `expensify_reimburse_expense_report` | Mark a report for reimbursement - ReimburseExpenseReport. |
| `expensify_get_expense_list` | List expenses with optional filters - GetExpenseList. |
| `expensify_export_expenses` | Export expenses to an external system - ExportExpensesToIntegration. |
| `expensify_get_policy_list` | List all company expense policies - GetPolicyList. |
| `expensify_get_policy` | Retrieve a single policy by ID - GetPolicy. |
| `expensify_create_policy` | Create a new expense policy - CreatePolicy. |
| `expensify_update_policy` | Update an existing policy - UpdatePolicy. |
| `expensify_get_report_analytics` | Get aggregated analytics/insights on reports - GetReportAnalytics. |

## How to get credentials

This connector uses an **API key / token**. Create one in the provider
dashboard, then paste it into FlyMyAI:

- **`EXPENSIFY_PARTNER_USER_ID`** - Expensify - Settings - Account - API - generate credentials. (https://www.expensify.com/tools/integrations/)
- **`EXPENSIFY_PARTNER_USER_SECRET`** - Secret paired with the partner user ID.

## Fields to fill in FlyMyAI

| FlyMyAI field | Where it comes from |
| --- | --- |
| `EXPENSIFY_PARTNER_USER_ID` | Expensify - Settings - Account - API - generate credentials. |
| `EXPENSIFY_PARTNER_USER_SECRET` | Secret paired with the partner user ID. |

## Troubleshooting

- **`401 Unauthorized` / `403 Forbidden`** - the token is wrong, expired, or missing a required scope - regenerate it.
- **`429 Too Many Requests`** - you hit the provider rate limit; retry after a short backoff.
- **Unexpected `4xx` on writes** - double-check required fields; the agent confirms before write actions.

## Links

- [Expensify API documentation](https://integrations.expensify.com/Integration-Server/doc)
