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: POST

     

  • Target URL: [baseURL]/PostOrder

     

  • Content-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:  

  1. 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.  

  2. Product Validation: Each order item is validated using the provided SKU. If any SKU is invalid or missing, the order will not be created.  

  3. 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 NameDescriptionMandatoryTypeExample
CompanyInfo

Contains company information associated with the order.  

True

 

Object  

{ "CompanyName": "Skywalker" }

 

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 NameDescriptionMandatoryTypeExample
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 NameDescriptionMandatoryTypeExample
Destination

Contains shipping destination information.  

True

 

Object  

{ "DestinationID": "Dest1" }

 

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  

{ "Name": "Nicola Smith" }

 

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 NameDescriptionMandatoryTypeExample
Contact

Contains contact information associated with the order.  

False  

Object  

{ "Name": "Sam Mantrao" }

 

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 NameDescriptionMandatoryTypeExample
OrderItems

Collection of items included in the order.  

True

 

Array  

[ { "Sku": "P0000170" } ]

 

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  

[{"otherCostName":"Testing"}]

 

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  

https://example.com/file.pdf

 

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 NameDescriptionMandatoryTypeExample
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