Using the API - Creating a Draft Order to then Update it as Complete and fulfill/ship products

Topic summary

Main topic: Programmatic purchase flow via API with external payment, aiming to create, complete, and fulfill orders while managing shipping and inventory.

Key questions raised:

  • Whether a shipping address can be passed when creating a Draft Order.
  • At what point inventory is deducted: not at Draft creation, but is it deducted when the Draft Order is completed?
  • Whether Draft Orders are the right approach for a single-step user experience with external payment; if not, which API endpoints and sequence should be used to create the order, capture payment externally, mark it complete/paid, and ship.

Context and goals:

  • Customer checkout occurs outside Shopify; the app will create the order via API, then complete and fulfill/ship.
  • Desire to perform the entire purchase process in one step from the user’s perspective.

Definitions:

  • Draft Order: a provisional order record that can be converted to a live Order.

Status: Open; no answers or decisions yet; guidance requested on endpoints, flow, and inventory behavior.

Summarized with AI on February 23. AI used: gpt-5.

I am interested in having the following flow: creating an order with customer shipping address included, deducting from inventory and finishing the other to be shipped. I am basically looking to perform the entire purchase process programmatically while taking payment outside of Shopify.

So far I have gathered that I should likely use the Draft Order endpoints to create a Draft Order

  • When creating a Draft Order, are we able to pass in the shipping address?

  • When creating a Draft Order, the inventory is not deducted, however, when we update the Draft Order to Completed, does the inventory get deducted at that point?

  • The goal is to perform the ordering all in one step (as far as the user is concerned). We’ll take the customer’s order outside of Shopify, we create the order via the API, and also take payment outside of Shopify, then complete the order and ship. Im I on the right track by using draft orders, if not what API endpoints should I use, and in what order?

Thank you for your time and help!