REST Admin API 200 Response for POST Creates a fulfillment for one or many fulfillment orders

Topic summary

A developer is attempting to fulfill Shopify orders and add tracking numbers via the REST Admin API but encounters a 200 response with no actual fulfillment creation.

Setup completed:

  • Granted all fulfillment-related API permissions (write/read for assigned, merchant-managed, third-party fulfillment orders, plus custom services and constraint rules)
  • Following official Shopify documentation for POST fulfillment endpoint

Process being followed:

  1. GET request retrieves fulfillment_orders for a specific order ID
  2. Extract fulfillment_order ID from response (status shows “open” with “create_fulfillment” as supported action)
  3. POST to create fulfillment using example directly from Shopify docs, only updating the order ID
  4. Plan to add tracking info later via separate update endpoint

Current issue: Despite receiving 200 status code, the fulfillment is not actually being created in Shopify. The developer has reviewed similar threads about 200 responses but hasn’t resolved the problem.

Status: Seeking troubleshooting assistance to identify why the API call appears successful but produces no result.

Summarized with AI on November 5. AI used: claude-sonnet-4-5-20250929.

Hi All,

I’m looking to get some help on being able to set orders to fulfilled in Shopify as well as uploading the tracking number for customers.

I am using REST Admin API and the associated Shopify API documentation.
I have read every relevant thread on here regarding fulfillment orders including the other 200 response thread for my exact POST method. I have also granted my app every fulfillment permission as per the guide.

write_assigned_fulfillment_orders
read_assigned_fulfillment_orders
write_fulfillments
read_fulfillments
write_merchant_managed_fulfillment_orders
read_merchant_managed_fulfillment_orders
write_third_party_fulfillment_orders
read_third_party_fulfillment_orders
write_custom_fulfillment_services
read_custom_fulfillment_services
write_fulfillment_constraint_rules
read_fulfillment_constraint_rules

Here is what I’m doing:

Step 1:

GET https://{STORE}.myshopify.com/admin/api/2024-07/orders/6161467277373/fulfillment_orders.json
Response:

{
    "fulfillment_orders": [
        {
            "id": 7246309392445,
            "created_at": "2024-09-08T00:13:30-04:00",
            "updated_at": "2024-09-08T00:13:30-04:00",
            "shop_id": SHOPID,
            "order_id": 6161467277373,
            "assigned_location_id": 61232087101,
            "request_status": "unsubmitted",
            "status": "open",
            "fulfill_at": "2024-09-08T00:00:00-04:00",
            "supported_actions": [
                "create_fulfillment",
                "hold"
            ],
            "destination": {
                "id": 6621389127741,
                "address1": "123 Street",
                "address2": null,
                "city": "City Name",
                "company": null,
                "country": "United States",
                "email": "MyEmail",
                "first_name": "NAME",
                "last_name": "NAME",
                "phone": null,
                "province": "STATE",
                "zip": "ZIP"
            },
            "line_items": [
                {
                    "id": 14610494062653,
                    "shop_id": SHOPID,
                    "fulfillment_order_id": 7246309392445,
                    "quantity": 1,
                    "line_item_id": 14420625883197,
                    "inventory_item_id": 41638113640509,
                    "fulfillable_quantity": 1,
                    "variant_id": 39542918578237
                }
            ],
            "international_duties": null,
            "fulfillment_holds": [],
            "fulfill_by": null,
            "delivery_method": {
                "id": 1446810157117,
                "method_type": "shipping",
                "min_delivery_date_time": null,
                "max_delivery_date_time": null,
                "additional_information": {
                    "instructions": null,
                    "phone": null
                },
                "service_code": "custom",
                "source_reference": null,
                "branded_promise": null
            },
            "assigned_location": {
                "address1": "ADDRESS",
                "address2": "",
                "city": "CITY",
                "country_code": "US",
                "location_id": 61232087101,
                "name": "NAME",
                "phone": "PHONE",
                "province": "STATE",
                "zip": "ZIP"
            },
            "merchant_requests": []
        }
    ]
}

Step 2:
Extract fulfillment_orders id for Step 3:

fulfillment_orders": [“id”: 7246309392445]

Step 3:
I am using https://shopify.dev/docs/api/admin-rest/2024-10/resources/fulfillment#post-fulfillments and the example: Create a fulfillment without tracking info. Tracking numbers can be set later with the /admin/api/API_VERSION/fulfillments/FULFILLMENT_ID/update_tracking.json endpoint.
I am copying the POST and example directly from Shopfiy docs and only updating the order id.

POST https://{STORE}.myshopify.com/admin/api/2024-10/fulfillments.json
BODY:

{
    "fulfillment": {
        "line_items_by_fulfillment_order": [
            {
                "fulfillment_order_id": 7246309392445
            }
        ]
    }
}

RESPONSE:
200 OK


    

    

Can anyone help me troubleshoot why I’m getting a 200 response.
Am I using an incorrect method somewhere?
Am I passing an incorrect ID?

Am I missing a step?
As you can see my test order was created beginning of September, so I have been going at this for a while.