PostOrder API Customer Documentation
Welcome to the PostOrder API integration guide. This endpoint allows you to seamlessly create new orders within the ePrint system.
Endpoint Overview
Base URL:
{hostname}/orderapi/api/order/Example URL:
[https://demo.eprintsoftware.com/orderapi/api/order/](https://demo.eprintsoftware.com/orderapi/api/order/)Method:
POSTTarget URL:
[baseURL]/PostOrderContent-Type:
application/json
Description & Processing Flow
The PostOrder API creates a new order, including customer, destination, item, and payment details. When you submit a request, the system follows this workflow:
Customer Validation: If the customer does not exist in the system, a new customer record is created. If they already exist, their record is updated.
Product Validation: Each order item is validated using the provided SKU. If any SKU is invalid or missing, the order will not be created.
Order Creation: Once validated, the system builds the order alongside destinations, items, artwork links, additional costs, and payment information.
Pricing Rules & Calculation Logic
For each order item, you can supply pricing information using only one of the following configurations:
Retail Price (with or without Tax Price)
Selling Price
Important: Retail Price and Selling Price must not be passed together for the same order item in a single request. Doing so may cause the request to be rejected or yield unexpected calculation results.
Depending on your input, the system computes missing financial values (such as tax, subtotal, markup, and cost) based on product master data and system configuration. Four primary pricing cases are supported:
Case 1: Selling Price Provided
API Input: Selling Price
Derived from System/Product: Tax Rate (product), Cost Price (system)
Logic: Selling price is taken directly from the request; tax is computed via product tax rate; subtotal is derived from selling price; markup is calculated using selling and cost prices; cost price pulls from master data.
Case 2: Retail Price and Tax Price Provided
API Input: Retail Price, Tax Price
Derived from System/Product: Cost Price (system)
Logic: Selling Price = Retail Price + Tax Price; subtotal and tax amounts populate from your request; markup is calculated from selling and cost prices; cost price pulls from master data.
Case 3: Retail Price Provided (Without Tax Price)
API Input: Retail Price
Derived from System/Product: Tax Rate (product), Cost Price (system)
Logic: Selling price and tax amount are computed using the retail price and product tax rate; subtotal takes the retail price directly; markup and cost prices are calculated/populated from system settings.
Case 4: Product-Based Pricing Only
API Input: Item Code / SKU only (no pricing/tax values passed)
Derived from System/Product: Selling Price (product), Tax Rate (product), Cost Price (system)
Logic: All financial elements (selling price, subtotal, tax amount, markup, and cost) are automatically derived directly from product master data and tax rules.
Request Fields Reference
The following tables outline all available fields, categorizing them by mandatory status, expected data type, and usage.
Company Information (CompanyInfo)
| Field Name | Description | Mandatory | Type | Example |
| CompanyInfo | Contains company information associated with the order. | True
| Object |
|
| CompanyInfo.CompanyName | Name of the company/customer associated with the order. | True
| String | Skywalker |
| CompanyInfo.Division | Department associated with the company/customer. | False | String | abc |
| CompanyInfo.AccountNo | Account number associated with the company/customer. | False | String | 12345 |
General Order Details
| Field Name | Description | Mandatory | Type | Example |
| ExternalOrderID | Unique order identifier provided by the external system. | True
| String | POSTMAN-78 |
| OrderNotes | Additional notes associated with the order. | False | String | Test Notes |
| Status | Status of the order. | False | String | New Order |
| CustomerOrderID | Customer-provided order identifier. | False | String | 10 |
| OrderDate | Date and time when the order was created. | False | String (DateTime) | 2020-07-17T07:55:21+11:00 |
| DueDate | Requested or expected due date of the order. | False | String (DateTime) | 2020-10-17T06:00:00+11:00 |
| Currency | Currency used for the order. | False | String | AUD |
Destination & Shipping Information (Destination)
| Field Name | Description | Mandatory | Type | Example |
| Destination | Contains shipping destination information. | True
| Object |
|
| Destination.DestinationID | Unique identifier for the shipping destination. | False | String | Dest1 |
| Destination.ShipMethod | Shipping method selected for the destination. | False | String | Despatch_Economy |
| Destination.ShipTo | Contains recipient shipping address information. | True
| Object |
|
| Destination.ShipTo.Name | Name of the person or organization receiving the order. | True
| String | Nicola Brown |
| Destination.ShipTo.Address1 | Primary street address of the recipient. | True
| String | 42 Filetrust Court |
| Destination.ShipTo.Address2 | Additional address information. | False | String / Array | Unit 5 |
| Destination.ShipTo.Address3 | Additional address information. | False | String / Array | Building A |
| Destination.ShipTo.City | City or suburb of the recipient. | False | String | Lower Town |
| Destination.ShipTo.State | State or province of the recipient. | False | String | QLD |
| Destination.ShipTo.Postal | Postal or ZIP code of the recipient. | False | String | 4288 |
| Destination.ShipTo.Country | Country code of the recipient. | False | String | AUS |
| Destination.ShipTo.Phone | Phone number of the recipient. | False | String / Array | 618845884545 |
| Destination.ShipTo.Email | Email address of the recipient. | False | String | nicola@testcustomer.com |
Contact Information (Contact)
| Field Name | Description | Mandatory | Type | Example |
| Contact | Contains contact information associated with the order. | False | Object |
|
| Contact.Name | Name of the contact person. | False | String | Sam Shock |
| Contact.Address1 | Primary address of the contact. | False | String | 128 Riley Rd |
| Contact.Address2 | Additional address information. | False | String | Unit 33 |
| Contact.City | City or suburb of the contact. | False | String | Katoomba |
| Contact.State | State or province of the contact. | False | String | NSW |
| Contact.Postal | Postal or ZIP code of the contact. | False | String | 2133 |
| Contact.Country | Country code of the contact. | False | String | AU |
| Contact.Phone | Phone number of the contact. | False | String / Array | 0000000000 |
| Contact.Email | Email address of the contact. | False | String | sam.shock@testcustomer.com |
Order Items (OrderItems)
| Field Name | Description | Mandatory | Type | Example |
| OrderItems | Collection of items included in the order. | True
| Array |
|
| OrderItems[].DestinationRef | Reference to the destination associated with the order item. | False | String | Dest1 |
| OrderItems[].Sku | SKU or product identifier for the ordered item. | True
| String | P0000170 |
| OrderItems[].Quantity | Quantity of the item being ordered. | True
| Number / String | 50 |
| OrderItems[].otherCostNames | Collection of additional costs associated with the item. | False | Array |
|
| OrderItems[].otherCostNames[].otherCostName | Name of an additional cost. | False | String | Testing |
| OrderItems[].fileLink | URL of a file or artwork associated with the item. | False | String |
|
| OrderItems[].RetailPrice | Cost price including markup. | False | Decimal / String | 200 |
| OrderItems[].TaxPrice | Tax amount associated with the item. | False | Decimal / String | 20 |
| OrderItems[].ItemTitle | Title or name of the item and descriptions title. | False | String | Test Title |
| OrderItems[].Description | Customer Item Descriptions. | False | String | Test Description |
| OrderItems[].Artwork | Customer Item Descriptions. | False | String | Test Artwork |
| OrderItems[].Colour | Customer Item Descriptions. | False | String | Test Colour |
| OrderItems[].Size | Customer Item Descriptions. | False | String | Test Size |
| OrderItems[].Material | Customer Item Descriptions. | False | String | Test Material |
| OrderItems[].Delivery | Customer Item Descriptions. | False | String | Test Delivery |
| OrderItems[].Finishing | Customer Item Descriptions. | False | String | Test Finishing |
| OrderItems[].Proofs | Customer Item Descriptions. | False | String | Test Proof |
| OrderItems[].Packing | Customer Item Descriptions. | False | String | Test Packing |
| OrderItems[].Notes | Customer Item Descriptions. | False | String | Test Notes |
| OrderItems[].Instructions | Customer Item Descriptions. | False | String | Test Instructions |
| OrderItems[].CustomDescription1 to 25 | Customer-defined custom item descriptions (1 through 25). | False | String | Test Description 1 (up to 25) |
Payment Information (Payment)
| Field Name | Description | Mandatory | Type | Example |
| Payment | Contains payment information associated with the order. | True*
| Object |
|
| Payment.AmountPaid | Amount paid for the order. | False | Decimal / String | 150.00000 |
| Payment.Description | Description or reference associated with the payment. | False | String | Paypal ref 521a |
| Payment.Date | Date and time when the payment was made. | False | String (DateTime) | 2023-05-12T07:55:21+11:00 |