Navix.FreightAudit.Client 0.0.7

dotnet add package Navix.FreightAudit.Client --version 0.0.7
                    
NuGet\Install-Package Navix.FreightAudit.Client -Version 0.0.7
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Navix.FreightAudit.Client" Version="0.0.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Navix.FreightAudit.Client" Version="0.0.7" />
                    
Directory.Packages.props
<PackageReference Include="Navix.FreightAudit.Client" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Navix.FreightAudit.Client --version 0.0.7
                    
#r "nuget: Navix.FreightAudit.Client, 0.0.7"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Navix.FreightAudit.Client@0.0.7
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Navix.FreightAudit.Client&version=0.0.7
                    
Install as a Cake Addin
#tool nuget:?package=Navix.FreightAudit.Client&version=0.0.7
                    
Install as a Cake Tool

An unofficial .NET 10 client for the Navix Public API, generated with Microsoft Kiota. The checked-in OpenAPI document describes Navix's v1 integration and v2 endpoints, including endpoints marked provisional.

This is an independent project maintained by Taylor White (@taylorchasewhite). It is not authored, supported, or endorsed by Navix. The generated client and models are derived from Navix's public OpenAPI specification.

Packages and requirements

Both projects target net10.0 and require the .NET 10 SDK to build.

Package Contents
Navix.FreightAudit.Client ApiClient, request builders, and the handwritten NavixResponseCasing helper
Navix.FreightAudit.Models Generated request/response models and Kiota runtime dependencies

The client references the models package. This source revision builds version 0.0.7 of both packages; merging a PR does not publish them to a NuGet feed.

Install the client version available on your configured feed:

dotnet add package Navix.FreightAudit.Client

For local consumption, reference the client project instead:

dotnet add reference C:\path\to\navix-api\Navix.FreightAudit\Navix.FreightAudit\Navix.FreightAudit.csproj

Authentication and usage

Navix requires both an API key (X-Api-Key) and tenant UUID (X-Tenant-Uuid) on every request. Obtain these from your Navix account team; production and sandbox tenants have different UUIDs. The generated default base URL is https://api.navix.io. The SDK does not automatically discover credentials.

using Microsoft.Kiota.Abstractions.Authentication;
using Microsoft.Kiota.Abstractions.Serialization;
using Microsoft.Kiota.Http.HttpClientLibrary;
using Navix.FreightAudit;

var apiKey = Environment.GetEnvironmentVariable("NAVIX_API_KEY")
    ?? throw new InvalidOperationException("Set NAVIX_API_KEY.");
var tenantUuid = Environment.GetEnvironmentVariable("NAVIX_TENANT_UUID")
    ?? throw new InvalidOperationException("Set NAVIX_TENANT_UUID.");
var orderExternalId = Environment.GetEnvironmentVariable("NAVIX_ORDER_EXTERNAL_ID")
    ?? throw new InvalidOperationException("Set NAVIX_ORDER_EXTERNAL_ID.");

// Register once at startup, before constructing the client.
NavixResponseCasing.Register(ParseNodeFactoryRegistry.DefaultInstance);

using var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("X-Api-Key", apiKey);
httpClient.DefaultRequestHeaders.Add("X-Tenant-Uuid", tenantUuid);

// Headers above provide authentication; the adapter need not add credentials.
using var adapter = new HttpClientRequestAdapter(
    new AnonymousAuthenticationProvider(), httpClient: httpClient);
var client = new ApiClient(adapter);

var invoices = await client.V2.Orders[orderExternalId].Invoices.GetAsync();

Reuse the client/adapter for requests to Navix only; do not reuse this authenticated HttpClient for unrelated hosts. Kiota exposes endpoints through request builders such as client.V2.Orders and client.Integration, not through convenience methods such as Orders.CreateAsync. Some write endpoints return 202 Accepted: acceptance does not mean processing has completed. Do not use provisional endpoints without explicit authorization from your Navix account team.

Latest specification refresh

Refreshed from https://docs.navix.io/ on 2026-10-20. The document still identifies its API version as v1-v2; it does not provide a separate dated release number. It now contains 33 paths and 118 component schemas.

Compared with the previous snapshot, this refresh includes:

  • GET /v2/invoices/{invoiceUuid}/exceptions and models for open exceptions and work instructions.
  • Customer and vendor address/contact request and response models.
  • Updated v2 invoice audit-result service details and other upstream schema/documentation changes.

For invoice exceptions, resolved items are omitted from subsequent responses. Only Flex-rule exceptions and internal Navix errors are returned, as documented upstream.

Regenerating the client

Use PowerShell 7.3 or later and Kiota 1.32.4, matching the checked-in generation lock. If Kiota is not installed:

dotnet tool install --global Microsoft.OpenApi.Kiota --version 1.32.4

From the repository root:

.\Navix.FreightAudit\Update-Client.ps1
dotnet build .\Navix.FreightAudit\Navix.FreightAudit.sln -c Debug
dotnet build .\Navix.FreightAudit\Navix.FreightAudit.sln -c Release

The script downloads the OpenAPI data embedded in the public Redoc page, normalizes JSON response media types, and generates the client in a temporary directory. It copies request builders into the client project and models into the models project, removes obsolete generated C# files, updates the Kiota lock, and preserves handwritten files. If Navix changes its documentation page format, the script fails explicitly instead of silently using an old snapshot. A blob:https://docs.navix.io/... download URL is browser-session-local and cannot be used as a stable source URL. Review upstream contract changes before publishing; regeneration does not increment package versions automatically.

Response content types

The public specification labels six JSON responses as text/json. Without normalization, Kiota generates unstructured Stream responses instead of typed models. The refresh script changes these response media types to application/json in the local specification:

  • GET /v2/orders/{orderExternalId}/invoices
  • GET /v2/documents/metadata/{documentUuid}
  • GET /v2/documents/orders/{orderExternalId}
  • GET /v2/documents/metadata/orders/{orderExternalId}
  • POST /v2/documents/approved
  • POST /v2/orders/approved

Response property casing

Navix responses can use PascalCase property names even though the specification declares camelCase. Kiota binds property names case-sensitively, so these fields would otherwise deserialize as null (see microsoft/kiota#7060).

The handwritten NavixResponseCasing.Register helper lowercases the first character of JSON property names before deserialization. For example, it maps Uuid to uuid and leaves orderExternalId unchanged. Call it once on the parse-node registry used by your adapter, as shown above. Custom adapters using a different registry must register the helper on that registry. This workaround does not modify the generated models or outgoing request serialization.

Building packages

Both projects generate .nupkg and .snupkg files on build, under their respective bin\<Configuration> directories. The README is included in both packages. There are currently no automated test projects in the solution; builds do not verify live API behavior.

License

No license file is currently included in this repository. Do not assume an MIT or other open-source license grant from the earlier README's claim. Navix's API documentation and specification remain subject to their applicable terms.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.0.7 280 10/20/2026
0.0.6 137 7/28/2026
0.0.5 139 6/29/2026
0.0.4 134 6/26/2026
0.0.3 130 5/26/2026
0.0.2 242 10/1/2025
0.0.1 246 10/1/2025