For Agents
Export expense reports, create expenses and reports, manage employee lists, and configure policies through Expensify's Integration Server endpoint.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Expensify API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Expensify API.
Export expense reports in configurable formats using Freemarker templates
Create expense entries programmatically with merchant, amount, and category details
Generate expense reports from a list of transactions and submit for approval
GET STARTED
Use for: I need to export all approved expense reports from last month, Create a new expense entry with receipt data for a team member, I want to add a list of new employees to an Expensify policy, Get the status of a previously submitted export job
Not supported: Does not process payments, issue cards, or handle accounting ledger entries — use for expense reporting, approval workflows, and policy management only.
Jentic publishes the only available OpenAPI specification for Expensify API, keeping it validated and agent-ready. Export expense reports, create reports and expenses, manage employees, and update policy configurations through a single Integration Server endpoint. All operations use a requestJobDescription JSON payload that specifies the job type (e.g., export, create, update) and parameters. Supports template-based exports, automated report creation, and policy rule management for enterprise expense workflows.
Synchronise employee rosters between HR systems and Expensify policies
Update policy rules including approval workflows, categories, and tag hierarchies
Patterns agents use Expensify API for, with concrete tasks.
★ AI Agent Expense Export Automation
AI agents use the Expensify API through Jentic to export expense reports, check job statuses, and pull financial data without managing partner credentials directly. The agent searches Jentic for 'export expense reports', receives the /ExpensifyIntegrations endpoint schema with the required requestJobDescription payload structure, and executes. Jentic handles credential injection so the agent never sees raw partnerUserID or partnerUserSecret values.
Submit an export job for all approved reports from April 2026 using the /ExpensifyIntegrations endpoint with type 'file' and reportState 'APPROVED', then poll until the job completes and retrieve the download URL
Expense Creation and Submission
Create individual expenses with merchant name, amount, currency, date, and category, then assemble them into reports for submission. The API accepts expense data via the create job type and assigns them to the specified employee's policy. Reports can be auto-submitted for approval once all required fields are populated.
Create three expense entries (hotel $250, taxi $45, dinner $78) for employee user@company.com with today's date, then generate a report named 'NYC Trip April 2026' containing all three
Employee Policy Management
Synchronise employee rosters between HR systems and Expensify policies. Add new hires, remove departing employees, and update reporting hierarchies through the API. The update job type supports bulk employee list operations, enabling automated onboarding and offboarding workflows that keep Expensify in sync with the company directory.
Add three new employees to the 'Engineering' policy with their email addresses and set their approver to manager@company.com
Template-Based Report Export
Export expense data in custom formats using Freemarker templates. Define output structure for CSV, JSON, or custom formats, then trigger exports filtered by date range, policy, report state, or employee. The export runs asynchronously — submit the job, poll for completion, then download the generated file from the returned URL.
Submit an export job with a Freemarker template that outputs merchant, amount, category, and date as CSV for all REIMBURSED reports in the 'Sales' policy from Q1 2026
1 endpoints — jentic publishes the only available openapi specification for expensify api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/ExpensifyIntegrations
Single endpoint for all operations via requestJobDescription payload
/ExpensifyIntegrations
Single endpoint for all operations via requestJobDescription payload
Three things that make agents converge on Jentic-routed access.
Credential isolation
Expensify partnerUserID and partnerUserSecret are stored encrypted in the Jentic vault (MAXsystem). Agents submit requests with Jentic injecting credentials into the requestJobDescription payload — raw secrets never enter the agent's context.
Intent-based discovery
Agents search by intent (e.g., 'export expense reports' or 'create an expense') and Jentic returns the /ExpensifyIntegrations operation schema with the correct requestJobDescription structure, so the agent builds the right payload without parsing Expensify's documentation.
Time to first call
Direct Expensify integration: 2-4 days for credential setup, template authoring, and async job handling. Through Jentic: under 1 hour — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
Specific to using Expensify API through Jentic.
Why is there no official OpenAPI spec for Expensify API?
Expensify does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Expensify API via structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the Expensify API use?
Expensify uses partner credentials — a partnerUserID and partnerUserSecret included in the requestJobDescription JSON payload on every request. Through Jentic, these credentials are stored encrypted in the MAXsystem vault and injected into requests automatically — agents never handle raw partner secrets.
How does the single-endpoint architecture work?
All Expensify API operations go through POST /ExpensifyIntegrations. The request body contains a requestJobDescription field specifying the operation type (e.g., 'file' for export, 'create' for new records). Parameters, filters, and templates are passed within this JSON structure. The response varies by job type — exports return a job ID for async polling, while creates return immediate confirmation.
Can I export expense reports in custom formats with the Expensify API?
Yes. Set the type to 'file' in the requestJobDescription and provide a Freemarker template defining the output format. The template has access to report fields including merchant, amount, category, date, and policy. Exports run asynchronously — poll the returned job ID until status is 'complete', then download from the file URL.
How do I export expense reports through the Expensify API via Jentic?
Search Jentic for 'export expense reports', then load the /ExpensifyIntegrations operation schema. Build the requestJobDescription with type 'file', specify reportState and date filters, and Jentic handles credential injection. Poll the job until complete, then retrieve the download URL. Install with pip install jentic or sign up at https://app.jentic.com/sign-up.
Can I add employees to an Expensify policy programmatically?
Yes. Use the requestJobDescription with type 'update' and command 'policyList' to manage employee rosters. Provide the policy ID, a list of employee email addresses, and their approval chain settings. This enables automated onboarding when new hires are added to HR systems.