Typed IDs
Every entity in the SDK has its own dedicated ID type (e.g. FacilityId, OrderId, StockId). Passing the wrong ID type to a method is a compile error — you can never accidentally pass a FacilityId where a ConnectionId is expected.
Constructing an ID
All ID types follow the same builder pattern:
import de.joesst.dev.fulfillmenttools.id.FacilityId;
FacilityId facilityId = FacilityId.builder().value("fac-001").build();value() returns the raw string:
System.out.println(facilityId.value()); // "fac-001"toString() also returns the raw value, so IDs print cleanly in logs.
Type Hierarchy
TypedId
├── PlatformId — system-assigned UUID (most IDs)
└── TenantId — customer-defined string (TenantFacilityId, TenantOrderId, …)PlatformId — these values are generated by the fulfillmenttools platform and returned in API responses. You read them from a response and pass them back into subsequent calls.
TenantId — these are identifiers you assign yourself (e.g. your own facility code or order number). They have an additional toUrn() method for tenant-ID lookups.
Tenant IDs and URN Lookups
TenantId types expose a toUrn(String resourceType) helper that produces the URN path segment required when looking up resources by their tenant-defined identifier:
import de.joesst.dev.fulfillmenttools.id.TenantFacilityId;
TenantFacilityId id = TenantFacilityId.builder().value("wh-berlin").build();
String urn = id.toUrn("facility:tenantFacilityId");
// → "urn:fft:facility:tenantFacilityId:wh-berlin"All ID Types
Platform IDs
| ID type | Used by |
|---|---|
CarrierId | Carriers client |
ConnectionId | Facility Connections client |
ExternalActionId | External Actions client |
FacilityDiscountId | Facility Discounts client |
FacilityGroupId | Facility Groups client |
FacilityId | Facilities, Storage Locations, Facility Connections, Facility Discounts clients |
HandoverJobId | Handovers client |
ListingId | Listings / stock management |
OrderId | Orders client |
PackJobId | Packing client |
PickJobId | Picking client |
ProcessId | External Actions client (processRef) |
RatingResultId | Sourcing Options client (rating result identifiers); use RatingResultType for the criterion type (e.g. StandardRating, ToolkitRating) |
ReservationId | Reservations client |
ReturnId | Returns client |
RoutingPlanId | Routing Plans client |
RoutingStrategyId | Routing Strategy client |
RoutingStrategyNodeId | Routing Strategy client (strategy nodes) |
SourcingOptionId | Sourcing Options client (individual options) |
SourcingOptionNodeId | Sourcing Options client (facility nodes within options) |
SourcingOptionsRequestId | Sourcing Options client (evaluation requests) |
SourcingOptionsRunId | Sourcing Options client (evaluation runs) |
StockId | Stocks client |
StorageLocationId | Storage Locations client |
StowJobId | Inbound / stow jobs |
SubscriptionId | Eventing client |
TagId | Tags |
UserId | Users client |
Tenant IDs
| ID type | Represents |
|---|---|
TenantArticleId | Customer-defined article identifier |
TenantFacilityId | Customer-defined facility identifier |
TenantOrderId | Customer-defined order identifier |
TenantStockId | Customer-defined stock identifier |