Shipping Types

This guide covers how to create, manage, and configure shipping types via the Back-office and DJUST API.

Introduction

Shipping types are the delivery modes proposed to customers at checkout (e.g. "Express", "Standard", "Click & Collect"). They are one of the building blocks of the DJUST shipping module and are later referenced in the shipping price matrix.


Managing Shipping Types from the Back-Office

Most operators manage shipping types directly from the DJUST Back-Office. The API described below performs the same actions and is intended for integrators.

Tip:

There is no system-default shipping type. All shipping types are created explicitly by the operator.

Where to find it

Settings → Shipping fee management → Shipping types

List view

The list view displays all existing shipping types with:

  • Search — free-text on name and id (case- and accent-insensitive)
  • Sorting — by name, creation date, or last update
  • Row actions — Edit, Delete

Creating a shipping type

Click on "Create shipping type" and fill in the form :

  • Name (required) — Display name (up to 255 characters). May be shown to customers at checkout.
  • Description — Additional context (up to 10,000 characters).
  • ID — Custom identifier. Auto-generated if left blank. Immutable after creation. Must be unique.

Editing a shipping type

Only Name and Description can be modified. The ID is locked once the shipping type is created.

Deleting a shipping type

Deletion is blocked if the shipping type is still referenced in the shipping price matrix. The Back-Office displays an error and lists the associated price rows. Remove them first, then retry the deletion.

⚠️

Warning: You must remove all shipping price matrix lines referencing this shipping type before it can be deleted.



Using the API

The API mirrors the Back-Office actions above. It is intended for integrators building automated flows or a custom Back-Office.

FieldDescriptionRules
idUnique identifierAuto-generated or custom. Immutable after creation.
nameDisplay nameRequired. Max 255 characters.
descriptionOptional descriptionMax 10,000 characters.
createdAtCreation timestampRead-only.
updatedAtLast update timestampRead-only.

Key Endpoints

ActionMethodPathOperationIdResponse
Create a shipping typePOST/v1/shipping-typesADM-SHIPPING-TYPE-100201 Created
Update a shipping typePUT/v1/shipping-types/{id}ADM-SHIPPING-TYPE-200204 No Content
Delete a shipping typeDELETE/v1/shipping-types/{id}ADM-SHIPPING-TYPE-350204 No Content
Get a shipping type by IDGET/v1/shipping-types/{id}ADM-SHIPPING-TYPE-500200 OK
List shipping typesGET/v1/shipping-typesADM-SHIPPING-TYPE-550200 OK

All endpoints require dj-client: OPERATOR and dj-api-key headers.

Creating a Shipping Type

POST /v1/shipping-types
dj-client: OPERATOR
dj-api-key: {{apiKey}}
Content-Type: application/json

Request Body

FieldTypeRequiredDescription
idstringNoCustom identifier. Auto-generated if omitted. Immutable after creation. Must be unique.
namestringYesDisplay name of the shipping type (max 255 characters)
descriptionstringNoDescription of the shipping type (max 10,000 characters)

Example

{
  "id": "express-24h",
  "name": "Express 24h",
  "description": "Next business day delivery for eligible items"
}

Response — 201 Created

{
  "id": "express-24h"
}

Errors

HTTPCodeDescription
400F-E-010Name or description exceeds maximum length
400F-E-012Invalid ID format
401F-E-032Missing or invalid authentication token
403F-E-030Caller is not OPERATOR
409F-E-003A shipping type with this ID already exists
422F-E-001Name is absent, null, empty, or whitespace-only

Retrieving a Shipping Type

GET /v1/shipping-types/{id}
dj-client: OPERATOR
dj-api-key: {{apiKey}}

Path Parameters

ParameterTypeRequiredDescription
idstringYesFunctional identifier of the shipping type

Response — 200 OK

{
  "id": "express-24h",
  "name": "Express 24h",
  "description": "Next business day delivery for eligible items",
  "createdAt": "2026-06-01T10:00:00Z",
  "updatedAt": "2026-06-01T10:00:00Z"
}

Errors

HTTPCodeDescription
401F-E-032Missing or invalid authentication token
403F-E-030Caller is not OPERATOR
404F-E-002Shipping type not found

Listing Shipping Types

Retrieve a paginated list of shipping types with optional filters and sorting.

GET /v1/shipping-types
dj-client: OPERATOR
dj-api-key: {{apiKey}}

Query Parameters

ParameterTypeRequiredDescription
pageintegerNoPage number (0-based). Default: 0
sizeintegerNoNumber of items per page. Default: 20. Min: 1. Max: 100.
sortstringNoFormat: field:direction. Sortable fields: name, createdAt, updatedAt. Default: createdAt:desc
searchstringNoFree-text search matched against both name and id (external ID) — partial match, OR logic, case- and accent-insensitive.
createdAtFromdatetimeNoFilter by creation date (inclusive, from)
createdAtTodatetimeNoFilter by creation date (inclusive, to)
updatedAtFromdatetimeNoFilter by update date (inclusive, from)
updatedAtTodatetimeNoFilter by update date (inclusive, to)

Response — 200 OK

{
  "content": [
    {
      "id": "express-24h",
      "name": "Express 24h",
      "description": "Next business day delivery for eligible items",
      "createdAt": "2026-06-01T10:00:00Z",
      "updatedAt": "2026-06-01T10:00:00Z"
    },
    {
      "id": "standard",
      "name": "Standard Delivery",
      "description": "Delivery within 3-5 business days",
      "createdAt": "2026-05-15T08:30:00Z",
      "updatedAt": "2026-05-20T14:00:00Z"
    }
  ],
  "numberOfElements": 2,
  "number": 0,
  "size": 20,
  "first": true,
  "last": true,
  "empty": false
}

Errors

HTTPCodeDescription
400F-E-010size exceeds the maximum (100)
400F-E-008size is less than 1 or page is negative
401F-E-032Missing or invalid authentication token
403F-E-030Caller is not OPERATOR

For the complete list of error codes, refer to Error / Warning codes.


Updating a Shipping Type

Applies a full replacement of the modifiable fields (name and description). The id is immutable.

PUT /v1/shipping-types/{id}
dj-client: OPERATOR
dj-api-key: {{apiKey}}
Content-Type: application/json

Path Parameters

ParameterTypeRequiredDescription
idstringYesIdentifier of the shipping type

Request Body

FieldTypeRequiredDescription
namestringYesUpdated display name (1–255 characters)
descriptionstringNoUpdated description (max 10,000 characters). Pass null or "" to clear.

Example

{
  "name": "Express 24h - Premium",
  "description": "Next business day delivery with premium packaging"
}

Response — 204 No Content

No response body.

Errors

HTTPCodeDescription
400F-E-010Name or description exceeds maximum length
401F-E-032Missing or invalid authentication token
403F-E-030Caller is not OPERATOR
404F-E-002Shipping type not found
422F-E-001Name is absent, null, empty, or whitespace-only

Deleting a Shipping Type

Permanently deletes a shipping type. Deletion is blocked if the shipping type is still referenced in the shipping price matrix.

DELETE /v1/shipping-types/{id}
dj-client: OPERATOR
dj-api-key: {{apiKey}}

Path Parameters

ParameterTypeRequiredDescription
idstringYesIdentifier of the shipping type to delete

Response — 204 No Content

No response body.

Errors

HTTPCodeDescription
401F-E-032Missing or invalid authentication token
403F-E-030Caller is not OPERATOR
404F-E-002Shipping type not found
409F-E-042Shipping type is still referenced in the shipping price matrix. Remove associated price lines first.
⚠️

Warning:

You must remove all shipping price matrix lines referencing this shipping type before it can be deleted.

For the complete list of error codes, refer to Error / Warning codes.


Typical Workflow

flowchart LR
  classDef create fill:#e8f1ff,stroke:#2f6feb,stroke-width:2px,color:#0b3d91;
  classDef place fill:#dcfce7,stroke:#16a34a,stroke-width:2px,color:#14532d;
  classDef ok fill:#ecfdf5,stroke:#10b981,stroke-width:2px,color:#064e3b;

  A["➕ Create shipping type<br>POST /v1/shipping-types"]:::create
  B["🧩 Reference in the<br>shipping price matrix"]:::place
  C["🛒 Displayed to customers<br>at checkout"]:::ok

  A --> B --> C

Best Practices

  1. Use meaningful custom IDs — if you provide a custom id, make it descriptive and consistent (e.g. express-24h, standard-3d, click-and-collect). Once created, the ID cannot be changed.
  2. Keep names clear for checkout — shipping type names may be displayed to customers during checkout. Use clear, business-friendly labels.

Common Mistakes

MistakeConsequenceHow to avoid
Providing a duplicate id409 Conflict errorEnsure IDs are unique across all shipping types
Omitting name in the request body422 validation errorname is always required
Exceeding max length on name or description400 errorKeep name under 255 characters and description under 10,000
Trying to update the id after creationid is immutablePlan your identifiers before creating the resource
Deleting a shipping type still used in the price matrix409 Conflict (F-E-042)Remove all associated price matrix lines before deleting the type


Did this page help you?