{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Which API do I need"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"which-api-do-i-need","__idx":0},"children":["Which API do I need"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["One question decides it: ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["who holds the stock the moment the order is placed?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If Quiqup holds it, you are on ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Fulfilment"]},". If you hold it, you are on ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Last-mile"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"by-symptom","__idx":1},"children":["By symptom"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"What you are doing"},"children":["What you are doing"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"API"},"children":["API"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sending Quiqup a list of products and their SKUs"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Fulfilment"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Booking a container or a pallet into a Quiqup warehouse"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Fulfilment"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Checking how many units of a SKU are on the shelf"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Fulfilment"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Creating an order and letting Quiqup pick it from stock"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Fulfilment"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Creating an order and telling us where to collect the parcel"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Last-mile"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Installing the Shopify or WooCommerce connector"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Last-mile"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Printing a label for a parcel you already packed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Last-mile"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Booking a return from a customer back to your own warehouse"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Last-mile"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"tell-from-the-account","__idx":2},"children":["Tell from the account"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You do not choose this per order. It follows your commercial agreement."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If your contract is for storage and pick-and-pack, your account is set up for fulfilment and the fulfilment endpoints will answer. If it is for delivery only, they will not."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The quickest test: call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /api/fulfilment/inventory"]}," on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["platform-api.quiqup.com"]}," with your token. A fulfilment account returns a list, empty or not."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"using-both","__idx":3},"children":["Using both"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Some merchants do. Quiqup fulfils part of the catalogue and the merchant ships the rest itself."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["That works, and nothing extra is needed to set it up:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The same credential authenticates both hosts. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/authentication"},"children":["Authentication"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Both produce orders that run the same state machine. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/order-lifecycle"},"children":["Order lifecycle"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Webhook subscriptions are registered per environment and per account, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["order.*"]}," is emitted by both products. Fulfilment adds ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["inbound.*"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["inventory.*"]}," on top."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["What is not shared is the error envelope. The two hosts return different shapes and you have to handle both. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/errors"},"children":["Error responses"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"the-one-thing-that-catches-people-out","__idx":4},"children":["The one thing that catches people out"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["fulfilment order"]}," and a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["last-mile order"]}," are different objects with different IDs, created by different endpoints, and you cannot pass one to the other's endpoints."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A fulfilment order does produce a last-mile shipment once it is picked. You track it with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tracking_url"]}," from the fulfilment order, not by looking it up on the last-mile API."]}]},"headings":[{"value":"Which API do I need","id":"which-api-do-i-need","depth":1},{"value":"By symptom","id":"by-symptom","depth":2},{"value":"Tell from the account","id":"tell-from-the-account","depth":2},{"value":"Using both","id":"using-both","depth":2},{"value":"The one thing that catches people out","id":"the-one-thing-that-catches-people-out","depth":2}],"frontmatter":{"seo":{"title":"Which API do I need"}},"lastModified":"2026-10-15T14:10:56.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/choose","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}