Fulfillment API

API change history

  • Interim Release including shipments (packing details and serial numbers) in GET /order/{requestId]
  • Improved documentation

Create Order

Create a new order.

Please note:

content-type is required although it shows optional


Additional information and instructions.

Some sections below are marked as FMS-Only. These sections only apply when Moduslink is handling payments.


Shipping info


ModusLink typically will do a dynamic carrier determination based on an agreed freight matrix, and the destination and total weight/volume of each order.The order can contain information about shipping options. The following input parameters are used to provide this information:

1) shipServiceLevel

This will provide the service level applicable to the order. The possible values depend on the agreed requirements. The following values are available:

ECO – economy shipment
STD – standard shipment
EXP – express shipment
PUO – Pick Up or Drop Off

2) IncoTerm

The incomterm to be used, per Incoterms 2010 Standard. Possible values are DAP, DDP, CPT etc.. Applicable values will need to be agreed between Moduslink and the client.

Multi-site fulfillment:


multiple CCID’s In case fulfillment is done from multiple locations e.g. different regions, than Moduslink will provide the client with multiple CCID’s. One for each location/region. Another reason for multiple CCID ‘s can be to differentiate between B2c and B2B orders or Web and Contact Center orders.
e.g. shipping from Netherlands and Signapore In this case 2 CCID’s would be provided. When making a call to the API the appropriate CCID and region would have to be provided.

Shipping


For Shipping costs a separate item is added to the order. This order item will have a fixed sku e.g. [ClientCode]_SHIPCOSTS, which will be provided by ModusLink. The price of the item will represent the shipping costs. If no shipcosts apply this item can be omitted.

amount types


Amount types are used as below:

Order Header Amounts:

  • totalNet - The total net amount of the order
  • totalTax - The total tax amount of the order
  • totalGross - The total gross amount of the order (net plus tax)

Payment Amounts:

  • capture - the capture amount
  • authorized - the authorized amount
  • created - the created amount

Order Item Amounts:

  • netprice - the net price of the item
  • grossprice - the gross price of the item

Special Cases


Item discount

FMS-Only
Pricing for the item should be the discounted item price. Original price minus discount applied.

Order discount

FMS-Only When a discount is applied to the order. Add a discount item to the order message, with negative value for the item, representing the discount value, see below sample. The SKU will be fixed and provided by Moduslink

  {
    "itemId": "1",  "clientItemRef":"",
    "sku": "CLIENT_DISCOUNT",
    "quantity": {
    "uom": "EA",
    "value": “1”
    },
    "amount": [
      {
        "currencyISO3":"USD",
        "amountType":"grossprice",
        “value": "-105.00”
      },
      {
        "currencyISO3":"USD",
        "amountType":"netprice",
        “value": "-100”
      }
    ],
    "taxLevel":"PHYSICAL",
    "taxFactor":"1.05",
    "pricing":"grossprice",
    "localizedDescription":"Localised description",
    "dynamicField": [
      {
        "name":"SkuDescription",
        "value": “SkuDescription”
      }
    ]
 }
  

WEEE

FMS-Only WEEE refers to any charges related to European Community Directive 2012/19/EU on waste electrical and electronic equipment (WEEE). It is fee levied to facilitate recycling of electronic and electric equipment. When Moduslink provides Financial Management Services (payment processing, invoicing, bank account management, credit and collection etc.), ModusLink will take care of the required WEEE fee submissions and reporting.

Add an additional item to the order to hold the WEEE fee for the item. Each item that has a WEEE fee, needs an associated WEEE item. Therefore the order can have multiple WEEE items. Each WEEE item will have the same sku but a different localised description. Then the WEEE fee item can be associated with a product line in the order. See sample below:

  {
     "itemId": "1",
     "clientItemRef":"",
     "sku": "[ClientCode_WEEE]",
     "quantity": {
       "uom": "EA",
       "value": “1”
      },
     "amount": [
     {
       "currencyISO3":"USD",
       "amountType":"grossprice",
       “value": "-105.00”
     },
     {
       "currencyISO3":"USD",
       "amountType":"netprice",
       “value": "-100”
     }
    ],
    "taxLevel":"PHYSICAL",
    "taxFactor":"1.05",
    "pricing":"grossprice",
    "localizedDescription":"WEEE [<<SKU>>]",
    "dynamicField": []
  }

SKU - The partnumber to which this WEEE fee applies

[ClientCode_WEEE] -The WEEE part number provided to you by ModusLink.

Codice Fiscali

FMS-Only For Italian orders the webstore needs to get the clients fiscal code and add this to the order as an order dynamic field.

field value
order-dynamicField-name FISCAL_CODE
order-dynamicField-value |fiscall code provided |

e-Invoicing

FMS-Only For localisation of invoices the order needs to provide the local to be used. E.g. the language used to create the order online. This will drive the language of the e-invoice. partner-personData-locale

format LanguageCode-CountryCode
sample nl-NL

Payment Review

FMS-Only

In case the payment result is review required this needs to be added to the order as order dynamic fields.

field value
order-dynamicField-name PROCESSAUTHSTATUS
order-dynamicField-value Review
order-dynamicField-name PROCESSAUTHSTATUSCODE
order-dynamicField-value DM_REVIEW

Export FOC orders

In case of export outside the EU the price elements should always (also with Free Of Charge or Fulfillment Only orders) contain the Net Price of the product at the Item level. This price is printed on the Customs/Commercial Invoice. The gross price (determining the customers invoice value) may contain zero value (in case of a Free of Charge product). See below line item amount sample.

    "amount": [
      {
        "currencyISO3":"USD",
        "amountType":"grossprice",
        "value": “0.00”
      },
      {
        "currencyISO3":"USD",
        "amountType":"netprice",
        "value": “125”
      }
    ],
    

Bundles

For bundles Moduslink will receive the underlying items of the bundle in the order message. For example:

Bundle_A containing the following items:

    Item: SKU_A qty in bundle: 1
    Item: SKU_B qty in bundle: 2
    

The item price in the order message should be the original item price minus the bundle discount applied:

  SKU_A has item price: 10.00
  SKU_B has item price: 20.00
  Bundle_A has a price of: 44.00
  

The bundle is sold for 44 instead of 50, the 6 discount applied to the bundle, should be split accross the two items in the bundle, and sent as such in the order message:

Based on the sample bundle, the order message will include, the following items and prices:

  SKU_A with qty 1 and item price: 8.80
  SKU_B with qty 2 and item price:17.60
  

Try it

Request

Request URL

Request headers

  • string

    Client specific ID, provided by ModusLink during the onboarding process

  • string

    Client specific authentication key, provided by ModusLink during the onboarding process.

  • (optional)
    string
    Media type of the body sent to the API.
  • string
    Subscription key which provides access to this API. Found in your Profile.

Request body

{
  "clientRequest": {
    "requestHeader": {
      "externalMessageReference": "API_DEMOUS_1",
      "client": "MLDEMOUS",
      "requestReference": "API_DEMOUS_1",
      "dateTimeSent": "2018-01-06T00:00:00 +00.00"
    },
    "order": {
      "shipCourier": null,
      "shipServiceLevel": "STD",
      "shipServiceOption": null,
      "poNumber": null,
      "incoTerms1": "CPT",
      "incoTerms2": null,
      "amount": [
        {
          "currencyISO3": "USD",
          "amountType": "totalNet",
          "value": "100.00"
        },
        {
          "currencyISO3": "USD",
          "amountType": "totalTax",
          "value": "0.00"
        },
        {
          "currencyISO3": "USD",
          "amountType": "totalGross",
          "value": "100.00"
        }
      ],
      "datetimeWantedDeliveryDate": "2018-03-12T13:18:37 +00.00",
      "note": [
        {
          "noteType": "HEADERNOTE",
          "value": "Test Note"
        },
        {
          "noteType": "BLCOC",
          "value": "Test Note 0012"
        }
      ],
      "dynamicField": [
        {
          "name": "EndUserReference",
          "value": "Test123"
        },
        {
          "name": "EndUserReference2",
          "value": "123Test"
        }
      ]
    },
    "payment": {
      "paymentMethod": "Visa",
      "entityId": "ff8080813e835e83013e8d2fb3da0472",
      "transactionId": "8a82944a5fa67f48015fb56c5f603333",
      "acquirerId": "123456",
      "amount": [
        {
          "amountType": "capture",
          "currencyISO3": "EUR",
          "value": "100"
        },
        {
          "currencyICO3": "EUR",
          "amountType": "authorized",
          "value": "100.00"
        },
        {
          "currencyISO3": "EUR",
          "amountType": "created",
          "value": "100.00"
        }
      ],
      "status": "authorized",
      "cardData": {
        "holder": "Janet Smith",
        "bin": "411111",
        "last4digits": "1111",
        "dateCardExpiry": "2021-12-01",
        "dateAuthExpiry": "2018-06-01"
      }
    },
    "partner": [
      {
        "partnerType": "BillTo",
        "companyData": {
          "name": "",
          "phone": [
            {
              "phoneType": "office",
              "value": "555123"
            }
          ]
        },
        "personData": {
          "firstName": "Janet",
          "lastName": "Smith",
          "fiscalId": "",
          "phone": [
            {
              "phoneType": "home",
              "value": "6175555555"
            }
          ],
          "email": [{
            "emailType": "email",
            "value": "janet_smith@company.com"
          }],
          "locale": "en-US"
        },
        "addressData": {
          "address": [
            {
              "line": "1",
              "value": "1601 Trapelo Rd Ste 170"
            },
            {
              "line": "2",
              "value": "apartment block 2"
            }
          ],
          "postalCode": "02451",
          "city": "Waltham",
          "state": "MA",
          "countryISO2": "US"
        }
      },
      {
        "partnerType": "ShipTo",
        "companyData": {
          "name": "",
          "phone": ""
        },
        "personData": {
          "firstName": "Janet",
          "lastName": "Smith",
          "phone": [
            {
              "phoneType": "home",
              "value": "6175555555"
            }
          ],
          "email": [{
            "emailType": "email",
            "value": "janet_smith@company.com"
          }],
          "locale": "en-US"
        },
        "addressData": {
          "address": [
            {
              "line": "1",
              "value": "1601 Trapelo Rd Ste 170"
            },
            {
              "line": "2",
              "value": "appartment block 2"
            }
          ],
          "postalCode": "02451",
          "city": "Waltham",
          "state": "MA",
          "countryISO2": "US"
        }
      }
    ],
    "item": [
      {
        "itemId": "1",
        "clientItemRef": "",
        "sku": "503001",
        "quantity": {
          "uom": "EA",
          "value": "1"
        },
        "amount": [
          {
            "currencyISO3": "USD",
            "amountType": "grossprice",
            "value": "50.00"
          },
          {
            "currencyISO3": "USD",
            "amountType": "netprice",
            "value": "50"
          }
        ],
        "taxLevel": "PHYSICAL",
        "taxFactor": "1.000",
        "pricing": "grossprice",
        "localizedDescription": "Localised description",
        "dynamicField": [
          {
            "name": "UNIT_PRICE",
            "value": "50"
          },
          {
            "name": "SkuDescription",
            "value": "Sku Description"
          }
        ]
      }
    ]
  }
}
{
  "type": "object",
  "properties": {
    "requestHeader": {
      "type": "object",
      "properties": {
        "requestType": {
          "type": "string",
          "description": "Not in request. Will be available only in response. Describes the type of request e.g. ORDERONLY, INVOICEONLY, ORDERINVOICE"
        },
        "requestStatus": {
          "type": "string",
          "description": "Not in request. Will be available only in response. The current status of the request. Some statusses are only relevant in specific business scenarios (FMS, B2B). More information in the state diagram and additional documentation.\n  &nbsp;&nbsp;&nbsp;- created: Message technically valid and created in Order Management System\n  &nbsp;&nbsp;&nbsp;- duplicate: duplicate message reference, request ignored\n  &nbsp;&nbsp;&nbsp;- errored: Order message on error in ERP, awaiting resolution (fix or cancel)\n  &nbsp;&nbsp;&nbsp;- confirmed: message received and loaded in ERP fulfillment system, orderId populated\n  &nbsp;&nbsp;&nbsp;- creditblocked: FMS Only - order creditblocked, further inspection / wait for prepayment / B2B Terms customer credit limit exceeded\n  &nbsp;&nbsp;&nbsp;- cancelled: Order fully cancelled\n  &nbsp;&nbsp;&nbsp;- dplhold: Order on Denied Party List hold - further inspection will result in either approval (false hit) or cancellation (positive hit)\n  &nbsp;&nbsp;&nbsp;- released: Special scenarios only - All Order blocks removed, order ready for processing\n  &nbsp;&nbsp;&nbsp;- reserved: Special scenarios only - Inventory allocated to all lines\n  &nbsp;&nbsp;&nbsp;- shipped: Order shipped in full\n  &nbsp;&nbsp;&nbsp;- invoiced: FMS Only - invoice created\n  &nbsp;&nbsp;&nbsp;- paid:  FMS Only - Invoice payment processed",
          "enum": [
            "created",
            "duplicate",
            "errored",
            "confirmed",
            "creditblocked",
            "cancelled",
            "dplhold",
            "released",
            "reserved",
            "shipped",
            "invoiced",
            "paid"
          ]
        },
        "externalMessageReference": {
          "type": "string",
          "description": "REQUIRED in POST. Unique client order reference. Duplicates will NOT be rejected at ML order system. In response (GET) this will show in the requestControl, not in the requestHeader.",
          "maxLength": 50
        },
        "client": {
          "type": "string",
          "description": "REQUIRED. Client Name, to be provided by Moduslink as part of onboarding    ",
          "maxLength": 40
        },
        "requestReference": {
          "type": "string",
          "description": "REQUIRED. Unique client order reference. Usually same as externalMessageReference, can be different. Duplicates will be rejected in ML order system.",
          "maxLength": 50
        },
        "dateTimeSent": {
          "type": "string",
          "description": "Only in response: Date order was created. format yyyy-mm-ddT00:00:00 +00.00"
        },
        "dateTimeReceived": {
          "type": "string",
          "description": "Only in response: Date order was received in our system. format yyyy-mm-ddT00:00:00 +00.00"
        },
        "dateTimeConfirmed": {
          "type": "string",
          "description": "Only in response. Date order was confirmed in our system. format yyyy-mm-ddT00:00:00 +00.00"
        },
        "dateTimeShipped": {
          "type": "string",
          "description": "Only in response. Date order was confirmed in our system. format yyyy-mm-ddT00:00:00 +00.00    "
        },
        "dynamicField": {
          "type": "array",
          "description": "Only in response. Provides Client/Campaign/Program and Region information. Internal Moduslink configuration values",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "REQUIRED. Name of the dynamic field max lenght 60",
                "maxLength": 60
              },
              "value": {
                "type": "string",
                "description": "Value of the dynamic field max length 2000",
                "maxLength": 2000
              }
            },
            "description": "Dynamic fields",
            "example": {
              "name": "name",
              "value": "value"
            }
          }
        }
      },
      "description": "Provides information to create/about a new order",
      "example": {
        "externalMessageReference": "externalMessageReference",
        "dateTimeConfirmed": "dateTimeConfirmed",
        "requestType": "requestType",
        "requestReference": "requestReference",
        "dateTimeSent": "dateTimeSent",
        "dynamicField": [
          {
            "name": "name",
            "value": "value"
          },
          {
            "name": "name",
            "value": "value"
          }
        ],
        "client": "client",
        "dateTimeShipped": "dateTimeShipped",
        "dateTimeReceived": "dateTimeReceived",
        "requestStatus": "created"
      }
    },
    "order": {
      "type": "object",
      "properties": {
        "orderId": {
          "type": "string",
          "description": "In response only. The orderId in the Fulfilment system (SAP)"
        },
        "status": {
          "type": "string",
          "description": "In response only. current status of the order in the fulfilment system"
        },
        "shipCourier": {
          "type": "string",
          "description": "Carrier/Forwarder ID (DHL, DPD, UPS, etc)"
        },
        "shipServiceLevel": {
          "type": "string",
          "description": "REQUIRED. Shipping service level",
          "enum": [
            "STD",
            "EXP",
            "ECO",
            "PUD"
          ]
        },
        "shipServiceOption": {
          "type": "string",
          "description": "Type of Shipping service (SG = Standard Ground, SD = Saturday Delivery, etc)"
        },
        "poNumber": {
          "type": "string",
          "description": "Client reference number (optional)"
        },
        "incoTerms1": {
          "type": "string",
          "description": "Delivery term (DAP, DPD, CPT, etc)"
        },
        "incoTerms2": {
          "type": "string",
          "description": "Information from Pack Slip (Destination city of the shipment, etc)"
        },
        "timeZone": {
          "type": "string",
          "description": "In response only. The offset to GMT e.g. +1 hrs"
        },
        "dateTimeWantedDeliveryDate": {
          "type": "string",
          "description": "Wanted DeliveryDate format yyyy-mm-ddT00:00:00 +00.00"
        },
        "dateTimeConfirmed": {
          "type": "string",
          "description": "In response only. The date the order was confirmed in our fulfilment system format yyyy-mm-ddT00:00:00 +00.00"
        },
        "dateTimeShipped": {
          "type": "string",
          "description": "In response only. The date the order was shipped in our fulfilment system format yyyy-mm-ddT00:00:00 +00.00"
        },
        "amount": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "currencyISO3": {
                "type": "string",
                "description": "ISO3 Currency Code",
                "maxLength": 3
              },
              "amountType": {
                "type": "string",
                "description": "Amount type<br><br><u>amount types</u><br>Amount types are used as below:<br><br>Order:<br>totalNet - The total net amount of the order<br>totalTax - The Tax amount at order level<br>totalGross - The total amount of the order, gross amount net plus tax<br><br>Item:<br>netprice - the item net price. netprice is required and needs to be included, so this can be printed on export documents<br>grossprice - the gross price of the item<br><br>Payment<br>authorized - The amount used for payment authorizaton e.g. credit card payment<br><br>Shipping costs<br>freightCosts - The shipping costs associated with the shipment",
                "enum": [
                  "totalNet",
                  "totalTax",
                  "totalGross",
                  "authorized",
                  "netprice",
                  "grossprice",
                  "freightCosts"
                ]
              },
              "value": {
                "type": "string",
                "description": "Amount Value"
              }
            },
            "description": "Amount Info e.g. the gross or nett price applied related to curreny. e,g, USD ##.## 50.00 YPN ## 50.<br>This object is used in the order, payment and item objects. The amountType used differs depending on the object it applies to e.g. order, payment or item. See detail below.",
            "example": {
              "amountType": "totalNet",
              "currencyISO3": "currencyISO3",
              "value": "value"
            }
          }
        },
        "note": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "noteType": {
                "type": "string",
                "description": "Type of the notes",
                "maxLength": 20
              },
              "value": {
                "type": "string",
                "description": "Value of the notes",
                "maxLength": 4000
              }
            },
            "description": "Notes Info",
            "example": {
              "noteType": "noteType",
              "value": "value"
            }
          }
        },
        "dynamicField": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "REQUIRED. Name of the dynamic field max lenght 60",
                "maxLength": 60
              },
              "value": {
                "type": "string",
                "description": "Value of the dynamic field max length 2000",
                "maxLength": 2000
              }
            },
            "description": "Dynamic fields",
            "example": {
              "name": "name",
              "value": "value"
            }
          }
        }
      },
      "description": "REQUIRED. The order object contains order related data",
      "example": {
        "dateTimeConfirmed": "dateTimeConfirmed",
        "note": [
          {
            "noteType": "noteType",
            "value": "value"
          },
          {
            "noteType": "noteType",
            "value": "value"
          }
        ],
        "amount": [
          {
            "amountType": "totalNet",
            "currencyISO3": "currencyISO3",
            "value": "value"
          },
          {
            "amountType": "totalNet",
            "currencyISO3": "currencyISO3",
            "value": "value"
          }
        ],
        "orderId": "orderId",
        "shipCourier": "shipCourier",
        "shipServiceLevel": "STD",
        "timeZone": "timeZone",
        "dateTimeShipped": "dateTimeShipped",
        "shipServiceOption": "shipServiceOption",
        "incoTerms1": "incoTerms1",
        "dateTimeWantedDeliveryDate": "dateTimeWantedDeliveryDate",
        "incoTerms2": "incoTerms2",
        "dynamicField": [
          {
            "name": "name",
            "value": "value"
          },
          {
            "name": "name",
            "value": "value"
          }
        ],
        "poNumber": "poNumber",
        "status": "status"
      }
    },
    "partner": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "partnerType": {
            "type": "string",
            "description": "REQUIRED. Partner type BillTo or ShipTo",
            "enum": [
              "BillTo",
              "ShipTo"
            ]
          },
          "companyData": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "BillTo or Shipto Company name. Only required when Company",
                "maxLength": 70
              },
              "customerNumber": {
                "type": "string",
                "description": "The external customer number, unique company identificatio",
                "maxLength": 30
              },
              "phone": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "phoneType": {
                      "type": "string",
                      "description": "REQUIRED. BillTo/Ship to Person phone type (office, home). Type home is preferred option as this will be transferred into the order in the ERP system.",
                      "enum": [
                        "office",
                        "home"
                      ]
                    },
                    "value": {
                      "type": "string",
                      "description": "REQUIRED. BillTo Person phone number"
                    }
                  },
                  "description": "phone numbers",
                  "example": {
                    "phoneType": "office",
                    "value": "value"
                  }
                }
              },
              "taxNumber": {
                "type": "string",
                "description": "Company VAT number",
                "maxLength": 30
              }
            },
            "description": "Provides Company Data",
            "example": {
              "phone": [
                {
                  "phoneType": "office",
                  "value": "value"
                },
                {
                  "phoneType": "office",
                  "value": "value"
                }
              ],
              "name": "name",
              "taxNumber": "taxNumber",
              "customerNumber": "customerNumber"
            }
          },
          "personData": {
            "type": "object",
            "properties": {
              "firstName": {
                "type": "string",
                "description": "REQUIRED. First Name",
                "maxLength": 20
              },
              "lastName": {
                "type": "string",
                "description": "REQUIRED.Last Name",
                "maxLength": 20
              },
              "phone": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "phoneType": {
                      "type": "string",
                      "description": "REQUIRED. BillTo/Ship to Person phone type (office, home). Type home is preferred option as this will be transferred into the order in the ERP system.",
                      "enum": [
                        "office",
                        "home"
                      ]
                    },
                    "value": {
                      "type": "string",
                      "description": "REQUIRED. BillTo Person phone number"
                    }
                  },
                  "description": "phone numbers",
                  "example": {
                    "phoneType": "office",
                    "value": "value"
                  }
                }
              },
              "email": {
                "type": "array",
                "description": "BillTo Person email",
                "items": {
                  "type": "object",
                  "properties": {
                    "emailType": {
                      "type": "string",
                      "description": "REQUIRED. BillTo Person email ID. Type = email"
                    },
                    "value": {
                      "type": "string",
                      "description": "BillTo Person email address",
                      "maxLength": 200
                    }
                  },
                  "example": {
                    "emailType": "emailType",
                    "value": "value"
                  }
                }
              },
              "locale": {
                "type": "string",
                "description": "BillTo Person language code (nl, en, fr, etc) and ISO 2 Country Code (US, NL, FR, etc)",
                "maxLength": 6
              }
            },
            "description": "Provides Person Data",
            "example": {
              "firstName": "firstName",
              "lastName": "lastName",
              "phone": [
                {
                  "phoneType": "office",
                  "value": "value"
                },
                {
                  "phoneType": "office",
                  "value": "value"
                }
              ],
              "locale": "locale",
              "email": [
                {
                  "emailType": "emailType",
                  "value": "value"
                },
                {
                  "emailType": "emailType",
                  "value": "value"
                }
              ]
            }
          },
          "addressData": {
            "type": "object",
            "properties": {
              "address": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "line": {
                      "type": "string",
                      "description": "REQUIRED. Address - sequemtial Line number e.g. 1,2,3"
                    },
                    "value": {
                      "type": "string",
                      "description": "REQUIRED for line 1, Address Value, at least one address line is required",
                      "maxLength": 40
                    }
                  },
                  "description": "Address",
                  "example": {
                    "line": "line",
                    "value": "value"
                  }
                }
              },
              "postalCode": {
                "type": "string",
                "description": "REQUIRED. PostalCode",
                "maxLength": 10
              },
              "city": {
                "type": "string",
                "description": "REQUIRED. City name",
                "maxLength": 40
              },
              "state": {
                "type": "string",
                "description": "REQUIRED for US, MX, CA and AU. Needs to be ISO2 state code (ISO_3166-2 )",
                "maxLength": 3
              },
              "countryISO2": {
                "type": "string",
                "description": "REQUIRED. ISO 2 Country Code (US, NL, FR, etc)",
                "maxLength": 2
              }
            },
            "example": {
              "address": [
                {
                  "line": "line",
                  "value": "value"
                },
                {
                  "line": "line",
                  "value": "value"
                }
              ],
              "city": "city",
              "postalCode": "postalCode",
              "state": "state",
              "countryISO2": "countryISO2"
            }
          }
        },
        "description": "REQUIRED. Used to provide Order BillTo and ShipTo info",
        "example": {
          "personData": {
            "firstName": "firstName",
            "lastName": "lastName",
            "phone": [
              {
                "phoneType": "office",
                "value": "value"
              },
              {
                "phoneType": "office",
                "value": "value"
              }
            ],
            "locale": "locale",
            "email": [
              {
                "emailType": "emailType",
                "value": "value"
              },
              {
                "emailType": "emailType",
                "value": "value"
              }
            ]
          },
          "partnerType": "BillTo",
          "companyData": {
            "phone": [
              {
                "phoneType": "office",
                "value": "value"
              },
              {
                "phoneType": "office",
                "value": "value"
              }
            ],
            "name": "name",
            "taxNumber": "taxNumber",
            "customerNumber": "customerNumber"
          },
          "addressData": {
            "address": [
              {
                "line": "line",
                "value": "value"
              },
              {
                "line": "line",
                "value": "value"
              }
            ],
            "city": "city",
            "postalCode": "postalCode",
            "state": "state",
            "countryISO2": "countryISO2"
          }
        }
      }
    },
    "payment": {
      "type": "object",
      "properties": {
        "paymentGatewayId": {
          "type": "string",
          "description": "Only in response: The gateway used e.g. payon"
        },
        "paymentMethod": {
          "type": "string",
          "description": "Order payment method required only when payment is included in order",
          "maxLength": 30,
          "enum": [
            "AfterPay",
            "AliPay",
            "Amazon",
            "Amex",
            "Bancontact",
            "CarteBleue",
            "CashOnDelivery",
            "Cheque",
            "Consolidated",
            "CreditCardPrePaid",
            "Dankort",
            "Debit",
            "Diners",
            "DirectDebit",
            "Discover",
            "FreeOfCharge",
            "GiroPay",
            "iDEAL",
            "JCB",
            "KlarnaInvoice",
            "KlarnaSplitIt",
            "MasterCard",
            "MasterDebit",
            "Maestro",
            "PayPal",
            "POS",
            "Przelewy24",
            "SepaDirectDebit",
            "SofortUeberweisung",
            "Splitit",
            "Terms_0",
            "Terms_15",
            "Terms_30",
            "Terms_45",
            "Terms_60",
            "Terms_61",
            "Terms_70",
            "Terms_90",
            "Visa",
            "VisaDebit",
            "VisaElectron",
            "WireTransfer"
          ]
        },
        "entityID": {
          "type": "string",
          "description": "Payment Transaction Channel ID Required only when payment is included in order",
          "maxLength": 50
        },
        "transactionID": {
          "type": "string",
          "description": "Payment Transaction ID Required only when payment is included in order. UniqueID returned by payment system.",
          "maxLength": 50
        },
        "acquireID": {
          "type": "string",
          "description": "Payment Transaction Authorization number Required only when payment is included in order. returned by payment system",
          "maxLength": 40
        },
        "amount": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "currencyISO3": {
                "type": "string",
                "description": "ISO3 Currency Code",
                "maxLength": 3
              },
              "amountType": {
                "type": "string",
                "description": "Amount type<br><br><u>amount types</u><br>Amount types are used as below:<br><br>Order:<br>totalNet - The total net amount of the order<br>totalTax - The Tax amount at order level<br>totalGross - The total amount of the order, gross amount net plus tax<br><br>Item:<br>netprice - the item net price. netprice is required and needs to be included, so this can be printed on export documents<br>grossprice - the gross price of the item<br><br>Payment<br>authorized - The amount used for payment authorizaton e.g. credit card payment<br><br>Shipping costs<br>freightCosts - The shipping costs associated with the shipment",
                "enum": [
                  "totalNet",
                  "totalTax",
                  "totalGross",
                  "authorized",
                  "netprice",
                  "grossprice",
                  "freightCosts"
                ]
              },
              "value": {
                "type": "string",
                "description": "Amount Value"
              }
            },
            "description": "Amount Info e.g. the gross or nett price applied related to curreny. e,g, USD ##.## 50.00 YPN ## 50.<br>This object is used in the order, payment and item objects. The amountType used differs depending on the object it applies to e.g. order, payment or item. See detail below.",
            "example": {
              "amountType": "totalNet",
              "currencyISO3": "currencyISO3",
              "value": "value"
            }
          }
        },
        "status": {
          "type": "string",
          "description": "REQUIRED if payment is included and handled by ML. Order payment status (captured, authorized, paid, etc). <br><br>For <u>Credit Card</u> use: authorized<br><br>In case the <u>Credit Card</u> is immediately captured e.g. for download products use the value: captured<br><br>for other payment methods e.g. <u>PayPal</u> use: paid"
        },
        "cardData": {
          "properties": {
            "holder": {
              "type": "string",
              "description": "REQUIRED if ML is processing credit card data. Provides card holder name",
              "maxLength": 70
            },
            "bin": {
              "type": "string",
              "description": "REQUIRED if ML is processing credit card data. Provides card holder bin",
              "maxLength": 6
            },
            "last4digits": {
              "type": "string",
              "description": "REQUIRED if ML is processing credit card data. Last 4 Digits of Card",
              "maxLength": 4
            },
            "dateCardExpiry": {
              "type": "string",
              "description": "REQUIRED if ML is processing credit card data. Credit Card Expiry date. format: yyyy-mm-dd "
            },
            "dateAuthExpiry": {
              "type": "string",
              "description": "REQUIRED if ML is processing credit card data. Authorization Expiry Date. date format: yyyy-mm-dd"
            }
          },
          "description": "REQUIRED only if ML is processing credit card data. Provides card holder details e.g. not required for PayPal.",
          "example": {
            "last4digits": "last4digits",
            "dateAuthExpiry": "dateAuthExpiry",
            "bin": "bin",
            "holder": "holder",
            "dateCardExpiry": "dateCardExpiry"
          }
        }
      },
      "description": "Provides info about Order payment.",
      "example": {
        "cardData": {
          "last4digits": "last4digits",
          "dateAuthExpiry": "dateAuthExpiry",
          "bin": "bin",
          "holder": "holder",
          "dateCardExpiry": "dateCardExpiry"
        },
        "paymentGatewayId": "paymentGatewayId",
        "amount": [
          {
            "amountType": "totalNet",
            "currencyISO3": "currencyISO3",
            "value": "value"
          },
          {
            "amountType": "totalNet",
            "currencyISO3": "currencyISO3",
            "value": "value"
          }
        ],
        "acquireID": "acquireID",
        "paymentMethod": "AfterPay",
        "entityID": "entityID",
        "transactionID": "transactionID",
        "status": "status"
      }
    },
    "item": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string",
            "description": "REQUIRED: The line number of the item sequential number 1,2,3.."
          },
          "clientItemRef": {
            "type": "string",
            "description": "Order line number from client e.g. client line reference for the item"
          },
          "sku": {
            "type": "string",
            "description": "REQUIRED. Item sales product number/partnumber",
            "maxLength": 18
          },
          "quantity": {
            "properties": {
              "uom": {
                "type": "string",
                "description": "REQUIRED. Item unit of measure (EA, BX, CS)"
              },
              "value": {
                "type": "string",
                "description": "REQUIRED. Numeric value"
              }
            },
            "description": "REQUIRED. Item Quantity info",
            "example": {
              "uom": "uom",
              "value": "value"
            }
          },
          "amount": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "currencyISO3": {
                  "type": "string",
                  "description": "ISO3 Currency Code",
                  "maxLength": 3
                },
                "amountType": {
                  "type": "string",
                  "description": "Amount type<br><br><u>amount types</u><br>Amount types are used as below:<br><br>Order:<br>totalNet - The total net amount of the order<br>totalTax - The Tax amount at order level<br>totalGross - The total amount of the order, gross amount net plus tax<br><br>Item:<br>netprice - the item net price. netprice is required and needs to be included, so this can be printed on export documents<br>grossprice - the gross price of the item<br><br>Payment<br>authorized - The amount used for payment authorizaton e.g. credit card payment<br><br>Shipping costs<br>freightCosts - The shipping costs associated with the shipment",
                  "enum": [
                    "totalNet",
                    "totalTax",
                    "totalGross",
                    "authorized",
                    "netprice",
                    "grossprice",
                    "freightCosts"
                  ]
                },
                "value": {
                  "type": "string",
                  "description": "Amount Value"
                }
              },
              "description": "Amount Info e.g. the gross or nett price applied related to curreny. e,g, USD ##.## 50.00 YPN ## 50.<br>This object is used in the order, payment and item objects. The amountType used differs depending on the object it applies to e.g. order, payment or item. See detail below.",
              "example": {
                "amountType": "totalNet",
                "currencyISO3": "currencyISO3",
                "value": "value"
              }
            }
          },
          "dateTimeCreated": {
            "type": "string",
            "description": "only in response date created, format yyyy-mm-yyThh:mm:ss +00.00"
          },
          "dateTimeShipped": {
            "type": "string",
            "description": "Only in response and when available. The date of shipment format yyyy-mm-yyThh:mm:ss +00.00"
          },
          "taxLevel": {
            "type": "string",
            "description": "Tax level, e.g. HIGH. LOW, EXEMPT, MED, PHYSICAL, WARRANTY, SERVICE",
            "maxLength": 30
          },
          "taxFactor": {
            "type": "string",
            "description": "In request, VAT factor. optional. the VAT factor applied based on VAT percentage e.g. 20% becomes 1.20. In the response this will come back as dynamicField VAT_FACTOR",
            "maxLength": 30
          },
          "pricing": {
            "type": "string",
            "description": "In request. The pricing structure e.g. netpricing or grosspricing"
          },
          "localizedDescription": {
            "type": "string",
            "description": "Optional. Item description in local language",
            "maxLength": 40
          },
          "dynamicField": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "REQUIRED. Name of the dynamic field max lenght 60",
                  "maxLength": 60
                },
                "value": {
                  "type": "string",
                  "description": "Value of the dynamic field max length 2000",
                  "maxLength": 2000
                }
              },
              "description": "Dynamic fields",
              "example": {
                "name": "name",
                "value": "value"
              }
            }
          }
        },
        "description": "Items are REQUIRED. holds Order line/item info, replicate for each item",
        "example": {
          "itemId": "itemId",
          "taxLevel": "taxLevel",
          "amount": [
            {
              "amountType": "totalNet",
              "currencyISO3": "currencyISO3",
              "value": "value"
            },
            {
              "amountType": "totalNet",
              "currencyISO3": "currencyISO3",
              "value": "value"
            }
          ],
          "dateTimeCreated": "dateTimeCreated",
          "taxFactor": "taxFactor",
          "quantity": {
            "uom": "uom",
            "value": "value"
          },
          "dynamicField": [
            {
              "name": "name",
              "value": "value"
            },
            {
              "name": "name",
              "value": "value"
            }
          ],
          "dateTimeShipped": "dateTimeShipped",
          "clientItemRef": "clientItemRef",
          "sku": "sku",
          "localizedDescription": "localizedDescription",
          "pricing": "pricing"
        }
      }
    }
  },
  "description": "Provides information to create a new order",
  "example": "{\n  \"clientRequest\": {\n    \"requestHeader\": {\n      \"externalMessageReference\": \"API_DEMOUS_1\",\n      \"client\": \"MLDEMOUS\",\n      \"requestReference\": \"API_DEMOUS_1\",\n      \"dateTimeSent\": \"2018-01-06T00:00:00 +00.00\"\n    },\n    \"order\": {\n      \"shipCourier\": null,\n      \"shipServiceLevel\": \"STD\",\n      \"shipServiceOption\": null,\n      \"poNumber\": null,\n      \"incoTerms1\": \"CPT\",\n      \"incoTerms2\": null,\n      \"amount\": [\n        {\n          \"currencyISO3\": \"USD\",\n          \"amountType\": \"totalNet\",\n          \"value\": \"100.00\"\n        },\n        {\n          \"currencyISO3\": \"USD\",\n          \"amountType\": \"totalTax\",\n          \"value\": \"0.00\"\n        },\n        {\n          \"currencyISO3\": \"USD\",\n          \"amountType\": \"totalGross\",\n          \"value\": \"100.00\"\n        }\n      ],\n      \"datetimeWantedDeliveryDate\": \"2018-03-12T13:18:37 +00.00\",\n      \"note\": [\n        {\n          \"noteType\": \"HEADERNOTE\",\n          \"value\": \"Test Note\"\n        },\n        {\n          \"noteType\": \"BLCOC\",\n          \"value\": \"Test Note 0012\"\n        }\n      ],\n      \"dynamicField\": [\n        {\n          \"name\": \"EndUserReference\",\n          \"value\": \"Test123\"\n        },\n        {\n          \"name\": \"EndUserReference2\",\n          \"value\": \"123Test\"\n        }\n      ]\n    },\n    \"payment\": {\n      \"paymentMethod\": \"Visa\",\n      \"entityId\": \"ff8080813e835e83013e8d2fb3da0472\",\n      \"transactionId\": \"8a82944a5fa67f48015fb56c5f603333\",\n      \"acquirerId\": \"123456\",\n      \"amount\": [\n        {\n          \"amountType\": \"capture\",\n          \"currencyISO3\": \"EUR\",\n          \"value\": \"100\"\n        },\n        {\n          \"currencyICO3\": \"EUR\",\n          \"amountType\": \"authorized\",\n          \"value\": \"100.00\"\n        },\n        {\n          \"currencyISO3\": \"EUR\",\n          \"amountType\": \"created\",\n          \"value\": \"100.00\"\n        }\n      ],\n      \"status\": \"authorized\",\n      \"cardData\": {\n        \"holder\": \"Janet Smith\",\n        \"bin\": \"411111\",\n        \"last4digits\": \"1111\",\n        \"dateCardExpiry\": \"2021-12-01\",\n        \"dateAuthExpiry\": \"2018-06-01\"\n      }\n    },\n    \"partner\": [\n      {\n        \"partnerType\": \"BillTo\",\n        \"companyData\": {\n          \"name\": \"\",\n          \"phone\": [\n            {\n              \"phoneType\": \"office\",\n              \"value\": \"555123\"\n            }\n          ]\n        },\n        \"personData\": {\n          \"firstName\": \"Janet\",\n          \"lastName\": \"Smith\",\n          \"fiscalId\": \"\",\n          \"phone\": [\n            {\n              \"phoneType\": \"home\",\n              \"value\": \"6175555555\"\n            }\n          ],\n          \"email\": [{\n            \"emailType\": \"email\",\n            \"value\": \"janet_smith@company.com\"\n          }],\n          \"locale\": \"en-US\"\n        },\n        \"addressData\": {\n          \"address\": [\n            {\n              \"line\": \"1\",\n              \"value\": \"1601 Trapelo Rd Ste 170\"\n            },\n            {\n              \"line\": \"2\",\n              \"value\": \"apartment block 2\"\n            }\n          ],\n          \"postalCode\": \"02451\",\n          \"city\": \"Waltham\",\n          \"state\": \"MA\",\n          \"countryISO2\": \"US\"\n        }\n      },\n      {\n        \"partnerType\": \"ShipTo\",\n        \"companyData\": {\n          \"name\": \"\",\n          \"phone\": \"\"\n        },\n        \"personData\": {\n          \"firstName\": \"Janet\",\n          \"lastName\": \"Smith\",\n          \"phone\": [\n            {\n              \"phoneType\": \"home\",\n              \"value\": \"6175555555\"\n            }\n          ],\n          \"email\": [{\n            \"emailType\": \"email\",\n            \"value\": \"janet_smith@company.com\"\n          }],\n          \"locale\": \"en-US\"\n        },\n        \"addressData\": {\n          \"address\": [\n            {\n              \"line\": \"1\",\n              \"value\": \"1601 Trapelo Rd Ste 170\"\n            },\n            {\n              \"line\": \"2\",\n              \"value\": \"appartment block 2\"\n            }\n          ],\n          \"postalCode\": \"02451\",\n          \"city\": \"Waltham\",\n          \"state\": \"MA\",\n          \"countryISO2\": \"US\"\n        }\n      }\n    ],\n    \"item\": [\n      {\n        \"itemId\": \"1\",\n        \"clientItemRef\": \"\",\n        \"sku\": \"503001\",\n        \"quantity\": {\n          \"uom\": \"EA\",\n          \"value\": \"1\"\n        },\n        \"amount\": [\n          {\n            \"currencyISO3\": \"USD\",\n            \"amountType\": \"grossprice\",\n            \"value\": \"50.00\"\n          },\n          {\n            \"currencyISO3\": \"USD\",\n            \"amountType\": \"netprice\",\n            \"value\": \"50\"\n          }\n        ],\n        \"taxLevel\": \"PHYSICAL\",\n        \"taxFactor\": \"1.000\",\n        \"pricing\": \"grossprice\",\n        \"localizedDescription\": \"Localised description\",\n        \"dynamicField\": [\n          {\n            \"name\": \"UNIT_PRICE\",\n            \"value\": \"50\"\n          },\n          {\n            \"name\": \"SkuDescription\",\n            \"value\": \"Sku Description\"\n          }\n        ]\n      }\n    ]\n  }\n}"
}

Responses

200 OK

Transaction was received

Representations

{
  "result": "string",
  "errorCode": "string",
  "errorMessage": "string"
}
{
  "type": "object",
  "properties": {
    "result": {
      "type": "string",
      "description": "result of order create"
    },
    "errorCode": {
      "type": "string",
      "description": "If not successful the error code. null if successfull"
    },
    "errorMessage": {
      "type": "string",
      "description": "If not successful the error message. null if successfull"
    }
  }
}

401 Unauthorized

invalid authentication

Representations

{
  "statusCode": "401",
  "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription."
}
{
  "type": "object",
  "properties": {
    "statusCode": {
      "type": "string",
      "example": "401",
      "description": "the error code"
    },
    "message": {
      "type": "string",
      "example": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription.",
      "description": "the error message"
    }
  }
}

500 Internal Server Error

Server Error

Representations

{
  "statusCode": "500",
  "activityId": "d25eb365-3da2-48ff-b907-1754166f5947",
  "message": "Internal server error"
}
{
  "type": "object",
  "properties": {
    "statusCode": {
      "type": "string",
      "example": "500",
      "description": "result of order create"
    },
    "activityId": {
      "type": "string",
      "example": "d25eb365-3da2-48ff-b907-1754166f5947",
      "description": "If not successful the internal activity ID"
    },
    "message": {
      "type": "string",
      "example": "Internal server error",
      "description": "If not successful the error message. null if successfull"
    }
  }
}

Code samples

@ECHO OFF

curl -v -X POST "https://api-uat.moduslink.com/fulfillmentapi/v1.1/orders"
-H "ClientConfigId: 118"
-H "ClientAuthKey: 5C0FDFDE-B714-42AE-BF4B-EB5E1409C53D"
-H "Content-Type: application/json"
-H "Ocp-Apim-Subscription-Key: {subscription key}"

--data-ascii "{body}" 
using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;

namespace CSHttpClientSample
{
    static class Program
    {
        static void Main()
        {
            MakeRequest();
            Console.WriteLine("Hit ENTER to exit...");
            Console.ReadLine();
        }
        
        static async void MakeRequest()
        {
            var client = new HttpClient();
            var queryString = HttpUtility.ParseQueryString(string.Empty);

            // Request headers
            client.DefaultRequestHeaders.Add("ClientConfigId", "118");
            client.DefaultRequestHeaders.Add("ClientAuthKey", "5C0FDFDE-B714-42AE-BF4B-EB5E1409C53D");
            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "{subscription key}");

            var uri = "https://api-uat.moduslink.com/fulfillmentapi/v1.1/orders?" + queryString;

            HttpResponseMessage response;

            // Request body
            byte[] byteData = Encoding.UTF8.GetBytes("{body}");

            using (var content = new ByteArrayContent(byteData))
            {
               content.Headers.ContentType = new MediaTypeHeaderValue("< your content type, i.e. application/json >");
               response = await client.PostAsync(uri, content);
            }

        }
    }
}	
// // This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
import java.net.URI;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class JavaSample 
{
    public static void main(String[] args) 
    {
        HttpClient httpclient = HttpClients.createDefault();

        try
        {
            URIBuilder builder = new URIBuilder("https://api-uat.moduslink.com/fulfillmentapi/v1.1/orders");


            URI uri = builder.build();
            HttpPost request = new HttpPost(uri);
            request.setHeader("ClientConfigId", "118");
            request.setHeader("ClientAuthKey", "5C0FDFDE-B714-42AE-BF4B-EB5E1409C53D");
            request.setHeader("Content-Type", "application/json");
            request.setHeader("Ocp-Apim-Subscription-Key", "{subscription key}");


            // Request body
            StringEntity reqEntity = new StringEntity("{body}");
            request.setEntity(reqEntity);

            HttpResponse response = httpclient.execute(request);
            HttpEntity entity = response.getEntity();

            if (entity != null) 
            {
                System.out.println(EntityUtils.toString(entity));
            }
        }
        catch (Exception e)
        {
            System.out.println(e.getMessage());
        }
    }
}

<!DOCTYPE html>
<html>
<head>
    <title>JSSample</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>

<script type="text/javascript">
    $(function() {
        var params = {
            // Request parameters
        };
      
        $.ajax({
            url: "https://api-uat.moduslink.com/fulfillmentapi/v1.1/orders?" + $.param(params),
            beforeSend: function(xhrObj){
                // Request headers
                xhrObj.setRequestHeader("ClientConfigId","118");
                xhrObj.setRequestHeader("ClientAuthKey","5C0FDFDE-B714-42AE-BF4B-EB5E1409C53D");
                xhrObj.setRequestHeader("Content-Type","application/json");
                xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","{subscription key}");
            },
            type: "POST",
            // Request body
            data: "{body}",
        })
        .done(function(data) {
            alert("success");
        })
        .fail(function() {
            alert("error");
        });
    });
</script>
</body>
</html>
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    
    NSString* path = @"https://api-uat.moduslink.com/fulfillmentapi/v1.1/orders";
    NSArray* array = @[
                         // Request parameters
                         @"entities=true",
                      ];
    
    NSString* string = [array componentsJoinedByString:@"&"];
    path = [path stringByAppendingFormat:@"?%@", string];

    NSLog(@"%@", path);

    NSMutableURLRequest* _request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path]];
    [_request setHTTPMethod:@"POST"];
    // Request headers
    [_request setValue:@"118" forHTTPHeaderField:@"ClientConfigId"];
    [_request setValue:@"5C0FDFDE-B714-42AE-BF4B-EB5E1409C53D" forHTTPHeaderField:@"ClientAuthKey"];
    [_request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [_request setValue:@"{subscription key}" forHTTPHeaderField:@"Ocp-Apim-Subscription-Key"];
    // Request body
    [_request setHTTPBody:[@"{body}" dataUsingEncoding:NSUTF8StringEncoding]];
    
    NSURLResponse *response = nil;
    NSError *error = nil;
    NSData* _connectionData = [NSURLConnection sendSynchronousRequest:_request returningResponse:&response error:&error];

    if (nil != error)
    {
        NSLog(@"Error: %@", error);
    }
    else
    {
        NSError* error = nil;
        NSMutableDictionary* json = nil;
        NSString* dataString = [[NSString alloc] initWithData:_connectionData encoding:NSUTF8StringEncoding];
        NSLog(@"%@", dataString);
        
        if (nil != _connectionData)
        {
            json = [NSJSONSerialization JSONObjectWithData:_connectionData options:NSJSONReadingMutableContainers error:&error];
        }
        
        if (error || !json)
        {
            NSLog(@"Could not parse loaded json with error:%@", error);
        }
        
        NSLog(@"%@", json);
        _connectionData = nil;
    }
    
    [pool drain];

    return 0;
}
<?php
// This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
require_once 'HTTP/Request2.php';

$request = new Http_Request2('https://api-uat.moduslink.com/fulfillmentapi/v1.1/orders');
$url = $request->getUrl();

$headers = array(
    // Request headers
    'ClientConfigId' => '118',
    'ClientAuthKey' => '5C0FDFDE-B714-42AE-BF4B-EB5E1409C53D',
    'Content-Type' => 'application/json',
    'Ocp-Apim-Subscription-Key' => '{subscription key}',
);

$request->setHeader($headers);

$parameters = array(
    // Request parameters
);

$url->setQueryVariables($parameters);

$request->setMethod(HTTP_Request2::METHOD_POST);

// Request body
$request->setBody("{body}");

try
{
    $response = $request->send();
    echo $response->getBody();
}
catch (HttpException $ex)
{
    echo $ex;
}

?>
########### Python 2.7 #############
import httplib, urllib, base64

headers = {
    # Request headers
    'ClientConfigId': '118',
    'ClientAuthKey': '5C0FDFDE-B714-42AE-BF4B-EB5E1409C53D',
    'Content-Type': 'application/json',
    'Ocp-Apim-Subscription-Key': '{subscription key}',
}

params = urllib.urlencode({
})

try:
    conn = httplib.HTTPSConnection('api-uat.moduslink.com')
    conn.request("POST", "/fulfillmentapi/v1.1/orders?%s" % params, "{body}", headers)
    response = conn.getresponse()
    data = response.read()
    print(data)
    conn.close()
except Exception as e:
    print("[Errno {0}] {1}".format(e.errno, e.strerror))

####################################

########### Python 3.2 #############
import http.client, urllib.request, urllib.parse, urllib.error, base64

headers = {
    # Request headers
    'ClientConfigId': '118',
    'ClientAuthKey': '5C0FDFDE-B714-42AE-BF4B-EB5E1409C53D',
    'Content-Type': 'application/json',
    'Ocp-Apim-Subscription-Key': '{subscription key}',
}

params = urllib.parse.urlencode({
})

try:
    conn = http.client.HTTPSConnection('api-uat.moduslink.com')
    conn.request("POST", "/fulfillmentapi/v1.1/orders?%s" % params, "{body}", headers)
    response = conn.getresponse()
    data = response.read()
    print(data)
    conn.close()
except Exception as e:
    print("[Errno {0}] {1}".format(e.errno, e.strerror))

####################################
require 'net/http'

uri = URI('https://api-uat.moduslink.com/fulfillmentapi/v1.1/orders')


request = Net::HTTP::Post.new(uri.request_uri)
# Request headers
request['ClientConfigId'] = '118'
# Request headers
request['ClientAuthKey'] = '5C0FDFDE-B714-42AE-BF4B-EB5E1409C53D'
# Request headers
request['Content-Type'] = 'application/json'
# Request headers
request['Ocp-Apim-Subscription-Key'] = '{subscription key}'
# Request body
request.body = "{body}"

response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
    http.request(request)
end

puts response.body