Download OpenAPI specification:
Logistics operations API for the 4klyft platform.
This API provides comprehensive endpoints for managing:
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>
API requests are rate-limited to ensure fair usage. Standard limits are:
Represents a partner — a unified business entity the tenant transacts with.
Partners have no knowledge of roles (carrier, principal, supplier, customer). Roles are emergent, determined by which modules reference this PartnerId.
Retrieve a paginated list of partners with optional filters.
| status | string Enum: "pending_approval" "active" "suspended" "closed" Example: status=active Filter by partner status |
| search | string Example: search=Acme Search by name |
| page | integer >= 1 Default: 1 Example: page=1 Page number for pagination |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 Example: itemsPerPage=20 Number of items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "name": "Acme Logistics Inc.",
- "type": "individual",
- "classification": "regular",
- "status": "pending_approval",
- "contact": {
- "email": "string",
- "phone": "string",
- "website": "string"
}, - "address": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "string"
}, - "taxId": "DE123456789",
- "taxExempt": false,
- "registrationNumber": "HRB 12345",
- "paymentTerms": {
- "netDays": 0,
- "currency": "string",
- "paymentMethod": "string"
}, - "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}
]
}Create a new partner.
Partner creation data
| name required | string [ 1 .. 255 ] characters |
string or null <email> | |
| phone | string or null <= 50 characters |
| website | string or null <url> |
| taxId | string or null |
| registrationNumber | string or null |
| netDays | integer or null |
| currency | string or null |
| paymentMethod | string or null |
{- "name": "Acme Logistics Inc.",
- "email": "user@example.com",
- "phone": "string",
- "website": "string",
- "taxId": "string",
- "registrationNumber": "string",
- "netDays": 30,
- "currency": "EUR",
- "paymentMethod": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "name": "Acme Logistics Inc.",
- "type": "individual",
- "classification": "regular",
- "status": "pending_approval",
- "contact": {
- "email": "string",
- "phone": "string",
- "website": "string"
}, - "address": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "string"
}, - "taxId": "DE123456789",
- "taxExempt": false,
- "registrationNumber": "HRB 12345",
- "paymentTerms": {
- "netDays": 0,
- "currency": "string",
- "paymentMethod": "string"
}, - "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Retrieve a single partner by its UUID.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Partner UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "name": "Acme Logistics Inc.",
- "type": "individual",
- "classification": "regular",
- "status": "pending_approval",
- "contact": {
- "email": "string",
- "phone": "string",
- "website": "string"
}, - "address": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "string"
}, - "taxId": "DE123456789",
- "taxExempt": false,
- "registrationNumber": "HRB 12345",
- "paymentTerms": {
- "netDays": 0,
- "currency": "string",
- "paymentMethod": "string"
}, - "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Activate a pending or suspended partner.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Partner UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "name": "Acme Logistics Inc.",
- "type": "individual",
- "classification": "regular",
- "status": "pending_approval",
- "contact": {
- "email": "string",
- "phone": "string",
- "website": "string"
}, - "address": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "string"
}, - "taxId": "DE123456789",
- "taxExempt": false,
- "registrationNumber": "HRB 12345",
- "paymentTerms": {
- "netDays": 0,
- "currency": "string",
- "paymentMethod": "string"
}, - "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Close an active or suspended partner.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Partner UUID |
The new Partner resource
| reason required | string |
{- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "name": "Acme Logistics Inc.",
- "type": "individual",
- "classification": "regular",
- "status": "pending_approval",
- "contact": {
- "email": "string",
- "phone": "string",
- "website": "string"
}, - "address": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "string"
}, - "taxId": "DE123456789",
- "taxExempt": false,
- "registrationNumber": "HRB 12345",
- "paymentTerms": {
- "netDays": 0,
- "currency": "string",
- "paymentMethod": "string"
}, - "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Suspend an active partner.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Partner UUID |
The new Partner resource
| reason required | string |
{- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "name": "Acme Logistics Inc.",
- "type": "individual",
- "classification": "regular",
- "status": "pending_approval",
- "contact": {
- "email": "string",
- "phone": "string",
- "website": "string"
}, - "address": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "string"
}, - "taxId": "DE123456789",
- "taxExempt": false,
- "registrationNumber": "HRB 12345",
- "paymentTerms": {
- "netDays": 0,
- "currency": "string",
- "paymentMethod": "string"
}, - "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Update partner details. Only provided fields will be updated.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Partner UUID |
The new Partner resource
| name | string or null [ 1 .. 255 ] characters |
ContactInput (object) or null | |
AddressInput (object) or null | |
| taxId | string or null |
| taxExempt | boolean or null |
| registrationNumber | string or null |
PaymentTermsInput (object) or null |
{- "name": "string",
- "contact": {
- "email": "user@example.com",
- "phone": "string",
- "website": "string"
}, - "address": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "st"
}, - "taxId": "string",
- "taxExempt": true,
- "registrationNumber": "string",
- "paymentTerms": {
- "netDays": 0,
- "currency": "str",
- "paymentMethod": "string"
}
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "name": "Acme Logistics Inc.",
- "type": "individual",
- "classification": "regular",
- "status": "pending_approval",
- "contact": {
- "email": "string",
- "phone": "string",
- "website": "string"
}, - "address": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "string"
}, - "taxId": "DE123456789",
- "taxExempt": false,
- "registrationNumber": "HRB 12345",
- "paymentTerms": {
- "netDays": 0,
- "currency": "string",
- "paymentMethod": "string"
}, - "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Represents a role attached to a partner.
Exposed through GET /partners/{id}/roles. Mutation endpoints (add / update status / remove) live on PartnerResource because roles are owned by the partner aggregate.
Retrieve all roles attached to the partner.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Partner UUID |
| type required | string PartnerRole identifier |
| page | integer Default: 1 The collection page number |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "type": "carrier",
- "label": "Primary Carrier",
- "ref": "glacia:///fleet/carriers/01HGW456",
- "status": "active",
- "addedAt": "2024-06-15T14:30:00+00:00",
- "statusChangedAt": "2024-07-01T09:00:00+00:00"
}
]
}Add a new role (carrier, principal, customer, supplier) to the partner.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Partner UUID |
The new Partner resource
| type required | string Enum: "carrier" "principal" "customer" "supplier" |
| ref required | string |
| label | string or null |
{- "type": "carrier",
- "ref": "string",
- "label": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "name": "Acme Logistics Inc.",
- "type": "individual",
- "classification": "regular",
- "status": "pending_approval",
- "contact": {
- "email": "string",
- "phone": "string",
- "website": "string"
}, - "address": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "string"
}, - "taxId": "DE123456789",
- "taxExempt": false,
- "registrationNumber": "HRB 12345",
- "paymentTerms": {
- "netDays": 0,
- "currency": "string",
- "paymentMethod": "string"
}, - "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Remove an existing role from the partner.
| partnerId required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Partner UUID |
| roleType required | string Enum: "carrier" "principal" "customer" "supplier" Example: carrier Role type |
Update the status of an existing partner role.
| partnerId required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Partner UUID |
| roleType required | string Enum: "carrier" "principal" "customer" "supplier" Example: carrier Role type |
The new Partner resource
| status required | string Enum: "active" "inactive" |
{- "status": "active"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "name": "Acme Logistics Inc.",
- "type": "individual",
- "classification": "regular",
- "status": "pending_approval",
- "contact": {
- "email": "string",
- "phone": "string",
- "website": "string"
}, - "address": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "string"
}, - "taxId": "DE123456789",
- "taxExempt": false,
- "registrationNumber": "HRB 12345",
- "paymentTerms": {
- "netDays": 0,
- "currency": "string",
- "paymentMethod": "string"
}, - "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}