# Navan

```json
{
  "name": "Navan",
  "slug": "navan",
  "url": "https://composio.dev/toolkits/navan",
  "markdown_url": "https://composio.dev/toolkits/navan.md",
  "logo_url": "https://logos.composio.dev/api/navan",
  "categories": [
    "scheduling & booking"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-11-12T05:35:28.632Z"
}
```

![Navan logo](https://logos.composio.dev/api/navan)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Navan MCP or direct API to review business travel, query expenses, manage users, and inspect audit data through natural language.

## Summary

Navan is a business travel and expense platform with APIs for travel, transactions, users, and audits.
It helps companies centralize travel operations, spending data, and policy controls.

## Categories

- scheduling & booking

## Toolkit Details

- Tools: 26

## Images

- Logo: https://logos.composio.dev/api/navan

## Authentication

- **S2s Oauth2**
  - Type: `custom`
  - Description: S2s Oauth2 authentication for Navan.
  - Setup:
    - Configure S2s Oauth2 credentials for Navan.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- List recent business travel transactions
- Review unusual employee expense activity
- Show users with missing custom fields

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `NAVAN_DOWNLOAD_TRANSACTION_RECEIPT` | Download Transaction Receipt | Download a transaction receipt, electronic receipt, or missing-receipt affidavit. Navan redirects to a five-minute presigned URL; the redirect is followed immediately and the final PDF, JPEG, or PNG is returned as a file. |
| `NAVAN_GET_CUSTOM_FIELD` | Get Custom Field | Get one company Navan Expense custom-field definition by its provider field name. Use the custom-field name, such as customField1 or projects, rather than the field's display label. |
| `NAVAN_GET_CUSTOM_FIELD_JOB` | Get Custom Field Job | Get the current status, operation counts, timestamps, and up to 50 errors for an asynchronous Navan custom-field option job. |
| `NAVAN_GET_EXPENSE_USER` | Get Expense User | Get one eligible-company Navan Expense user by ID. Site-admin users are not returned and produce a not-found response. |
| `NAVAN_GET_TRANSACTION` | Get Transaction | Get one Navan Expense transaction by its ID for an ad-hoc lookup. The response preserves the concrete _type discriminator and provider-specific fields. Use the generic bulk-by-ID transaction action instead of repeatedly calling this action for a list of IDs. |
| `NAVAN_GET_TRANSACTION_RECEIPT_LINKS` | Get Transaction Receipt Links | Return seven-day presigned receipt, electronic-receipt, and affidavit URLs for one Navan Expense transaction. This endpoint returns JSON links and does not follow the separate receipt-download redirect. |
| `NAVAN_IMPORT_TRIP` | Import Trip | Import an external trip and any supplied flight, hotel, rail, car, or black-car bookings into Navan. |
| `NAVAN_LIST_ADJUSTMENTS` | List Adjustments | Return one cursor page of credit and debit adjustments for a documented date search and optional filters. Navan documents at least one single-date filter or matching date range for normal search. Dates are YYYY-MM-DD UTC, cannot precede the first day of the month two months before the current month, and ranges may not exceed 93 days. |
| `NAVAN_LIST_AUDIT_LOGS` | List Audit Logs | Return one cursor page of ERP and accounting-settings audit events for eligible companies within a required RFC3339 window of at most 31 days. |
| `NAVAN_LIST_BOOKINGS` | List Bookings | Return one page of company booking rows filtered by booking, trip, status, type, or epoch-second time ranges, optionally including transactions. |
| `NAVAN_LIST_CARD_TRANSACTIONS` | List Card Transactions | Return one cursor page of Navan card transactions for a documented date search and optional transaction filters. At least one date filter is required; dates use YYYY-MM-DD UTC, the earliest allowed date is the first day of the month two months before the current month, and ranges may span at most 93 days. |
| `NAVAN_LIST_CONNECT_TRANSACTIONS` | List Connect Transactions | Return one cursor page of external card-integration transactions. At least one single-date or date-range filter is required; dates use YYYY-MM-DD UTC, must be within Navan's documented lookback, and ranges cannot exceed 93 days. |
| `NAVAN_LIST_CUSTOM_FIELDS` | List Custom Fields | List all Navan Expense custom-field definitions for the company. |
| `NAVAN_LIST_DAILY_REBATES` | List Daily Rebates | Return one cursor page of daily rebates for a required documented date search and optional transaction filters. |
| `NAVAN_LIST_DISPUTES` | List Disputes | Return one cursor page of Navan disputes, including provisional credits and reversals for EUR and GBP, for a required documented date search and optional transaction filters. |
| `NAVAN_LIST_EXPENSE_USERS` | List Expense Users | Return one cursor page of company Expense users filtered by text, enabled state, guest state, or administrator role. This endpoint is available only to eligible companies and excludes site-admin users. |
| `NAVAN_LIST_FEES` | List Fees | Return one cursor page of direct-reimbursement, foreign-exchange, and platform fees. Navan requires at least one single-date filter or date-range bound; dates are UTC YYYY-MM-DD, cannot precede the first day of the month two months before the current month, and complete ranges may not exceed 93 days. |
| `NAVAN_LIST_MANUAL_TRANSACTIONS` | List Manual Transactions | Return one cursor page of manual expenses, reimbursements, and payroll transactions. Navan requires at least one single-date filter or matching date range for normal search; dates are UTC YYYY-MM-DD, cannot precede the first day of the month two months before the current month, and ranges may not exceed 93 days. Parameter combinations remain permissive so Navan can apply its documented contract. |
| `NAVAN_LIST_REPAYMENTS` | List Repayments | Return one cursor page of user repayments for a required documented date search and optional transaction filters. |
| `NAVAN_LIST_STATEMENT_PAYMENTS` | List Statement Payments | Return one cursor page of statement payments and statement payment refunds for a required documented date search. Use activity_type to distinguish Statement Payment from Statement Payment Refund records. |
| `NAVAN_LIST_TMC_USERS` | List TMC Users | Return one documented page of TMC company users. |
| `NAVAN_LIST_TRANSACTION_ACTIVITIES` | List Transaction Activities | Return one cursor page of activity history for a single Navan Expense transaction, newest first. The transaction must belong to the connected company; optionally filter to public or administrator-private activity. This endpoint is available only to eligible companies. |
| `NAVAN_LIST_TRANSACTION_RECEIPTS` | List Transaction Receipts | Return one cursor page of receipt links for selected Navan transaction families and a documented date search. Transactions without receipts are included with null links; returned presigned URLs should not be cached. |
| `NAVAN_LIST_TRANSACTIONS` | List Transactions | Return one cursor page across selected Navan transaction families, or fetch a batch using repeated transaction IDs. Normal search requires transaction types and at least one documented date filter. Bulk-ID mode does not require type or date; Navan does not specify that they must be absent, so combinations are passed through. |
| `NAVAN_SUBMIT_CUSTOM_FIELD_OPTION_OPERATIONS` | Submit Custom Field Option Operations | Submit 1 to 5,000 CREATE, UPDATE, UPSERT, or DELETE operations for one Navan custom field as an asynchronous job. This action can delete options; poll the returned job ID to determine completion. |
| `NAVAN_UPDATE_TRANSACTIONS` | Update Transactions | Update supported ERP, accounting, HR, and custom-field values for 1 to 100 Navan transactions. Navan processes each item independently, so a successful HTTP response can contain both successful and failed item outcomes. Updated transaction data may take up to four hours to appear in GET results. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
```python
pip install composio composio_openai openai
```

```typescript
npm install @composio/core @composio/openai openai
```

#### Path 1, Step 2: Create a Composio session

Initialize Composio with the OpenAI Responses provider and create a session scoped to Navan
```python
import json
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
client = OpenAI()

session = composio.create(user_id="your-user-id", toolkits=["navan"])
tools = session.tools()
```

```typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["navan"] });
const tools = await session.tools();
```

#### Path 1, Step 3: Run Navan tools with your agent

Send a request, execute the Navan tool calls through the session, and print the final answer
```python
response = client.responses.create(
    model="gpt-5.6-sol",
    tools=tools,
    input=[{"role": "user", "content": "List the five most recent business travel transactions in Navan."}],
)

while True:
    tool_calls = [o for o in response.output if o.type == "function_call"]
    if not tool_calls:
        break
    results = composio.provider.handle_tool_calls(response=response, session=session)
    response = client.responses.create(
        model="gpt-5.6-sol",
        tools=tools,
        previous_response_id=response.id,
        input=[
            {"type": "function_call_output", "call_id": call.call_id, "output": json.dumps(results[i])}
            for i, call in enumerate(tool_calls)
        ],
    )

print(response.output_text)
```

```typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "List the five most recent business travel transactions in Navan." }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and your agent framework
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
```

#### Path 2, Step 2: Create a session with MCP enabled

Create a session scoped to Navan and read its MCP URL and headers
```python
from composio import Composio

composio = Composio()
session = composio.create(user_id="your-user-id", toolkits=["navan"], mcp=True)
```

```typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["navan"],
  mcp: true,
});
```

#### Path 2, Step 3: Connect your agent to the MCP server

Pass the session's MCP URL and headers to your agent and run a Navan request
```python
import asyncio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, AssistantMessage, TextBlock

options = ClaudeAgentOptions(
    mcp_servers={
        "composio": {
            "type": "http",
            "url": session.mcp.url,
            "headers": session.mcp.headers,
        }
    },
    system_prompt="You are a helpful assistant with access to Navan tools.",
    tools=[],
    allowed_tools=["mcp__composio__*"],
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query("List the five most recent business travel transactions in Navan.")
        async for message in client.receive_response():
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if isinstance(block, TextBlock):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "List the five most recent business travel transactions in Navan.",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
```

## Why Use Composio?

### 1. AI Native Navan Integration

- Supports both Navan MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your Navan travel, expense, transaction, user, audit, and custom-field data

### 2. Managed Auth

- Supports Navan's S2S OAuth2 authentication flow for secure company access
- Central place to manage, scope, and revoke Navan access
- Per user and per environment credentials instead of hard-coded secrets

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Navan
- Scoped, least privilege access to Navan travel and expense resources
- Full audit trail of agent actions to support review and compliance

## Use Navan with any AI Agent Framework

Choose a framework you want to connect Navan with:

- [ChatGPT](https://composio.dev/toolkits/navan/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/navan/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/navan/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/navan/framework/atomic-agent)

## Related Toolkits

- [Google Calendar](https://composio.dev/toolkits/googlecalendar) - Google Calendar is a time management service for scheduling meetings, events, and reminders. It streamlines personal and team organization with integrated notifications and sharing options.
- [Apaleo](https://composio.dev/toolkits/apaleo) - Apaleo is a cloud-based property management platform for hospitality businesses. It centralizes reservations, billing, and daily operations for smoother hotel management.
- [Appointo](https://composio.dev/toolkits/appointo) - Appointo is an appointment booking platform for Shopify stores. It lets businesses add online scheduling to their websites with zero coding.
- [Bart](https://composio.dev/toolkits/bart) - Bart is the Bay Area Rapid Transit system, providing fast public transportation across the San Francisco Bay Area. It helps commuters and travelers get real-time schedule info, plan routes, and stay updated on service changes.
- [Blue Pillow Hotels & Stays](https://composio.dev/toolkits/bluepillow) - Blue Pillow Hotels & Stays is a hotel and stay discovery platform offering live offers, recommendations, and booking handoff. It helps surface and compare real-time deals and validate bookings for smoother reservations.
- [Bookingmood](https://composio.dev/toolkits/bookingmood) - Bookingmood is commission-free booking software for rental businesses. It lets you manage reservations and sync bookings directly on your website.
- [Booqable](https://composio.dev/toolkits/booqable) - Booqable is a rental software platform for managing inventory, bookings, and reservations. It helps businesses streamline rentals and keep track of every item with ease.
- [Cal](https://composio.dev/toolkits/cal) - Cal is a meeting scheduling platform that offers shareable booking links and real-time calendar syncing. It streamlines the process of finding mutual availability to make scheduling effortless.
- [Calendarhero](https://composio.dev/toolkits/calendarhero) - Calendarhero is a powerful scheduling platform that streamlines your calendar management across multiple services. It helps you efficiently schedule, reschedule, and organize meetings without the back-and-forth.
- [Calendly](https://composio.dev/toolkits/calendly) - Calendly is an appointment scheduling tool that automates meeting invitations, availability checks, and reminders. It helps individuals and teams avoid endless email back-and-forth when booking meetings.
- [Calendly MCP](https://composio.dev/toolkits/calendly_mcp) - Calendly is an appointment scheduling platform that manages event types, availability, and invites. Use it to automate booking, reduce back-and-forth, and surface open times quickly.
- [Check Cherry](https://composio.dev/toolkits/check_cherry) - Check Cherry is a business management platform for photography and event service companies. It helps teams manage leads, bookings, appointments, offerings, payments, and workflows in one place.
- [Cronfree Time Scheduler](https://composio.dev/toolkits/cronfree_time_scheduler) - Cronfree Time Scheduler is an API-based scheduler for recurring webhook calls. Use it to create and remove timezone-aware schedules without running cron.
- [Etermin](https://composio.dev/toolkits/etermin) - eTermin is an online appointment scheduling platform for businesses to manage bookings. It streamlines client appointments, saving time and reducing scheduling conflicts.
- [Evenium](https://composio.dev/toolkits/evenium) - Evenium is an all-in-one platform for managing professional events, from planning to analysis. It helps teams simplify event logistics, boost engagement, and track every detail in one place.
- [Eventee](https://composio.dev/toolkits/eventee) - Eventee is a user-friendly event management platform for mobile and web. It boosts attendee engagement for in-person, virtual, and hybrid events.
- [Eventzilla](https://composio.dev/toolkits/eventzilla) - Eventzilla is an event management platform for creating, promoting, and running events. It streamlines ticketing, registration, and attendee coordination for organizers.
- [GoTable](https://composio.dev/toolkits/go_table) - GoTable is a restaurant management REST API for reservations, tables, guests, offers, availability, and webhooks. Use it to programmatically manage bookings, guest data, offers, and table availability.
- [Humanitix](https://composio.dev/toolkits/humanitix) - Humanitix is a not-for-profit ticketing platform that donates 100% of profits to charity. It empowers event organizers to make social impact with every ticket sold.
- [Ignav Flights](https://composio.dev/toolkits/ignav_flights) - Ignav Flights is a flight search API for airports, fares, itineraries, and booking links. It helps apps compare routes and prices fast, so travelers can find practical options sooner.

## Frequently Asked Questions

### Do I need my own developer credentials to use Navan with Composio?

Yes, Navan requires you to configure your own S2S OAuth2 credentials. Once set up, Composio handles secure credential storage and management for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
