I am trying to create a fulfilment through the REST API, it's not working

Topic summary

Issue: Creating a fulfillment via the Shopify Admin REST API returns: {“errors”:{“fulfillment”:“Required parameter missing or invalid”}}.

Request details: POST to /admin/api/2023-04/fulfillments.json with body including line_items_by_fulfillment_order [{ fulfillment_order_id: 5618584944961 }] and tracking_info (number and url). Headers include an access token and a JSON content type. The code snippet is central to understanding the problem.

Guidance provided: The request structure generally aligns with Shopify’s documentation for creating a fulfillment (link provided to docs). Recommended checks:

  • Verify the fulfillment_order_id exists, is correct, and corresponds to an unfulfilled fulfillment order in the store.
  • Confirm the tracking number and tracking URL are valid/accurate.

Status: No confirmed resolution yet. Troubleshooting is ongoing pending validation of the fulfillment_order_id and tracking details.

Summarized with AI on January 11. AI used: gpt-5.

I am trying to create a fulfillment through the REST API, but keep getting this response:

{

“errors”:{ “fulfillment”:“Required parameter missing or invalid”}

}

could you please help me


curl --location 'https://book.myshopify.com/admin/api/2023-04/fulfillments.json' \
--header 'X-Shopify-Access-Token: shpua_cb73***f23bb50cb93335dd9f' \
--header 'Content-Type: application/json' \
--data '{
    "fulfillment": {
        "line_items_by_fulfillment_order": [
            {
                "fulfillment_order_id": 5618584944961
            }
        ],
        "tracking_info": {
            "number": "MS1562678",
            "url": "https://www.my-shipping-company.com?tracking_number=MS1562678"
        }
    }
}'

Hi Javmah,

The structure of the GET request you’re making matches (apart from some stylistic differences) how the docs advise to create a fulfilment so it’s tricky to see what might be causing this error. Some things I’d check would be to ensure that the fulfillment_order_id you’re using is correct and corresponds to an existing, unfulfilled order in your Shopify account, as well as ensuring that the tracking number and URL are accurate.

Hope this helps,