Introduction
Welcome to the ALLINE Cross Border API Documentation!
The ALLINE Cross Border API allows you to perform cross border operations on the ALLINE system.
ALLINE Cross Border API is built using REST principles which ensures predictable URLs that makes writing applications easy. This API follows HTTP rules, enabling a wide range of HTTP clients which can be used to interact with the API.
Every resource is exposed as a URL. The URL of each resource can be obtained by accessing the API Root Endpoint https://crossborder.omniship.eu/api/v3/.
For example the Waybills resource is reachable at https://crossborder.omniship.eu/api/v3/waybills.
Authentication
To authorize, use this code:
# With shell, you can just pass the correct header with each request
curl "https://crossborder.omniship.eu/api/v3/<resource>"
-H "Authorization: FkihCtzyXWvutSRUaaEupN8hvABcDefgHI6lJKvv"
-H "Content-Type: application/json"
Make sure to replace
FkihCtzyXWvutSRUaaEupN8hvABcDefgHI6lJKvv
with your API key.
ALLINE uses bearer authentication to authenticate requests. Contact your ALLINE representative to receive a new ALLINE API access token.
In order to authenticate properly, please put Authorization: Bearer <API Access Token>
in the request header. ALLINE expects for the API access token to be included in all API requests to the server in a header that looks like the following:
Authorization: FkihCtzyXWvutSRUaaEupN8hvABcDefgHI6lJKvv
Shipping Methods
Example:
{
"name": "DEDHL",
"address": {
"company": "DHL Bochum",
"line_1": "Opelring 1",
"city": "Bochum",
"country": "DE",
"country_full": "Germany",
"is_pickup": false
},
"customer": "Acme",
"print_label": false
}
A Shipping Method represents the destination that can be assigned to parcels by using the name
attribute in the pre-alert upload.
Attribute | Type | Description |
---|---|---|
id |
integer | Unique ID of a Shipping Method. This is used as an identifier. |
name |
string | Unique code to identify a Shipping Method. |
address |
Object | Address associated with the Shipping Method. |
customer |
string | Customer associated with the Shipping Method. |
print_label |
boolean | Indicates if final mile relabeling is enabled for this Shipping Method. |
List all Shipping Methods
curl "https://crossborder.omniship.eu/api/v3/shipping_methods"
-H "Authorization: FkihCtzyXWvutSRUaaEupN8hvABcDefgHI6lJKvv"
-H "Content-Type: application/json"
The above command returns JSON structured like this:
HTTP/1.1 200 OK
Content-Type:application/json;charset=UTF-8
{
"data": [
{
"name": "DEDHL",
"address": {
"company": "DHL Bochum",
"line_1": "Opelring 1",
"city": "Bochum",
"country": "DE",
"country_full": "Germany",
"is_pickup": false
},
"customer": "Acme",
"print_label": false
},
{
"name": "DEDP",
"address": {
"company": "Deutsche Post Essen",
"line_1": "Daniel-Eckhardt-Straße 7",
"city": "Essen",
"country": "DE",
"country_full": "Germany",
"is_pickup": false
},
"customer": "Acme",
"print_label": false
},
{"..."},
{"..."}
]
}
This endpoint retrieves all Shipping Methods.
HTTP Request
GET /api/v3/shipping_methods
Waybills
Example:
{
"data": {
"id": "1cb3480a-86d3-44f2-a36d-f082e501fd37",
"masterWaybillNumber": "112-60318215",
"transportType": "air",
"customer": "Acme",
"customer_code": "ACE",
"status": "created",
"statusChangeUtc": "2024-04-24T07:09:14+00:00",
"statusChangeLocalTime": "2024-04-24T09:09:14+02:00",
"statusChangedHuman": "1 second ago",
"bigBagCount": 1,
"grossWeight": 13.25,
"airline": {
"trackingLink": "https://www.skyteam.com/en/cargo/track-shipment/",
"name": "China Cargo Airlines",
"prefix": "112",
"code": "MU",
"copyNumber": "60318215"
},
"destinationFlightNumber": "CK210",
"eta": "2024-05-26T00:00:00+02:00",
"declarationType": "full",
"parcels": [
"1Z1V510W6898496192"
],
"inboundComplete": false,
"totalBagsUploaded": 0,
"totalParcelsUploaded": 0,
"parcelsInbound": 0,
"parcelsInboundPercentage": "0%",
"parcelsReleased": 0,
"parcelsReleasedPercentage": "0 %",
"parcelsOutbound": 0,
"parcelsOutboundPercentage": "0%"
}
}
A Waybill is a document that represents the contents of a shipment ready for transport and processing. It details the exact quantity, price and delivery details of the individual packages. Perform the simple operations mentioned below to create and manage your Waybill pre alert.
Attribute | Type | Description |
---|---|---|
id |
string | Unique ID of a waybill. This is used as an identifier. The ID Is either created by the system or your own reference given at creation |
masterWaybillNumber |
string | Identifies the total shipment. If waybill transportType is air a validation check is done on the format of the masterWaybillNumber given. |
transportType |
string | The transport type of the waybill. Valid values are (air , road , train , sea , other ). |
customer |
string | Customer name of the account associated with the waybill. |
customer_code |
string | Unique ID of a customer. This is used as an identifier. |
status |
string | Indicates the current waybill status. Values can be (pre_upload , created , noa_received , received , ready_to_scan , scanning... , pending_check , inbound , partial_inbound , part_out , outbound ) |
statusChangeUtc |
datetime | Identifies the date and time of the last status change in UTC time. |
statusChangeLocalTime |
datetime | Identifies the date and time of the last status change in local time of the warehouse. |
statusChangedHuman |
datetime | Human readable representation of the time past since last status change. |
bigBagCount |
integer | Indicates the number of pieces (BigBags/Boxes/Units) expected for the shipment. |
grossWeight |
float | Indicates the given gross weight for the shipment. |
airline |
string | The airline for the incoming flight in case transportType is air . |
destinationFlightNumber |
string | The incoming flight number to the destination airport. For the Alline warehouse the destination airport is Schiphol (AMS) |
eta |
datetime | The estimated arrival time at the destination airport. (Updates automatically when right flight number and arrival date are given. |
declarationType |
string | The type of customs declaration needed for the shipment. Valid values are (full , partial , none ). |
inboundComplete |
boolean | Indicates if the inbound scan is (temporarily) completed. |
totalBagsUploaded |
integer | The total number of BigBags/Boxes/Units uploaded in the system associated with this waybill. |
parcelsInbound |
integer | The total number of Parcels uploaded in the system associated with this waybill. |
parcelsInboundPercentage |
string | The percentage of parcels currently inbound. |
parcelsReleased |
integer | The total number of parcels released. |
parcelsReleasedPercentage |
string | The percentage of parcels currently released. |
parcelsOutbound |
inbound | The total number of parcels currently outbound. |
parcelsOutboundPercentage |
string | The percentage of parcels currently outbound. |
Create a Waybill
curl "https://crossborder.omniship.eu/api/v3/waybills"
-X POST
-H "Authorization: FkihCtzyXWvutSRUaaEupN8hvABcDefgHI6lJKvv"
-H "Content-Type: application/json"
-d '{
"masterWaybillNumber": "112-60318215",
"transportType": "air",
"grossWeight": 13.25,
"parcelCount": 1,
"bigBagCount": 1,
"destinationFlightNumber": "CK210",
"eta": "2024-05-26",
"declarationType": "full",
"waybillDocument": "JVBERi0xLjQKJeTjz9IKMyAwIG9iago8PC9MZW5ndGggNCAwIFIKL0ZpbHRlci9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJydlM1ymzAQx+96ij22B9uSAAnl5sbG02k+WpvJTE8dgmUPHQOJgHjch+ozdkUc18aQ4sIwArT72/9+AAOKJ8PLU+5QehCnhNXvBq8LPn8KyYBRCuEvMg0JtVZ253BTu9jTrMkzYS4w4QGjnkCGAqPJinwjtYe1oENfucg+WU48FW91RBmjwOriEK72r+czvAm3e8moQQHzFIQpqc1uyIdJHlepzkrIqvRRm4/hz1ePLhmY4TPhVFwk5UgBZ6wp4XZ+1y+so/w6rOO0l+6dsC51mmFDEy21QchKG53Fup8G6ey74LqXapDOefV1EZvkqUzyrF94X/r/G973z0qwKKOyKg6RRwFDTzoUQshzd44ZSLXftIw3QwR9zbdYxCU87mAWlXob7X4fUXk31Q6kI9uhwffre7h/0eYl0VsYwG2UJStdlCB9dyBQC/UUhSDZaFCMc0EZ9VUj7HkZbEQs4nETOB/9BfzA0grHY/8E1ZN8SuL87oaNAyG+TNnEV9N5Q44aOni0D6f09puIe7NDJKUeZkmldKiSnEoulNsLWk9bB3SdmE0BRZWUvVD15HSgoHefucvb+zyZYp/rZo9NmcQbXfRnem47czxbHGiwMnkK14sH+Jw+5absTxeinb6o0jQyO1jqeBOZyH6+PTXboeksRHPm3mN0JU4vYHSlF+zi/AqN5nqdFKX9sPGJ++KAxl/RH05bj5MKZW5kc3RyZWFtCmVuZG9iago0IDAgb2JqCjUzNgplbmRvYmoKMiAwIG9iago8PC9UeXBlL1BhZ2UKL1BhcmVudCAxIDAgUgovUmVzb3VyY2VzIDggMCBSCi9NZWRpYUJveFswIDAgODQxLjUgNTk0Ljc1XQovQ29udGVudHNbMyAwIFIgXQo+PgplbmRvYmoKOCAwIG9iago8PC9Qcm9jU2V0Wy9QREYvSW1hZ2VCL0ltYWdlQy9JbWFnZUkvVGV4dF0KL0ZvbnQ8PC9GMCA1IDAgUgovRjEgNiAwIFIKL0YyIDcgMCBSCj4+Cj4+CmVuZG9iago5IDAgb2JqCjw8L1N1YmplY3QgKEdXX0RFQ09fRllDT19PVkVSVklFVy5SRDEpCi9UaXRsZSAoR1dfREVDT19GWUNPX09WRVJWSUVXLlJEMSkKL0NyZWF0b3IgKEdhdGV3YXkgVjIpCi9BdXRob3IgKGVob2x0KQovQ3JlYXRpb25EYXRlIChEOjIwMjIwMTE3MTIwMTU1KzAxJzAwJykKL1Byb2R1Y2VyIChHV1BkZiAyLjIxIFwoQysrL1dpbjMyXCkpCj4+CmVuZG9iago1IDAgb2JqCjw8L1R5cGUvRm9udAovU3VidHlwZS9UcnVlVHlwZQovQmFzZUZvbnQvVmVyZGFuYS1Cb2xkCi9Gb250RGVzY3JpcHRvciAxMCAwIFIKL0ZpcnN0Q2hhciAwCi9MYXN0Q2hhciAyNTUKL1dpZHRoc1sKIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAKIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAKIDM0MiA0MDIgNTg3IDg2NyA3MTEgMTI3MiA4NjIgMzMyIDU0MyA1NDMgNzExIDg2NyAzNjEgNDgwIDM2MSA2ODkKIDcxMSA3MTEgNzExIDcxMSA3MTEgNzExIDcxMSA3MTEgNzExIDcxMSA0MDIgNDAyIDg2NyA4NjcgODY3IDYxNwogOTY0IDc3NiA3NjIgNzI0IDgzMCA2ODMgNjUwIDgxMSA4MzcgNTQ2IDU1NSA3NzEgNjM3IDk0OCA4NDcgODUwCiA3MzMgODUwIDc4MiA3MTAgNjgyIDgxMiA3NjQgMTEyOCA3NjQgNzM3IDY5MiA1NDMgNjg5IDU0MyA4NjcgNzExCiA3MTEgNjY4IDY5OSA1ODggNjk5IDY2NCA0MjIgNjk5IDcxMiAzNDIgNDAzIDY3MSAzNDIgMTA1OCA3MTIgNjg3CiA2OTkgNjk5IDQ5NyA1OTMgNDU2IDcxMiA2NTAgOTc5IDY2OSA2NTEgNTk3IDcxMSA1NDMgNzExIDg2NyA3MTEKIDcxMSA3MTEgMzMyIDcxMSA1ODcgMTA0OSA3MTEgNzExIDcxMSAxNzc3IDcxMCA1NDMgMTEzNSA3MTEgNjkyIDcxMQogNzExIDMzMiAzMzIgNTg3IDU4NyA3MTEgNzExIDEwMDAgNzExIDk2NCA1OTMgNTQzIDEwNjggNzExIDU5NyA3MzcKIDM0MiA0MDIgNzExIDcxMSA3MTEgNzExIDU0MyA3MTEgNzExIDk2NCA1OTggODUwIDg2NyA0ODAgOTY0IDcxMQogNTg3IDg2NyA1OTggNTk4IDcxMSA3MjEgNzExIDM2MSA3MTEgNTk4IDU5OCA4NTAgMTE4MiAxMTgyIDExODIgNjE3CiA3NzYgNzc2IDc3NiA3NzYgNzc2IDc3NiAxMDk0IDcyNCA2ODMgNjgzIDY4MyA2ODMgNTQ2IDU0NiA1NDYgNTQ2CiA4MzAgODQ3IDg1MCA4NTAgODUwIDg1MCA4NTAgODY3IDg1MCA4MTIgODEyIDgxMiA4MTIgNzM3IDczNSA3MTMKIDY2OCA2NjggNjY4IDY2OCA2NjggNjY4IDEwMTggNTg4IDY2NCA2NjQgNjY0IDY2NCAzNDIgMzQyIDM0MiAzNDIKIDY3OSA3MTIgNjg3IDY4NyA2ODcgNjg3IDY4NyA4NjcgNjg3IDcxMiA3MTIgNzEyIDcxMiA2NTEgNjk5IDY1MQpdCi9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKPj4KZW5kb2JqCjEwIDAgb2JqCjw8L1R5cGUvRm9udERlc2NyaXB0b3IKL0FzY2VudCA3NjUKL0NhcEhlaWdodCA3MjcKL0Rlc2NlbnQgLTIwNwovRmxhZ3MgMjYyMTc2Ci9Gb250QkJveFstNTUwIC0zMDMgMTcwNyAxMDcyXQovRm9udE5hbWUvVmVyZGFuYSMyMEJvbGQKL0l0YWxpY0FuZ2xlIDAKL1N0ZW1WIDE2NQovWEhlaWdodCA1NDgKPj4KZW5kb2JqCjYgMCBvYmoKPDwvVHlwZS9Gb250Ci9TdWJ0eXBlL1RydWVUeXBlCi9CYXNlRm9udC9DYWxpYnJpLUxpZ2h0Ci9Gb250RGVzY3JpcHRvciAxMSAwIFIKL0ZpcnN0Q2hhciAwCi9MYXN0Q2hhciAyNTUKL1dpZHRoc1sKIDUwNyA1MDcgNTA3IDUwNyA1MDcgNTA3IDUwNyA1MDcgNTA3IDUwNyA1MDcgNTA3IDUwNyA1MDcgNTA3IDUwNwogNTA3IDUwNyA1MDcgNTA3IDUwNyA1MDcgNTA3IDUwNyA1MDcgNTA3IDUwNyA1MDcgNTA3IDUwNyA1MDcgNTA3CiAyMjYgMzI2IDM4MCA0OTggNTA3IDcwNyA2NzAgMjE0IDI5OSAyOTkgNDk4IDQ5OCAyNDUgMzA2IDI0NSAzNjIKIDUwNyA1MDcgNTA3IDUwNyA1MDcgNTA3IDUwNyA1MDcgNTA3IDUwNyAyNjMgMjYzIDQ5OCA0OTggNDk4IDQ2MwogODkyIDU2MyA1MzUgNTM1IDYwNyA0ODkgNDYwIDYyNyA2MTkgNiA1NTQgODgxIDUwMSA0NjkgNDYzIDI5NyAzNjIgMjk3IDQ5OCA0OTgKIDI4NiA0NzEgNTIwIDQyNSA1MjAgNDk0IDI5OSA0NjkgNTIwIDIyMSAyMzAgNDQxIDIyMSA3OTEgNTIwIDUyMQogNTIwIDUyMCAzNDUgMzg3IDMyOSA1MjAgNDQwIDY5OSA0MTggNDQxIDM5NCAyOTkgNDUzIDI5OSA0OTggNDk4CiA1MDcgNDk4IDI0NSAyOTkgNDA5IDY3OSA0OTggNDk4IDM5MSAxMDI1IDQ1MyAzMzYgODYzIDQ5OCA0NjMgNDk4CiA0OTggMjQ1IDI0NSA0MDkgNDA5IDQ5OCA0OTggOTA1IDQ1NCA2OTcgMzg3IDMzNiA4NTQgNDk4IDM5NCA0NjkKIDIyNiAzMjYgNDk4IDUwNyA0OTggNTA3IDQ5OCA0OTggMzgwIDgzNCAzOTUgNDk4IDQ5OCAzMDYgNTA3IDM5NgogMzM3IDQ5OCAzMzUgMzM0IDI4NyA1NDIgNTgwIDI0NSAzMTAgMjQzIDQxNiA0OTggNjI1IDY2MSA2NjEgNDYzCiA1NjMgNTYzIDU2MyA1NjMgNTYzIDU2MyA3NTcgNTM1IDQ4OSA0ODkgNDg5IDQ4OSAyNDQgMjQ0IDI0NCAyNDQKIDYxNiA2MzggNjU0IDY1NCA2NTQgNjU0IDY1NCA0OTggNjU0IDYzNiA2MzYgNjM2IDYzNiA0NjkgNTA4IDUxMgogNDcxIDQ3MSA0NzEgNDcxIDQ3MSA0NzEgNzcyIDQyNSA0OTQgNDk0IDQ5NCA0OTQgMjIxIDIyMSAyMjEgMjIxCiA1MjAgNTIwIDUyMSA1MjEgNTIxIDUyMSA1MjEgNDk4IDUyMSA1MjAgNTIwIDUyMCA1MjAgNDQxIDUyMCA0NDEKXQovRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nCj4+CmVuZG9iagoxMSAwIG9iago8PC9UeXBlL0ZvbnREZXNjcmlwdG9yCi9Bc2NlbnQgNzUwCi9DYXBIZWlnaHQgNjMyCi9EZXNjZW50IC0yNTAKL0ZsYWdzIDMyCi9Gb250QkJveFstNTExIC0yNjkgMTMwOSA5NTJdCi9Gb250TmFtZS9DYWxpYnJpIzIwTGlnaHQKL0l0YWxpY0FuZ2xlIDAKL1N0ZW1WIDcxCi9YSGVpZ2h0IDQ2Mgo+PgplbmRvYmoKNyAwIG9iago8PC9UeXBlL0ZvbnQKL1N1YnR5cGUvVHJ1ZVR5cGUKL0Jhc2VGb250L1ZlcmRhbmEKL0ZvbnREZXNjcmlwdG9yIDEyIDAgUgovRmlyc3RDaGFyIDAKL0xhc3RDaGFyIDI1NQovV2lkdGhzWwogMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMAogMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMCAxMDAwIDEwMDAgMTAwMAogMzUyIDM5NCA0NTkgODE4IDYzNiAxMDc2IDcyNyAyNjkgNDU0IDQ1NCA2MzYgODE4IDM2NCA0NTQgMzY0IDQ1NAogNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDQ1NCA0NTQgODE4IDgxOCA4MTggNTQ1CiAxMDAwIDY4NCA2ODYgNjk4IDc3MSA2MzIgNTc1IDc3NSA3NTEgNDIxIDQ1NSA2OTMgNTU3IDg0MyA3NDggNzg3CiA2MDMgNzg3IDY5NSA2ODQgNjE2IDczMiA2ODQgOTg5IDY4NSA2MTUgNjg1IDQ1NCA0NTQgNDU0IDgxOCA2MzYKIDYzNiA2MDEgNjIzIDUyMSA2MjMgNTk2IDM1MiA2MjMgNjMzIDI3NCAzNDQgNTkyIDI3NCA5NzMgNjMzIDYwNwogNjIzIDYyMyA0MjcgNTIxIDM5NCA2MzMgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzUgNDU0IDYzNSA4MTggNTQ1CiA2MzYgNTQ1IDI2OSA2MzYgNDU5IDgxOCA2MzYgNjM2IDYzNiAxNTIxIDY4NCA0NTQgMTA3MCA1NDUgNjg1IDU0NQogNTQ1IDI2OSAyNjkgNDU5IDQ1OSA1NDUgNjM2IDEwMDAgNjM2IDk3NyA1MjEgNDU0IDk4MSA1NDUgNTI1IDYxNQogMzUyIDM5NCA2MzYgNjM2IDYzNiA2MzYgNDU0IDYzNiA2MzYgMTAwMCA1NDUgNjQ1IDgxOCA0NTQgMTAwMCA2MzYKIDU0MiA4MTggNTQyIDU0MiA2MzYgNjQwIDYzNiAzNjQgNjM2IDU0MiA1NDUgNjQ1IDEwMDAgMTAwMCAxMDAwIDU0NQogNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTg0IDY5OCA2MzIgNjMyIDYzMiA2MzIgNDIxIDQyMSA0MjEgNDIxCiA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODE4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjE1IDYwNSA2MjAKIDYwMSA2MDEgNjAxIDYwMSA2MDEgNjAxIDk1NSA1MjEgNTk2IDU5NiA1OTYgNTk2IDI3NCAyNzQgMjc0IDI3NAogNjEyIDYzMyA2MDcgNjA3IDYwNyA2MDcgNjA3IDgxOCA2MDcgNjMzIDYzMyA2MzMgNjMzIDU5MiA2MjMgNTkyCl0KL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZwo+PgplbmRvYmoKMTIgMCBvYmoKPDwvVHlwZS9Gb250RGVzY3JpcHRvcgovQXNjZW50IDc2NQovQ2FwSGVpZ2h0IDcyNwovRGVzY2VudCAtMjA3Ci9GbGFncyAzMgovRm9udEJCb3hbLTU2MCAtMzAzIDE1MjMgMTA1MV0KL0ZvbnROYW1lL1ZlcmRhbmEKL0l0YWxpY0FuZ2xlIDAKL1N0ZW1WIDg3Ci9YSGVpZ2h0IDU0NQo+PgplbmRvYmoKMSAwIG9iago8PC9UeXBlL1BhZ2VzCi9Db3VudCAxCi9LaWRzWzIgMCBSCl0+PgplbmRvYmoKMTMgMCBvYmoKPDwvVHlwZS9DYXRhbG9nCi9QYWdlcyAxIDAgUgo+PgplbmRvYmoKeHJlZgowIDE0CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwNTI5OCAwMDAwMCBuIAowMDAwMDAwNjQyIDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDYyMyAwMDAwMCBuIAowMDAwMDAxMDU4IDAwMDAwIG4gCjAwMDAwMDI0OTQgMDAwMDAgbiAKMDAwMDAwMzg4MiAwMDAwMCBuIAowMDAwMDAwNzUwIDAwMDAwIG4gCjAwMDAwMDA4NTEgMDAwMDAgbiAKMDAwMDAwMjMwMiAwMDAwMCBuIAowMDAwMDAzUjk1IDAwMDAwIG4gCjAwMDAwMDUxMTggMDAwMDAgbiAKMDAwMDAwNTM1MiAwMDAwMCBuIAp0cmFpbGVyCjw8L1NpemUgMTQKL1Jvb3QgMTMgMCBSCi9JbmZvIDkgMCBSCi9JRFs8RjIwNENBMUE5Nzg1ODdDRjE2QUFDQkNGQ0M4ODg5QkT+PEYyMDRDQTFBOTc4NTg3Q0YxNkFBQ0JDRkNDODg4OUJEPl0KPj4Kc3RhcnR4cmVmCjU0MDAKJSVFT0YL"
}'
The above command returns JSON structured like this:
HTTP/1.1 201 Created
Content-Type:application/json;charset=UTF-8
{
"data": {
"id": "1cb3480a-86d3-44f2-a36d-f082e501fd37",
"masterWaybillNumber": "112-60318215",
"transportType": "air",
"customer": "Acme",
"customer_code": "ACE",
"status": "pre_upload",
"statusChangeUtc": "2024-04-24T07:03:54+00:00",
"statusChangeLocalTime": "2024-04-24T09:03:54+02:00",
"statusChangedHuman": "1 second ago",
"bigBagCount": 1,
"grossWeight": 13.25,
"airline": {
"trackingLink": "https:\/\/www.skyteam.com\/en\/cargo\/track-shipment\/",
"name": "China Cargo Airlines",
"prefix": "112",
"code": "MU",
"copyNumber": "60318215"
},
"destinationFlightNumber": "KE0925",
"eta": "2024-05-25T22:00:00.000000Z",
"declarationType": "full",
"parcels": []
}
}
This endpoint creates a new Waybill pre alert in ALLINE cross border.
HTTP Request
POST /api/v3/waybills
Arguments
Attribute | Type | Description |
---|---|---|
masterWaybillNumber | string | required Unique number of the waybill. This number cannot already exist in the database for the same customer. |
reference | string | optional Unique reference/id of the waybill. The reference cannot already exist in the database for the same customer. If set the reference will be the ID to reference the Waybill in all requests further in the Waybill lifecycle |
customerCode | string | The unique customer code. This code should reflect a customer code in the database. Only required if account has sub-customers. |
transportType | string | required The type of waybill. Valid values are air , road , train , other |
grossWeight | float | required The given gross weight for the shipment. Should be the same as the gross weight on the Air Waybill copy. |
parcelCount | integer | required The number of parcels contained in the shipment. |
bigBagCount | integer | required The number of bigBags/Boxes/Units contained in the shipment. |
destinationFlightNumber | string | optional The incoming flight number to the destination airport. For the Alline warehouse the destination airport is Schiphol (AMS). |
eta | date | optional The estimated arrival date at the destination airport. The date should be in the timezone of the destination in format yyyy-mm-dd . |
declarationType | string | optional Indicates if Alline should process the customs declaration for this shipment. Valid values are full , partial , none Default is full . |
waybillDocument | base64_string | Required If waybill_type is air base64 encoded pdf file of the Waybill Document associated with the shipment. |
Retrieve a Specific Waybill
curl "https://crossborder.omniship.eu/api/v3/waybills/4dcdea18-afb4-4c38-8541-9b83056a5667"
-H "Authorization: FkihCtzyXWvutSRUaaEupN8hvABcDefgHI6lJKvv"
-H "Content-Type: application/json"
The above command returns JSON structured like this:
HTTP/1.1 200 OK
Content-Type:application/json;charset=UTF-8
{
"data": {
"id": "1cb3480a-86d3-44f2-a36d-f082e501fd37",
"masterWaybillNumber": "112-60318215",
"transportType": "air",
"customer": "Acme",
"customer_code": "ACE",
"status": "created",
"statusChangeUtc": "2024-04-24T07:09:14+00:00",
"statusChangeLocalTime": "2024-04-24T09:09:14+02:00",
"statusChangedHuman": "4 minutes ago",
"bigBagCount": 1,
"grossWeight": 13.25,
"airline": {
"trackingLink": "https:\/\/www.skyteam.com\/en\/cargo\/track-shipment\/",
"name": "China Cargo Airlines",
"prefix": "112",
"code": "MU",
"copyNumber": "60318215"
},
"destinationFlightNumber": "KE0925",
"eta": "2024-05-26T00:00:00+02:00",
"declarationType": "full",
"parcels": [
"1Z1V510W6898496192"
],
"inboundComplete": false,
"totalBagsUploaded": 1,
"totalParcelsUploaded": 1,
"parcelsInbound": 0,
"parcelsInboundPercentage": "0%",
"parcelsReleased": 0,
"parcelsReleasedPercentage": "0 %",
"parcelsOutbound": 0,
"parcelsOutboundPercentage": "0%"
}
}
This endpoint retrieves a specific Waybill.
HTTP Request
GET /api/v3/waybills/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | Alline Waybill ID provided when creating the Waybill. The ID was given at creation of the waybill and was either generated or is the given reference. |
Create and add a Parcel to a Waybill
curl "https://crossborder.omniship.eu/api/v3/waybills/4dcdea18-afb4-4c38-8541-9b83056a5667/parcels"
-X POST
-H "Authorization: FkihCtzyXWvutSRUaaEupN8hvABcDefgHI6lJKvv"
-H "Content-Type: application/json"
-d '{
"waybillId": "4dcdea18-afb4-4c38-8541-9b83056a5667",
"transactionType": "B2C",
"finalMileTrackingNumber": "1Z1V510W6898496192",
"bigBagBarcode": "DE202301009-001",
"sellerDetails": {
"name": "Shenzhen Duhua technology Co., LTD",
"street": "Room 402, Building 2, Building B, No. 23 Wanli Road, Henggang Street",
"zipcode": "51800",
"city": "Shenzen",
"countryCode": "CN",
"iossNumber": "1ZoTwmSCWm/iQY3utehUVQ=="
},
"buyerDetails": {
"name": "juan luis garcia azpitarte",
"street": "pol. ind. calle tinajuela 39 18657 niguelas Granada Spain",
"zipcode": "18657",
"city": "Niguelas",
"countryCode": "ES"
},
"items": [{
"hsCode": "950691",
"description": "DUMBBELL SET",
"quantity": 4,
"weight": 22.95,
"invoiceCurrency": "EUR",
"invoiceAmount": 119.99,
"freightValue": 3.30
}],
"shippingMethod": "DPD145"
}'
The above command returns JSON structured like this:
HTTP/1.1 201 Created
Content-Type:application/json;charset=UTF-8
{
"data": {
"id": "711277a6-239b-4992-ab4a-cac276a27e21",
"state": "pre_upload",
"waybillId": "1cb3480a-86d3-44f2-a36d-f082e501fd37",
"waybillNumber": "112-60318215",
"finalMileTrackingNumber": "1Z1V510W6898496192",
"bigBagBarcode": "DE202301009-001",
"shippingMethod": "DPD145",
"sellerDetails": {
"name": "Shenzhen Duhua technology Co., LTD",
"street": "Room 402, Building 2, Building B, No. 23 Wanli Road, Henggang Street",
"zipcode": "51800",
"city": "Shenzen",
"countryCode": "CN",
"iossNumber": "1ZoTwmSCWm/iQY3utehUVQ=="
},
"buyerDetails": {
"name": "juan luis garcia azpitarte",
"street": "pol. ind. calle tinajuela 39 18657 niguelas Granada Spain",
"zipcode": "18657",
"city": "Niguelas",
"countryCode": "ES"
},
"items": [
{
"hsCode": "950691",
"description": "DUMBBELL SET",
"quantity": "4",
"weight": 22.95,
"invoiceCurrency": "EUR",
"invoiceAmount": "119.99",
"freightValue": "3.30"
}
]
}
}
This endpoint creates a new Parcel and adds it to the given Waybill pre alert in the ALLINE cross border system.
HTTP Request
POST /api/v3/waybills/<ID>/parcels
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the Waybill for which a Parcel needs added. The ID was given at creation of the waybill and was either generated or is the given reference. |
Arguments
Attribute | Type | Description |
---|---|---|
transactionType | string | Optional Type of transaction. Valid values are B2C , B2B . Default value is B2C . |
finalMileTrackingNumber | string | required Tracking number of the final mile parcel. This number cannot already exist in the master waybill. |
bigBagBarcode | string | required Barcode of the bag/box/unit containing the parcel(s). If there is only one parcel and no containing unit with a barcode, the finalMileTrackingNumber can be used instead. |
sellerDetails | object | required Address object that should be used as sender address. |
buyerDetails | object | required Address object that should be used as buyer address. |
items | array | required Array of Customs Item objects with details of the products in the shipment for customs. |
shippingMethod | string | required Shipping Method |
Address Object definitions:
name
string
required Address contact name. Maximum: 70 characters
street
string
required Address street line. Maximum: 70 characters
zipcode
string
required if Country is postal aware. Address Zip code.
city
string
required Address city
countryCode
string
required Address country code in Alpha 2 Format (ISO 3166-1)
iossNumber
string
Required If transactionType
is B2C
and the parcel should be declared to customs. Only for sellerDetails
CustomsItem definitions:
hsCode
string
required Harmonized Tariff Code of the item being shipped
description
string
required Description of the item being shipped
quantity
integer
optional Quantity of the item to be shipped, must be greater than zero. Defaults to 1
weight
object
required The weight of the item being shipped
invoiceCurrency
string
required The currency of the item value
invoiceAmount
float
required Total Value of the item line
freightValue
float
optional Freight Value of the item line
sku
string
optional Product SKU
Remove a Parcel from a Waybill
A parcel can only be removed from a waybill when the waybill is not yet confirmed
curl "https://crossborder.omniship.eu/api/v3/waybills/4dcdea18-afb4-4c38-8541-9b83056a5667/parcels/a51133c1-a0a4-4867-9507-18a6082aaacc"
-X DELETE
-H "Authorization: Bearer FkihCtzyXWvutSRUaaEupN8hvABcDefgHI6lJKvv"
-H "Content-Type: application/json"
The above command returns JSON structured like this:
HTTP/1.1 204 No Content
Content-Type:application/json;charset=UTF-8
HTTP Request
DELETE /api/v3/waybills/<WaybillID>/parcels/<ParcelID>
URL Parameters
Parameter | Description |
---|---|
WaybillID | The ID of the Waybill from which a Parcel needs to be removed. The ID was given at creation of the waybill and was either generated or is the given reference. |
ParcelID | The ID of the Parcel to be removed |
Confirm a Waybill upload
curl "https://crossborder.omniship.eu/api/v3/waybills/4dcdea18-afb4-4c38-8541-9b83056a5667/confirm"
-X PUT
-H "Authorization: FkihCtzyXWvutSRUaaEupN8hvABcDefgHI6lJKvv"
-H "Content-Type: application/json"
The above command returns JSON structured like this:
HTTP/1.1 200 OK
Content-Type:application/json;charset=UTF-8
{
"data": {
"id": "1cb3480a-86d3-44f2-a36d-f082e501fd37",
"masterWaybillNumber": "112-60318215",
"transportType": "air",
"customer": "Acme",
"customer_code": "ACE",
"status": "created",
"statusChangeUtc": "2024-04-24T07:09:14+00:00",
"statusChangeLocalTime": "2024-04-24T09:09:14+02:00",
"statusChangedHuman": "4 minutes ago",
"bigBagCount": 1,
"grossWeight": 13.25,
"airline": {
"trackingLink": "https:\/\/www.skyteam.com\/en\/cargo\/track-shipment\/",
"name": "China Cargo Airlines",
"prefix": "112",
"code": "MU",
"copyNumber": "60318215"
},
"destinationFlightNumber": "KE0925",
"eta": "2024-05-26T00:00:00+02:00",
"declarationType": "full",
"parcels": [
"1Z1V510W6898496192"
],
"inboundComplete": false,
"totalBagsUploaded": 1,
"totalParcelsUploaded": 1,
"parcelsInbound": 0,
"parcelsInboundPercentage": "0%",
"parcelsReleased": 0,
"parcelsReleasedPercentage": "0 %",
"parcelsOutbound": 0,
"parcelsOutboundPercentage": "0%"
}
}
This endpoint confirms a new AirWaybill in ALLINE cross border after all parcels have been added through the add-parcel endpoint and the waybill is ready to be created and processed.
HTTP Request
PUT /api/v3/waybills/<ID>/confirm
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the Waybill to confirm. The ID was given at creation of the waybill and was either generated or is the given reference. |
Delete a Waybill
A Waybill can only be removed when the state is pre_upload
, created
or noa_received
curl "https://crossborder.omniship.eu/api/v3/waybills/4dcdea18-afb4-4c38-8541-9b83056a5667"
-X DELETE
-H "Authorization: Bearer FkihCtzyXWvutSRUaaEupN8hvABcDefgHI6lJKvv"
-H "Content-Type: application/json"
The above command returns JSON structured like this:
HTTP/1.1 204 No Content
Content-Type:application/json;charset=UTF-8
HTTP Request
DELETE /api/v3/waybills/<ID>/
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the Waybill that needs to be deleted. The ID was given at creation of the waybill and was either generated or is the given reference. |
Webhooks
This guide will walk you through the webhooks functionality to obtain messages about shipment events. Messages are sent on triggering the following events:
ALLINE can send webhook events to notify your application when a particular event has occurred. If you subscribe to the webhook to receive shipment status updates, you will be notified about the new status without polling our API.
The payload for each webhook event will include information about the related API response. Your provided endpoint should be set up to receive an HTTP POST request and must always return a 200 HTTP response.|
To prevent your application against a replay attack, we recommend that you verify all incoming webhook events by validating our unique signature, X-ALLINE-SIGNATURE, in the headers.
The signature is a token that can be decoded with the value of your secret_key. You can get it from your account representative. It will always be a hash string starting with webh_.
Webhooks parcel.status.updated
When your shipment's tracking status changed, you'll get the event payload as below:
parcel.state.updated
{
"event_type": "parcel.state.updated",
"resource_type": "parcel",
"resource_id": "a51133c1-a0a4-4867-9507-18a6082aaacc",
"parcel_state": {
"id": "a51133c1-a0a4-4867-9507-18a6082aaacc",
"finalMileTrackingNumber": "1Z1V510W6898496192",
"parcelState": "created",
"freightValue": 3.30,
"currency": "EUR",
"inboundUtc": null,
"inboundLocalTime": null,
"releasedUtc": null
"releasedLocalTime": null,
"outboundUtc": null
"outboundLocalTime": null
"lastUpdatedUtc": "2024-05-26T14:03:26",
"lastUpdatedLocalTime": "2024-05-26T15:03:26"
}
}
Webhooks waybill.status.updated
When your shipment's tracking status changed, you'll get the event payload as below:
waybill.state.updated
{
"event_type": "waybill.state.updated",
"resource_type": "waybill",
"resource_id": "4dcdea18-afb4-4c38-8541-9b83056a5667",
"waybill_state": {
"number": "180-19687301",
"customer": "Acme",
"waybill_state": "created",
"updated_at_utc": "2024-05-26T14:05:32",
"updated_at_local_time": "2024-05-26T15:05:32",
}
}
Errors
The Cross Border API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |
401 | Unauthorized -- Your API key is wrong. |
403 | Forbidden -- The resource requested is hidden for administrators only. |
404 | Not Found -- The specified resource could not be found. |
405 | Method Not Allowed -- You tried to access a kitten with an invalid method. |
406 | Not Acceptable -- You requested a format that isn't json. |
410 | Gone -- The resource requested has been removed from our servers. |
422 | Unprocessable Entity -- The server was unable to process the request because it contains invalid data. |
429 | Too Many Requests -- You're requesting too many resources. |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |