All Collections
API
Shipmondo Print Client
File integration via Shipmondo Print Client
File integration via Shipmondo Print Client

Use file integration to communicate with Shipmondo's RESTful API and create shipments.

Tea Krestine Johansen avatar
Written by Tea Krestine Johansen
Updated over a week ago

Shipmondo Print Client has two main functions:

  • Automatic print of shipping labels directly to the printer, through our RESTful API or from your Shipmondo account. Click here to find more info.

  • Possibility of integration with older accounting and ERP systems by using a simple file exchange (JSON/XML format).

This guide explains how to configure and employ file integration via Shipmondo Print Client.

Note: We recommend that you integrate through our RESTful API directly, instead of using file exchange through Shipmondo Print Client, as this will ensure broader support of features.

Install the Print Client -  5 simple steps

Follow these 5 simple steps to instal the Shipmondo Print Client.

Configuration of Shipmondo for file exchange

Start the Shipmondo app and choose File integration.

Start by enabling the file integration must be enabled. Tick the Activate box in the top right corner. 

The next step is configuring the following paths:

  1. Input folder: a path to the folder where new files should be imported

  2. Successful folder: upon successful shipment creation, the file from Input is moved here

  3. Error folder: upon failed shipment creation, the file from Input is moved here 

  4. Response folder: upon successful shipment creation, a new file containing shipment data is created and stored in this folder

Note! Don't use the same folder for Input and Success as this can cause issues.

Make sure you restart your app after you've completed the above setup. If there's an error in your setup, it'll be reported under Activity.

File format

The structure of both XML and JSON files is based on Shipmondo's API v3, which is further described in our specification.

In the beginning of the files, there are a few extra fields that describe the endpoint and HTTP method.

Note! Character encoding for the files must be UTF8 for both JSON and XML.

Troubleshooting

If there is an error in a file that fails to load, the file will be moved to the specified error folder, as well as noted under Activity > Activities.

Format of JSON

The file is structured with the following fields:

  • method: describes the HTTP method to use in this call

  • endpoint: describes which endpoint to call

  • data: the data to use for the POST/PUT method

Parameters for the GET method, such as pagination and ID, are specified in the root.

GET examples

Get shipments with a specific ID

{
  "method": "GET",
  "endpoint": "shipments",
  "id": "3520"
}

Get shipments without pagination

{
  "method": "GET",
  "endpoint": "shipments"
}

Get shipments with parameters (pagination)

{
  "method": "GET",
  "endpoint": "shipments",
  "page": "6",
  "per_page": "1"
}


POST examples
Create shipment

{
  "method": "POST",
  "endpoint": "shipments",
  "data": {
    "test_mode": true,
    "own_agreement": false,
    "label_format": null,
    "product_code": "GLSDK_SD",
    "service_codes": "EMAIL_NT,SMS_NT",
    "automatic_select_service_point": true,
    "sender": {
      "name": "Min Virksomhed ApS",
      "attention": "Lene Hansen",
      "address1": "Strandvejen 6",
      "address2": null,
      "zipcode": "5240",
      "city": "Odense NØ",
      "country_code": "DK",
      "email": "info@minvirksomhed.dk",
      "mobile": "70400407",
      "telephone": "70400407"
    },
    "receiver": {
      "name": "Lene Hansen",
      "attention": null,
      "address1": "Skibhusvej 52",
      "address2": null,
      "zipcode": "5000",
      "city": "Odense C",
      "country_code": "DK",
      "email": "lene@email.dk",
      "mobile": "12345678",
      "telephone": "12345678",
      "instruction": null
    },
    "parcels": [
      {
        "weight": 1000
      }
    ],
    "print": false,
    "print_at": {
      "host_name": "DESKTOP-Q9L1EEB",
      "printer_name": "Brother HL-L2340D series Printer",
      "label_format": "a5"
    },
    "replace_http_status_code": false,
    "reference": "Order 10001"
  }
}

Format of XML

XML files are structured in the same way as JSON files, except that they have a root element called request. Parameters are specified under the request element.

Arrays are listed as follows:

<parcels>
  <parcel>
    <weight>1000</weight>
  </parcel>
  <parcel>
    <weight>1000</weight>
  </parcel>
</parcels>

GET examples

Get shipments with a specific ID

<?xml version="1.0" encoding="UTF-8"?>
<request>
   <endpoint>shipments</endpoint>
   <method>GET</method>
   <id>3250</id>
</request>

Get shipments without pagination

<?xml version="1.0" encoding="UTF-8"?>
<request>
   <endpoint>shipments</endpoint>
   <method>GET</method>
</request>

Get shipments with parameters (pagination)

<?xml version="1.0" encoding="UTF-8"?>
<request>
   <endpoint>shipments</endpoint>
   <method>GET</method>
   <page>6</page>
   <per_page>1</per_page>
</request>

POST examples
Create shipment

<?xml version="1.0" encoding="UTF-8"?>
<request>
<endpoint>shipments</endpoint>
<method>POST</method>
<data>
<test_mode>true</test_mode>
<own_agreement>false</own_agreement>
<label_format>zpl</label_format>
<product_code>GLSDK_SD</product_code>
<service_codes>EMAIL_NT,SMS_NT</service_codes>
<reference>Order 10001</reference>
<automatic_select_service_point>true</automatic_select_service_point>
<sender>
<name>Min Virksomhed ApS</name>
<attention>Lene Hansen</attention>
<address1>Hvilehøjvej 25</address1>
<address2></address2>
<zipcode>5220</zipcode>
<city>Odense SØ</city>
<country_code>DK</country_code>
<email>info@minvirksomhed.dk</email>
<mobile>70400407</mobile>
</sender>
<receiver>
<name>Lene Jensen</name>
<attention></attention>
<address1>Skibhusvej 52</address1>
<address2></address2>
<zipcode>5000</zipcode>
<city>Odense C</city>
<country_code>DK</country_code>
<email>lene@email.dk</email>
<mobile>12345678</mobile>
<instruction null="true" />
</receiver>
<parcels>
<parcel>
<quantity>1</quantity>
<weight>1000</weight>
</parcel>
</parcels>
<print>false</print>
<print_at>
<host_name>WAREHOUSE-PC</host_name>
<printer_name>Zebra Zdesigner GK420D</printer_name>
<label_format>zpl</label_format>
</print_at>
</data>
</request>

Did this answer your question?