Create draft order
Create an order as a draft. Nothing is charged or sent to print.
POST https://cotlet.dev/api/v1/printful/draft-orders
write
Creates the order with the recipient and items and leaves it as a draft. Printful charges only confirmed orders, and you can edit or delete a draft in the Dashboard, or with cancel_order. It reaches no one and costs nothing, so it does not ask for confirmation.
Parameters
| Name | Type | Description |
|---|---|---|
| recipient object required | object | name, address1, city, country_code, zip, and state_code where required. |
| items object[] required | object[] | Items as sync variant_id and quantity. |
| shipping string | string | Shipping option name from get_shipping_rates. Default: Standard. |
Request
curl -X POST https://cotlet.dev/api/v1/printful/draft-orders \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"recipient":{"name":"Anna Berg","address1":"Lindenallee 4","city":"Hamburg","country_code":"DE","zip":"20095"},"items":[{"variant_id":5120881,"quantity":1}],"shipping":"Standard"}' result = client.call("printful", "create_draft_order", {"recipient":{"name":"Anna Berg","address1":"Lindenallee 4","city":"Hamburg","country_code":"DE","zip":"20095"},"items":[{"variant_id":5120881,"quantity":1}],"shipping":"Standard"}) const result = await cotlet.call('printful', 'create_draft_order', {"recipient":{"name":"Anna Berg","address1":"Lindenallee 4","city":"Hamburg","country_code":"DE","zip":"20095"},"items":[{"variant_id":5120881,"quantity":1}],"shipping":"Standard"}); cotlet call printful create_draft_order --data '{"recipient":{"name":"Anna Berg","address1":"Lindenallee 4","city":"Hamburg","country_code":"DE","zip":"20095"},"items":[{"variant_id":5120881,"quantity":1}],"shipping":"Standard"}' Example response
{
"order_id": 31920,
"status": "draft",
"recipient": "Anna Berg",
"items": 1,
"created_at": "2026-10-17T09:20:00Z"
}