Orders
Create new orders, request cancellation or check order status.
Create an Order
This endpoint allows you to create a new order. See the code examples for how to send the order to the FCP API.
- Our parser will die at the first order that includes an error.
- No orders are accepted if any errors are generated.
- Only errors from the first rejected order are included in any XML responses.
Root Level Elements
Details about the remaining required and optional elements.
- Name
OrderSubmitRequest- Type
- XML
- Required
- required
- Description
The root XML element contains your API credentials and a list of orders to be submitted.
- Name
Version- Type
- number
- Required
- required
- Description
This element indicates the XML data version. To submit a test order for validation purposes use:
<Version>TEST</Version>.
- Name
MerchantId- Type
- integer
- Required
- required
- Description
The unique ID number for your Fulfillment Control Panel account.
- Name
MerchantName- Type
- string
- Required
- required
- Description
The account name of reference in our system.
- Name
MerchantToken- Type
- string
- Required
- required
- Description
Security token to protect against unauthorized orders.
- Name
OrderList- Type
- XML
- Required
- required
- Description
Contains all Order elements to be submitted.
Order Level Elements
- Name
Order- Type
- XML
- Required
- required
- Description
This element contains all the detail elements for each order.
- Name
OrderNumber- Type
- string
- Required
- required
- Description
Your identifying reference number for the order. The API will not accept duplicate values.
- Name
ReferenceNumber- Type
- string
- Description
Secondary reference number such as a purchase order.
- Name
ShippingMethod- Type
- string
- Required
- required
- Description
EFS internal code for the requested shipping service. Current list of acceptable codes can be found here: https://www.efulfillmentservice.com/shippingcodes.
- Name
ShippingOptions- Type
- XML
- Description
This element contains all the shipping option elements for the order. See Shipping Options section for details.
view shipping options element tree below
- Name
MarketingOptions- Type
- XML
- Description
This element contains optional marketing settings.
CompanyNamewill override your FCP account name on packing slips andCompanyEmailwill be used for ship confirmation emails.
- Name
Comments- Type
- string
- Description
Comments are printed on the packing slip included inside each shipment.
- Name
ShippingAddress- Type
- XML
- Required
- required
- Description
This element contains all the detail elements for the destination address.
view address element tree below
- Name
BillingAddress- Type
- XML
- Description
This element contains all the detail elements for the billing address.
Billing address is strictly used for reference.
view address element tree below
- Name
ItemList- Type
- XML
- Required
- required
- Description
Contains all Item elements to be included with the order.
view item element tree below
Shipping Options Element
- Name
Insurance- Type
- integer
- Description
The requested insured amount in whole numbers. Submitting a value of 150.50 will result in a request for $150.
- Name
CashOnDelivery- Type
- integer
- Description
The requested COD amount in whole numbers. Submitting a value of 150.50 will result in a request for $150.
- Name
SignatureRequired- Type
- boolean
- Description
If this element is set to
true, we will attempt to add signature confirmation to the shipment.
- Name
ThirdPartyId- Type
- integer
- Description
The EFS assigned ID for your third party billing account.
- Name
HoldOrder- Type
- XML
- Description
This element contains all the detail elements for holding an order.
view hold order example
- Name
HoldOrder.Type- Type
- enum
- Description
The type of hold to place on the order. Default is NONE. Use CLIENT to issue a hold.
- Name
HoldOrder.ReleaseDate- Type
- string
- Description
This string is converted to a date/time value. Examples include:
+24 hours,+3 days,2025-12-31 14:00, etc.
- Name
HoldOrder.Comments- Type
- string
- Description
Optional comments for the hold reason.
Address Elements
- Name
FirstName- Type
- string
- Required
- required
- Description
- Customer first name.
- Name
LastName- Type
- string
- Required
- required
- Description
- Customer last name.
- Name
Company- Type
- string
- Description
Customer company name.
Name elements can be excluded if Company is provided.
- Name
Address1- Type
- string
- Required
- required
- Description
- Customer address line 1.
- Name
Address2- Type
- string
- Description
- Customer address line 2.
- Name
City- Type
- string
- Required
- required
- Description
- Customer city.
- Name
State- Type
- string
- Description
Customer state for US orders.
This should be omitted for non-US / international orders. See Country element below.
- Name
PostalCode- Type
- string
- Description
- Customer postal code (where applicable).
- Name
Country- Type
- string
- Required
- required
- Description
Country code. Should match ISO 3166-1alpha-2 codes found here: http://www.iso.org/iso/country_names_and_code_elements
For non-US orders, province should be included with the
Countryelement, delimited by a semicolon;. For example,Ontario;CA.
- Name
Phone- Type
- string
- Description
- Customer phone number.
- Name
Email- Type
- string
- Description
- Customer email.
Item Elements
- Name
Sku- Type
- string
- Required
- required
- Description
- Item SKU (Stock Keeping Unit).
- Name
Quantity- Type
- integer
- Required
- required
- Description
- Item quantity.
Example Requests
Request
curl --location 'https://fcp.efulfillmentservice.com/xml/orders/' \
--header 'Content-Type: text/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<OrderSubmitRequest>
<Version>2.0</Version>
<MerchantId>{{CLIENT_ID}}</MerchantId>
<MerchantName>{{CLIENT_NAME}}</MerchantName>
<MerchantToken>{{CLIENT_TOKEN}}</MerchantToken>
<OrderList>...order data...</OrderList>
</OrderSubmitRequest>'
Example Request / Payload
The following example shows both the minimum required data to create an order as well as all available data elements.
Request Body
<?xml version="1.0"?>
<OrderSubmitRequest>
<Version>2.0</Version>
<MerchantId>{{CLIENT_ID}}</MerchantId>
<MerchantName>{{CLIENT_NAME}}</MerchantName>
<MerchantToken>{{CLIENT_TOKEN}}</MerchantToken>
<OrderList>
<Order>
<OrderNumber>#87612355</OrderNumber>
<ShippingMethod>ECONOMY_LIGHTWEIGHT</ShippingMethod>
<ShippingAddress>
<FirstName>Bertrand</FirstName>
<LastName>Humbletrack</LastName>
<Address1>123 Main Street</Address1>
<City>Chicago</City>
<State>IL</State>
<PostalCode>60601</PostalCode>
<Country>US</Country>
</ShippingAddress>
<ItemList>
<Item>
<Sku>00-1111</Sku>
<Quantity>1</Quantity>
</Item>
</ItemList>
</Order>
</OrderList>
</OrderSubmitRequest>
Hold Orders Example
Request
<ShippingOptions>
<HoldOrder>
<Type>CLIENT</Type>
<ReleaseDate>+36 hours</ReleaseDate>
<Comments>Hold for review</Comments>
</HoldOrder>
</ShippingOptions>
Example Responses
Success
<OrderSubmitResponse>
<Status>Success</Status>
<Description>XML OK</Description>
<OrderList>
<Order>
<OrderId>105970868</OrderId>
<OrderNumber>1234-1234-1234</OrderNumber>
<OrderStatus>Pending</OrderStatus>
</Order>
</OrderList>
</OrderSubmitResponse>
Error
<OrderSubmitResponse>
<Status>Error</Status>
<Description>Importer Verify Failed</Description>
<Details>
<Error>Duplicate Order Number</Error>
<Order>1234-1234-1234</Order>
<Value></Value>
<Description>An order with the same order number already exists. Originally created 2025-08-25 14:52:08, XML (API v2).</Description>
</Details>
</OrderSubmitResponse>
Retrieve Status
This endpoint allows you to retrieve the current status and tracking for one or more orders. See the code examples for how to send the request to the FCP API.
Request elements
- Name
OrderStatusRequest- Type
- XML
- Required
- required
- Description
The root XML element contains your API credentials and a list of orders to be submitted.
- Name
MerchantId- Type
- integer
- Required
- required
- Description
The unique ID number for your Fulfillment Control Panel account.
- Name
MerchantName- Type
- string
- Required
- required
- Description
The account name of reference in our system.
- Name
MerchantToken- Type
- string
- Required
- required
- Description
Security token to protect against unauthorized orders.
- Name
OrderList- Type
- XML
- Required
- required
- Description
Contains all Order elements to be submitted.
- Name
Order- Type
- XML
- Required
- required
- Description
This element contains all the detail elements for each order.
- Name
OrderNumber- Type
- string
- Required
- required
- Description
Your identifying reference number for the order.
Response Element Details
- Name
OrderStatusResponse- Type
- XML
- Description
This root element contains the Status, Description, and OrderList elements.
- Name
Status- Type
- enum
- Description
The status of the request. Possible values are Success or Error.
- Name
Description- Type
- string
- Description
This element will contain details about an Error response.
- Name
OrderList- Type
- XML
- Description
Contains all Order elements for requested OrderNumber.
- Name
Order- Type
- XML
- Description
Contains the details of each requested OrderNumber.
- Name
OrderNumber- Type
- string
- Description
Your identifying reference number from the original request.
- Name
OrderReference- Type
- string
- Description
Secondary reference number such as a purchase order.
- Name
OrderConfirmation- Type
- integer
- Description
The EFS identifier for the order.
- Name
OrderStatus- Type
- enum
- Description
The current status of the order. Possible values include Completed, Cancelled, Pending, Processing, Backorder, N/A.
- Name
ShippingMethod- Type
- XML
- Description
This element contains the details regarding a requested shipping code and actual shipping method.
- Name
Requested- Type
- string
- Description
The requested shipping code for the order.
- Name
Actual- Type
- string
- Description
The actual shipping code used for the order.
Example Request / Payload
Request
<?xml version="1.0" encoding="UTF-8"?>
<OrderStatusRequest>
<MerchantId>{{CLIENT_ID}}</MerchantId>
<MerchantToken>{{CLIENT_TOKEN}}</MerchantToken>
<MerchantName>{{CLIENT_NAME}}</MerchantName>
<OrderList>
<Order>
<OrderNumber>5473b</OrderNumber>
</Order>
<Order>
<OrderNumber>#XWZY2ePiVc</OrderNumber>
</Order>
<Order>
<OrderNumber>2025-01-20_01</OrderNumber>
</Order>
</OrderList>
</OrderStatusRequest>
Example Response
Response
<?xml version="1.0" encoding="UTF-8"?>
<OrderStatusResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://fcp.efulfillmentservice.com/xml/orders/status/OrderStatusResponse.xsd">
<Status>Success</Status>
<Description/>
<OrderList>
<Order>
<OrderNumber>5473b</OrderNumber>
<OrderReference></OrderReference>
<OrderConfirmation>0</OrderConfirmation>
<OrderStatus>Not Found</OrderStatus>
<ShippingMethod/>
<Packages/>
<ShippingCost/>
</Order>
<Order>
<OrderNumber>2025-01-07T20:46:18.577Z_626</OrderNumber>
<OrderReference></OrderReference>
<OrderConfirmation>15970551</OrderConfirmation>
<OrderStatus>Completed</OrderStatus>
<ShippingMethod>
<Requested>USPS_PRIORITY</Requested>
<Actual>SS_STANDARD</Actual>
</ShippingMethod>
<Packages>
<Package>
<TrackingNumber>420513509261290367770201780849</TrackingNumber>
<TrackingLink></TrackingLink>
<Weight>1</Weight>
<Dimensions>5x5x5</Dimensions>
<Date>2025-02-21</Date>
</Package>
</Packages>
<ShippingCost>
<Amount>6.20</Amount>
<Type>Estimated</Type>
</ShippingCost>
</Order>
<Order>
<OrderNumber>2025-05-20_0006</OrderNumber>
<OrderReference></OrderReference>
<OrderConfirmation>105970779</OrderConfirmation>
<OrderStatus>Processing</OrderStatus>
<ShippingMethod>
<Requested>GROUND_ADVANTAGE</Requested>
<Actual></Actual>
</ShippingMethod>
<Packages/>
<ShippingCost/>
<Serials>
<Serial>bfjdjdjd</Serial>
<Serial>jsjxjxjd</Serial>
</Serials>
<ItemList>
<Item>
<SKU>00-0003</SKU>
<Serials>
<Serial>bfjdjdjd</Serial>
<Serial>jsjxjxjd</Serial>
</Serials>
</Item>
</ItemList>
</Order>
</OrderList>
</OrderStatusResponse>
Request Cancellation
This endpoint allows you to request cancellation for one or more orders. See the code examples for how to send the request to the FCP API.
Orders that have already been shipped cannot be cancelled. Orders that are in the process of being shipped may also be ineligible for cancellation.
Request Elements
- Name
OrderCancelRequest- Type
- XML
- Required
- required
- Description
The root XML element contains your API credentials and a list of orders to be submitted.
- Name
MerchantId- Type
- integer
- Required
- required
- Description
The unique ID number for your Fulfillment Control Panel account.
- Name
MerchantName- Type
- string
- Required
- required
- Description
The account name of reference in our system.
- Name
MerchantToken- Type
- string
- Required
- required
- Description
Security token to protect against unauthorized orders.
- Name
OrderList- Type
- XML
- Required
- required
- Description
Contains all Order elements to be submitted.
- Name
Order- Type
- XML
- Required
- required
- Description
This element contains all the detail elements for each order.
- Name
OrderNumber- Type
- string
- Required
- required
- Description
Your identifying reference number for the order.
Response Element Details
- Name
OrderCancelResponse- Type
- XML
- Description
This root element contains the Status, Description, and OrderList elements.
- Name
Status- Type
- enum
- Description
The status of the request. Possible values are Success or Error.
- Name
Description- Type
- string
- Description
This element will contain details about an Error response.
- Name
OrderList- Type
- XML
- Description
Contains all Order elements for requested OrderNumber.
- Name
Order- Type
- XML
- Description
Contains the details of each requested OrderNumber.
- Name
OrderId- Type
- integer
- Description
The EFS identifier for the order.
- Name
OrderNumber- Type
- string
- Description
Your identifying reference number from the original request.
- Name
OrderCancelStatus- Type
- enum
- Description
The status of the cancellation request. Possible values are Success or Error.
- Name
OrderCancelDescription- Type
- string
- Description
Error details if an order cannot be cancelled.
Example Request / Payload
Request
<?xml version="1.0" encoding="UTF-8"?>
<OrderCancelRequest>
<MerchantId>{{CLIENT_ID}}</MerchantId>
<MerchantName>{{CLIENT_NAME}}</MerchantName>
<MerchantToken>{{CLIENT_TOKEN}}</MerchantToken>
<OrderList>
<Order>
<OrderNumber>81120251</OrderNumber>
</Order>
<Order>
<OrderNumber>2025-01-07T20:46:18.577Z_626</OrderNumber>
</Order>
<Order>
<OrderNumber>2025-05-20_0006</OrderNumber>
</Order>
</OrderList>
</OrderCancelRequest>
Example Response
Response
<?xml version="1.0" encoding="UTF-8"?>
<OrderCancelResponse>
<Status>Success</Status>
<Description>Some requested cancellations could not be completed</Description>
<OrderList>
<Order>
<OrderId>105970845</OrderId>
<OrderNumber>81120251</OrderNumber>
<OrderCancelStatus>Success</OrderCancelStatus>
<OrderCancelDescription/>
</Order>
<Order>
<OrderId>15970551</OrderId>
<OrderNumber>2025-01-07T20:46:18.577Z_626</OrderNumber>
<OrderCancelStatus>Error</OrderCancelStatus>
<OrderCancelDescription>This order has been completed and cannot be cancelled</OrderCancelDescription>
</Order>
<Order>
<OrderId>105970779</OrderId>
<OrderNumber>2025-05-20_0006</OrderNumber>
<OrderCancelStatus>Error</OrderCancelStatus>
<OrderCancelDescription>This order has already been batched for processing and cannot be cancelled</OrderCancelDescription>
</Order>
</OrderList>
</OrderCancelResponse>