Environments
Production {{URL}} | https://restapi.shipmentserver.com |
Test {{URL}} | https://demo.shipmentserver.com:8080 |
Production 2 {{URL}} | https://api.shipmentserver.com |
Note: Unless told otherwise use the endpoint https://restapi.shipmentserver.com when using the REST API for ShipmentServer
Contact Customer Service for more information.
Authentication
The API support both Basic Authentication and Bearer Authentication
The authentication is added to the headers Authorization key
The request body takes an application/json object with the following keys:
- data - the payload for the command ( example could be a shipment object )
- options - some commands can be controlled with additional settings
Swagger
The API methods can also be viewed using swagger
- Production | https://api.shipmentserver.com/index.html
- Test | https://demo.shipmentserver.com:8080/index.html
Note:
Currently Swagger can only be used to test the methods using the webpage if you import it onto another application some configurations are missing from the JSON file.
Ex. the model/schema is missing, and the authentication also has to be configured manually.
Postman Collection - API Version 2
This collection contains request & response examples:
https://helpcenter.nshift.com/hc/en-us/articles/18787401968156-Postman-Collection
Shipment Object
See this article on how it should be constructed using the Ticket UI Developer Tool
https://helpcenter.nshift.com/hc/en-us/articles/6408142649884-Activating-and-using-the-Developer-Tools
Or how to construct it manually:
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
Index - API Version 2
-
Shipments - create, add, update, delete, submit, transmit, reprint & get
POST | Create a shipment | #post_saveShipment | |
POST | Create a shipment using shipping rules | #post_orderAdvice | |
POST | Create a shipment in the order database | #post_orders |
POST | Add a new line to an existing shipment | #post_lines |
POST | Update a Package on a shipment | not implemented | |
PATCH | Update a Line on a shipment | #patch_lines | |
PATCH | Update Details on a shipment | #patch_details |
DEL | Delete a package on a shipment | #delete_packages | |
DEL | Delete a line on a shipment | #delete_lines | |
DEL | Delete a shipment | #delete_shipments |
POST | Submit a shipment | #post_shipments | |
POST | Submit a shipment from inbox | #post_submitOrder | |
POST | Submit a shipment using a flat file | #post_importUpload | |
POST | Submit a ShadowBooking | #post_shadowShipments |
PUT | Transmit specific shipments | #put_manifest_shipments | |
PUT | Transmit all shipments on a stack | #put_stacks_manifest | |
PUT | Transmit specific packages on a shipment | #put_manifest |
POST | Reprint one or all labels | #post_labelReprint |
GET | Get the object of an existing shipment | #get_shipments | |
GET | Get the package object on a shipment | not implemented | |
GET | Get all shipments from Inbox | not implemented | |
GET | Get all shipments from AutoPrint | not implemented | |
GET | Get all shipments from Draft | not implemented |
GET | Get all documents from a shipment | #get_documents | |
GET | Get a list of documents on a shipment | #get_documentLists |
-
ShipAdvisor
POST | Get Delivery Options (Services/Products) | #post_shipAdvises |
-
Stacks
GET | Get all Stacks | #get_stacks | |
POST | Get all shipments from a Stack | #post_stacks_shipments | |
PATCH | Move shipments to another Stack |
#patch_stacks_shipments |
POST | Create a new Stack | #post_stacks | |
DEL | Delete a Stack | #delete_stacks |
-
Batches
POST | Get all Batches | #post_batches | |
GET | Get one Batch | #get_batches | |
GET | Get a file from a Batch | #get_batchereports | |
GET | Get all Shipments from a Batch | #get_batchshipments |
-
Waybills
POST | Create Waybill | #post_waybills |
POST | Create BreakBulk | not implemented | |
POST | Clear BreakBulk | not implemented | |
POST | Create BreakBulk Shipment | not implemented | |
POST | Get BreakBulk Invoice Summary | not implemented |
POST | Craete Lead Shipment | not implemented | |
POST | Get Lead group details | not implemented | |
POST | Get Lead group | not implemented |
-
Services
GET | Get all Services/Products | #get_products | |
POST | Get the freight cost for a Shipment | #post_shipmentPrice | |
POST | Validate a Shipment Object | #post_shipmentValidations | |
POST | Validate addresses on a Product | #post_validRoutes | |
POST | Return default value for the Product | #post_shipments_default | |
GET | Get track & trace information | #get_trackingUrl | |
POST | Get link to Claim Insurance | not implemented |
-
Addons
POST | Get a list of Droppoints | #post_dropPoints |
POST | Get a list of pickuplockers | #post_pickupLockers | |
POST | Allocate a pickuplocker | #post_pickupLockerAllocations | |
POST | Cancel a pickuplocker | not implemented |
POST | Get a list of time slots | #post_timeSlots | |
POST | Allocate a time slot | #post_timeSlotAllocations | |
POST | Cancel a time slot | #post_voidTimeSlot |
POST | Calculate Insurance Price | not implemented |
POST | Get information of one DGOFFICE article | not implemented | |
POST | Get a list of DGOFFICE articles | not implemented |
POST | Get a list of DG articles | not implemented | |
POST | Get values for DG fields | not implemented |
-
Config
POST | Get printer font as base64 | not implemented | |
GET | Get the default Sender Address | #get_senderAddress | |
POST | Get printers from a DropZone client | #post_dropZonePrinters |
API Documentation
-
#POST_SaveShipments | Create a shipment
Used to save a shipment to Inbox
- Normally used when the shipment is being completed using the Ticket UI
Request
POST {{URL}}/ShipServer/{{ID}}/SaveShipment
- ID - the id of the actor to run the request against
Request body
The request body takes an application/json object
{ "data": {}, "options": {
"Place": "STRING",
"ServiceLevel": "STRING",
"UseShippingRules": "INT 0/1" } }
See the postman collection for a full example
Data
See the article about the Data Object
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
Options
- Place - where to save the shipment possible values: Inbox | Draft
- ServiceLevel - name of a ServiceLevel to execute in Shipping Rules
- UseShippingRules - set to 1 to enable Shipping Rules
-
#POST_OrderAdvice | Create a shipment using shipping rules
Creates a new shipment using Shipping Rules and ETA web service. It will select a product based on the shipment data and required delivery date. To use this function, you must have a CSR setup for the actor, and if you use Required delivery date, you should also have configured ETA
The flow is like this.
- CSR validates all products in a given service level.
- A call to ETA web service with all valid products from the previous step together with the required delivery date.
- ETA web service returns the delivery date and production cut-off time for all products that can deliver within the date specified.
- If more than one product can deliver, the allocation rule in Shipping Rules will decide which one to use.
- If no products can deliver, products close to the requested date will be selected
Request
POST {{URL}}/ShipServer/{{ID}}/OrderAdvice
- ID- the id of the actor to run the request against
Request body
The request body takes a shipment data object and a options object
{ "data": {}, "options": {
"ServiceLevel": "STRING",
"RequiredDeliveryDate": "DATETIME",
"Visibility": "STRING"
"Submit": INT (0/1),
"Labels": "STRING",
"TicketUserName": "STRING",
"WorkstationID": "UUID",
"DropZoneLabelPrinterKey": "STRING",
"DropZoneDocPrinterKey": "STRING",
"ValidatePostCode": INT (0/1) } }
See the postman collection for a full example
Data
See the article about the Data Object
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
Options
- ServiceLevel - name of a ServiceLevel to execute in Shipping Rules
- RequiredDeliveryDate - the eta of when the shipment should be delivered YYYY-MM-DD
- ValidatePostCode - use 0 to disable PostCode validation
-
Visibility - use the value "extended" to return product and carrier name in the response
- - Submit - create the shipment instead of saving it to Inbox
-
Labels - the label type to generate, more information here
ZPL, ZPLGK, EPL, PNG, PDF, DATAMAXLP2, DATAMAXDPL, none
- - TicketUserName - login name used in the DropZone client
- WorkstationID - id of the installed DropZone client
- DropZoneLabelPrinterKey - name of a label printer key defined in the DropZone client
- DropZoneDocPrinterKey - name of a a4 printer key defined in the DropZone client
-
#POST_Orders | Create a shipment in the order database
Used to store part of a shipment in the Orders storage service.
The shipment can then be completed using SubmitShipment or ImportUpload
Request
POST {{URL}}/ShipServer/{{ID}}/Orders
- ActorID - the id of the actor to run the request against
Request body
The request body takes a shipment data object and a options object
{ "data": {}, "options": {
"OrderID": "STRING" } }
See the postman collection for a full example
Data
See the article about the Data Object
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
Options
- OrderID - Uuid or another unique string.
-
#POST_Lines | Add a new line to an existing shipment
Creates new line on an already existing shipment.
Request
POST {{URL}}/ShipServer/{{ID}}/Shipments/:ShipmentTag/Lines
- ID - the id of the actor to run the request against
- ShipmentTag - the ID or Tag of the Shipment
Request body
The request body require a data object with a Lines Array
{ "data": {
"ShpCSID": "INT",
"Number": "INT",
"PkgWeight": "INT",
"PkgVol": "INT",
"Loadmeter": "INT",
"GoodsTypeID": "INT"
}, "options": {} }
See the postman collection for a full example
Data
See the article about Lines Array the Data Object
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
-
#PATCH_Lines | Update a Line on a Shipment
Update a line on an existing shipment
Request
PATCH {{URL}}/ShipServer/{{ID}}/:ShipmentTag/Lines/:LineTag
- ID - the id of the actor to run the request against
- ShipmentTag - the ID or Tag of the Shipment
- LineTag- the Tag of the line
Request body
The request body require a data object with a Lines Array
{ "data": {
"ShpCSID": "INT",
"LineCSID": "INT",
"PkgWeight": "INT",
"LineWeight": "INT"
}, "options": {} }
See the postman collection for a full example
Data
See the article about Lines Array the Data Object
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
-
#PATCH_Details | Update details on a Shipment
Updates details for a shipment.
- Existing Details on the shipment will be removed before adding the supplied Details.
Request
PATCH {{URL}}/ShipServer/{{ID}}/Shipments/:ShipmentTag/Details
- ID - the id of the actor to run the request against
- ShipmentTag - the ID or Tag of the Shipment
Request body
The request body require a shipment data containing the details
{
"data": {
"ShpCSID": "INT",
"DetailGroups": "ARRAY[OBJECT]"
},
"options": {}
}
See the postman collection for a full example
Data
See the section about the DetailGroups in the article about the Data Object
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
-
#DELETE_Package | Delete a Package on a Shipment
Deletes package by PkgCSID or PkgTag
- Only packages that are not transmitted can be deleted.
Request
DELETE {{URL}}/ShipServer/{{ID}}/Shipments/:ShipmentTag/Packages/:PackageTag
- ID- the id of the actor to run the request against
- ShipmentTag - the ID or Tag of the Shipment (Not needed any more)
- PackageTag- the ID or Tag of the package
See the postman collection for a full example
-
#DELETE_Lines | Delete a Line on a Shipment
Delete a line on an existing shipment
Request
DELETE {{URL}}/ShipServer/{{ID}}/Shipments/:ShipmentTag/Lines/:LineTag
- ID - the id of the actor to run the request against
- ShipmentTag - the ID or Tag of the Shipment
- LineTag- the Tag of the line
-
#DELETE_Shipment | Delete shipment based on Identifier
Used to delete a shipment which has not yet been transmitted.
Request
DELETE {{URL}}/ShipServer/{{ID}}/Shipments/:ShipmentTag
- ID- the id of the actor to run the request against
- ShipmentTag - both the ShpTag or ShpCSID can be used here
See the postman collection for a full example
-
#POST_Shipments | Submit a Shipment
Submits a shipment with or without the usage of Shipping Rules
- The most common way to create Shipments on the API
- Labels can be printed using Drop Zone and Cloud Print or return as a base64 string
- Recommended Label format is ZPLGK, PNG or PDF
Request
POST {{URL}}/ShipServer/{{ID}}/Shipments
- ID- the id of the actor to run the request against
Request body
The request body takes an application/json object with the following keys: data & options
{ "data": {}, "options": { "Labels": "STRING",
"TrackingURL": "INT(0/1)", "TicketUserName": "STRING", "WorkstationID": "UUID", "DropZoneLabelPrinterKey": "STRING", "DropZoneDocPrinterKey": "STRING", "UseShippingRules": "INT (0/1)", "ServiceLevel": "STRING", "RerunCSROnError": "INT (0/1)", "Token": "STRING", "ReturnShipment": "INT (0/1)", "PriceCalculation": "INT (0/1)", "UseErrorLabels": "INT(0/1)"
"SaveShipmentOnError": "STRING" } }
See the postman collection for a full example
Data
See the article about the Data Object
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
Options
- Labels - the label type to generate, more information here
[ ZPL, ZPLGK, EPL, PNG, PDF, DATAMAXLP2, DATAMAXDPL, none ]
- - TrackingURL - Return Shipment / Package tracking URL if provided from Carrier
- TicketUserName - login name used in the DropZone client
- WorkstationID - id of the installed DropZone client
- DropZoneLabelPrinterKey - name of a label printer key defined in the DropZone client
- DropZoneDocPrinterKey - name of a a4 printer key defined in the DropZone client
- - UseShippingRules - use 1 to activate Shipping Rules
- ServiceLevel - name of a ServiceLevel to execute in Shipping Rule
- - Token - a token found in the response of method GetShipAdvise which describes the product to create the shipment with
- RerunCSROnError - use 1 to rerun CSR if the product specified in the token is no longer valid
- - ReturnShipment - creates a return shipment in addition to the other shipment.
- PriceCalculation - use 1 to get price back from Price Calculation Setup Item
- UseErrorLabels - use 1 to return a label with the content of the ErrorMessage array
- - OrderID- Uuid or another unique string. The ID of the partial shipment in Order Storage created by nShift Checkout. Equivalent to nShift Checkout prepareID.
-
CompleteLabel - use 1 to get back graphics on all shipments in a shipment with multiple lines. If not defined, we will only return graphics on the first label. (default behavior)
Only enable this option if multiple labels are received in a response and not all labels are printed using the same label printer. Usually, printers store graphics, enabling subsequent labels to reuse stored data for faster printing speeds. - SaveShipmentOnError - use "Autoprint" or "Inbox" to save the shipment into the "Error Handling" or "Inbox" folder if the validation fails.
-
#POST_SubmitOrder | Submit a shipment from inbox
Submits an existing order which has been created using the OrderAdvice or SaveShipment method
- Cloud Print can be used to prints the labels on a certain workstation.
- CSR can be executed again without calling ETA Web Service. If the ServiceLevel is specified and different from OrderAdvice
Request
POST {{URL}}/ShipServer/{{ID}}/SubmitOrder
- ID- the id of the actor to run the request against
Request body
The request body takes an application/json object with the following keys: data & options
{ "data": { "ShpCSID": "INT" }, "options": {
"Labels": "STRING"
"TicketUserName": "STRING"
"WorkstationID": "UUID"
"UseCopy": "STRING"
"UseShippingRules": "STRING"
"ReturnShipmentServiceLevel": "STRING"
"ReturnShipmentFirst": "STRING"
"Vibility": "STRING" } }
See the postman collection for a full example
Data
See the article about the Data Object
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
Options
- Labels - the label type to generate, more information here
ZPL, ZPLGK, EPL, PNG, PDF, DATAMAXLP2, DATAMAXDPL, none - TicketUserName - login name used in the DropZone client
- WorkstationID - id of the installed DropZone client
- UseCopy - use 1 to keep the original shipment in inbox
- - UseShippingRules - enable Shipping Rules on the request
- ServiceLevel - name of a ServiceLevel to execute in Shipping Rules
- - ReturnShipmentServiceLevel - if a return label is needed, add the name of the ServiceLevel which contain the return products
- ReturnShipmentFirst - use 1 if the return label needs to be printed first
- -
- Visibility - use the value "extended" to return product and carrier name in the response
-
#POST_ImportUpload | Submit a shipment using a flat file
This method to create a shipment using a base64 encoded file
- txt, csv, edi or custom
-
xml is also supported, but a (XSLT version 1) stylesheet is required in order to translate the file into a CSV file.
before it can be processed.
Request
POST {{URL}}/ShipServer/{{ID}}/ImportUpload
- ID- the id of the actor to run the request against
Request body
The request body takes an application/json object with the following keys: data & options
{
"data": {
"filename": "STRING",
"filecontent": "BASE64 ENCODED STRING"
},
"options": {
"Labels": "STRING",
"ImportOnLocation": "INT (0/1)",
"TicketUserName": "STRING",
"WorkstationID": "UUID"
}
}
See the postman collection for a full example
Data
- filename - name and extention of the file
- filecontent - the content of the file to be uploaded, encoded in base64
Options
- Labels - the label type to generate, more information here
ZPL, ZPLGK, EPL, PNG, PDF, DATAMAXLP2, DATAMAXDPL, none
- - ImportOnLocation - target the Setup Item - Import Setup on Actor (0) or Location (1)
- TicketUserName - login name used in the DropZone client
- WorkstationID - uuid of the installed DropZone client
-
#POST_ShadowShipments | Submit a ShadowShipment
Create a copy of an existing shipment which was created in another booking system.
- All Carrier Validation are disabled
- No labels are created
- Shipment, Package number or both must be supplied in the Data object
- SubmitDate, TransmitDate and PickupDate must be supplied in the Data object
Request
POST {{URL}}/ShipServer/{{ID}}/ShadowShipments
- ID- the id of the actor to run the request against
Request body
The request body takes an application/json object with the following keys: data & options
{ "data": {}, "options": {} }
See the postman collection or swagger page for a full example
Data
See the article about the Data Object
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
Options
- No options are supported
-
#PUT_Manifest_Shipments | Transmit specific shipments
This method will only transmit the specified shipment(s) within a stack.
Request
PUT {{URL}}/ShipServer/{{ID}}/Shipments/Manifest
- ID - the id of the actor to run the request against
Request body
The request body takes an Array of ShpCSID
{ "data": {
"ShipmentCSIDs": "ARRAY"
}, "options": {} }
See the postman collection for a full example
Data
- ShipmentCSIDs - the shipments to be transmitted
- IsThisATest - is only support on some Carriers, used to send test EDI data to a Carrier
-
#PUT_Stacks_Manifest | Transmit all Shipment on a Stack
Transmit all shipments on a stack
Request
POST {{URL}}/ShipServer/{{ID}}/Stacks/:StackID/Manifest
- ID - the id of the actor to run the request against
- StackID - the id of the stack to delete
See the postman collection for a full example
-
#PUT_Manifest | Transmit specific packages on a shipment
This method will create new shipments based on the PackageCSIDs given in the body and transmit them.
Customer specific developed method.
Contact customer support if you need to use this.
Agents can assess the documentation for this method here:
https://helpcenter.nshift.com/hc/en-us/articles/6856658376476#put_manifest
-
#POST_LabelReprint | Reprint a label
Used to reprint one or all labels on a shipment which has been submitted
- Use the same label format as when it was submitted.
Request
POST {{URL}}/ShipServer/{{ID}}/Shipments/LabelReprint
- ActorID - the id of the actor to run the request against
Request body
The request body takes a shipment data and a options object
{ "data": { "ShpCSID": "INT", "PkgCSID": "INT" }, "options": {
"Labels": "STRING",
"TicketUserName": "STRING",
"WorkstationID": "UUID",
"DropZoneLabelPrinterKey": "STRING",
"DropZoneDocPrinterKey": "STRING", } }
See the postman collection for a full example
Data
- ShpCSID - the id of the shipment ( used to reprint all labels )
- PkgCSID - the id of the package ( used if you want to reprint a specific label )
Options
-
Labels - the label type to generate, more information here
ZPL, ZPLGK, EPL, PNG, PDF, DATAMAXLP2, DATAMAXDPL, none
- - TicketUserName - login name used in the DropZone client
- WorkstationID - id of the installed DropZone client
- DropZoneLabelPrinterKey - name of a label printer key defined in the DropZone client
- DropZoneDocPrinterKey - name of a a4 printer key defined in the DropZone client
-
#GET_Shipments | Get Shipment based on Identifier
Used to return a shipment which has not been deleted.
Request
GET {{URL}}/ShipServer/{{ID}}/Shipments/{ShipmentTag}
- ID- the id of the actor to run the request against
- ShipmentTag - both the ShpTag or ShpCSID can be used here
See the postman collection for a full example
-
#Get_Documents | Get documents from a Shipment
This method documents is used to return a list of all documents encoded as base64 on a shipment.
Request
GET {{URL}}/ShipServer/{{ID}}/Shipments/:ShipmentTag/Documents
- ID - the id of the actor to run the request against
- ShipmentTag - both the ShpTag or ShpCSID can be used here
See the postman collection for a full example
-
#Get_DocumentLists | Get a list of documents from a Shipment
This method documents is used to return a list of all documents on a shipment.
Request
GET {{URL}}/ShipServer/{{ID}}/Shipments/:ShipmentTag/DocumentLists
- ID - the id of the actor to run the request against
- ShipmentTag - both the ShpTag or ShpCSID can be used here
See the postman collection for a full example
ShipAdvisor
-
#POST_ShipAdvises | Get Delivery Options (Services/Products)
Get advises on which products can be used based on the data object in the payload.
- Normally used on the checkout page in a webshop
- Shipping Rules contain the logic on which products should be returned
- Can also use Carrier Performance (ETA) to display expected delivery time
Request
POST {{URL}}/ShipServer/{{ID}}/shipAdvises
- ID - the id of the actor to run the request against
Request body
The request body takes a shipment data and a options object.
{
"data": { "Addresses": "ARRAY, "Lines": "ARRAY" }, "options": {
"ServiceLevel": "STRING", "Price": "STRING", "TimeSlots": "INT", "DropPoints": "INT", "DropPointCount": "INT", "PickupLockers": "INT", "EarliestPickup": "DATE", "RequiredDeliveryDate": "DATETIME", "Deliverydate": "STRING",
"NoProductTokens" INT(0/1) } }
See the postman collection for a full example
Data
See the section here
Options
- ServiceLevel - name of a ServiceLevel to execute in Shipping Rules
- Price - Use value "CSR" to get price from CSR, or "1" or "2" to get Price1 or Price2
-
TimeSlots - Use value 1 to activate TimeSlots
Read the TimeSlots article to get more information on how to create a Shipment using TimeSlots - DropPoints - Use value 1 to get DropPoints
- DropPointCount - Numer of drop points to return for each product
- PickupLockers - Use value 1 for carriers who support this
- EarliestPickup - Set the earliest time for carrier to pick up the shipment
- RequiredDeliveryDate - YYYYMMDD
- Deliverydate - "ETAWS"
- NoProductTokens - used to define if you want the product token returned
Stacks
-
#GET_Stacks | Get All Stacks
A stack is a placeholder for shipments ready for transmitting EDI to the carrier.
When shipments are submitted, they are placed in a stack at sub carrier level.
Request
GET {{URL}}/ShipServer/{{ID}}/Stacks
- ID - the id of the actor to run the request against
See the postman collection for a full example
---
#POST_Stacks_Shipments | Get all Shipments from a Stack
The method returns all the shipments within a stack on the given StackCSID.
Request
POST {{URL}}/ShipServer/{{ID}}/Stacks/Shipments
- ID - the id of the actor to run the request against
Request body
The request body takes a data object with the stack id
{
"data": {
"StackCSID": "INT"
},
"options": {}
}
Data
- StackCSID - the id of the stack
-
#PATCH_Stacks_Shipments | Move multiple Shipments to another Stack
Move Shipments from one Stack to another
Request
Patch {{URL}}/ShipServer/{{ID}}/Stacks/Shipments
- ID - the id of the actor to run the request against
Request body
The request body takes a shipment data and a options object
{
"data": {
"StackCSID": "INT",
"ShpCSID": "ARRAY"
},
"options": {}
}
See the postman collection for a full example
Data
- StackCSID - id of the target stack
- ShpCSID - Id or Tag of the shipment(s) to move
-
#POST_Stacks | Create a new Stack
Use to create a new Stack on a SubCarrier
Request
POST {{URL}}/ShipServer/{{ID}}/Stacks
- ID - the id of the actor to run the request against
Request body
The request body takes a shipment data and a options object
{
"data": {
"SubcarrierCSID": "INT",
"SubcarrierConceptID": "INT",
"StackName": "STRING"
},
"options": {}
}
See the postman collection for a full example
Data
Only one of the SubcarrierConceptID and SubcarrierCSID is needed
-
#DELETE_Stacks | Delete a Stack
Use to delete a Stack
Request
DEL {{URL}}/ShipServer/{{ID}}/Stacks/:StackID
- ID - the id of the actor to run the request against
- StackID - the id of the stack to delete
See the postman collection for a full example
Batches
-
#POST_Batches | Get all Batches
Return returns a list of batches from the criteria in the request. When shipments are transmitted, they are placed in a batch. A batch will only contain the currently transmitted shipments for the carrier it belongs to. That means that next time shipments are transmitted, a new batch is created for them.
Request
POST {{URL}}/ShipServer/{{ID}}/Batches
- ID - the id of the actor to run the request against
See the postman collection for a full example
-
#GET_Batches | Get one Batch based on Identifier
Return a single Batch using the BatchID
Request
GET {{URL}}/ShipServer/{{ID}}/Batches/:BatchID
- ID - the id of the actor to run the request against
- BatchID - the id of the actor to run the request against
See the postman collection for a full example
-
#GET_Batch_Report | Get a file from a Batch
Return one report using the BatchReportID
Request
GET {{URL}}/ShipServer/{{ID}}/Batches/:BatchID
- ID - the id of the actor to run the request against
- BatchID - the id of the actor to run the request against
See the postman collection for a full example
-
#GET_Batch_Shipments | Get shipments from a Batch using Identifier
Return all shipment from a Batch using the BatchID
Request
GET {{URL}}/ShipServer/{{ID}}/Batches/:BatchID
- ID - the id of the actor to run the request against
- BatchID - the id of the actor to run the request against
See the postman collection for a full example
Waybills
-
#POST_Waybills | Create Waybill from a Batch
Creates a waybill using a BatchID
See this article for more informations:
https://helpcenter.nshift.com/hc/en-us/articles/360005359613
Request
GET {{URL}}/ShipServer/{{ID}}/Batches/:BatchID
- ID - the id of the actor to run the request against
- BatchID - the id of the actor to run the request against
See the postman collection for a full example
Services
-
#GET_Products | Get all Services / Products
Gets all carriers and sub carriers, products and services for the given actor along with the corresponding ConceptIDs and ServiceIDs . These IDs are a unique identifier for carriers, subcarriers, products and services. With this method it is easy to build a product selection at the client side that provides the IDs you need to create shipments.
Support both Concept Carriers and Custom Carriers
Request
GET {{URL}}/ShipServer/{{ID}}/Products
- ID - the id of the actor to run the request against
See the postman collection for a full example
-
#POST_ShipmentPrice | Get the freight cost for a Shipment
Calculates price based on the shipment if price calculation is activated on product.
Request
POST {{URL}}/ShipServer/{{ID}}/shipmentPrices
- ID - the id of the actor to run the request against
Request body
The request body takes a shipment data object
{ "data": {
"ProdConceptID": "INT", "Addresses": "ARRAY", "Lines": "ARRAY" }, "options": { } }
See the postman collection for a full example
Data
See the article about the Data Object
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
-
#POST_ShipmentValidations | Validate a Service based on Shipment data
Validates the shipment based on the input for the shipment object (data)
Request
POST {{URL}}/ShipServer/{{ID}}/ShipmentValidations
- ID - the id of the actor to run the request against
Request body
The request body takes a shipment data object
{ "data": {}, "options": {}
}
See the postman collection for a full example
Data
See the article about the Data Object
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
-
#POST_ValidRoutes | Validate a Route based on Shipment data and Carrier Validation
Validate addresses on a service, depending on the service the strength of the validation will vary
Request
POST {{URL}}/ShipServer/{{ID}}/ValidRoutes
- ID - the id of the actor to run the request against
Request body
The request body takes a shipment data object
{ "data": {},
"options": {} }
See the postman collection for a full example
Data
See the article about the Data Object
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
-
#POST_Shipments_Default | Get default values on a Service / Product
Return default value ( Setup Items ) for the service
Request
POST {{URL}}/ShipServer/{{ID}}/Shipments/Defaults
- ID - the id of the actor to run the request against
Request body
The request body takes a shipment data and a options object
{
"data": {
"ProdConceptID": "INT"
},
"options": {
}
}
See the postman collection for a full example
-
#Get_TrackingUrl | Get Track & Trace URL from a Shipment
Return the Tracking URL for a shipment
- If the carrier does not support track and trace, a link to Consignorportal.com can be returned instead.
Request
GET {{URL}}/ShipServer/{{ID}}/Shipments/:ShipmentTag/TrackingURL
- ID - the id of the actor to run the request against
- ShipmentTag - the ID or Tag of the Shipment
See the postman collection for a full example
Addons
-
#POST_Droppoints | Get a list of DropPoints
Returns drop points (service points) for the given product that supports it.
See the article for more information:
https://helpcenter.nshift.com/hc/en-us/articles/6578972044188
Request
POST {{URL}}/ShipServer/{{ID}}/DropPoints
- ID - the id of the actor to run the request against
Request body
The request body takes a shipment data and an options object
{ "data": {
"ProdConceptID": "INT",
"ResultCount": "INT", "Addresses": "ARRAY" }, "options": {} }
See the postman collection for a full example
Example showing request with multiple products:
{
"ProdConceptIDs": [
5318,
5319,
755
],
"ResultCount": "2",
"Addresses": [
{
"Kind": 1,
"CountryCode": "FR",
"PostCode": "76000",
"Street1": "84, rue de Epeule"
}
]
Data
- ProdConceptID - id of the product
- ResultCount - max is 20, but depends on the carrier how many that will be return
- Addresses - see this article: https://helpcenter.nshift.com/hc/en-us/articles/6578972044188
- Services - some products require a service to support droppoints
-
#POST_PickupLockers | Get a list of PickupLockers
Returns a list of PickupLockers from a service
Request
POST {{URL}}/ShipServer/{{ID}}/PickupLockers
- ID - the id of the actor to run the request against
Request body
The request body requires a shipment data object
{ "data": {
"ProdConceptID: "INT", "Addresses": "ARRAY", "Lines": "ARRAY" }, "options": { } }
See the postman collection for a full example
-
-
#POST_PickupLockerAllocations | Allocate a PickupLocker
Allocates a pickuplocker. To use this, you need to call GetPickupLockers, or GetShipAdvise first with options parameter “PickupLocker”:1. These functions will return a PickupLockerToken added to the option section for AllocatePickupLocker.
Request
POST {{URL}}/ShipServer/{{ID}}/PickupLockerAllocations
- ID - the id of the actor to run the request against
Request body
The request body takes a shipment data and an options object
{ "data": {}, "options": {
"Token": "STRING",
"PickupLockerToken": "STRING"
} }
See the postman collection for a full example
Data
See the article about the Data Object
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
Options
- Token - Can include product id instead
- PickupLockerToken -
-
#POST_TimeSlots | Get a list of TimeSlots
Return available timeslots for a product.
For more information, see this article:
https://helpcenter.nshift.com/hc/en-us/articles/360016376040
Request
POST {{URL}}/ShipServer/{{ID}}/TimeSlots
- ID - the id of the actor to run the request against
Request body
The request body takes a shipment data and an options object
{ "data": {
"ProdConceptID": "INT", "Addresses": "ARRAY", "Lines": "ARRAY" }, "options": {
"Token": "STRING",
"EarliestPickup": "DATETIME"
"LatestPickup": "DATETIME" }
}
See the postman collection for a full example
Data
See the article about the Data Object
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
Options
- Token - Mandatory if product is not specified in Data
- EarliestPickup - Mandatory if LatestPickup is specified. What values that are valid can differ between carriers. For some carriers EarliestPickup can be mandatory regardles
- LatestPickup - Mandatory if EarliestPickup is specified. What values that are valid can differ between carriers. For some carriers LatestPickup can be mandatory regardless.
-
-
#POST_TimeSlotAllocations | Allocate a TimeSlot
Allocated TimeSlot Token needs to be included in options for SubmitShipment and Void Timeslot.
For more information, see this article:
https://helpcenter.nshift.com/hc/en-us/articles/360016376040
Request
POST {{URL}}/ShipServer/{{ID}}/TimeSlotAllocations
- ID - the id of the actor to run the request against
Request body
The request body takes a shipment data and an options object
{ "data": {}, "options": {
"Token": "STRING",
"EarliestPickup": "ISO DATE",
"LatestPickup": "ISO DATA"
} }
See the postman collection for a full example
Data
See the article about the Data Object
https://helpcenter.nshift.com/hc/en-us/articles/5525543279260
Options
- Token
- EarliestPickup
- LatestPickup
-
#POST_VoidTimeSlot | Cancel a booked TimeSlot
Remove a time slot earlier allocated by AllocateTimeSlot.
For more information, see this article:
https://helpcenter.nshift.com/hc/en-us/articles/360016376040
Request
POST {{URL}}/ShipServer/{{ID}}/VoidTimeSlot
- ID - the id of the actor to run the request against
Request body
The request body takes a shipment data and an options object
{ "data": {}, "options": {
"AllocatedTimeSlotToken": "STRING"
} }
See the postman collection for a full example
Options
- AllocatedTimeSlotToken -
Config
-
#GET_SenderAddress | Get the Sender Address
Returns the sender address that is registered on the actor.
Request
GET {{URL}}/ShipServer/{{ID}}/SenderAddress
- ID - the id of the actor to run the request against
Request body
The request body takes a data object
{ "data": {
"UserName": "noreply@nshift.com"
} }
See the postman collection for a full example
-
Labels
Information about the label format:
- All label types are encoded as Base64.
- none will not return any label but creates the shipment.
- PNG labels in PNG format.
- PDF labels in PDF format.
- EPL labels in EPL format for printers that are supporting this e.g. LP2844, ZM400 and GK420D.
- ZPL labels in ZPL format but will have a margin of 30 on top of the label. This label type is optimized for LP2844-Z printers and may print too far down on the label for other printers, if this issue occurs try the ZPLGK type.
- ZPLGK is also in ZPL II format but without the top margin. Supported by printers like GK420D, ZM400 and may also work with other printers that are supporting ZPL II language.
- DATAMAXLP2 label for Datamax printer
- Unicode ( e.g. Cyrillic characters ) are only supported for PNG, PDF and ZPLGK label type.
-
#POST_DropZonePrinters | Get list of printers from a DropZone client
Returns the sender address that is registered on the actor.
Request
POST {{URL}}/ShipServer/{{ID}}/DropZonePrinters
- ID - the id of the actor to run the request against
Request body
The request body takes a data object
{ "data": {
"UserName": "noreply@nshift.com"
} }
See the postman collection for a full example
-