Capability library / Application package

Navan package v1.0.0

Read Navan expense transactions and receipt links, and batch-update accounting attributes on existing transactions. Updates do not change approval status. Covers the Expense API, not travel booking or payments.

Review state: Reviewed · Distributable: yes, digest matches the release manifest

This page describes AAES Govern’s controls. AAES Operate has private-work permissions, operational reviews and recorded-spend limits; it does not include Govern. About AAES Govern

Before you enable this package

Keep api.navan.com. Supply date windows for list requests. EU tenants also require the X-ta-region=EU header and the EU token endpoint.

Read each action's effects and exclusions below. Before installation, also read the complete package requirements, including credential issuance, scope, expiry, and provider permissions. These are deployment prerequisites, not capabilities this package supplies.

Capabilities (5)

Each capability below is one registered operation. The complete package JSON includes its exact network destination allowlist. The repository stores it at packs/navan.json and embeds a copy in the release binary.

Risk tiers. R0 is the minimum for reads. R2 is the minimum for write, create, update, execute, and invoke. R3 is the minimum for delete, send, pay, deploy, approve, share, and transfer. Operators can raise these levels. A minimum tier does not measure the operation's business or confidentiality risk.

Field guide. Endpoint is the service address and request method. Connector is the adapter that makes the call. Custody describes how the credential is held; the credential reference identifies the value to resolve. Data class sets handling requirements: pii means personal data, financial means financial records, and internal means internal organizational data.

navan.expense.card-transactions.read v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://api.navan.com/v1/expense/card-transactions
Connector
http
Custody
customer_vault
Credential ref
secret-ref-navan-expense-token
Data class
financial

Read expense card transactions.

Query the Navan card transactions collection (virtual and physical cards): amounts, merchants, cardholders, GL coding, policy flags and approval status, classified as financial data. A date filter is required on every call. The registered path covers the collection read only — the generic multi-type read and single-transaction reads are registered separately or not at all.

navan.expense.manual-transactions.read v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://api.navan.com/v1/expense/manual-transactions
Connector
http
Custody
customer_vault
Credential ref
secret-ref-navan-expense-token
Data class
financial

Read expense manual transactions.

Query the manual transactions collection: employee manual expense submissions, including reimbursements and payroll expenses, with amounts, submitters, GL coding and approval status, classified as financial data. A date filter is required on every call. The registered path covers the collection read only.

navan.expense.transactions.read v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://api.navan.com/v1/expense/transactions
Connector
http
Custody
customer_vault
Credential ref
secret-ref-navan-expense-token
Data class
financial

Read expense transactions.

Query the generic transactions collection across the documented types (card, Connect card, manual, repayments, fees, adjustments, daily rebates, disputes) selected with the type parameter, classified as financial data. A date filter is required on every call. The registered path covers the collection read only — single-transaction reads (GET /v1/expense/transactions/{id}) are not registered by this pack.

navan.expense.receipts.read v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://api.navan.com/v1/expense/transactions/receipts
Connector
http
Custody
customer_vault
Credential ref
secret-ref-navan-expense-token
Data class
financial

Read expense receipts.

Query receipt links for transactions matching a transaction-type array (type[]) and a date filter — both required per the reference: the response carries transaction ids and presigned receipt and e-receipt URLs (presigned; the reference states they should not be cached), classified as financial data. The registered path covers the collection read only — the download endpoints redirect (302) to presigned URLs on another host, AAES does not follow redirects, and the presigned URLs themselves are not registered destinations.

navan.expense.transactions.update v1.0.0R2

Kind
tool
Action
update
Endpoint
PATCH https://api.navan.com/v1/expense/transactions
Connector
http
Custody
customer_vault
Credential ref
secret-ref-navan-expense-token
Data class
financial

Update expense transactions.

Batch-update accounting attributes on existing transactions (up to 100 per call): ERP sync status (updates to SYNCED only), external transaction references, GL code number and name (must be set together), HR fields (department, region, subsidiary, cost center) and custom field values.

Result: a 200 response is request-accepted — per-transaction outcomes are reported in results[].status — and Navan documents that updated data may take up to 4 hours to appear in GET results. Registered as update at the minimum R2 tier; the reference's documented updatable field list for this PATCH contains no approval-status field, so the call cannot change approval status and is not an approval action.

Requires the Expense: Write scope on the credential; Navan documents that read-only credentials receive 403 from this endpoint.

Credential reference

The credential field names a reference rather than containing credential material. Packs are designed not to contain secrets; the format checks cover only known credential formats and cannot prove that arbitrary text contains no secrets. Installing a package registers its capabilities. Configure the provider credentials, endpoints, and network access, then test the integration in your environment before enabling it.

Reference
secret-ref-navan-expense-token
Custody
customer_vault
Injection
header (Authorization)

Configure the value and injection format specified in the package. Assign responsibility for credential rotation and revocation, restrict provider permissions, and keep credential material out of logs and responses.

Complete credential requirements

An OAuth 2.0 access token for the Navan Expense API, held in the client's own secret manager. The stored material must be the complete Authorization header value (scheme included): 'Bearer', one separating space, then the access token — 'Bearer <token>'.

An external token process mints it with the client credentials grant: an admin creates API credentials (client_id and client_secret) in the Navan platform, and the process POSTs grant_type=client_credentials with the client_id and client_secret to https://app.navan.com/ta-auth/oauth/token (https://app-fra.navan.com/ta-auth/oauth/token for EU companies) and stores the returned access token; the client secret is itself secret material and stays with that external process.

Navan documents tokens as valid for 12 hours by default, so the external process must refresh on expiry — the executor must not attempt renewal itself; the API credentials can be rescoped or revoked in the Navan platform at any time, and an expired or revoked value fails closed. Do not pass an explicit scope parameter at token time: Navan documents that an explicit scope overrides and limits the token's permissions.

Least privilege: credentials are read-only by default — only the PATCH capability needs the Expense: Write scope, so a read-only deployment should not grant it, and a deployment that enables the update capability must accept exactly that one write scope. EU deployments must also send the X-ta-region=EU header on every request; that wiring is a pre-enablement review item.

Executor hygiene: the token must live only in executor memory for the lifetime of a call, must never be written to logs, traces or diagnostics, and must never appear in crash reports; the executor's memory, log and crash handling are otherwise the deployment's review.

Resources

  • navan-expense (api, financial): https://api.navan.com/v1/expense

Technical package and review record

Complete provider requirements and exclusions

Use Navan API credentials whose scopes cover only what these capabilities need; the pack does not create them. This pack registers only the Navan Expense API surface documented in the official developer portal: the retrieval endpoints under https://api.navan.com/v1/expense and the batch PATCH update on /v1/expense/transactions.

All reads are collection reads only — the single-transaction read (GET /v1/expense/transactions/{id}) and the single-transaction receipt endpoints exist in the API and are deliberately not registered, and every list call must carry a date filter (Navan rejects requests without one; windows are capped at 93 days).

The PATCH capability is registered as update at the minimum R2 tier: it changes accounting attributes on existing transactions (ERP sync status, GL codes, HR fields, custom field values) — it is request-accepted with per-transaction status in the response, and the reference's documented updatable field list for this PATCH (transaction id, ERP sync status — updates to SYNCED only — plus external ERP reference fields, GL code number and name, the HR fields department/region/subsidiary/cost_center, and custom field values) contains no approval-status field, so the update cannot change approval status and is not an approval action.

Documented exclusions, framed as what this pack does not register: travel bookings — the official token example shows a bookings:read scope and Navan operates a Booking Data API, but its endpoint reference is not part of the official documentation retrieved for this review, so this pack registers no bookings endpoint; users — no users endpoint appears in the retrieved official Expense API documentation; expense approval — the reviewed documentation describes no approve endpoint, and the PATCH update cannot set approval_status; receipts download redirects (the redirect target is a presigned URL on another host and AAES does not follow redirects); the hosted Navan MCP server (mcp.navan.com), a separate user-context surface; and every write other than the registered PATCH.

EU deployments: Navan documents that EU companies must send the X-ta-region=EU header on every request and use the EU token endpoint — the deployment must wire that header before enabling against an EU tenant.

Transaction data may take up to 4 hours to appear in GET results after an update. AAES has not been certified by Navan; the endpoints here are configuration to review and test; the vendor has not endorsed it.

Source annotation for https://docs.navan.com/api/ (retrieved 2026-09-21): Authentication: OAuth 2.0 client-credentials grant, 12-hour default token validity, Expense: Write scope requirement for PATCH, explicit-scope override warning Source annotation for https://docs.navan.com/api/ (retrieved 2026-09-21): section 1 'Retrieve Navan card transactions' (GET /v1/expense/card-transactions): required date filter, card-specific fields Source annotation for https://docs.navan.com/api/ (retrieved 2026-09-21): section 3 'Retrieve manual transactions' (GET /v1/expense/manual-transactions) Source annotation for https://docs.navan.com/api/ (retrieved 2026-09-21): section 9 'Generic API — retrieve all transaction types' (GET /v1/expense/transactions): required type array and date filter, _type discriminator Source annotation for https://docs.navan.com/api/ (retrieved 2026-09-21): section 11c 'Get receipt links by date filter' (GET /v1/expense/transactions/receipts): required type[] and date parameter, presigned URLs not to be cached Source annotation for https://docs.navan.com/api/ (retrieved 2026-09-21): section 'Update transactions endpoint (batch update with PATCH)' (PATCH /v1/expense/transactions): updatable field groups contain no approval-status field, per-transaction results[].status, 4-hour GET visibility delay

Download the complete package JSON for exact network allowlists, credential requirements, exclusions, and setup notes. Read these requirements before installation.

The full documentation review record is supplied in the evaluation package. The evaluation package runs in your environment and comes only with the paid design partnership. This page reproduces the source links and review block; the full record is available for evaluation. Discuss a design partnership to inspect it before installation.

Review block

This section reproduces the review block recorded in the pack file. The evidence and approval record is separate: for a reviewed pack, it is in the evaluation materials and in the release binary's embedded assets.

Review completed: 2026-10-22

3 sources, retrieved 2026-09-21

Current documentation links are navigation aids. They do not change the package, its historical sources or its review date. Review dates describe a documentation review, not a live integration test. No package is provider-endorsed or yet tested against a live provider tenant.

Release identity

SHA-256 of the pack file bytes: 1c360a83f6db2e70d2989e1919ccb579d288fa9752c6e7a925a9463ece291db2

Distributable: yes, digest matches the release manifest. Editing a package changes its release identity. A deployment plan checks its own file digests; it does not restore reviewed status or authenticate approval.