{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["code-tabs","code-tab"]},"type":"markdown"},"seo":{"title":"Create and update a Manifest","description":"Comprehensive API documentation for Zimark Integration platform. Learn how to seamlessly integrate and leverage Zimark's powerful features into your warehouse operations.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"__idx":0,"id":"create-and-update-a-manifest"},"children":["Create and update a Manifest"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/key-concepts#manifest"},"children":["manifest"]}," in Zimark based on WMS data, then keep it in sync as ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/key-concepts#pallet"},"children":["pallets"]}," change. This is the most common integration a warehouse builds: when an order is ready to be shipped, mirror its pallets into a Zimark manifest so they can be verified at the gate during loading."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you want the ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["why"]}," behind when to trigger each call, see the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/use-cases/realtime-manifest-creation"},"children":["Realtime Manifest Creation"]}," use case. This guide is the ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["how"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"__idx":1,"id":"prerequisites"},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["An API key (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ZIM.…"]},"). See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/rest-api/authentication"},"children":["Authentication"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A unique number from the WMS to identify the manifest, e.g., an order number."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Your pallet IDs from the WMS."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Throughout this guide, the manifest's external ID is your ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["WMS order ID"]}," (for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MAN-2024-001"]},"), and each asset is a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["pallet's WMS ID"]}," (for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["LPN00012345"]},")."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"__idx":2,"id":"step-1-create-the-manifest"},"children":["Step 1: Create the manifest"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When the order reaches ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["fully allocated"]}," or ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["picked"]}," in your WMS, create the manifest with its allocated pallets."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/api#operation/createManifest"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /integration/rest/api/v1/manifest"]}]}]},{"$$mdtype":"Tag","name":"CodeTabs","attributes":{},"children":[{"$$mdtype":"Tag","name":"CodeTab","attributes":{"label":"cURL"},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.zimark.link/integration/rest/api/v1/manifest\" \\\n  -H \"X-AUTH-KEY: ZIM.your-api-key-here\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"identifier\": \"MAN-2024-001\",\n    \"assets\": [\"LPN00012345\", \"LPN00012346\"]\n  }'\n","lang":"bash"},"children":[]}]},{"$$mdtype":"Tag","name":"CodeTab","attributes":{"label":"JavaScript"},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"const response = await fetch(\n  'https://api.zimark.link/integration/rest/api/v1/manifest',\n  {\n    method: 'POST',\n    headers: {\n      'X-AUTH-KEY': 'ZIM.your-api-key-here',\n      'Content-Type': 'application/json'\n    },\n    body: JSON.stringify({\n      identifier: 'MAN-2024-001',\n      assets: ['LPN00012345', 'LPN00012346']\n    })\n  }\n);\n\nconsole.log(await response.json());\n","lang":"javascript"},"children":[]}]},{"$$mdtype":"Tag","name":"CodeTab","attributes":{"label":"Python"},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"import requests\n\nresponse = requests.post(\n    'https://api.zimark.link/integration/rest/api/v1/manifest',\n    headers={\n        'X-AUTH-KEY': 'ZIM.your-api-key-here',\n        'Content-Type': 'application/json'\n    },\n    json={\n        'identifier': 'MAN-2024-001',\n        'assets': ['LPN00012345', 'LPN00012346']\n    }\n)\n\nprint(response.json())\n","lang":"python"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"__idx":3,"id":"request-fields"},"children":["Request fields"]},{"$$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":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Required"},"children":["Required"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Notes"},"children":["Notes"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["identifier"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The manifest's external ID, usually your WMS order ID. Must be a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["string"]},", not a number."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["assets"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string array"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["At least one pallet's WMS ID."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"__idx":4,"id":"success-response"},"children":["Success response"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200 OK"]}," returns the manifest's internal UUID:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"uuid\": \"6a7132c4-a035-4602-a1af-baa0b5569e17\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Store nothing from this response if you don't need to. You address the manifest by the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["identifier"]}," you chose. The UUID is Zimark's internal handle."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"__idx":5,"id":"step-2-update-the-manifest-when-pallets-change"},"children":["Step 2: Update the manifest when pallets change"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["During picking, operators sometimes add, remove, or swap pallets (a pallet is damaged and replaced by another with the same SKU / the load is too heavy for a truck and some pallets need to be removed). Send the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["complete updated asset list"]},". The update is ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["declarative"]},", so Zimark adds, removes, and keeps assets to match what you send. You do not send a diff."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/api#operation/updateManifest"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PUT /integration/rest/api/v1/manifest/{manifestExternalId}"]}]}]},{"$$mdtype":"Tag","name":"CodeTabs","attributes":{},"children":[{"$$mdtype":"Tag","name":"CodeTab","attributes":{"label":"cURL"},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X PUT \"https://api.zimark.link/integration/rest/api/v1/manifest/MAN-2024-001\" \\\n  -H \"X-AUTH-KEY: ZIM.your-api-key-here\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"assets\": [\"LPN00012345\", \"LPN00099999\"]\n  }'\n","lang":"bash"},"children":[]}]},{"$$mdtype":"Tag","name":"CodeTab","attributes":{"label":"JavaScript"},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"const response = await fetch(\n  'https://api.zimark.link/integration/rest/api/v1/manifest/MAN-2024-001',\n  {\n    method: 'PUT',\n    headers: {\n      'X-AUTH-KEY': 'ZIM.your-api-key-here',\n      'Content-Type': 'application/json'\n    },\n    body: JSON.stringify({\n      assets: ['LPN00012345', 'LPN00099999']\n    })\n  }\n);\n\nconsole.log(response.status);\n","lang":"javascript"},"children":[]}]},{"$$mdtype":"Tag","name":"CodeTab","attributes":{"label":"Python"},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"import requests\n\nresponse = requests.put(\n    'https://api.zimark.link/integration/rest/api/v1/manifest/MAN-2024-001',\n    headers={\n        'X-AUTH-KEY': 'ZIM.your-api-key-here',\n        'Content-Type': 'application/json'\n    },\n    json={'assets': ['LPN00012345', 'LPN00099999']}\n)\n\nprint(response.status_code)\n","lang":"python"},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the example above ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["LPN00012346"]}," was dropped and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["LPN00099999"]}," added; ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["LPN00012345"]}," stays. The response is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200 OK"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"__idx":6,"id":"confirm-it-worked"},"children":["Confirm it worked"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Fetch the manifest's pallets to confirm the current list matches what you sent. You address the manifest by the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["identifier"]}," you chose."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/api#operation/getManifestAssets"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /integration/rest/api/v1/manifest/{manifestExternalId}/asset"]}]}]},{"$$mdtype":"Tag","name":"CodeTabs","attributes":{},"children":[{"$$mdtype":"Tag","name":"CodeTab","attributes":{"label":"cURL"},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X GET \"https://api.zimark.link/integration/rest/api/v1/manifest/MAN-2024-001/asset\" \\\n  -H \"X-AUTH-KEY: ZIM.your-api-key-here\"\n","lang":"bash"},"children":[]}]},{"$$mdtype":"Tag","name":"CodeTab","attributes":{"label":"JavaScript"},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"const response = await fetch(\n  'https://api.zimark.link/integration/rest/api/v1/manifest/MAN-2024-001/asset',\n  { headers: { 'X-AUTH-KEY': 'ZIM.your-api-key-here' } }\n);\n\nconsole.log(await response.json());\n","lang":"javascript"},"children":[]}]},{"$$mdtype":"Tag","name":"CodeTab","attributes":{"label":"Python"},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"import requests\n\nresponse = requests.get(\n    'https://api.zimark.link/integration/rest/api/v1/manifest/MAN-2024-001/asset',\n    headers={'X-AUTH-KEY': 'ZIM.your-api-key-here'}\n)\n\nprint(response.json())\n","lang":"python"},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response lists one entry per pallet on the manifest. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["trackIdentifier"]}," is the pallet's WMS ID, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["loadingStatus"]}," shows where it is in the loading workflow (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["NOT_LOADED"]}," for a freshly created manifest):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"[\n  {\n    \"trackIdentifier\": \"LPN00012345\",\n    \"loadingStatus\": \"NOT_LOADED\"\n  },\n  {\n    \"trackIdentifier\": \"LPN00099999\",\n    \"loadingStatus\": \"NOT_LOADED\"\n  }\n]\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The pallet IDs returned here should match the list from your most recent create or update call."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If a call fails, check ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/rest-api/troubleshoot"},"children":["Troubleshooting"]},". The most common causes are a missing/invalid ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-AUTH-KEY"]}," or sending ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["identifier"]}," as a number instead of a string."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"__idx":7,"id":"related"},"children":["Related"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/use-cases/realtime-manifest-creation"},"children":["Realtime Manifest Creation"]},": when to trigger each call across the order lifecycle."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/zimarkers/coupling-api"},"children":["Coupling API"]},": how pallets become camera-verifiable by carrying a Zimarker."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/webhooks/webhooks-manifest"},"children":["Manifest webhooks"]},": receive events as the manifest and its assets change."]}]}]},"headings":[{"value":"Create and update a Manifest","id":"create-and-update-a-manifest","depth":1},{"value":"Prerequisites","id":"prerequisites","depth":2},{"value":"Step 1: Create the manifest","id":"step-1-create-the-manifest","depth":2},{"value":"Request fields","id":"request-fields","depth":3},{"value":"Success response","id":"success-response","depth":3},{"value":"Step 2: Update the manifest when pallets change","id":"step-2-update-the-manifest-when-pallets-change","depth":2},{"value":"Confirm it worked","id":"confirm-it-worked","depth":2},{"value":"Related","id":"related","depth":2}],"frontmatter":{"seo":{"title":"Create and update a Manifest"}},"lastModified":"2026-07-07T18:25:08.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/create-update-manifest","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}