CreateOrder
Creates a new Order for an existing customer. Can create an order for a new customer if part of a transaction. Server will calculate all pricing, tax, shipping and volume info unless overridden in the request.Input Properties
CreateOrderRequest
OrderDetailRequest
Output Properties
CreateOrderResponse
OrderDetailResponse
Http Request
POST https://yourcompany-api.exigo.com/3.0/orders HTTP/1.1 Content-Type: application/json Authorization: Basic base64Encoded(yourlogin@yourcompany:yourpassword){ "customerID": 1, "orderStatus": null, "orderDate": "2025-05-10T00:00:00-05:00", "currencyCode": "1", "warehouseID": 1, "shipMethodID": 1, "priceType": 1, "firstName": "", "lastName": "", "company": "", "address1": "", "address2": "", "address3": "", "city": "", "zip": "", "county": "", "email": "", "phone": "", "notes": "", "other11": "", "other12": "", "other13": "", "other14": "", "other15": "", "other16": "", "other17": "", "other18": "", "other19": "", "other20": "", "orderType": null, "transferVolumeToID": 1, "returnOrderID": 1, "overwriteExistingOrder": true, "existingOrderID": 1, "partyID": 1, "details": null, "suppressPackSlipPrice": true, "transferVolumeToKey": "1", "returnOrderKey": "1", "existingOrderKey": "1", "customerKey": "1", "referralID": 1 }
Http Response
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Content-Length: length{ "orderID": 1, "total": null, "subTotal": null, "taxTotal": null, "shippingTotal": null, "discountTotal": null, "weightTotal": null, "businessVolumeTotal": null, "commissionableVolumeTotal": null, "other1Total": null, "other2Total": null, "other3Total": null, "other4Total": null, "other5Total": null, "other6Total": null, "other7Total": null, "other8Total": null, "other9Total": null, "other10Total": null, "shippingTax": null, "orderTax": null, "handlingFeeTotal": null, "details": null, "warnings": "", "orderKey": "", "referralID": 1, "result": null }
Soap Request
The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.
POST /3.0/ExigoApi.asmx HTTP/1.1 Host: sandboxapi3.exigo.com Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "https://api.exigo.com/CreateOrder" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <ApiAuthentication xmlns="http://api.exigo.com/"> <LoginName>string</LoginName> <Password>string</Password> <Company>string</Company> <Identity>string</Identity> <RequestTimeUtc>dateTime</RequestTimeUtc> <Signature>string</Signature> </ApiAuthentication> </soap:Header> <soap:Body /> </soap:Envelope>
Soap Response
HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body /> </soap:Envelope>
C# Rest Client
Install Nuget package Exigo.Api.Client
try
{
//Create Api Client
var api = new ExigoApiClient("yourcmpany", "yourlogin", "yourpassword");
//Create Request
var req = new CreateOrderRequest();
req.CustomerID = 1; //Unique numeric identifier for a customer record.
req.OrderStatus = OrderStatusType.Incomplete;
req.OrderDate = DateTime.Today;
req.CurrencyCode = "1";
req.WarehouseID = 1; //Unique location for orders
req.ShipMethodID = 1;
req.PriceType = 1; //Controls which price band to use
req.FirstName = "1";
req.LastName = "1";
req.Company = "1";
req.Address1 = "1";
req.Address2 = "1";
req.Address3 = "1";
req.City = "1";
req.Zip = "1";
req.County = "1";
req.Email = "1";
req.Phone = "1";
req.Notes = "1";
req.Other11 = "1";
req.Other12 = "1";
req.Other13 = "1";
req.Other14 = "1";
req.Other15 = "1";
req.Other16 = "1";
req.Other17 = "1";
req.Other18 = "1";
req.Other19 = "1";
req.Other20 = "1";
req.OrderType = OrderType.Default;
req.TransferVolumeToID = 1; //Only pass in if you want volume to goto another CustomerID
req.ReturnOrderID = 1; //Unique numeric identifier for return order record.
req.OverwriteExistingOrder = true;
req.ExistingOrderID = 1; //Unique numeric identifier for existing order record.
req.PartyID = 1;
//Add Details
var details = new List<OrderDetailRequest>();
var detail1 = new OrderDetailRequest();
detail1.ItemCode = "1";
detail1.Quantity = 1;
details.Add(detail1);
var detail2 = new OrderDetailRequest();
detail2.ItemCode = "2";
detail2.Quantity = 2;
details.Add(detail2);
//Now attach the list to the request
req.Details = details.ToArray();
req.SuppressPackSlipPrice = true;
req.TransferVolumeToKey = "1"; //Only pass in if you want volume to goto another Customer Key
req.ReturnOrderKey = "1"; //Unique alpha numeric identifier for customer record. Exeption will occur if ReturnOrderID & ReturnOrderKey are provided.
req.ExistingOrderKey = "1"; //Unique alpha numeric identifier for existing order record. Exeption will occur if ExistingOrderID & ExistingOrderKey are provided.
req.CustomerKey = "1"; //Unique alpha numeric identifier for customer record. Exeption will occur if OrderID & OrderKey are provided.
req.ReferralID = 1; //Numeric identifier for the customer who owns the site from the order was created on, if apply.
//Send Request to Server and Get Response
var res = await api.CreateOrderAsync(req);
//Now examine the results:
Console.WriteLine("OrderID: {0}", res.OrderID);
Console.WriteLine("Total: {0}", res.Total);
Console.WriteLine("SubTotal: {0}", res.SubTotal);
Console.WriteLine("TaxTotal: {0}", res.TaxTotal);
Console.WriteLine("ShippingTotal: {0}", res.ShippingTotal);
Console.WriteLine("DiscountTotal: {0}", res.DiscountTotal);
Console.WriteLine("WeightTotal: {0}", res.WeightTotal);
Console.WriteLine("BusinessVolumeTotal: {0}", res.BusinessVolumeTotal);
Console.WriteLine("CommissionableVolumeTotal: {0}", res.CommissionableVolumeTotal);
Console.WriteLine("ShippingTax: {0}", res.ShippingTax);
Console.WriteLine("OrderTax: {0}", res.OrderTax);
Console.WriteLine("HandlingFeeTotal: {0}", res.HandlingFeeTotal);
foreach (var orderDetail in res.Details)
{
Console.WriteLine("OrderDetailID: {0}", orderDetail.OrderDetailID);
Console.WriteLine("ParentOrderDetailID: {0}", orderDetail.ParentOrderDetailID);
Console.WriteLine("ItemCode: {0}", orderDetail.ItemCode);
Console.WriteLine("Description: {0}", orderDetail.Description);
Console.WriteLine("Quantity: {0}", orderDetail.Quantity);
Console.WriteLine("BusinesVolume: {0}", orderDetail.BusinesVolume);
Console.WriteLine("OrderLine: {0}", orderDetail.OrderLine);
Console.WriteLine("Reference1: {0}", orderDetail.Reference1);
Console.WriteLine("ShippingPriceEach: {0}", orderDetail.ShippingPriceEach);
}
Console.WriteLine("Warnings: {0}", res.Warnings);
Console.WriteLine("OrderKey: {0}", res.OrderKey);
Console.WriteLine("ReferralID: {0}", res.ReferralID);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
C# Soap Client
try
{
//Create Main API Context Object
ExigoApi api = new ExigoApi();
//Create Authentication Header
ApiAuthentication auth = new ApiAuthentication();
auth.LoginName = "yourLoginName";
auth.Password = "yourPassword";
auth.Company = "yourCompany";
api.ApiAuthenticationValue = auth;
//Create Request
CreateOrderRequest req = new CreateOrderRequest();
req.CustomerID = 1; //Unique numeric identifier for a customer record.
req.OrderStatus = OrderStatusType.Incomplete;
req.OrderDate = DateTime.Today;
req.CurrencyCode = "1";
req.WarehouseID = 1; //Unique location for orders
req.ShipMethodID = 1;
req.PriceType = 1; //Controls which price band to use
req.FirstName = "1";
req.LastName = "1";
req.Company = "1";
req.Address1 = "1";
req.Address2 = "1";
req.Address3 = "1";
req.City = "1";
req.Zip = "1";
req.County = "1";
req.Email = "1";
req.Phone = "1";
req.Notes = "1";
req.Other11 = "1";
req.Other12 = "1";
req.Other13 = "1";
req.Other14 = "1";
req.Other15 = "1";
req.Other16 = "1";
req.Other17 = "1";
req.Other18 = "1";
req.Other19 = "1";
req.Other20 = "1";
req.OrderType = OrderType.Default;
req.TransferVolumeToID = 1; //Only pass in if you want volume to goto another CustomerID
req.ReturnOrderID = 1; //Unique numeric identifier for return order record.
req.OverwriteExistingOrder = true;
req.ExistingOrderID = 1; //Unique numeric identifier for existing order record.
req.PartyID = 1;
//Add Details
List<OrderDetailRequest> details = new List<OrderDetailRequest>();
OrderDetailRequest detail1 = new OrderDetailRequest();
detail1.ItemCode = "1";
detail1.Quantity = 1;
details.Add(detail1);
OrderDetailRequest detail2 = new OrderDetailRequest();
detail2.ItemCode = "2";
detail2.Quantity = 2;
details.Add(detail2);
//Now attach the list to the request
req.Details = details.ToArray();
req.SuppressPackSlipPrice = true;
req.TransferVolumeToKey = "1"; //Only pass in if you want volume to goto another Customer Key
req.ReturnOrderKey = "1"; //Unique alpha numeric identifier for customer record. Exeption will occur if ReturnOrderID & ReturnOrderKey are provided.
req.ExistingOrderKey = "1"; //Unique alpha numeric identifier for existing order record. Exeption will occur if ExistingOrderID & ExistingOrderKey are provided.
req.CustomerKey = "1"; //Unique alpha numeric identifier for customer record. Exeption will occur if OrderID & OrderKey are provided.
req.ReferralID = 1; //Numeric identifier for the customer who owns the site from the order was created on, if apply.
//Send Request to Server and Get Response
CreateOrderResponse res = api.CreateOrder(req);
//Now examine the results:
Console.WriteLine("OrderID: {0}", res.OrderID);
Console.WriteLine("Total: {0}", res.Total);
Console.WriteLine("SubTotal: {0}", res.SubTotal);
Console.WriteLine("TaxTotal: {0}", res.TaxTotal);
Console.WriteLine("ShippingTotal: {0}", res.ShippingTotal);
Console.WriteLine("DiscountTotal: {0}", res.DiscountTotal);
Console.WriteLine("WeightTotal: {0}", res.WeightTotal);
Console.WriteLine("BusinessVolumeTotal: {0}", res.BusinessVolumeTotal);
Console.WriteLine("CommissionableVolumeTotal: {0}", res.CommissionableVolumeTotal);
Console.WriteLine("ShippingTax: {0}", res.ShippingTax);
Console.WriteLine("OrderTax: {0}", res.OrderTax);
Console.WriteLine("HandlingFeeTotal: {0}", res.HandlingFeeTotal);
foreach (OrderDetailResponse orderDetail in res.Details)
{
Console.WriteLine("OrderDetailID: {0}", orderDetail.OrderDetailID);
Console.WriteLine("ParentOrderDetailID: {0}", orderDetail.ParentOrderDetailID);
Console.WriteLine("ItemCode: {0}", orderDetail.ItemCode);
Console.WriteLine("Description: {0}", orderDetail.Description);
Console.WriteLine("Quantity: {0}", orderDetail.Quantity);
Console.WriteLine("BusinesVolume: {0}", orderDetail.BusinesVolume);
Console.WriteLine("OrderLine: {0}", orderDetail.OrderLine);
Console.WriteLine("Reference1: {0}", orderDetail.Reference1);
Console.WriteLine("ShippingPriceEach: {0}", orderDetail.ShippingPriceEach);
}
Console.WriteLine("Warnings: {0}", res.Warnings);
Console.WriteLine("OrderKey: {0}", res.OrderKey);
Console.WriteLine("ReferralID: {0}", res.ReferralID);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
VB.Net
Try
'Create Main API Context Object
Dim api as new ExigoApi()
'Create Authentication Header
Dim auth as new ApiAuthentication()
auth.LoginName = "yourLoginName"
auth.Password = "yourPassword"
auth.Company = "yourCompany"
api.ApiAuthenticationValue = auth
'Create Request
Dim req as new CreateOrderRequest()
req.CustomerID = 1
req.OrderStatus = OrderStatusType.Incomplete
req.OrderDate = DateTime.Today
req.CurrencyCode = "1"
req.WarehouseID = 1
req.ShipMethodID = 1
req.PriceType = 1
req.FirstName = "1"
req.LastName = "1"
req.Company = "1"
req.Address1 = "1"
req.Address2 = "1"
req.Address3 = "1"
req.City = "1"
req.Zip = "1"
req.County = "1"
req.Email = "1"
req.Phone = "1"
req.Notes = "1"
req.Other11 = "1"
req.Other12 = "1"
req.Other13 = "1"
req.Other14 = "1"
req.Other15 = "1"
req.Other16 = "1"
req.Other17 = "1"
req.Other18 = "1"
req.Other19 = "1"
req.Other20 = "1"
req.OrderType = OrderType.Default
req.TransferVolumeToID = 1
req.ReturnOrderID = 1
req.OverwriteExistingOrder = true
req.ExistingOrderID = 1
req.PartyID = 1
'Add Details
Dim details As New List(Of OrderDetailRequest)()
Dim detail1 as new OrderDetailRequest()
detail1.ItemCode = "1"
detail1.Quantity = 1
details.Add(detail1)
Dim detail2 as new OrderDetailRequest()
detail2.ItemCode = "2"
detail2.Quantity = 2
details.Add(detail2)
'Now attach the list to the request
req.Details = details.ToArray()
req.SuppressPackSlipPrice = true
req.TransferVolumeToKey = "1"
req.ReturnOrderKey = "1"
req.ExistingOrderKey = "1"
req.CustomerKey = "1"
req.ReferralID = 1
'Send Request to Server and Get Response
Dim res As CreateOrderResponse = api.CreateOrder(req)
'Now examine the results:
Console.WriteLine("OrderID: {0}", res.OrderID)
Console.WriteLine("Total: {0}", res.Total)
Console.WriteLine("SubTotal: {0}", res.SubTotal)
Console.WriteLine("TaxTotal: {0}", res.TaxTotal)
Console.WriteLine("ShippingTotal: {0}", res.ShippingTotal)
Console.WriteLine("DiscountTotal: {0}", res.DiscountTotal)
Console.WriteLine("WeightTotal: {0}", res.WeightTotal)
Console.WriteLine("BusinessVolumeTotal: {0}", res.BusinessVolumeTotal)
Console.WriteLine("CommissionableVolumeTotal: {0}", res.CommissionableVolumeTotal)
Console.WriteLine("ShippingTax: {0}", res.ShippingTax)
Console.WriteLine("OrderTax: {0}", res.OrderTax)
Console.WriteLine("HandlingFeeTotal: {0}", res.HandlingFeeTotal)
For Each orderDetail As OrderDetailResponse In res.Details
Console.WriteLine("OrderDetailID: {0}", orderDetail.OrderDetailID)
Console.WriteLine("ParentOrderDetailID: {0}", orderDetail.ParentOrderDetailID)
Console.WriteLine("ItemCode: {0}", orderDetail.ItemCode)
Console.WriteLine("Description: {0}", orderDetail.Description)
Console.WriteLine("Quantity: {0}", orderDetail.Quantity)
Console.WriteLine("BusinesVolume: {0}", orderDetail.BusinesVolume)
Console.WriteLine("OrderLine: {0}", orderDetail.OrderLine)
Console.WriteLine("Reference1: {0}", orderDetail.Reference1)
Console.WriteLine("ShippingPriceEach: {0}", orderDetail.ShippingPriceEach)
Next
Console.WriteLine("Warnings: {0}", res.Warnings)
Console.WriteLine("OrderKey: {0}", res.OrderKey)
Console.WriteLine("ReferralID: {0}", res.ReferralID)
Catch ex As Exception
Console.WriteLine("Error: " & ex.Message)
End Try
PHP
Note: PHP is not officially supported.<?php
try
{
//Setup the SoapClient and Authentication
$api = new SoapClient("http://api.exigo.com/3.0/ExigoApi.asmx?WSDL");
$ns = "http://api.exigo.com/";
$auth = array()
$auth["LoginName"] = new SoapVar("yourLoginName",XSD_STRING,null,null,null,$ns);
$auth["Password"] = new SoapVar("yourPassword",XSD_STRING,null,null,null,$ns);
$auth["Company"] = new SoapVar("yourCompany",XSD_STRING,null,null,null,$ns);
$headerBody = new SoapVar($auth, SOAP_ENC_OBJECT);
$header = new SoapHeader($ns, 'ApiAuthentication', $headerBody);
$api->__setSoapHeaders(array($header));
//Create Request
$req->CustomerID = 1;
$req->OrderStatus = 1;
$req->OrderDate = 1;
$req->CurrencyCode = "1";
$req->WarehouseID = 1;
$req->ShipMethodID = 1;
$req->PriceType = 1;
$req->FirstName = "1";
$req->LastName = "1";
$req->Company = "1";
$req->Address1 = "1";
$req->Address2 = "1";
$req->Address3 = "1";
$req->City = "1";
$req->Zip = "1";
$req->County = "1";
$req->Email = "1";
$req->Phone = "1";
$req->Notes = "1";
$req->Other11 = "1";
$req->Other12 = "1";
$req->Other13 = "1";
$req->Other14 = "1";
$req->Other15 = "1";
$req->Other16 = "1";
$req->Other17 = "1";
$req->Other18 = "1";
$req->Other19 = "1";
$req->Other20 = "1";
$req->OrderType = 1;
$req->TransferVolumeToID = 1;
$req->ReturnOrderID = 1;
$req->OverwriteExistingOrder = 1;
$req->ExistingOrderID = 1;
$req->PartyID = 1;
//Add Details
$detail1->ItemCode = "1";
$detail1->Quantity = 1;
$detail2->ItemCode = "2";
$detail2->Quantity = 2;
//Now attach the list to the request
req.Details = array(detail1,detail2);
$req->SuppressPackSlipPrice = 1;
$req->TransferVolumeToKey = "1";
$req->ReturnOrderKey = "1";
$req->ExistingOrderKey = "1";
$req->CustomerKey = "1";
$req->ReferralID = 1;
//Send Request to Server and Get Response
$res = $api.CreateOrder($req);
//Now examine the results:
}
catch (SoapFault $ex)
{
echo "Error: ", $ex->getMessage();
}
?>
Java
Note: Java is not officially supported.try
{
//Create Main API Context Object
ExigoApi api = new ExigoApi();
//Create Authentication Header
ApiAuthentication auth = new ApiAuthentication();
auth.setLoginName("yourLoginName");
auth.setPassword("yourPassword");
auth.setCompany("yourCompany");
api.setApiAuthenticationValue(auth);
//Create Request
CreateOrderRequest req = new CreateOrderRequest();
req.setCustomerID(1);
req.setOrderStatus(1);
req.setOrderDate(1);
req.setCurrencyCode("1");
req.setWarehouseID(1);
req.setShipMethodID(1);
req.setPriceType(1);
req.setFirstName("1");
req.setLastName("1");
req.setCompany("1");
req.setAddress1("1");
req.setAddress2("1");
req.setAddress3("1");
req.setCity("1");
req.setZip("1");
req.setCounty("1");
req.setEmail("1");
req.setPhone("1");
req.setNotes("1");
req.setOther11("1");
req.setOther12("1");
req.setOther13("1");
req.setOther14("1");
req.setOther15("1");
req.setOther16("1");
req.setOther17("1");
req.setOther18("1");
req.setOther19("1");
req.setOther20("1");
req.setOrderType(1);
req.setTransferVolumeToID(1);
req.setReturnOrderID(1);
req.setOverwriteExistingOrder(1);
req.setExistingOrderID(1);
req.setPartyID(1);
//Add Details
ArrayOfOrderDetailRequest details = new ArrayOfOrderDetailRequest();
OrderDetailRequest detail1 = new OrderDetailRequest();
detail1.setItemCode("1");
detail1.setQuantity(1);
details.Add(detail1);
OrderDetailRequest detail2 = new OrderDetailRequest();
detail2.setItemCode("2");
detail2.setQuantity(2);
details.Add(detail2);
//Now attach the list to the request
req.setDetails(details);
req.setSuppressPackSlipPrice(1);
req.setTransferVolumeToKey("1");
req.setReturnOrderKey("1");
req.setExistingOrderKey("1");
req.setCustomerKey("1");
req.setReferralID(1);
//Send Request to Server and Get Response
CreateOrderResponse res = api.getExigoApiSoap().createOrder(req, auth);
//Now examine the results:
}
catch (Exception ex)
{
System.out.println("Error: " + ex.getMessage());
}