Skip to main content

Courier Developer Portal - Dev - Configuration and API Reference

A comprehensive guide to integrating courier services with Mintsoft using the Shipping API and Courier Developer Portal.

Tom Higgs avatar
Written by Tom Higgs
Updated this week

This guide explains how to use Mintsoft's Shipping API and Courier Developer Portal to integrate courier services. The portal enables developers to create standardised shipping connections that function alongside Mintsoft's native integrations.

The guide covers both administrative setup and technical implementation, including API specifications, authentication requirements, and response structures.


Overview

Shipping API

The Shipping API provides a standardised set of calls and webhooks for extracting shipping information from Mintsoft. Developers can use this API to build middleware that connects Mintsoft with courier systems for data exchange, label generation, and returns processing.

Courier Developer Portal

The Courier Developer Portal allows developers to submit courier services to the Mintsoft team for approval and deployment. Once approved, developers can configure live and test endpoints, manage API authentication keys, and deploy services that function identically to Mintsoft-developed integrations.

Important: Integrations added through the Courier Development Portal aren't supported or updated by Mintsoft Development. They must be maintained by either development services or the third-party developer who built the connection.


Solution Data Flow

The integration follows this workflow:

  1. The courier portal deploys new couriers and services to Mintsoft.

  2. Users select these services as they would any standard courier.

  3. A label request triggers a webhook.

  4. Standard information is sent via the Shipping API.

  5. Developer-built middleware translates this into courier-specific requests.

  6. The request is sent over the courier's API.

  7. The label returns to the middleware.

  8. The label is returned to Mintsoft for printing.


Administrator Guide

Creating Accounts

An existing administrator must create an account for new users.

Viewing Accounts and Connections

  1. Click Accounts to view all accounts for your courier connection.

  2. From this screen, you can create new accounts.

  3. For developer accounts, click Connections to see associated connections.

  4. Alternatively, click Courier Connections to view all connections.

Managing Connection Details

  1. Select Details from the connections list to administer a connection.

  2. Configure the following settings:

Available to All Customers

When enabled, the integration appears under Partners on Mintsoft's courier connection page. When disabled, the integration appears under the Custom tab.

Require Customer Approval

When enabled, customers must request access before creating an account. An Approvals menu option becomes available for managing access requests. Administrators receive email notifications when accounts are requested.

Enabled

Controls whether the courier's services are available in Mintsoft.

Note: For a connection to appear in Mintsoft, it must be both published and enabled.

Managing Customers

The Customers tab lists Mintsoft users currently using the integration.

Specific customers can be assigned to the integration. These customers are restricted to using only this integration if Available to All Customers isn't selected. Enabling Available to All Customers makes the integration available regardless of customer selection.

Managing Approvals

The Approvals tab only appears if Requires Customer Approval is enabled on the connection.

When enabled, administrators receive email notifications when accounts are requested from within Mintsoft. Administrators can grant or revoke connection access as required. Once approved, customers are automatically added to the Customers tab.


Developer Guide

Creating a Courier Connection

  1. Click Courier Connections to add a new connection or view existing ones.

  2. Enter the courier's name (maximum 50 characters).

  3. Provide an email address for customer assistance.

  4. Edit the courier connection to add additional information.

  5. Enter the test and production endpoints (base URLs that Mintsoft will call to create and manage shipments).

Uploading Service Images

  1. Upload an image of your service to appear on the courier connection page.

  2. Click the Services tab to create named courier services (maximum 100 characters per service name).

Important: Image dimensions must be 800 pixels wide by 500 pixels high.

Managing API Keys

  1. Click the API Keys tab to create API keys.

  2. Your system will use these keys to validate Mintsoft service calls.

Important: Only one API key can be active at any time, but you can create multiple keys to enable seamless migration when needed.

Submitting for Approval

  1. When you've finished configuring your services, submit the setup for approval.

  2. Mintsoft will review your setup and either approve or reject your request.

  3. If approved, you can publish your connection when you're ready.

  4. If rejected, Mintsoft will contact you to explain what needs to be corrected.

Publishing Your Connection

Once published, your courier connection will appear either under the Partners or Custom tab on Mintsoft's courier connection page for use by customers.

Managing Account Settings

Click your login name to change account settings at any time.

Syncing Services

Mintsoft automatically syncs any edits or new services added through the portal. Users can also manually sync courier services within Mintsoft:

  1. Go to Connect > Courier Integrations > Partner or Custom

  2. Select the courier.

  3. Click Sync Services.

Note: To automatically send services to Mintsoft from the developer portal, click Back and then Save on the courier connection screen.

Order Tracking

If a tracking URL is included in the Create Shipment response under the Packages Object, users can track orders:

  1. Navigate to the order overview.

  2. Click the Action button.

  3. Select Tracking.

  4. Users will be directed to the correct URL to track their order.


Shipping API Technical Guide

Authentication

The active API key from the Developer Portal is included in request headers under the key x-api-key. Customer account numbers and passwords are sent in the request body.

Endpoints

Create two endpoints at your base URL:

  1. Create Shipment: POST {url}/CreateShipment

  2. Cancel Shipment: DELETE {url}/CancelShipment

All data is passed in JSON format in both requests and responses.


API Reference

Create Shipment Request - Shipment Object

Endpoint: POST /CreateShipment

Parameter

Description

Type

Optional

Account Number

Client account number

String

No

Password

Client password

String

No

Shipment ID

Unique reference for the shipment

String

No

Service Name

Service name

String

No

Service Code

Service code

String

No

Delivery Notes

Delivery notes

String

No

Client

Supplier

String

No

Warehouse

Source warehouse of items

String

No

Order Number

Mintsoft order number

String

No

External Order Reference

Third-party order number

String

No

Channel

Sales channel

String

No

Ship From

Supplier address and contact information

Ship From Object

No

Ship To

Recipient address and contact information

Ship To Object

No

Parcels

Unit of parcels

Parcel Object Array

No

Cash On Delivery

Cash on delivery information

Cash on Delivery Object

No

ShippingTotalExVat

Shipping total excluding VAT

String

Yes

ShippingTotalVAT

Shipping total VAT

String

Yes

Ship From Object

Parameter

Description

Type

Optional

Email

Email address for this entity

String

No

Phone

Telephone number for this entity

String

No

Name

Contact name

String

No

Company Name

Company name of the address

String

No

Address Line 1

First line of the address

String

No

Address Line 2

Second line of the address

String

Yes

Address Line 3

Third line of the address

String

Yes

Town

Town of the address

String

No

County

County of the address

String

No

Postcode

Postcode of the address

String

No

Country code

Two-character ISO 3166-1 country code

String

No

VAT Number

VAT number of supplier

String

Yes

EORI Number

Economic operators registration and identification number

String

Yes

IOSS Number

Import One-stop shop number

String

Yes

UKIMS Number

UK Internal Market Scheme number

String

Yes

VOEC Number

VAT on eCommerce number

String

Yes

Recipient Type

B2B or B2C

String

Yes

Cash on Delivery Object

Parameter

Description

Type

Optional

Amount

Amount in decimal format

Decimal

No

Currency

Currency in three-letter format (e.g., GBP)

String

No

Ship To Object

Parameter

Description

Type

Optional

Email

Email address for this entity

String

No

Phone

Telephone number for this entity

String

No

Name

Contact name

String

No

Company Name

Company name of the address

String

No

Address Line 1

First line of the address

String

No

Address Line 2

Second line of the address

String

Yes

Address Line 3

Third line of the address

String

Yes

Town

Town of the address

String

No

County

County of the address

String

No

Postcode

Postcode of the address

String

No

Country code

Two-character ISO 3166-1 country code

String

No

VAT Number

VAT number of supplier

String

Yes

EORI Number

Economic operators registration and identification number

String

Yes

PID Number

PID Number

String

Yes

Recipient Type

B2B or B2C

String

Yes

National Address Code

National Address Code

String

Yes

Parcel Object

Parameter

Description

Type

Optional

Parcel Number

Sequence number of the parcel

Integer

No

Unit of Length

Unit of measurement for length, width, and height (allowed value: cm)

String

No

Length

Length of parcel

Decimal

No

Width

Width of parcel

Decimal

No

Height

Height of parcel

Decimal

No

Unit of Weight

Unit of measurement for weight (allowed value: kg)

String

No

Weight

Weight of the parcel

Decimal

No

Cost

Total cost of items in the parcel

Decimal

No

Parcel Items

List of items in the parcel

Parcel Item Object Array

No

Note: Exact values are sent for parcel weight and cost.

Parcel Item Object

Parameter

Description

Type

Optional

Title

Product name

String

No

SKU

Product SKU

String

No

Quantity

Quantity of the product

Integer

No

Unit Weight

Weight of one item

Decimal

No

Unit Price

Price of one item

Decimal

No

Commodity Code

Product commodity code

String

Yes

Customs Description

Description for customs

String

Yes

Country of Manufacture

Country of manufacture for customs purposes

String

Yes

Note: Exact values are sent for parcel item weight and price.


Create Shipment Response

Response Object

Parameter

Description

Type

Optional

Success

Operation success or failure

Boolean

No

Error Message

Error messages on failure

String Array

Yes

Shipment

Shipment object

Shipment Object

Yes

Shipment Object

Parameter

Description

Type

Optional

Main Tracking Number

Tracking number of main or only parcel

String

No

Label Format

Format label returned as (allowed values: PNG, PDF)

String

No

Customs document format

Format of customs documents

String

No

Packages

List of parcels

Package Object Array

No

Packages Object

Parameter

Description

Type

Optional

Parcel Number

Parcel sequence number

Boolean

No

Tracking Number

Tracking number for this parcel

String Array

Yes

Tracking URL

URL for tracking this parcel

String

Yes

Label as Base 64

Label image encoded as Base 64

String

Yes

Customs Document Name

Name of customs form (allowed values: CN22, CN23)

String

Yes

Customs PDF Document as Base 64

Customs document encoded as Base 64

Package object Array

Yes


Cancel Shipment Request

Endpoint: DELETE /CancelShipment

Parameter

Description

Type

Optional

Account Number

Client account number

String

No

Password

Client password

String

No

Tracking Number

Mintsoft unique reference for the shipment

String

No

Cancel Shipment Response - Response Object

Parameter

Description

Type

Optional

Success

Operation success or failure

Boolean

No

Error messages

Error messages on failure

String Array

Yes

Did this answer your question?