Ellipse Gradient for Header

Navan Integration Guide

Connect Navan travel, booking, expense, and corporate-card data with enterprise systems through approved APIs, selected event notifications, and scheduled workflows.

Navan integration options at a glance

Navan provides API-based integration capabilities for approved customers and partners, with REST APIs expected to be the primary mechanism for exchanging travel, booking, user, traveler, and expense data. Selected products or integration programs may provide webhook-style notifications, although event coverage, delivery guarantees, and registration requirements must be confirmed with Navan. Where events are unavailable, Martini can run scheduled workflows that retrieve paginated, incrementally changed data and maintain synchronization checkpoints. OAuth-style, token-based authorization is expected, but grant types and scopes require confirmation. Martini can securely consume Navan APIs, transform objects, apply accounting and lifecycle rules, and expose normalized APIs to downstream systems.

Integration pointSupported by Navan?Common use casesHow Martini supports it
REST APIsLimitedApproved customers and partners can use Navan APIs to exchange travel, booking, user, traveler, and expense data. Exact resources, versions, filters, pagination, and tenant access require confirmation.Martini can consume documented Navan REST endpoints from workflows, transform responses, apply business rules, and call downstream APIs.
Webhooks and outbound callbacksLimitedNavan may provide webhook-style notifications for selected products, objects, or integration programs. Event coverage, registration, signatures, retries, and delivery guarantees must be confirmed.Martini can expose an API endpoint to receive supported Navan notifications, validate and normalize the payload, and launch downstream workflows. Scheduled polling remains an alternative.
Bulk, asynchronous, or batch APIsNot confirmedNo generally available Navan bulk or asynchronous API was verified. Large transfers should use documented pagination, date filters, and incremental synchronization unless Navan provides a tenant-specific export.Martini can orchestrate paginated workflows, checkpoints, throttling, and controlled concurrency without assuming a bulk endpoint.
File and attachment APIsNot confirmedNavan expenses may include receipts or other attachments, but a generally available public attachment API was not confirmed. Receipt URLs, binary endpoints, exports, or authenticated links require verification.Martini can process an endpoint or file format if Navan makes it available, while keeping receipt content and sensitive data out of logs.
AuthenticationLimitedApproved Navan integrations are expected to use token-based authorization, potentially OAuth 2.0, with credentials and scopes determined during customer or partner onboarding.Martini can store credentials in secrets, configure environment-specific API authentication, refresh tokens where supported, and restrict workflows to required permissions.
Scheduled synchronizationYesScheduled polling is the recommended fallback when webhook coverage is unavailable or incomplete. Incremental synchronization should use supported timestamps, filters, pagination, and checkpoints.Martini can trigger workflows on a schedule, persist checkpoints, use overlap windows, and apply idempotent upsert logic.
Database or analytics accessNoNo direct Navan database connection or generally available database access was verified.Martini should use Navan APIs or vendor-provided exports and can write normalized results to an approved target database when required.

How Navan exposes data and business events

Navan REST APIs

Navan REST APIs are the expected primary integration mechanism for approved customers and partners. They may provide access to travel, booking, user, traveler, and expense resources, but the available API version, objects, filters, pagination model, and tenant permissions must be confirmed with Navan.

Martini implementation pattern

Martini implementation pattern: a workflow authenticates with the approved Navan token model, retrieves pages of resources, applies incremental filters and transformations, and writes results to one or more target systems. Martini stores checkpoints and separates transient transport failures from validation and authorization errors.

Implementation sequence

Authenticate using Navan-approved credentials and scopes
Retrieve the current page of Navan resources
Apply pagination and incremental synchronization rules
Map Navan objects to the canonical model
Validate required fields and business status
Write the result to the target system and store the checkpoint

Navan webhooks and callbacks

Navan may provide webhook-style notifications for selected products, objects, or partner programs. Coverage should be confirmed for the required Trips, Bookings, Expenses, Expense Reports, or Users events, together with signature validation, replay protection, retry behavior, and delivery guarantees.

Martini implementation pattern

Martini implementation pattern: an exposed Martini API receives a supported notification, validates the request according to Navan's documented security model, and uses the notification as a trigger to retrieve the authoritative resource before applying downstream rules. If the event catalog does not cover the required object, Martini uses scheduled polling instead.

Implementation sequence

Receive the supported Navan notification
Validate the event authenticity and replay controls
Resolve the affected Navan object identifier
Retrieve the authoritative resource when required
Apply mapping, routing, and business rules
Acknowledge or record the event and process failures through retry handling

Navan scheduled synchronization

Scheduled synchronization is a practical fallback when Navan webhook coverage is unavailable, incomplete, or not enabled for the customer. The workflow should use the pagination and update-time filtering documented for each accessible endpoint.

Martini implementation pattern

Martini implementation pattern: a scheduler starts a controlled workflow, reads the last successful checkpoint, retrieves an overlap window of changed objects, and performs idempotent upserts. The workflow records successful progress and routes unrecoverable objects to an exception process.

Implementation sequence

Start the workflow on a controlled schedule
Load the last successful synchronization checkpoint
Retrieve changed Navan objects using supported filters
Process all response pages with throttling
Upsert objects using stable Navan identifiers
Persist the new checkpoint and report exceptions

Common Navan integration patterns

Pattern 1: Sync Navan expenses to a finance platform

When to use this pattern

Use this pattern when approved Navan Expenses and Expense Reports must be transferred to SAP S/4HANA, NetSuite, Oracle Fusion Cloud Financials, or another finance platform. It supports scheduled incremental processing and can validate accounting data before posting.

Integration direction
Navan
Martini
NetSuite
Example Mapping
Navan FieldCanonical FieldTarget Field
Expense.idexternalExpenseIdexternalId
Expense.amounttransactionAmountamount
Expense.currencycurrencyCodecurrency
Expense.costCentercostCenterCodedepartment
Martini implementation pattern

A scheduled Martini workflow retrieves changed Expenses and Expense Reports, validates approval status and accounting dimensions, enriches records with reference data, and posts eligible transactions. Stable Navan identifiers prevent duplicates; transient API failures are retried, while invalid accounting data is routed to an exception flow.

Martini capabilities used
  • workflows
  • API consumption
  • scheduling
  • data mapping
  • business rules
  • validation
  • error handling

Pattern 2: Provision Navan users and travelers from HR

When to use this pattern

Use this pattern when Workday, Okta, or another authoritative employee source controls who should have Navan access and which organizational attributes are associated with a traveler. The pattern supports employee changes and deactivation where the required Navan resources are enabled.

Integration direction
Workday
Martini
Navan
Example Mapping
Navan FieldCanonical FieldTarget Field
Worker.employeeIdemployeeIdentifierUser.externalId
Worker.emailworkEmailUser.email
Worker.departmentdepartmentCodeTraveler.department
Worker.activeStatusemploymentStatusUser.status
Martini implementation pattern

Martini retrieves employee changes, normalizes identifiers and organization fields, applies create, update, or deactivation rules, and calls the supported Navan User or Traveler API. The workflow maintains an external-ID mapping, avoids duplicate provisioning, and routes permission or validation failures for review.

Martini capabilities used
  • workflows
  • API consumption
  • data mapping
  • business rules
  • idempotent processing
  • secrets management
  • error handling

Pattern 3: Publish Navan trips and bookings to an internal travel service

When to use this pattern

Use this pattern when internal portals, duty-of-care processes, or reporting services need normalized Trip and Booking information. Use supported Navan event notifications when available; otherwise use incremental polling.

Integration direction
Navan
Martini
Internal travel data service
Example Mapping
Navan FieldCanonical FieldTarget Field
Trip.idtripIdtripReference
Booking.confirmationReferencebookingReferenceconfirmationCode
Booking.statusbookingStatusstatus
Booking.startDateTimestartDateTimedepartureTime
Martini implementation pattern

Martini receives a supported notification or polls Navan for changed Trips and Bookings, retrieves authoritative details, normalizes time zones and status transitions, and exposes or calls a controlled internal API. Cancellations and changes update existing objects, while duplicate notifications are safely ignored using object identifiers.

Martini capabilities used
  • API consumption
  • API exposure
  • workflows
  • data mapping
  • business rules
  • idempotency
  • monitoring

Pattern 4: Route corporate-card expenses for review

When to use this pattern

Use this pattern where the customer has Navan corporate-card capabilities and the relevant card or expense resources are available. It enriches card-related Expenses with organizational data and routes exceptions before finance export.

Integration direction
Navan
Martini
SAP S/4HANA
Example Mapping
Navan FieldCanonical FieldTarget Field
CorporateCard.idcardReferencepaymentCardReference
Expense.merchantmerchantNamesupplierName
Expense.amountgrossAmountamount
Expense.approvalStatusapprovalStateworkflowStatus
Martini implementation pattern

A Martini workflow retrieves supported Corporate Cards and related Expenses, masks sensitive payment data, enriches transactions with employee and accounting attributes, and applies approval, amount, and exception rules. Eligible items are exported to finance; failed or incomplete items are held for controlled retry or manual resolution.

Martini capabilities used
  • workflows
  • API consumption
  • data mapping
  • data protection
  • business rules
  • validation
  • error handling

Applications commonly integrated with Navan

Navan commonly participates in enterprise travel, expense, HR, finance, identity, and notification architectures. The applications below represent practical integration targets or sources; specific Navan endpoints, provisioning methods, and product availability should be confirmed for the customer tenant.

Application Scenario Direction Martini Pattern
Workday Synchronize employees, departments, managers, cost centers, and employment status with Navan Users and Travelers. Workday → Martini → Navan Martini retrieves employee changes from Workday, maps stable employee identifiers and organizational attributes, validates lifecycle status, and performs idempotent updates to supported Navan User or Traveler resources. Failures are routed for review without repeating successful updates.
SAP S/4HANA Export approved Navan Expenses and Expense Reports for accounting, reimbursement, and financial posting. Navan → Martini → SAP S/4HANA A scheduled Martini workflow retrieves eligible Navan expense data, validates legal entity, currency, tax, cost-center, and approval fields, transforms the payload to SAP requirements, and records object-level reconciliation results.
NetSuite Transfer approved travel expenses and corporate-card transactions with departments, projects, vendors, and accounting dimensions. Navan → Martini → NetSuite Martini polls supported Navan Expenses and Expense Reports, enriches them with accounting reference data, applies approval and duplicate rules, and calls the NetSuite API with retry handling for transient failures.
Oracle Fusion Cloud Financials Move approved Navan expenses and accounting attributes into corporate finance and reimbursement processes. Navan → Martini → Oracle Fusion Cloud Financials Martini maps Navan expense and report structures into Oracle financial objects, validates required accounting segments, separates business exceptions from transport errors, and persists checkpoints for safe incremental processing.
Okta Coordinate employee lifecycle and access-provisioning workflows for Navan users where the required Navan provisioning mechanism is available. Okta → Martini → Navan Martini consumes approved identity or HR lifecycle changes, resolves the corresponding Navan User or Traveler identifier, and applies create, update, or deactivation rules using stable identifiers and environment-specific credentials.
Slack Notify employees or finance teams about travel approvals, booking changes, expense exceptions, or synchronization failures. Navan → Martini → Slack Martini receives supported Navan events or detects changes through polling, evaluates notification rules, removes sensitive fields, and sends concise messages to approved Slack destinations while retaining correlation identifiers.
Microsoft Teams Deliver internal travel, expense, approval, and integration-status notifications to operational teams. Navan → Martini → Microsoft Teams A Martini workflow normalizes Navan event or polling results, applies audience and sensitivity rules, and publishes selected notifications to Teams through the target system's supported API or endpoint.

How to build a Navan integration in Martini

Objective

Establish the Navan integration using the customer-approved authorization model and environment-specific configuration.

Instructions in Martini

  • Confirm the accessible Navan API resources, tenant authorization process, grant type, token endpoint, and scopes.
  • Store client credentials, tokens, and other sensitive values in Martini secrets.
  • Configure separate development, test, and production settings.

Objective

Select an event-driven or scheduled entry point based on the Navan objects and event coverage available to the customer.

Instructions in Martini

  • Use a Martini API endpoint for supported Navan webhook or callback notifications.
  • Use a scheduler when event coverage is unavailable, partial, or not enabled.
  • Define the required polling interval and synchronization overlap window.

Objective

Read authoritative Navan data using supported pagination, filtering, and incremental synchronization controls.

Instructions in Martini

  • Retrieve the affected resource after receiving an event when the notification is not authoritative.
  • Use documented page, cursor, offset, or link-based pagination.
  • Persist a checkpoint based on the last successfully processed change.

Objective

Coordinate resource retrieval, enrichment, validation, routing, target calls, and checkpoint updates in a maintainable Martini workflow.

Instructions in Martini

  • Separate transport, transformation, business-rule, and target-system stages.
  • Control concurrency to respect Navan rate limits.
  • Use correlation identifiers and Navan object IDs throughout the workflow.

Objective

Convert Navan Travelers, Users, Trips, Bookings, Expenses, and Expense Reports into the target system's canonical and application-specific models.

Instructions in Martini

  • Map stable external identifiers and preserve source references.
  • Normalize currencies, dates, time zones, statuses, and accounting dimensions.
  • Avoid logging receipt contents, payment-card data, or unnecessary personal information.

Objective

Validate business state and determine whether each item should be posted, updated, ignored, or routed for review.

Instructions in Martini

  • Validate approval state, legal entity, cost center, currency, tax, and required target fields.
  • Treat booking cancellations and expense status changes as explicit state transitions.
  • Use idempotent upsert rules to prevent duplicate processing.

Common Navan data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
TravelersRepresent employees or users whose travel profiles, bookings, and expenses are managed in Navan.Workday, Okta, internal travel services, reporting platformsMartini maps stable employee and traveler identifiers, applies lifecycle and privacy rules, and performs idempotent synchronization where supported.
TripsRepresent travel itineraries and associated booking information.Internal travel services, duty-of-care platforms, reporting systemsMartini retrieves or receives supported changes, normalizes itinerary data and time zones, and preserves trip identifiers for updates and reconciliation.
BookingsRepresent flight, hotel, rail, car rental, or other travel reservations associated with a Trip.Travel portals, duty-of-care services, employee applicationsMartini maps supplier, confirmation, segment, status, and cancellation information and treats cancellations as state transitions rather than deletions.
ExpensesRepresent individual travel or corporate-card expense transactions.SAP S/4HANA, NetSuite, Oracle Fusion Cloud Financials, data warehousesMartini validates currency, tax, merchant, cost-center, project, and approval fields before transforming and posting transactions.
Expense ReportsGroup Expenses for review, approval, reimbursement, or export.ERP and finance platforms, reimbursement processes, reporting systemsMartini reconciles report totals with individual Expenses where available, filters by approval state, and records object-level synchronization status.
UsersRepresent Navan platform users, administrators, or employees.Workday, Okta, identity and access processesMartini uses stable external identifiers for create, update, and deactivation workflows and restricts access according to approved tenant permissions.

Authentication and security considerations

Token-based authorization

Navan integrations are expected to use an approved token-based application model, potentially OAuth 2.0. Confirm the grant type, token endpoint, scopes, and tenant authorization process with Navan before implementation.

Secrets and permissions

Store client credentials, client secrets, access tokens, and refresh tokens in Martini secrets rather than in workflows or mappings. Use separate credentials for each environment and limit scopes to the required Navan objects and operations.

Sensitive travel and expense data

  • Restrict access to traveler, itinerary, expense, receipt, and card-related data according to organizational permissions.
  • Do not log receipt contents, payment-card data, or unnecessary personal information.
  • Preserve correlation identifiers without exposing sensitive payloads in operational logs.

Operational considerations for Navan integrations

Rate limits and pagination

Confirm Navan request limits, burst behavior, and pagination for each endpoint. Use controlled concurrency, server-side filters, and exponential backoff for transient failures or HTTP 429 responses.

Incremental synchronization

Persist the last successful checkpoint and use a small overlap window for clock skew and late-arriving updates. Process pages incrementally and use stable Navan identifiers for idempotent writes.

Schema and status changes

Do not assume that booking, cancellation, approval, reimbursement, or expense statuses remain fixed. Validate required fields, preserve source identifiers, and separate transport, authorization, validation, and business exceptions.

Testing and observability

Test creation, updates, cancellations, rejected expenses, missing accounting data, token failures, rate limits, and duplicate notifications. Monitor synchronization lag, failed records, checkpoint progress, webhook delivery failures, and target reconciliation results.

Why use Martini instead of scripts or point-to-point integrations?

Orchestrate more than an API call

Scripts often combine authentication, pagination, mapping, retries, business rules, and target-system calls in a single code path. Martini organizes these concerns into reusable workflows and APIs that are easier to operate and extend.

Adapt to Navan access and event coverage

Navan resource access and webhook coverage can depend on the customer agreement and enabled products. Martini supports both event-driven workflows where supported and scheduled incremental synchronization where polling is required.

Maintain reliable data movement

  • Apply consistent transformations across finance, HR, identity, and internal applications.
  • Use validation, idempotency, checkpoints, retries, and exception handling as part of the integration design.
  • Expose normalized APIs so downstream systems do not each implement separate Navan mappings.

Frequently asked questions

How can Navan be integrated with enterprise systems?

Navan can be integrated through approved REST APIs for travel, booking, user, traveler, and expense data. Selected products or programs may also provide webhook-style notifications. Where events are unavailable, enterprise systems can use scheduled, paginated, incremental synchronization, subject to Navan tenant access and product configuration.

Can Martini integrate with Navan?

Yes. Martini can consume Navan REST APIs, use approved token-based authentication, receive supported webhook or callback events, and run scheduled workflows when event coverage is limited. It can map Navan objects into finance, HR, identity, reporting, notification, and internal application models.

Do I need a connector to integrate Navan with Martini?

No. A dedicated Navan connector is not required. Martini can integrate using Navan's confirmed native integration mechanisms, including approved REST APIs, supported webhook or callback events, scheduled polling, and any tenant-specific files or endpoints made available by Navan.

Is there any extra Lonti cost to integrate Navan with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate Navan. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from Navan, cloud infrastructure, or other third-party systems based on subscription, usage, and deployment model.

Which Navan integration method should an enterprise use?

REST APIs are the expected primary method for approved integrations and should be used when the required resources are available. Webhooks or callbacks can support selected event-driven scenarios, but coverage must be confirmed. Scheduled polling with pagination and checkpoints is the fallback for unsupported or incomplete event coverage.

Can Navan send events or webhooks to Martini?

Navan may support webhook-style notifications for selected products, objects, or partner programs, but complete event coverage and delivery behavior were not confirmed. Martini can receive supported notifications through an exposed API; otherwise, a scheduled workflow can poll the relevant Navan REST endpoints.

How does Martini synchronize Navan data?

Martini can retrieve changed Navan objects using the pagination, date filters, and incremental controls documented for the applicable endpoint. It can persist synchronization checkpoints, use an overlap window for late updates, map data to target schemas, and perform idempotent upserts using stable Navan identifiers.

How does Martini handle Navan errors, retries, and duplicate data?

Martini can distinguish transient HTTP failures from authorization, validation, and business-status errors. Workflows can apply controlled retries and throttling for transient failures, route unrecoverable records to exception handling, and use stable Navan object identifiers and target idempotency rules to prevent duplicates.

Can Martini expose an API façade for Navan data?

Yes. Martini can expose a controlled API that normalizes selected Navan Trips, Bookings, Users, Travelers, Expenses, or Expense Reports for downstream applications. The façade can centralize authentication, field mapping, business rules, validation, and access control without requiring every consumer to integrate directly with Navan.