Skip to main content

API - Create an order

Steps to create orders via the Mintsoft API, including required fields, optional parameters, and example requests.

Tom Higgs avatar
Written by Tom Higgs
Updated this week

This guide is intended for customers with custom-built third-party API integrations. It provides an additional method for creating orders, rather than the standard approach. To create a new order via a custom API, you need to use the PUT /api/Order request. The order contains details about who it's being shipped to as well as the products that you want to ship.

Important: (3PL Only) Please be advised, we do a unique check on the ExternalOrderReference and Order Number against each individual 3PL client.


ClientId - required for Admin users

When creating an order as an Admin user, you must specify the ClientId to indicate which client the order belongs to. Client users do not need to specify this field as it defaults to their own ClientId.

Example:

  • ClientId: 123


Warehouse - required

When creating an order you need to specify the warehouse you want to create the order against. You can do this by name or ID, for example:

  • WarehouseID: 3

  • Warehouse: Main Warehouse

You can find a full list of available warehouses using the GET /api/Warehouse request.


Country - required

You need to specify the country you're shipping the order to. You can do this by Name or ID, for example:

  • CountryID: 1

  • Country: UK

The country can be ISO 2 or 3 digit codes or country names.

You can find a full list of countries using the GET /api/RefData/Countries request.


CourierService - required (or AUTO)

You need to specify how the order is sent. You can do this using a generic term, which you can map to rules or a specific courier ID or name, for example:

  • CourierServiceID: 12

  • CourierService: NEXT DAY

  • CourierService: DPD NEXT DAY

You can set CourierService to 'AUTO' to let the system automatically select the appropriate courier based on your rules.

You can find a full list of courier services using the GET /api/Courier/Services request.


Channel - optional

When creating an order you can specify a channel that the order came from, for example, website, wholesale, retail. You can do this by name or ID, for example:

  • ChannelID: 1

  • Channel: Retail Website


Order items - required

You need to specify a list of items that are on the order. When specifying the product, you can either use the SKU or the exact ProductId. Please note, if you don't provide unit price for the products on the order, it won't pull the product price from Mintsoft; the unit price will be set to zero.


Additional order item fields

You can include additional optional fields for each order item:

  • Details: Additional item description.

  • Discount: Discount amount for this item.

  • WarehouseId: Override warehouse for this specific item (for multi-warehouse orders).

  • RequestedSerialNo: Request specific serial number

  • RequestedBatchNo: Request specific batch number

  • RequestedBBEDate: Request specific best before date


Order date fields - optional

For delivery and despatch scheduling, you can include:

  • RequiredDeliveryDate: Target delivery date

  • RequiredDespatchDate: Target despatch date

Note: DeliveryDate and DespatchDate are deprecated. Use RequiredDeliveryDate and RequiredDespatchDate instead.


Financial details - optional

You can provide detailed financial breakdowns:

  • ShippingTotalExVat: Shipping cost excluding VAT

  • ShippingTotalVat: VAT amount on shipping

  • DiscountTotalExVat: Discount amount excluding VAT

  • DiscountTotalVat: VAT amount on discount

  • TotalVat: Total VAT for the entire order


Tax and customs information - optional

For international orders and customs documentation, you can include:

  • VATNumber: VAT registration number

  • EORINumber: Economic Operators Registration and Identification number

  • PIDNumber: Personal Identification Number

  • UKIMSNumber: UK Internal Market Scheme number

  • RFCNumber: Tax registration number (Mexico)

  • IOSSNumber: Import One-Stop Shop number (EU)


Tags - optional

You can add tags to orders during creation as a comma-separated string. Tags can be used for filtering and automation rules.


Custom name-value pairs - optional

You can add custom metadata to orders and order items using name-value pairs. This is useful for personalisations, gift messages, or custom fields.


Additional optional fields

  • NumberOfParcels: Number of parcels for this order (affects shipping label generation).

  • NationalAddressField: Country-specific address identifier (e.g., CPF for Brazil, RFC for Mexico).


API order example with optional fields

{
"OrderItems": [{
"SKU": "TEST-PRODUCT-1",
"Quantity": 1,
"UnitPrice": 10,
"UnitPriceVat": 2
}],
"OrderNumber": "MY ORDER NUMBER",
"ExternalOrderReference": "EXT-12345",
"ClientId": 123,
"Title": "MR",
"CompanyName": "MY COMPANY NAME",
"FirstName": "FIRST NAME",
"LastName": "LAST NAME",
"Address1": "First Line Address",
"Address2": "Second Line Address",
"Address3": "Third Line Address",
"Town": "Town or City",
"County": "County or State",
"PostCode": "PostCode or ZipCode",
"Country": "GB",
"Email": "[email protected]",
"Phone": "01245123456",
"Mobile": "07979000000",
"CourierService": "Next Day",
"Warehouse": "Main Warehouse",
"Currency": "GBP",
"Comments": "Please pack in a safe box",
"DeliveryNotes": "Delivery Message",
"GiftMessages": "Gift Message",
"OrderValue": 12,
"NumberOfParcels": 1,
"RequiredDeliveryDate": "2024-12-25T00:00:00",
"Tags": "Priority,Gift",
"VATNumber": "GB123456789",
"OrderNameValues": [
{"Name": "GiftWrap", "Value": "Yes"}
]
}

Complete field reference

This section provides a comprehensive list of all available fields for the API Create Orders endpoint.

Required fields

Order level:

  • Warehouse (or WarehouseId)

  • Country (or CountryId)

  • OrderItems (array - must have at least one item)

Order item level (per item):

  • SKU (or ProductId)

  • Quantity

Admin users only:

  • ClientId

Optional fields

Order level - Basic information:

  • OrderNumber

  • ExternalOrderReference

  • Title

  • CompanyName

  • FirstName

  • LastName

  • Address1

  • Address2

  • Address3

  • Town

  • County

  • PostCode

  • Email

  • Phone

  • Mobile

Order level - Shipping and delivery:

  • CourierService (or CourierServiceId)

  • NumberOfParcels

  • RequiredDeliveryDate

  • RequiredDespatchDate

  • DeliveryNotes

Order level - Financial:

  • Currency (or CurrencyId)

  • OrderValue

  • ShippingTotalExVat

  • ShippingTotalVat

  • DiscountTotalExVat

  • DiscountTotalVat

  • TotalVat

Order level - Tax and customs:

  • VATNumber

  • EORINumber

  • PIDNumber

  • UKIMSNumber

  • RFCNumber

  • IOSSNumber

Order level - Additional:

  • Comments

  • GiftMessages

  • Channel (or ChannelId)

  • Tags

  • RecipientType

  • NationalAddressField

  • OrderNameValues (array)

  • ConnectAction (object)

  • CashOnDelivery (object with Amount and CurrencyCode)

Order item level - Optional:

  • UnitPrice

  • UnitPriceVat

  • Discount

  • Details

  • WarehouseId

  • RequestedSerialNo

  • RequestedBatchNo

  • RequestedBBEDate

  • OrderItemNameValues (array)

Deprecated fields

Important: Do not use these fields as they are no longer supported.

  • DeliveryDate

  • DespatchDate

Did this answer your question?