Create Order
Submit an order to OPT Smart Fulfillment Center
The endpoint enables the creation of a new order by specifying customer details, products, quantities, and shipping information.
Product Types
The two types of products are supported for order submission:
Existing Products where product variant must be specifed by providing EAN-13. For more details see the user guide Utilize Existing Products.
Custom Products where the blank article and the prints or customizations must be specified. For more details see the user guide Utilize Custom Products.
Shipping Options
Shipping can be defined in two ways: either by providing your own shipping labels or by selecting a contracted OTP carrier and specifying the delivery address. These methods cannot be combined.
Shipping address
address
object
yes
Recipient’s address. Required if a shipping label is not provided.
carrierId
string
no
If you have multiple contracted carriers, specify the carrier for each order. carrierId
can be obtained from the Get Carriers endpoint.
For shipping outside the EU zone, provide the retail unitPrice
, including VAT, for each order item and unitPriceCurrency
that will be displayed on the shipping labels for declaration purposes.
Shipping lables
shippingLabelUrl
string
yes
URL with Forward Shipping label supports PDF, ZPL, or PNG format.
returnLabelUrl
string
no
URL with Return Shipping label supports PDF, ZPL, or PNG format.
For shipping outside the EU zone, ensure that shipping labels include the retail price, including VAT, for declaration purposes.
Partner identifier for an order
Shipping details for the order. Either provide shipping label and return label, or full customer address and details. Providing both will throw a validation error.
URL to the packing slip. Must be valid URL and filetype must be either PNG or PDF. Invalid url or filetype will throw a validation error.
Currency of the price of items for customs declaration. Must be a valid ISO 4217 currency code. This is used only for customs declaration, only if address.countryCode is outside European Union. If no shipping label is present, then this field is required.
Successfully created the order based on provided data. Returns order details
Bad Request. See message / detail for explanation of the error
Internal server error
POST /v1/orders HTTP/1.1
Host:
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 702
{
"orderId": "text",
"items": [
{
"id": "text",
"quantity": 1,
"unitPrice": 1,
"existingProduct": {
"ean13": "text"
},
"customProduct": {
"sku": "text",
"prints": [
{
"dataUrl": "text",
"location": "REGULAR",
"technology": "ACCESSORIES",
"qualityControlImageUrl": "text"
}
],
"customizations": [
{
"sku": "text",
"location": "REGULAR",
"technology": "DTF",
"qualityControlImageUrl": "text"
}
],
"qualityControlImageUrl": "text"
}
}
],
"shipping": {
"address": {
"personName": "text",
"street": "text",
"addressLine2": "text",
"city": "text",
"postalCode": "text",
"country": "text",
"state": "text",
"phoneNumber": "text",
"email": "text",
"company": "text"
},
"carrierId": "text",
"shippingLabelUrl": "text",
"returnLabelUrl": "text"
},
"packingSlip": "text",
"unitPriceCurrency": "text"
}
{
"orderId": "text",
"status": "NEW",
"items": [
{
"id": "text",
"quantity": 1,
"unitPrice": 1,
"existingProduct": {
"ean13": "text",
"name": "text"
},
"customProduct": {
"sku": "text",
"prints": [
{
"dataUrl": "text",
"location": "text",
"technology": "text",
"qualityControlImageUrl": "text"
}
],
"customizations": [
{
"sku": "text",
"location": "text",
"technology": "text",
"qualityControlImageUrl": "text"
}
],
"qualityControlImageUrl": "text"
}
}
],
"shipping": {
"address": {
"personName": "text",
"street": "text",
"addressLine2": "text",
"city": "text",
"postalCode": "text",
"country": "text",
"state": "text",
"phoneNumber": "text",
"email": "text",
"company": "text"
},
"carrierId": "text",
"shippingLabelUrl": "text",
"returnLabelUrl": "text",
"trackingNumber": "text",
"trackingCarrier": "text",
"trackingUrl": "text"
},
"packingSlip": "text",
"unitPriceCurrency": "text",
"created": "2025-09-04T02:09:09.150Z",
"updated": "2025-09-04T02:09:09.150Z"
}
Last updated