Transmission Shipment Objects
The main focus of Transmission is the management of
Shipments, including the basic CrUD features and more in depth management.
Note: Transmission does not host any identity services. Instead, you can use your own service by setting the PROFILES_URL in the environment.
Transmission uses REST API to handle its functions. The documentation for the API calls can be found here. In order to use Transmission, you will need to have a version of Engine up and running, as Transmission is the proxy for Ethereum requests.
Shipments will contain all the data for the shipment itself, with the schema found here.
These objects are the core of Transmission, and are necessary for many of the calls in Transmission.
Transmission will accept request bodies in the JSON or Form Data style. If there is a PROFILES_URL associated, then it expects a JWT in the headers.
There are four fields that are necessary for
Shipments to exist.
These fields are:
owner_id field is automatically enriched based off the JWT if there is a
However, if there is no identity service associated than this must be manually set as a field.
All the other fields can be filled out, though they are not necessary.
If Engine is not currently running, then creating
Shipments will fail, and return a 503 error.
Otherwise, a successful call will respond with a 202, and will contain the
id in the response.
When creating or updating
Shipments, you are able to associate
Locations with it.
Locations are only associated with
Shipments, and as such are tied to the creation/update of
There are four different
Locations that can be associated with
To manage these
Locations, you need to include them in the request body with the following format:
When these fields are included in the
Shipments creation/update, then the associated
Locations will be associated and returned in the
In order to add
Devices object need to be associated to post the data.
This is done by adding
device_id to the request body, but there are some caveats.
Devices can only be associated with one
Shipments object at a time, and the
Shipments object it is associated to is to whom it posts the
Devices object can only be disassociated from the
Shipments object upon delivery completion, as denoted by the
delivery_act time has been set, the
Shipments object associated in the
Devices shadow will be removed.
This will allow the
Devices object to be associated with a different
If there is no
PROFILES_URL associated with Transmission, then everyone has access to
If there is a
PROFILES_URL associated, then there are some qualifications for access.
The owner of a
Shipments instance, whoever created it, has full control over it and has full CrUD capabilities.
Those who own the
moderator_wallet_id are able to update and access the
This allows them to add and modify the necessary data for the
Shipment, though they are unable to delete it.