Skip to main content

Getting Started with Freight Financials — Webhook Ingestion API

Introduction

Receives real-time event callbacks from freight audit providers (currently Navix) and publishes them to Kafka for downstream processing.

Request Flow

Navix ──POST──▶ APIM ──validates key, stamps X-Tenant-Id──▶ Webhooks API ──publishes──▶ Kafka
  1. Navix fires an HTTP callback when an event occurs (invoice created, dispute updated, etc.).
  2. Azure API Management (APIM) authenticates the caller via subscription key or OAuth client credentials, then forwards the request with an X-Tenant-Id header identifying the tenant.
  3. This service validates the tenant header, deserializes the Navix payload, maps it to a provider-agnostic domain event, and publishes it to a Kafka topic.
  4. Downstream consumers (the Events function app) process the domain events asynchronously.

Authentication

This API does not use Entra ID / OAuth for inbound requests. Authentication is handled at the APIM layer.

All requests must include the X-Tenant-Id header. Requests without this header receive a 401 Unauthorized response.

When testing from Swagger UI, click the Authorize button and enter your tenant identifier in the X-Tenant-Id field.

Install the Package

The package is compatible with Python versions 3.7+. Install the package from PyPi using the following pip command:

pip install apimatic-tql-sdk==0.0.2

You can also view the package at: https://pypi.python.org/pypi/apimatic-tql-sdk/0.0.2

Initialize the API Client

Note: Documentation for the client can be found here.

The following parameters are configurable for the API Client:

Parameter Type Description
http_client_instance Union[Session, HttpClientProvider] The Http Client passed from the sdk user for making requests
override_http_client_configuration bool The value which determines to override properties of the passed Http Client from the sdk user
http_call_back HttpCallBack The callback value that is invoked before and after an HTTP call is made to an endpoint
timeout float The value to use for connection timeout.
Default: 30
max_retries int The number of times to retry an endpoint call if it fails.
Default: 0
backoff_factor float A backoff factor to apply between attempts after the second try.
Default: 2
retry_statuses Array of int The http statuses on which retry is to be done.
Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524]
retry_methods Array of string The http methods on which retry is to be done.
Default: ["GET", "PUT"]
proxy_settings ProxySettings Optional proxy configuration to route HTTP requests through a proxy server.
logging_configuration LoggingConfiguration The SDK logging configuration for API calls

The API client can be initialized as follows:

Code-Based Client Initialization

import logging

from freightfinancialswebhookingestionapi.configuration import Environment
from freightfinancialswebhookingestionapi.freightfinancialswebhookingestionapi_client import FreightfinancialswebhookingestionapiClient
from freightfinancialswebhookingestionapi.logging.configuration.api_logging_configuration import LoggingConfiguration
from freightfinancialswebhookingestionapi.logging.configuration.api_logging_configuration import RequestLoggingConfiguration
from freightfinancialswebhookingestionapi.logging.configuration.api_logging_configuration import ResponseLoggingConfiguration

client = FreightfinancialswebhookingestionapiClient(
    environment=Environment.PRODUCTION,
    logging_configuration=LoggingConfiguration(
        log_level=logging.INFO,
        request_logging_config=RequestLoggingConfiguration(
            log_body=True
        ),
        response_logging_config=ResponseLoggingConfiguration(
            log_headers=True
        )
    )
)

Environment-Based Client Initialization

from freightfinancialswebhookingestionapi.freightfinancialswebhookingestionapi_client import FreightfinancialswebhookingestionapiClient

# Specify the path to your .env file if it’s located outside the project’s root directory.
client = FreightfinancialswebhookingestionapiClient.from_environment(dotenv_path='/path/to/.env')

See the Environment-Based Client Initialization section for details.

List of APIs

SDK Infrastructure

Configuration

HTTP

Utilities

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apimatic_tql_sdk-0.0.2.tar.gz (38.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apimatic_tql_sdk-0.0.2-py3-none-any.whl (93.2 kB view details)

Uploaded Python 3

File details

Details for the file apimatic_tql_sdk-0.0.2.tar.gz.

File metadata

  • Download URL: apimatic_tql_sdk-0.0.2.tar.gz
  • Upload date:
  • Size: 38.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.13

File hashes

Hashes for apimatic_tql_sdk-0.0.2.tar.gz
Algorithm Hash digest
SHA256 f68f25ad6d392b4eeddfb8ad2eebe8e15457d0d4849f0f65490b97f7ba57761f
MD5 7782c499fab32c36d1a03e253388d4d2
BLAKE2b-256 464a1ddeaa88b751b9ce027f1cdfe9a1273edfeaa5021f7da8b3ea6f3ae8303b

See more details on using hashes here.

File details

Details for the file apimatic_tql_sdk-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for apimatic_tql_sdk-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 575d65f1558d7503dec48882c50b7759107f85c33bc60180680eaeb64a01e793
MD5 7816f805ed9bbddaf3bb8d5b6bd1c86c
BLAKE2b-256 4ee22a9f77305777c0ef00cda15224c0b43ce7f7553c26ba8712f4121c916184

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page