4klyft API (1.0.0)

Download OpenAPI specification:

4klyft API Support: support@4klyft.com License: Proprietary

Logistics operations API for the 4klyft platform.

Overview

This API provides comprehensive endpoints for managing:

  • Routes & Execution: Create, manage, and execute delivery routes
  • Shipments & Loads: Track shipments from pickup to delivery
  • Fleet Management: Manage carriers, vehicles, and drivers
  • Proof of Delivery: Capture signatures, photos, and delivery confirmations
  • Settings: Configure system-wide and tenant-specific settings
  • Webhooks: Subscribe to real-time event notifications
  • Analytics: Access delivery performance metrics and reports

Authentication

All API endpoints (except /api/docs and /api/v1/iam/auth/*) require JWT Bearer token authentication. Include the token in the Authorization header:

Authorization: Bearer <your-jwt-token>

Rate Limiting

API requests are rate-limited to ensure fair usage. Standard limits are:

  • 1000 requests per minute for read operations
  • 100 requests per minute for write operations

Error Handling

The API uses RFC 7807 Problem Details for error responses.

Fulfilment - Orders

Resource 'Fulfilment - Orders' operations.

List fulfilment orders

Retrieve a paginated list of fulfilment orders with optional filters.

Authorizations:
Bearer
query Parameters
sourceOrderId
string <ulid>
number
string
custodianId
string <ulid>
status
string
policyId
string <ulid>
page
integer >= 1
Default: 1
itemsPerPage
integer [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Get a fulfilment order

Retrieve a single fulfilment order by its ULID.

Authorizations:
Bearer
path Parameters
id
required
string

FulfilmentOrder identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "number": "string",
  • "sourceOrderId": "string",
  • "custodianId": "string",
  • "custodianName": "string",
  • "nodeRef": "string",
  • "policyId": "string",
  • "appliedRuleIds": [
    ],
  • "lineItems": [
    ],
  • "status": "created",
  • "expectedShipAt": "string",
  • "expectedDeliveryAt": "string",
  • "notes": "string",
  • "externalIds": {
    },
  • "createdAt": "string",
  • "updatedAt": "string",
  • "closedAt": "string"
}

Cancel a fulfilment order

Cancel a non-terminal fulfilment order with a reason.

Authorizations:
Bearer
path Parameters
id
required
string

FulfilmentOrder identifier

Request Body schema:
required

The new FulfilmentOrder resource

reason
required
string [ 1 .. 1024 ] characters
Default: ""

Responses

Request samples

Content type
{
  • "reason": ""
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "number": "string",
  • "sourceOrderId": "string",
  • "custodianId": "string",
  • "custodianName": "string",
  • "nodeRef": "string",
  • "policyId": "string",
  • "appliedRuleIds": [
    ],
  • "lineItems": [
    ],
  • "status": "created",
  • "expectedShipAt": "string",
  • "expectedDeliveryAt": "string",
  • "notes": "string",
  • "externalIds": {
    },
  • "createdAt": "string",
  • "updatedAt": "string",
  • "closedAt": "string"
}

Mark a fulfilment order incomplete

Flag a fulfilment order as partially-dispatched-only with a reason — the remainder is treated as cancelled.

Authorizations:
Bearer
path Parameters
id
required
string

FulfilmentOrder identifier

Request Body schema:
required

The new FulfilmentOrder resource

reason
required
string [ 1 .. 1024 ] characters
Default: ""

Responses

Request samples

Content type
{
  • "reason": ""
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "number": "string",
  • "sourceOrderId": "string",
  • "custodianId": "string",
  • "custodianName": "string",
  • "nodeRef": "string",
  • "policyId": "string",
  • "appliedRuleIds": [
    ],
  • "lineItems": [
    ],
  • "status": "created",
  • "expectedShipAt": "string",
  • "expectedDeliveryAt": "string",
  • "notes": "string",
  • "externalIds": {
    },
  • "createdAt": "string",
  • "updatedAt": "string",
  • "closedAt": "string"
}

Override expected delivery date

Operator override of the FulfilmentOrder expected delivery date. Pass null/omit to clear.

Authorizations:
Bearer
path Parameters
id
required
string

FulfilmentOrder identifier

Request Body schema:
required

The new FulfilmentOrder resource

expectedDeliveryAt
string or null

Responses

Request samples

Content type
{
  • "expectedDeliveryAt": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "number": "string",
  • "sourceOrderId": "string",
  • "custodianId": "string",
  • "custodianName": "string",
  • "nodeRef": "string",
  • "policyId": "string",
  • "appliedRuleIds": [
    ],
  • "lineItems": [
    ],
  • "status": "created",
  • "expectedShipAt": "string",
  • "expectedDeliveryAt": "string",
  • "notes": "string",
  • "externalIds": {
    },
  • "createdAt": "string",
  • "updatedAt": "string",
  • "closedAt": "string"
}

Override expected ship-by date

Operator override of the FulfilmentOrder expected ship-by date. Pass null/omit to clear.

Authorizations:
Bearer
path Parameters
id
required
string

FulfilmentOrder identifier

Request Body schema:
required

The new FulfilmentOrder resource

expectedShipAt
string or null

Responses

Request samples

Content type
{
  • "expectedShipAt": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "number": "string",
  • "sourceOrderId": "string",
  • "custodianId": "string",
  • "custodianName": "string",
  • "nodeRef": "string",
  • "policyId": "string",
  • "appliedRuleIds": [
    ],
  • "lineItems": [
    ],
  • "status": "created",
  • "expectedShipAt": "string",
  • "expectedDeliveryAt": "string",
  • "notes": "string",
  • "externalIds": {
    },
  • "createdAt": "string",
  • "updatedAt": "string",
  • "closedAt": "string"
}

Reassign a fulfilment order

Change the (custodian, warehouse) assignment of a CREATED fulfilment order. Reassignment is forbidden once a custodian has accepted (OPEN) the order.

Authorizations:
Bearer
path Parameters
id
required
string

FulfilmentOrder identifier

Request Body schema:
required

The new FulfilmentOrder resource

custodianId
required
string <ulid>
Default: ""

Responses

Request samples

Content type
{
  • "custodianId": ""
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "number": "string",
  • "sourceOrderId": "string",
  • "custodianId": "string",
  • "custodianName": "string",
  • "nodeRef": "string",
  • "policyId": "string",
  • "appliedRuleIds": [
    ],
  • "lineItems": [
    ],
  • "status": "created",
  • "expectedShipAt": "string",
  • "expectedDeliveryAt": "string",
  • "notes": "string",
  • "externalIds": {
    },
  • "createdAt": "string",
  • "updatedAt": "string",
  • "closedAt": "string"
}

Get a fulfilment order pipeline

Retrieve a fulfilment order together with its 3PL execution snapshot (provider type/status/sync) and a backend-computed operator ladder in a single response.

Authorizations:
Bearer
path Parameters
orderId
required
string

FulfilmentOrderPipeline identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "orderId": "string",
  • "orderNumber": "string",
  • "orderStatus": "string",
  • "sourceOrderId": "string",
  • "custodianId": "string",
  • "nodeRef": "string",
  • "execution": {
    },
  • "stages": [
    ]
}