Create order from draft
Places the order a draft describes, using the options, pricing, and defaults that draft resolved.
The draft is addressed by the id returned from POST /draft-orders; nothing about the order can be changed here. To change it, create a new draft and place that one instead. A draft can only be placed once: a second request for a draft that already has an order returns 409 DRAFT_ORDER_ALREADY_PLACED, naming the order it became.
Pass an idempotencyKey to make retries safe: resubmitting the same draft with the same key within 5 minutes returns the order already placed instead of placing a second one. This matters on failure: a 5xx response or a timeout does not guarantee the order was not placed, so retry only with the same idempotencyKey.
A draft that does not exist and a draft belonging to another organization both return 404, so the endpoint cannot be used to discover which draft ids exist.
Validation runs at placement exactly as it does for POST /orders, so a draft that priced cleanly can still be rejected with 400 if something it depends on — availability, a fulfillment date, a payment method — has changed since it was drafted. The codes are the ones listed on POST /orders.
/{id}/orderAuthorizationBearer token · headerrequiredcreate:from-draft:ordersidstringrequiredapplication/jsonidempotencyKeystringidstringrequiredorderUrlstringrequiredwarrantyOrderIdstring | nullrequiredwarrantyOrderUrlstring | nullrequiredcodestringrequiredVALIDATION_ERRORINVALID_SUPPLIERPRODUCTS_NOT_FOUNDPRODUCTS_DISCONTINUEDINVALID_PRODUCT_OPTIONSINVALID_UNIT_OF_MEASUREADDON_WITH_ID_NOT_AVAILABLEADDON_WITH_TITLE_NOT_AVAILABLECONFLICTING_WARRANTY_INPUTWARRANTY_SKU_NOT_AVAILABLE_FOR_PRODUCTNO_AVAILABLE_WARRANTIES_FOR_PRODUCTINVALID_FULFILLMENT_METHODNO_AVAILABLE_DELIVERY_METHODSNO_AVAILABLE_FULFILLMENT_DATESINVALID_REQUESTED_DELIVERY_DATENO_AVAILABLE_PAYMENT_METHODSNO_DISTRIBUTION_CENTER_FOUNDINVALID_SUBSCRIBERSNO_SHIP_TO_OFFICE_PROPERTY_ID_PROVIDED_WHEN_USING_SHIP_TO_OFFICEOFFICE_PROPERTY_ID_PROVIDED_FOR_NON_SHIP_TO_OFFICEmessagestringrequireddetailsobject[]Show propertiesHide properties
objectfieldstringrequirederrorstringrequiredcodestringrequiredmessagestringrequireddetailsobject[]Show propertiesHide properties
objectfieldstringrequirederrorstringrequiredcodestringrequiredmessagestringrequireddetailsobject[]Show propertiesHide properties
objectfieldstringrequirederrorstringrequiredcodestringrequiredDRAFT_ORDER_NOT_FOUNDmessagestringrequireddetailsobject[]Show propertiesHide properties
objectfieldstringrequirederrorstringrequiredcodestringrequiredDRAFT_ORDER_ALREADY_PLACEDmessagestringrequireddetailsobject[]Show propertiesHide properties
objectfieldstringrequirederrorstringrequiredcodestringrequiredmessagestringrequireddetailsobject[]Show propertiesHide properties
objectfieldstringrequirederrorstringrequiredcurl -X POST "https://api.sibipro.com/draft-orders/TEMP-1234/order" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"idempotencyKey": "b8f0e6d2-1c3a-4f5e-9a7b-0d2c4e6f8a1b"
}'const response = await fetch("https://api.sibipro.com/draft-orders/TEMP-1234/order", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"idempotencyKey": "b8f0e6d2-1c3a-4f5e-9a7b-0d2c4e6f8a1b"
})
});{
"id": "SIBI-12345678",
"orderUrl": "https://web.sibipro.com/orders/SIBI-12345678",
"warrantyOrderId": "string",
"warrantyOrderUrl": "string"
}{
"code": "VALIDATION_ERROR",
"message": "The request contains invalid parameters",
"details": [
{
"field": "customer.email",
"error": "Invalid email"
},
{
"field": "address.postalCode",
"error": "Invalid"
}
]
}{
"code": "string",
"message": "The request contains invalid parameters",
"details": [
{
"field": "customer.email",
"error": "Invalid email"
},
{
"field": "address.postalCode",
"error": "Invalid"
}
]
}{
"code": "string",
"message": "The request contains invalid parameters",
"details": [
{
"field": "customer.email",
"error": "Invalid email"
},
{
"field": "address.postalCode",
"error": "Invalid"
}
]
}{
"code": "DRAFT_ORDER_NOT_FOUND",
"message": "The request contains invalid parameters",
"details": [
{
"field": "customer.email",
"error": "Invalid email"
},
{
"field": "address.postalCode",
"error": "Invalid"
}
]
}{
"code": "DRAFT_ORDER_ALREADY_PLACED",
"message": "The request contains invalid parameters",
"details": [
{
"field": "customer.email",
"error": "Invalid email"
},
{
"field": "address.postalCode",
"error": "Invalid"
}
]
}{
"code": "string",
"message": "The request contains invalid parameters",
"details": [
{
"field": "customer.email",
"error": "Invalid email"
},
{
"field": "address.postalCode",
"error": "Invalid"
}
]
}