Lobster CEP Connector

Prev Next

The CEP Connector offers one unified integration to book shipments, fetch labels, and track parcels across various Courier, Express, and Parcel service providers. No need to juggle individual carrier endpoints or payload formats. The customer only needs to integrate the tailored, unified data format LobsterCEP and the CEP Connector does the rest.


Key use cases

  • Book shipments and generate shipping labels in PDF, ZPL, or PNG formats

  • Retrieve near real-time tracking updates throughout the delivery process

  • Obtain Proof-of-Delivery (POD) documents once shipments are delivered


Prerequisites

Before you begin, ensure the following requirements are met:

  • Supported Lobster Data Platform version (minimum 25.1)

  • CEP API access and credentials for each carrier (username/password or client ID/client secret)


How it works

Diagram illustrating bidirectional data flow between LobsterCEP Template Profiles and CEP Connector Profiles.

Bidirectional data flow between LobsterCEP Template Profiles and CEP Connector Profiles for shipment tracking and transport order management within a customer LDP environment.

The CEP Connector includes a package of profiles of two different types:

  • CEP_CONNECTOR profiles are fixed implementations containing all the actual    functionality of the CEP Connector. They contain mappings between the API formats of the    particular CEP providers and the abstracted unified format LobsterCEP.    

  •  WARNING You must not change these to ensure the functionality and maintainability of the connector.

  • TEMPLATE_LobsterCEP profiles are predefined templates to easily integrate    the connector profiles through the LobsterCEP format.

Shipment booking

The shipment booking process books carrier shipments via their public APIs. The CEP Connector calls a mapper profile to convert the LobsterCEP shipment transport order into the requested carrier format. It then sends this data to the CEP system, which returns a synchronous response. The connector converts this response back to the LobsterCEP structure using a specific CEP mapper profile. Finally, it forwards the processed data to your customer profile as a shipment transport order acknowledgement — either a confirmation including the shipment label or an error response with specific feedback from the carrier's endpoint.

Tracking

The tracking process retrieves shipment status updates from the CEPs via their public APIs. It reads Lobster Integration configuration files under ./conf/Connectors/CEP/Tracking containing tracking details in CSV format. The polling logic only fetches new tracking events, preventing redundant data retrieval. When you use the shipment booking process, tracking configuration files are automatically created and updated.

You can also fill these files manually for shipments booked elsewhere. The tracking files are structured as follows:

carrierTrackingNumber;customerShipmentId;latestEventTimestamp;shipmentCreationTimestamp

The latestEventTimestamp will be filled by the connector and should be left blank in the initial setup.

Example: to automatically track shipment test123 with DHL tracking number 1091847043 created at 2025-09-08 10:00:00, append to ./conf/Connectors/CEP/Tracking/List_ShipmentTrackingNumbers_DHL.csv:

1091847043;test123;;1757318400000

For FedEx, UPS, or PostNL, append to FEDEX.csv, UPS.csv, or PostNL.csv respectively instead of DHL.csv.


Installation

For Lobster Data Platform customers, preconfigured dataflows are available that simplify the integration with your CEP providers. These dataflows contain:

  • CEP Connector profiles that integrate various CEP APIs

  • Template profiles for your mappings from or to the LobsterCEP shipment structure

  • Partner channels for your CEP Providers

  • System constants to customize your CEP Connector

  1. Click Home → Start from template.

  2. Click Install on the CEP Connector template tile.

    You are automatically redirected to Integration → DataFlow → Designer.

  3. The Import package dialog opens. It is organized into four tabs:

    • Contents — Lists all included profiles and DataFlows with type, name, status, and version.

    • Constants — Displays constants included in the package (in this package: 0).

    • Partners/Channels — Displays partners and partner channels included in the package with import options.

    • Information — Contains supplementary information about the package.

Contents

The Contents tab displays all components included in the package:

Import package interface displaying shipment tracking profiles and group selection options.

Import package interface displaying shipment tracking profiles and local group selection options.

The package contains the following components::

Type

Name

Status

Version

Profil

CEP_CONNECTOR_DHL_ShipmentTransportorder

Aktiv

1

Profil

CEP_CONNECTOR_DHL_ShipmentTransportorderAcknowledgement

Aktiv

1

Profil

CEP_CONNECTOR_FEDEX_ShipmentTransportorder

Aktiv

1

Profil

CEP_CONNECTOR_FEDEX_ShipmentTransportorderAcknowledgement

Aktiv

1

Profil

CEP_CONNECTOR_ShipmentTransportorder

Aktiv

1

Profil

CEP_CONNECTOR_ShipmentTransportorderAcknowledgement

Aktiv

1

Profil

CEP_CONNECTOR_UPS_ShipmentTransportorder

Aktiv

1

Profil

CEP_CONNECTOR_UPS_ShipmentTransportorderAcknowledgement

Aktiv

1

Profil

TEMPLATE_LobsterCEP_ShipmentTransportorder

Aktiv

1

Profil

TEMPLATE_LobsterCEP_ShipmentTransportorder_Smoketest

Aktiv

1

Profil

TEMPLATE_LobsterCEP_ShipmentTransportorderAcknowledgement

Aktiv

1

Profil

CEP_CONNECTOR_FEDEX_ShipmentTracking

Aktiv

1

Profil

CEP_CONNECTOR_DHL_ShipmentTracking

Aktiv

1

Profil

CEP_CONNECTOR_ShipmentTrackingTrigger

Aktiv

1

Profil

CEP_CONNECTOR_UPS_ShipmentTracking

Aktiv

1

Profil

TEMPLATE_LobsterCEP_ShipmentTracking

Aktiv

1

DataFlow

CEP_Connector_Install_V1.00

Aktiv

2

Note

All profiles in this package have the status Active and are ready for use immediately after import. The tab badges indicate: Table of Contents (17 entries), Constants (5), Partners/Channels (1/3).

Group selection

Select the appropriate local groups for the profiles or create new ones by clicking each folder icon in the column Group (local).

  • In the Constants tab you can find all predefined constants. Existing constants with different or identical values will not be overwritten by default.

  • In the Partner channel tab, you can select if you want to import or overwrite the preconfigured partner channels. If overwrite is not toggled, an update will not change the partner channel, so you can safely update the connector.

Constants

  • In the Constants tab you can find all predefined constants. Existing constants with different or identical values will not be overwritten by default.

Import package interface showing constants and their corresponding values for shipment tracking.

If these constants already exist with other or the same values, they will not be overwritten by default.

Partner/Channels

The Partners/Channels tab displays the partners and partner channels included in the package. This package contains one partner with three partner channels. You can select if you want to import or overwrite the preconfigured partner channels. If overwrite is not toggled, an update will not change the partner channel, so you can safely update the connector.

Import package interface showing options for partners and channels with selection checkboxes.

Import package dialog, Partners/Channels tab: import options for partners and partner channels.

  • Import partners — Imports the partner included in the package (CEP Connector) along with the associated HTTPS channel. This option is enabled by default.

  • Overwrite partners/channels — Overwrites existing partners and channels with the same name. Only enable this option if you intentionally want to replace an existing configuration.

Important

If the partner CEP connector already exists in your environment and you have made custom modifications, leave the Overwrite partners/channels option disabled to preserve your configuration.

Complete the import

Review the displayed components across all tabs, click Import, and confirm to start the import.    

2. Configure credentials

Required credentials per carrier

Carrier

Credential type

Where to get

DHL Express

Basic auth username and password

DHL Developer Portal

FedEx

Client ID and Client Secret

FedEx Developer Portal — see “How to get API Credentials”

UPS

Client ID and Client Secret

UPS Developer Portal — see “Getting Started with UPS APIs”

PostNL

API Key

PostNL Developer Portal — see “How to Get Started”

Partner channel configuration

Navigate to Administration → Partner → Partners/Channels → CEP Connector.

DHL_Express_HTTPS
  • Fill in the DHL Express username as “Own ID”

  • Fill in the DHL Express password as “Own Password”

FedEx_HTTPS
  1. Click “Configure OAuth 2.0…”

  2. Fill in your Client ID and Client Secret

  3. Select Grant Type “Client Credentials”

  4. Fill in the “Endpoint URL”:    

    • Test: https://apis-sandbox.fedex.com/oauth/token

    • Prod: https://apis.fedex.com/oauth/token

  5. Click “Fetch Access Token”

  6. Fill in the “OAuth2 Refresh URL”:    

    • Test: https://apis-sandbox.fedex.com/oauth/token?grant_type=client_credentials&client_id=<clientId>&client_secret=<clientSecret>

    • Prod: https://apis.fedex.com/oauth/token?grant_type=client_credentials&client_id=<clientId>&client_secret=<clientSecret>

UPS_HTTPS
  1. Click “Configure OAuth 2.0…”

  2. Fill in your Client ID and Client Secret

  3. Select “Send ‘client credentials’ in header”

  4. Select Grant Type “Authorization Code”

  5. Fill in the “Endpoint URL”:    

    • Test: https://wwwcie.ups.com/security/v1/oauth/token

    • Prod: https://onlinetools.ups.com/security/v1/oauth/token

  6. Fill in your “Redirect URL” (your internal Lobster Data Platform address):
        https://<your-server>:<your-port>/dw/oauth2/<your-Application-ID>
        The Application ID can be found in your OAuth 2.0 settings and starts with _data.
        This URL must also be registered in the UPS developer portal application settings (required for both Test and Prod in the same application).

  7. Fill in the “OAuth URL”:    

    • Test: https://wwwcie.ups.com/security/v1/oauth/authorize

    • Prod: https://onlinetools.ups.com/security/v1/oauth/authorize

  8. Click “Fetch Access Token”. You will be redirected to UPS to enter your developer account credentials. A successful redirect shows a blank page with ok. After reopening the channel, you should see SYS_HTTP_OAUTH2 and SYS_HTTP_OAUTH2_REFRESH tokens in “Additional IDs”.

  9. Fill in the “OAuth2 Refresh URL”:    

    • Test: https://wwwcie.ups.com/security/v1/oauth/refresh?grant_type=refresh_token&refresh_token=<refreshToken>&client_id=<clientId>&client_secret=<clientSecret>&useCredentialsInHeader

    • Prod: https://onlinetools.ups.com/security/v1/oauth/refresh?grant_type=refresh_token&refresh_token=<refreshToken>&client_id=<clientId>&client_secret=<clientSecret>&useCredentialsInHeader

PostNL_HTTPS
  • Add your API key as “SYS_HTTP_apikey” in the “Additional IDs” tab

3. Use profile templates for custom mappings

Direction

Template profile

Description

📤 Sending Shipments

TEMPLATE_LobsterCEP_ShipmentTransportorder

Send LobsterCEP shipments to the booking connector. Replace the source structure with your custom format and map it to the pre-filled LobsterCEP format.

📥 Receiving Shipments

TEMPLATE_LobsterCEP_ShipmentTransportorderAcknowledgement

Receive LobsterCEP shipment acknowledgements. Replace the target structure with your custom format and process the received shipment.

📥 Receiving Tracking

TEMPLATE_LobsterCEP_ShipmentTracking

Receive LobsterCEP shipment tracking data. Replace the target structure with your custom format and process the tracking data.

Smoketest

TEMPLATE_LobsterCEP_ShipmentTransportorder_Smoketest

Quickly test the booking connector. Right-click the profile and select Restart → Start Cron. Set LobsterCEP/header/carrierId to one of DHL_EXPRESS, FEDEX, UPS, POSTNL. The smoketest is guaranteed to fail at the CEP side — safe to run in production.

Warning

Modifying CEP_CONNECTOR profiles can break functionality and maintainability.


Constants for Configuration

Table displaying various constants and their corresponding values for a package import process.

The following system constants can be modified to customize the connector. (M) = mandatory, (D) = dependent, (O) = optional.

Constant

Type

Valid Values

Default

Description

CEP_CONNECTOR_SYSTEM_ENVIRONMENT

(M)

TEST, PROD

TEST

Indicates the system type. Controls target environments for endpoints and other variables.

CEP_CONNECTOR_ACKNOWLEDGEMENT_TARGET_PROFILE

(D)

Profile name

TEMPLATE_LobsterCEP_ShipmentTransportorderAcknowledgement

Profile to receive the booking response. Required when using the shipment booking process.

CEP_CONNECTOR_TRACKING_TARGET_PROFILE

(D)

Profile name

TEMPLATE_LobsterCEP_ShipmentTracking

Profile to receive tracking responses. Required when using the shipment tracking process.

CEP_CONNECTOR_TRACKING_REQUEST_POD

(O)

true, false

true

Automatically include Proof-Of-Delivery files in tracking responses.

CEP_CONNECTOR_UPS_QUANTUM_VIEW_SUBSCRIPTION_NAMES

(D)

Subscription name(s), comma-separated

Required when using UPS shipment tracking. Specify your Quantum View subscription name(s).

CEP_CONNECTOR_DHL_EXPRESS_CHANNEL_ID

(O)

Channel ID

Overrides the default DHL Express HTTPS channel. Create this constant manually if you have an existing DHL Express API channel.

CEP_CONNECTOR_FEDEX_CHANNEL_ID

(O)

Channel ID

Overrides the default FedEx HTTPS channel. Create this constant manually if you have an existing FedEx API channel.

CEP_CONNECTOR_UPS_CHANNEL_ID

(O)

Channel ID

Overrides the default UPS HTTPS channel. Create this constant manually if you have an existing UPS API channel.

CEP_CONNECTOR_POSTNL_CHANNEL_ID

(O)

Channel ID

Overrides the default PostNL HTTPS channel. Create this constant manually if you have an existing PostNL API channel.


Input data structure: Shipment booking

Pass the following LobsterCEP data structure to the CEP_CONNECTOR_ShipmentBooking profile. The connector maps it to the carrier’s format, calls the carrier’s API internally, and forwards the result to your acknowledgement profile.

Output data structure

Result

Description

Structure

Confirmed

Shipment booked successfully, label and carrier reference returned.

LobsterCEPResponse

Error

Booking failed, carrier feedback included in response.

LobsterCEPErrorResponse

Output data structure example: Confirmed booking

{
  "LobsterCEP": {
    "header": {
      "carrierId": "DHL_EXPRESS",
      "processingStatus": {
        "code": "CONFIRMED",
        "realizationDateTime": "2025-08-13T09:33:59+02:00"
      }
    },
    "shipment": {
      "shipmentId": "ABC123456789",
      "carrierReference": "987654321",
      "estimatedDeliveryDate": "2025-08-18T23:59:00Z",
      "documents": [
        {
          "type": "LABEL",
          "name": "LABEL_987654321.pdf",
          "format": "PDF",
          "content": "<base64-encoded content>"
        }
      ],
      "trackingUrl": "https://express.api.dhl.com/mydhlapi/test/shipments/987654321/tracking"
    }
  }
}

Output data structure example: Error

{
  "LobsterCEP": {
    "header": {
      "carrierId": "DHL_EXPRESS",
      "processingStatus": {
        "code": "ERROR",
        "reason": "1001: The requested product(s) (P) not available based on your search criteria.",
        "realizationDateTime": "2025-08-13T09:33:59+02:00"
      }
    },
    "shipment": {
      "shipmentId": "ABC123456789"
    }
  }
}

Output data structure: Tracking

The CEP_CONNECTOR_Tracking profile polls the carrier automatically for new events and delivers the following LobsterCEP structure to your tracking target profile. No call is required from your side. Configure the tracking CSV files as described in the Tracking section, and the connector handles polling automatically.

Output data structure tracking example

{
  "LobsterCEP": {
    "header": { "carrierId": "DHL_EXPRESS" },
    "shipment": [
      {
        "shipmentId": "ABC123456789",
        "carrierReference": "987654321",
        "estimatedDeliveryDate": "2025-08-18T23:59:00Z",
        "trackingEvents": [
          {
            "owner": "DHL_EXPRESS",
            "eventDateTime": "2025-09-01T01:43:03Z",
            "eventLocation": "CPH (Copenhagen-DK)",
            "statusDetails": [{ "code": "OK", "statusDescription": "Delivered" }]
          }
        ],
        "documents": [
          {
            "type": "POD",
            "name": "POD_987654321.pdf",
            "format": "PDF",
            "content": "<base64-encoded content>"
          }
        ],
        "trackingUrl": "https://express.api.dhl.com/mydhlapi/test/shipments/987654321/tracking"
      }
    ]
  }
}

LobsterCEP data format

The LobsterCEP object is the unified data format for all CEP Connector operations. Below is a complete field reference.

Contains carrier selection, action type, and document requirements.

Field

Type

Required

Description

carrierId

string

Yes

The carrier to handle the shipment. Values: DHL_EXPRESS, FEDEX, UPS, POSTNL

action

string

Yes

Action to perform. Values: CREATE

requestedDocuments

array of string

No

Documents to return. Labels are always auto-requested. Values: LABEL, COMMERCIAL_INVOICE

Shipment

Contains all shipment details.

Field

Type

Required

Description

shipmentId

string

Yes

Unique identifier for the shipment. It can be identical to shipperReference.

shipperReference

string

Yes

Shipper’s own reference for the shipment.

carrierReference

string

No

Carrier reference number. Normally generated by the carrier. For DHL Express, you can set your waybill number here.

consigneeReference

string

No

Recipient’s reference number.

serviceType

string

Yes

Type of shipping service. See carrier-specific values below.

shippingDateTime

date-time

Yes

Date and time for shipping. Example: 2023-08-15T08:30:00.000Z

incoTerm

string

No

International Commercial Terms. Values: EXW, FCA, CPT, CIP, DAP, DPU, DDP

incoTermLocation

string

No

Location for the Incoterm.

movementType

string

No

Type of movement. Used to determine inbound/outbound commodity code for DHL Express. Values: INBOUND, OUTBOUND

pickupRequestedFlag

boolean

No

Whether a pickup is requested.

dropOffFlag

boolean

No

Whether a drop-off is requested.

accountNumber.value

string

Yes

Carrier account number.

paymentInformation.transportation

PaymentInformation

No

Who pays for transportation? See Payment Information.

paymentInformation.dutiesAndTaxes

PaymentInformation

No

Who pays duties and taxes? See Payment Information.

parties

Parties

Yes

All involved parties. See Parties & Addresses.

packages

array of Package

Yes

Packages in the shipment. See Packages & Line Items.

customsInformation

CustomsInformation

No

Shipment-level customs data. See Customs Information.

labelSpecifications.fileFormat

string

No

Label format. DHL Express: PDF, ZPL, LP2, EPL. UPS: EPL, SPL, ZPL, GIF. FedEx: not used.

labelSpecifications.template

string

No

DHL Express label template. Default: ECOM26_84_001. Options: ECOM26_84_A4_001, ECOM26_A6_002, ECOM26_84CI_001, and others.

serviceType values by carrier

Carrier

Valid values

DHL Express

P, 1, C, D, E, H, I, K, L, M, N, O, Q, T, U, W, X, Y

FedEx

FEDEX_INTERNATIONAL_PRIORITY_EXPRESS, INTERNATIONAL_FIRST, FEDEX_INTERNATIONAL_PRIORITY, INTERNATIONAL_ECONOMY, FEDEX_GROUND, PRIORITY_OVERNIGHT, STANDARD_OVERNIGHT, FEDEX_2_DAY, SAME_DAY, and others

UPS

01, 02, 03, 07, 08, 11, 12, 13, 14, 17, 54, 59, 65, M2M7, and others

PostNL

ProductCode (default 3085) | Characteristic | Option

Parties and addresses

All parties involved in the shipment. shipper and recipient are required.

Field

Required

Description

shipper

Yes

Sending party

recipient

Yes

Receiving party

pickupAddress

No

Pickup location if different from shipper

deliveryAddress

No

Delivery location if different from recipient

ultimateConsignee

No

Ultimate consignee address

importer

No

Importer address

exporter

No

Exporter address

buyer

No

Buyer address

payer

No

Payer address

Address fields

Field

Required

Description

name1

Yes

Primary name (usually company name)

name2

No

Secondary name (e.g., department)

name3

No

Tertiary name

street1

Yes

Street address line 1

street2

No

Street address line 2

zipcode

Yes

Postal/ZIP code

city

Yes

City name

countryCode

Yes

ISO country code (e.g., DE)

countryName

No

Country name

stateCode

No

State/province code

stateName

No

State/province name

reference

No

External customer reference

addressIdentifiers

No

Additional identifiers (VAT, EOR, UEN, GLN)

contacts

No

Array of contact persons (name, email, phone, fax). Name and phone are required per contact.

Payment information

Field

Description

paymentType

Who is responsible for payment: SHIPPER, RECEIVER, THIRD_PARTY

accountNumber

Billing account number with the carrier

countryCode

ISO 3166-1 alpha-2 country code associated with the billing account

Packages and line items

Package fields

Field

Required

Description

packageId

Yes

Package identifier

shipperReference

Yes

Shipper’s reference for this package

carrierReference

No

Carrier’s reference for this package

consigneeReference

No

Recipient’s reference for this package

ssccCode

No

Serial Shipping Container Code

packageType

No

Type of package (e.g., BOX). Currently not in use.

dimensions

Yes

Physical dimensions. See Dimensions below.

lineItems

No

Array of line items in the package.

customsInformation

No

Package-level customs data.

dangerousGoods

No

Array of dangerous goods declarations.

Dimensions

All measurement values have a value (number) and unit field.

Field

Required

Units

grossWeight

Yes

g, kg, lb

netWeight

No

g, kg, lb

length

No

cm, m, in

width

No

cm, m, in

height

No

cm, m, in

grossVolume

No

cm3, m3, ft3

netVolume

No

cm3, m3, ft3

Line item fields

Field

Required

Description

itemNumber

Yes

Item number / SKU

lineItemPos

No

Position in line items list

itemDescription

No

Description of the item

price.value

No

Price value (number)

price.currency

No

ISO 4217 three-letter currency code

quantity.quantity

No

Quantity amount

quantity.quantityUnit

No

Unit of quantity (e.g., PCS)

manufacturingCountry

No

ISO country code of manufacture

exportReasonType

No

Reason of export. DHL Express only. Values: permanent, temporary, return, gift, sample, warranty_replacement, and others.

dimensions

No

Item dimensions

customsInformation

No

Item-level customs data, including HS codes

Customs information

Available at shipment level, package level, and line item level.

Field

Level

Description

goodsDescription

All

Description of goods for customs

goodsValue.value

All

Value of goods (number)

goodsValue.unit

All

ISO 4217 currency code

hsCodes

Shipment & Line Item

Array of Harmonized System codes

exportDeclarationNumber

Shipment

Export declaration number

invoiceNumber

Shipment

Commercial invoice number

invoiceDate

Shipment

Date of invoice

Documents

Documents are returned in the booking acknowledgement and tracking responses.

Field

Required

Description

type

Yes

Document type: LABEL, INVOICE, POD

name

Yes

Filename (e.g. LABEL_987654321.pdf)

format

Yes

Document format: PDF, ZPL, PNG, etc.

content

Yes

Base64-encoded document content

Tracking response

Tracking event fields

Field

Required

Description

eventDateTime

Yes

Date and time when the event occurred (ISO 8601)

statusDetails.statusCode

Yes

Status code (e.g., PICKED_UP, OK, DF)

owner

No

Carrier that owns this status: DHL_EXPRESS, FEDEX, UPS

creationDateTime

No

Creation date and time of the event

eventLocation

No

Location where the event occurred

statusDetails.statusReason

No

Reason for the status

statusDetails.statusDescription

No

Human-readable description

signedBy

No

Name of person who signed for delivery


Support

For questions regarding Data Flow configuration, please contact the Lobster Support team.