Connect with xChange

Connecting global container logistics

Talk to us

1. Purpose of this document

xChange connect enables members to integrate their shipping software with xChange. At a glance you will, when integrated, profit from these benefits:

  • Create one-way leasing supplies & requirements seamlessly
  • Sell containers automatically on the trading platform
  • Get better matches and offers on xChange
  • Get event-based container tracking data from all carriers
  • Get aggregated movement-reports from all depots

All of these points can lead to a reduction of overtyping, increase of fleet utilization and boost of economic success on xChange. Read more details about the features and benefits here.

Further in this document, all possible ways to push to and receive data from xChange are described and specified in terms of data standards, authentication and endpoints.

2. General information

Send data to xChange

xChange Solutions offers a REST API to receive data. The xChange API allows xChange members to work with xChange out of their own software.

Authentication

To authenticate with xChange’s servers it is necessary to authenticate. All API requests that are submitted to the API endpoints obey the following constraints. xChange uses API Tokens to authenticate an incoming API calls and to assign the call to the correct member. To authenticate, the header of the API request may have the given API Token as parameter in the URL.

Example:

https://integration.container-xchange.com/connect/rest/api/v1/inventory?api_token=<API Token>

To obtain the token please contact connect@container-xchange.com.

Payload encoding

All payloads may be encoded as JSON object.

Example:

[  
  {  
    "booking_id": "your_internal_id_12345",  
    "deal_id": "",  
    "pickup_location": "CST Hamburg",  
    "pickup_unlocode": "DEHAM"  
   },  
  {  
    "booking_id": "your_internal_id_98765",  
    "deal_id": "1234-1",  
    "pickup_location": "Depot XY",  
    "pickup_unlocode": "CNSHG"  
   }  
]

Error handling

Upon receiving your data, the API service checks whether all mandatory fields are existing. If all mandatory fields exist, an HTTP response with code 200 will be sent. Otherwise, the response will contain details about the error, e.g. listing the missing or erroneous fields.

For further response code explanations, please see the table below.

Last update timestamp

For xChange to process your containers fast and efficiently, a timestamp, which indicates the date and time, a line in the sent object got changed. This applies to every container in the inventory and every reservation in the reservations-payload.

"last_update":"2020-11-30T08:11+2"

Testing environment

We are happy to provide you with a robust testing environment based in a swagger.io instance running on our servers.

Receive data from xChange

As per now the supported ways of sending data to xChange’s integrated members (you) are

Please provide us details how to connect with you.

Authentication

To authenticate outgoing communication from xChange to the members’ backend, xChange must authenticate accordingly. Please provide us with the corresponding credentials and documentation.

Payload encoding

When receiving data from xChange, the payload will be encoded as an JSON object. See the example above.

Error handling

Please follow standard HTTP response codes described in the following chapter. Furthermore, please include, if possible, a brief error description in that case.

3. Response codes

Response Code Meaning
200 OK All is ok. The call was successful.
201 Created An API request to create a new entity or entities was successful, the entities were created.
202 Accepted An API request has been successfully accepted into a processing queue to be acted on later.
204 No Content An API request was successful, but there is no response body to return. Often seen on successful DELETE calls.
400 Bad Request Parsing or validating the request failed.
401 Unauthorized Authentication information (the app key & secret) was either incorrect or missing.
403 Forbidden Authentication was correct, but the user does not have permission to access the requested API, e.g., if the feature in question is not included in your pricing plan.
404 Not Found Returned when a request is made for a nonexistent entity.
405 Method Not Allowed Returned when a request is made using an HTTP method not supported by the endpoint. For example, sending a DELETE to /api/schedules.
406 Unacceptable Return when the client requests a version of the API which cannot be satisfied, because no compatible version is currently deployed.
410 Gone The requested resource is no longer available on this server and there is no forwarding address.
500 Internal server error There was an internal server error. The dev team was informed.

4. xChange data standards

Please follow the below stated standards for seamless data transmissions:

Date and time convention

Date and time must follow ISO 8601 specifications:

Format: 2020-07-01 09:00:22 UTC+5 translates to 2020-07-01T09:00+5

Note: For the following parameters use YYYY-MM-DD without time:

  • val_date
  • ready_for_pickup_date
  • eta

Container number

The container number must follow ISO 6346 specifications:

Example: ABCU1234567

Locations

xChange follows the UN/LOCODE convention. UN/LOCODEs are 5-character codes for almost every city or point of interest in the world. You can look up UN/LOCODEs at http://www.unece.org/cefact/locode/service/location.html. Otherwise, we can provide you with an according list.

Hamburg would translate to DEHAM

Container equipment type

We provide you with the different container types and their naming conventions as soon as you get in touch with us.

Container conditions

We provide you with the different container conditions and their naming conventions as soon as you get in touch with us.

A. Supply and use-data on xChange

Availabilities are the basis to creating offers on the trading platform and requirements on the one-way platform. To profit from automatically created availabilities on xChange, two types of data must be sent on a regular basis from the integrated member to xChange: Inventories and bookings.

Synchronizing the inventory solely allows you to enable your fleet to be tracked by xChange’s tracking engine.

A.1. Inventory synchronization

xChange needs to know which individual containers are, in principle, available to offer on xChange. If you are interested in tracking your whole fleet, this is how you submit the list of containers to be tracked.

This API endpoint can be called based on a schedule, e.g. every hour, or event based and must contain all containers from the inventory, not just the changed ones.

URL Structure

https://integration.container-xchange.com/connect/rest/api/v1/inventory?api_token=<api token>

Parameters

 

Parameter Datatype Description Mandatory?
container_number string Container identification number yes
container_type string Container type yes
status string Status of container. Must be ‘inventory’ when on ground/in stock. yes
current_depot string Name of depot if container on ground if ‘status’=’inventory’
current_unlocode string Location of depot if container on ground, UN/LOCODE if ‘status’=’inventory’
pickup_depot string Name of pickup depot if ‘status’!=’inventory’ if ‘status’!=’inventory’
pickup_unlocode string Location of pickup depot if ‘status’!=’inventory’, UN/LOCODE if ‘status’!=’inventory’
dropoff_depot string Name of dropoff depot if ‘status’!=’inventory’ if ‘status’!=’inventory’
dropoff_unlocode string Location of dropoff depot if ‘status’!=’inventory’, UN/LOCODE if ‘status’!=’inventory’
condition string Current container condition yes
color string Color of the container no
ready_for_pickup_date string Earliest date a container can be picked up no
eta string Estimated time of arrival at destination no
ref_out boolean Release reference number no
ow_flag boolean If container is available for one-way on xChange = 1, otherwise = 0 no
sale_flag boolean If container is available for sale on xChange = 1, otherwise = 0 no
tracking_flag boolean If container should be tracked, set to 1, otherwise 0 no
partner String This helps to track the containers in case of ‘tracking_flag’=1 no
year_of_manufacturing integer Year of manufacturing no
target_price double Target price of container when offered initially for sale no
last_update string Timestamp. Describes the last time the given container got an update in any of the fields above yes
capacity integer In case of a tank container, capacity in liters no
grade string In case of tank container, “food_grade” or “chemical” no

Example:

curl -X POST "https://integration.container-xchange.com/connect/rest/api/v1/inventory?api_token=<API TOKEN>" 
        -H  "accept: */*" 
        -H  "Content-Type: application/json" 
        -d <payload>

Payload example:

[
  {
    "container_number": "ABCU1234567",
    "container_type": "20HC",
    "status": "inventory",
    "current_depot": "CST Hamburg",
    "current_unlocode": "DEHAM",
    "pickup_depot": "",
    "pickup_unlocode": "",
    "dropoff_depot": "",
    "dropoff_unlocode": "",
    "condition": "CARGO_WORTHY",
    "color": "Red",
    "ready_for_pickup_date": "",
    "eta": "",
    "ref_out": "",
    "ow_flag": 1,
    "sale_flag": 1,
    "tracking_flag": 1,
    "partner": "Maersk Lines",
    "year_of_manufacturing": 2010,
    "target_price": "",
    "last_update": "2020-10-12T15:27+2"
  },
  {
    "container_number": "XYZU7654321",
    "container_type": "40HC",
    "status": "leased",
    "current_depot": "",
    "current_unlocode": "",
    "pickup_depot": "CST Hamburg",
    "pickup_unlocode": "DEHAM",
    "dropoff_depot": "Depot Xy",
    "dropoff_unlocode": "CNSHG",
    "condition": "BRAND_NEW",
    "color": "",
    "ready_for_pickup_date": "2020-10-01T12:00+2",
    "eta": "2020-10-31",
    "ref_out": "ref12345",
    "ow_flag": 1,
    "sale_flag": 1,
    "tracking_flag": 1,
    "partner": "Maersk Lines",
    "year_of_manufacturing": 2010,
    "target_price": "",
    "last_update": "2020-10-12T15:27+2"
  }
]

 

A.2. Reservations

Reservations refer to groups of containers, sharing the same condition, type and location, that are expected to be picked up in the near future. To calculate the right amount available per availability, xChange needs no know how many containers are “blocked”. As soon as all containers of a booking have been picked up, the reservation is not needed anymore.

This API endpoint can be called based on a schedule, e.g. every hour, or event based and must contain all reservations of a given group of containers, not just the changed ones.

URL Structure

https://integration.container-xchange.com/connect/rest/api/v1/reservations?api_token=<api token>

Parameters

Parameter Datatype Description Mandatory?
booking_id string your internal booking identifier yes
deal_id string xChange request or deal-id no
pickup_location string Pickup depot name yes
pickup_unlocode string pickup depot location code, UN/LOCODE yes
container_type string Container type yes
condition string Container condition yes
ref_out string Release reference number yes
amount_booking string Total amount of containers enclosed in reservation yes
amount_picked_up string Amount of containers already picked-up yes
last_update string Timestamp. Describes the last time the given reservation got an update in any of the fields above yes

Example:

curl -X POST "https://integration.container-xchange.com/connect/rest/api/v1/reservations?api_token=<API TOKEN>" 
        -H  "accept: */*" 
        -H  "Content-Type: application/json" 
        -d <payload>

Payload example:

[
  {
    "booking_id": "your_internal_id_12345",
    "deal_id": "",
    "pickup_location": "CST Hamburg",
    "pickup_unlocode": "DEHAM",
    "container_type": "45HC",
    "condition": "CARGO_WORTHY",
    "ref_out": "release_1234",
    "amount_booking": 10,
    "amount_picked_up": 5,
    "last_update": "2020-10-12T16:06+2"
  },
  {
    "booking_id": "your_internal_id_98765",
    "deal_id": "123-1",
    "pickup_location": "DIT Duisburg",
    "pickup_unlocode": "DEDUI",
    "container_type": "40HC",
    "condition": "BRAND_NEW",
    "ref_out": "release_9876",
    "amount_booking": 5,
    "amount_picked_up": 0,
    "last_update": "2020-10-12T16:06+2"
  }
]

 

A.3. Stocklist synchronization

If you have a stocklist, hence groups of containers that share the same container pickup location, type, condition and price, you can provide them directly.

Please note that the combination of location, type, conditon and price (even if it is null) must be unique.

URL Structure

https://integration.container-xchange.com/connect/rest/api/v1/availabilities?api_token=<api token>

Parameters

Parameter Datatype Description Mandatory?
container_type string Type of container, e.g. 40HC yes
container_condition string Container condition yes
location_unlocode string Current location of the container/ POL yes
price double Price for one container offered on the trading marketplace, in USD no
avail_amount_ow integer Number of containers to be offered for one-way-leasing yes
avail_amount_trading integer Number of containers to be offered for sale yes
avail_amount_depot integer Number of containers in the depot that are available for business (for inventory displaying purposes) yes
total_amount_depot integer Total number of containers in the depot, including blocked containers yes
yom_from integer Lower end of the year of manufacture range no
yom_to integer Upper end of the year of manufacture range no
colors string Colors of the container no
grade string In case of tank containers either “food_grade” or “chemical” no
capacity integer Capacity in liters in case of tank container no

Example:

curl -X POST "https://integration.container-xchange.com/connect/rest/api/v1/availabilities?api_token=<API TOKEN>" 
        -H  "accept: */*" 
        -H  "Content-Type: application/json" 
        -d <payload>

Payload example:

[
{
"container_type": "T75",
"container_condition": "CARGO_WORTHY",
"location_unlocode": "BEANR",
"price": 2760,
"avail_amount_ow": 0,
"avail_amount_trading": 10,
"avail_amount_depot": 10,
"total_amount_depot": 10,
"yom_from": 2001,
"yom_to": 2011,
"colors": null,
"capacity": 22000,
"grade": "chemical"
},
{
"container_type": "20DC",
"container_condition": "CARGO_WORTHY",
"location_unlocode": "DEHAM",
"price": 2995,
"avail_amount_ow": 0,
"avail_amount_trading": 8,
"avail_amount_depot": 8,
"total_amount_depot": 8,
"yom_from": 2000,
"yom_to": 2011,
"colors": "RAL 1100, Green",
"capacity": null,
"grade": null
}
]

A.4. Requirement synchronization

The most common data-type for matches on the one-way marketplace are Requirements. Requirements consist out of:

Direction, Pick-up Location → Drop-off Location + Equipment type, Equipment quantity + initial terms when supplying

e.g. “Use 20 x 40HC Cargo Worthy from Hamburg to Shanghai”

Please note that each requirement must be unique in terms of the combination of container type, pickup- and dropoff-location, direction and condition.

URL Structure

https://integration.container-xchange.com/connect/rest/api/v1/requirements?api_token=<api token>

Parameters

Parameter Datatype Description Mandatory?
pickup_location string Port of loading, UN/LOCODE yes
dropoff_location string Port of discharge, UN/LOCODE yes
direction string can be “supplying” or “using” yes
equipment_type string Type of container, e.g. 20DC yes
condition string Container condition yes
equipment_count integer Number of containers to be included in the requirement yes if direction = supplying
free_days integer Number of days free of charge for the container user yes if direction = supplying
per_diem double Amount to be charged to the container user after the free days yes if direction = supplying
pickup_charge double One time payment by the container users upon pickup yes if direction = supplying
damage_protection_plan integer yes if direction = supplying
residual_value integer Residual value of the container yes if direction = supplying
depreciation_rate integer Depreciation rate in % yes if direction = supplying
replacement_value integer Replacement value of the container yes if direction = supplying
grade string In case of tank containers either “food_grade” or “chemical” no
capacity integer Capacity in liters in case of tank container no

Example:

curl -X POST "https://integration.container-xchange.com/connect/rest/api/v1/requirements?api_token=<API TOKEN>" 
        -H  "accept: */*" 
        -H  "Content-Type: application/json" 
        -d <payload>

Payload example:

[
{
"pickup_location": "CNFZH",
"dropoff_location": "DEHAM",
"direction": "Using",
"equipment_type": "75T",
"condition": "CARGO_WORTHY",
"equipment_count": null,
"free_days": null,
"per_diem": null,
"pickup_charge": null,
"damage_protection_plan": null,
"residual_value": null,
"depreciation_rate": null,
"replacement_value": null,
"grade": "Chemical",
"capacity": 22000
},
{
"pickup_location": "CNFZH",
"dropoff_location": "DEHAM",
"direction": "Supplying",
"equipment_type": "40HC",
"condition": "CARGO_WORTHY",
"equipment_count": 8,
"free_days": 60,
"per_diem": 1,
"pickup_charge": 50,
"damage_protection_plan": 100,
"residual_value": 3000,
"depreciation_rate": 5,
"replacement_value": 50,
"grade": "",
"capacity": null
}
]

 

B. Leaning up your processes

This chapter specifies two ways of speeding up your processes while working with xChange.

B.1. Accepted deal details

Here the payload is defined, that allows xChange to push details about an accepted deal to your software, being, after a successful negotiation at the trading- or one-way-leasing-platform.

Please design your endpoints following the below defined parameters.

Container trading negotiation was successful

When a negotiation on the trading platform ends successfully by one of the two parties closing the deal, the below stated payload will be sent to integrated customers. This can result for the supplying party in the automatic reservation of the right amount of containers.

Parameter Datatype Description Mandatory?
trading_id string xChange trading deal id yes
trading_role string Can be either ‘seller’ or ‘buyer’ yes
container_type string Container type yes
condition string Container condition yes
color string Color(s) of the container(s) no
yom_from integer Start of ‘year-of-manufacturing’-range no
yom_to integer End of ‘year-of-manufacturing’-range. 0 or “” if not applicable no
amount integer Number of containers enclosed in deal yes
pickup_depot string Pickup location name no
pickup_unlocode string Pickup location UN/LOCODE yes
partner string Partner name (company name) yes
price double Selling price per container yes
freedays integer Amount of days withough storage charge starting form release creation date yes
daily_storage_charge double per-day storage charge for container buys in USD yes
payment_handling boolean Indicates whether payment is handled over xChange yes

Payload example:

[
  {
    "trading_id": "123-1",
    "trading_role": "buyer",
    "container_type": "20HC",
    "condition": "BRAND_NEW",
    "color": "Green",
    "yom_from": 2018,
    "yom_to": 2020,
    "amount": 3,
    "pickup_depot": null,
    "pickup_unlocode": "DEHAM",
    "partner": "Trader xyz",
    "price": 2500,
    "freedays": 20,
    "daily_storage_charge": 10,
    "payment_handling": true
  }
]

One-way-leasing deal is accepted

When a negotiation on the one-way-leasing platform ends successfully by one of the two parties closing the deal, the below stated payload will be sent to integrated customers.

This can result for the supplying party in the automatic reservation of the right amount of containers.

Parameter Datatype Description Mandatory?
request_id string xChange trading deal id yes
request_role string Defined by the role of the receiver. Can be ‘supplier’ or ‘user’ yes
partner string Partner name (company name) yes
container_type string Container type yes
condition string Container condition yes
amount integer Amount of container enclosed in request yes
pickup_depot string Name of pickup depot no
pickup_unlocode string Location of pickup depot, UN/LOCODE yes
dropoff_depot string Name of dropoff depot no
dropoff_unlocode string Location of dropoff depot, UN/LOCODE yes
freedays integer Amount of days the container can be used with no charge by the user yes
per_diem double Per-day rental charge for container user yes
pickup_charge doule One time pickup charge for container user yes
damage_protection_plan double Damage protection plan. If monetary damage exceeds amount, user has to pay. In USD yes
discounted_residual_value double Discounted residual value. In USD yes
damage_protection_insurance double Damage protection insurance per container. In USD yes

Payload example:

[
  {
    "request_id": "12345",
    "request_role": "supplier",
    "partner": "xChange Member 10",
    "container_type": "45HC",
    "condition": "CARGO_WORTHY",
    "amount": 10,
    "pickup_depot": "CST Hamburg",
    "pickup_unlocode": "DEHAM",
    "dropoff_depot": "CNSHG",
    "dropoff_unlocode": "Depot Xi",
    "freedays": 30,
    "per_diem": 1.5,
    "pickup_charge": 0.5,
    "damage_protection_plan": 200,
    "discounted_residual_value": 700,
    "damage_protection_insurance": 1000
  }
]

B.2. Release creation

If you are the supplier of containers withing a trading- or one-way-leasing-deal you can create release documents automatically out of your software. This will make the release document available to download for the other party on xChange instantly.

This API Endpoint should be called after reserving the right amounts of containers and asigning the reservation a release number.

URL Structure

https://integration.container-xchange.com/connect/rest/api/v1/create-release?api_token=<api token>

Payload

Parameter Datatype Description Mandatory?
request_id string xChange request id for given release. yes if ‘trading_id’ = null
trading_id string xChange trading id for given release. yes if ‘request_id’ = null
ref_out string The release reference created by your company yes
val_date string Validity date of release. Default 14 days if left empty  no
container_type string Container type yes
condition string Container condition yes
amount integer Amount of containers enclosed in release document yes
pickup_depot string Name of pickup depot yes
pickup_unlocode string Location of pickup depot, UN/LOCODE yes
depot_address_1 string Address line 1 of pickup depot yes
depot_address_2 string Address line 2 of pickup depot no
depot_zip string Zip code of pickup depot no
depot_phone string Phone number of pickup depot (e.g. +49 40 12345) yes
depot_email string Contact e-mail of pickup depot yes
additional_info string Additional info to be on the release document. ‘\n’ for linebreak no

Example:

curl -X POST "https://integration.container-xchange.com/connect/rest/api/v1/create-release?api_token=<API TOKEN>" 
        -H  "accept: */*" 
        -H  "Content-Type: application/json" 
        -d <payload>

Payload example:

[
  {
    "request_id": "X12345",
    "trading_id": "",
    "ref_out": "ABC-XYZ99999",
    "val_date": "2020-10-15",
    "container_type": "20DC",
    "condition": "CARGO_WORTHY",
    "amount": 10,
    "pickup_depot": "CST Hamburg",
    "pickup_unlocode": "DEHAM",
    "depot_address_1": "Industriestrasse 55",
    "depot_address_2": "",
    "depot_zip": "21107",
    "depot_phone": "+49 40 74119066",
    "depot_email": "info@cst-container.com",
    "additional_info": "Please make sure you advise your hauler to pick cargo worthy units as the release is ex-stack.\nKindly contact depot prior to sending trucks for collection."
  }
]

 

C. Track your containers

This chapter specifies the payloads of tracking related events, like gate-in and -out movements of containers or more detailed tracking informations from determined by the MyFleet Tracking Engine. To enable your fleet for tracking, please refer to A.1. Inventory synchronization.

C.1. Receive tracking events

Tracking events are sent to you event based. This means that if xChange tracking engine registers a new event of one of your containers in your inventory, we call your API or webhook endpoints with the event data.

Please design your endpoints following the below defined parameters.

Parameter Datatype Description Mandatory?
container_number string Container number yes
event_date string Date of the event. YYYY-MM-DD yes
event_name string Describes the event yes
event_location string Location related to the event. UN/LOCODE yes
transport_mode string E.g. Vessel Name no
voyage string Voyage number no
eta boolean indicates, whether event_date refers to the estimated time of arrival yes

Payload example:

{
  'container_number':'ABCU1234567',
  'event_date':'2020-10-28',
  'event_name':'Empty Returned (Off-hired)'
  'event_location':'DEHAM',
  'transport_mode':'M.S. Tina',
  'voyage':'V. 125'
  'eta': false
}

or

{
  'container_number':'ABCU1234567',
  'event_date':'2021-02-28',
  'event_name':'Empty Returned (Off-hired)'
  'event_location':'DEHAM',
  'transport_mode':'',
  'voyage':''
  'eta': true
}

 

C.2. Gate-movements

Gate-movements can be both pushed to your backend as well as being provided to xChange.

Get gate-movements from xChange

As soon as a gate-in or -out movement is registered by xChange we push integrated customers these movements directly into their software.

Please design your endpoints following the below defined parameters.

Parameter Datatype Description Mandatory?
container_number string Container number yes
ref_out string The release number connected to the gate movement no
event string Describes the event. Possible values:

‘out’ : container loaded

‘in’: container unloaded

‘reset’: container back to ‘not-picked-up’-status

yes
depot_name string Depots name. Depending on ‘event’ pick-up or drop-off. In case of ‘event’:’reset’ –> pickup depot yes
depot_unlocode string Depot location, UN/LOCODE yes

Payload example:

[
  {
    "container_number": "ABCU1234567",
    "ref_out": "REFxyz-123",
    "event": "in",
    "depot_name": "CST Hamburg",
    "depot_unlocode": "DEHAM"
  }
]

or

[
  {
    "container_number": "ABCU1234567",
    "ref_out": "REFxyz-123",
    "event": "out",
    "depot_name": "CST Hamburg",
    "depot_unlocode": "DEHAM"
  }
]

Send gate-movements to xChange

Send gate-movements to xChange when they are entered manually to xChange, so that your partner gets this info faster and billing based on used days is seamless.

URL Structure:
https://integration.container-xchange.com/connect/rest/api/v1/gate-movement?api_token=<api token>
Parameter Datatype Description Mandatory?
container_number string Container number yes
ref_out string The release number connected to the gate movement no
event string Describes the event. Possible values:

‘out’ : container loaded

‘in’: container unloaded

‘reset’: container back to ‘not-picked-up’-status

yes
depot_name string Depots name. Depending on ‘event’ pick-up or drop-off. In case of ‘event’:’reset’ –> pickup depot yes
depot_unlocode string Depot location, UN/LOCODE yes

Example:

curl -X POST "https://integration.container-xchange.com/connect/rest/api/v1/gate-movement?api_token=<api token>" 
   -H  "accept: */*" 
   -H  "Content-Type: application/json" 
   -d "<payload>

Payload example:

[
  {
    "container_number": "ABCU1234567",
    "ref_out": "REFxyz-123",
    "event": "in",
    "depot_name": "CST Hamburg",
    "depot_unlocode": "DEHAM"
  }
]

or

[
  {
    "container_number": "ABCU1234567",
    "ref_out": "REFxyz-123",
    "event": "out",
    "depot_name": "CST Hamburg",
    "depot_unlocode": "DEHAM"
  }
]

D. Depot integrations

xChange offers different ways for depots to send gate movements to xChange for their customers. However, before sending customer related details to xChange as a third party, an information processing agreement must be signed by the customer to authorize the depot to send the data.

D.1. EDI

xChange supports EDIFACT/CODECO standard to receive and process gate movements. EDI messages can be saved on a dedicated SFTP-Server or sent to an e-mail inbox serving that purpose. Please get in touch with connect@container-xchange.com for more details.

D.2. API calls

You can provide us with event-based gate movements via a dedicated API endpoint. Please refer to section C.2. for more details on that.

D.3. ODBC

We can access a part of your database securely over ODBC. Please get in touch with us for more information on that topic.

 

 

Version 1.6 – Last revision: 10.08.2021
In case of any questions please use the contact form below.

Get in touch with us

Do you have any other questions? We’re happy to help you with that!
Let’s integrate now!