These value objects appear across every module. None of them is specific to logistics, so any domain built on this platform can reuse them unchanged.

Money

amount is an integer in the currency’s minor unit (its ISO 4217 exponent), and currency is a lowercase ISO 4217 code. Floats are never used for money. JPY has exponent 0, so 1299 means ¥1299. KWD has exponent 3, so 1299 means KWD 1.299.

Measurements

Every physical quantity carries its unit. Implementers convert, and clients never guess. When converting for a counterparty that bills on a rounded value, round up to its precision.

Contact and Address

A Contact is a party (a person or an organization) with an optional nested Address (a place). Keeping them separate lets each exist alone: a contact with no address, such as a phone line, or an address with no contact, such as a facility.
phone is E.164, country is ISO 3166-1 alpha-2, and state is an ISO 3166-2 subdivision code. The full field rules, including street-number handling and validation, are in Core objects §1.

Recurrence

The shared schedule shape for anything that repeats. In logistics it drives pickup schedules (chapter 04 §7), routes (chapter 16), driver shifts (chapter 17), end-of-day close (chapter 05 §7) and job schedules (chapter 27).
Implementers MUST expand recurrences in timezone, including across DST changes. A 15:00 occurrence stays at 15:00 local time.

Area

The shared geography selector. In logistics it backs zones (chapter 14 §5), which rate sheets, service coverage and fleet service areas reference.
  • An address matches an area if it matches any included selector and no excluded selector.
  • postal_codes supports exact values, * prefix wildcards, and inclusive ranges with -. Ranges compare postal codes as strings of equal length.
  • polygons is a GeoJSON MultiPolygon for fleet service areas. radius is { center: { latitude, longitude }, distance: { value, unit: "km" | "mi" } }. Geometric selectors need geocoded addresses, and implementers that cannot geocode MUST reject areas that use them, with option_unsupported.

Messages

Successful responses MAY carry non-fatal messages[]:
level is info or warning. Errors are never messages.

Metadata namespaces

Every object carries user_metadata (written by the client), carrier_metadata (written by an external provider, read-only and unversioned) and system_metadata (written by the implementer, for provenance). See Conventions §5.1.

File and Document

  • A file (file_) is stored bytes with a purpose, a content type, a size and a SHA-256 hash. It is uploaded as multipart or base64 JSON. See Files.
  • A document (doc_) is a rendered or provider-issued artifact attached to an object: a type, a format, a short-lived signed url or inline data, and, when it was rendered from a template, template and template_version. See Templates & generation.