Unblocks a previously blocked inventory batch, allowing its stock to be used for fulfillment again.
A block Hive placed because of expiry may only be released by a user with the admin role. The user_email must name such a user; any other role is rejected with 403. Releasing one also requires an explicit best-before acknowledgement recorded against a named person, which is only available to an administrator in the merchant portal, so this endpoint rejects it with 422. A block the merchant filed themselves is unaffected by both rules.
For merchants enrolled in expiry handling, a batch whose expiry date has been reached cannot be unblocked through this endpoint and is rejected with 422.
For those merchants, when an unblock resolves the batch block but the stock stays held by another block, a financing hold or an investigation on a storage box, or a block on the SKU, the batch block is resolved and the response is 422 naming what still holds the stock, rather than a batch payload that reports itself as unblocked. Retrying will report that the batch is not blocked.
- Mock serverhttps://developers.hive.app/_mock/merchant-api-v2/mapi_v2_oas31/skus/{sku_id}/inventory_batches/{id}/unblock
- Production APIhttps://app.hive.app/merchant_api/v2/skus/{sku_id}/inventory_batches/{id}/unblock
- Staging APIhttps://staging.app.hive.app/merchant_api/v2/skus/{sku_id}/inventory_batches/{id}/unblock
curl -i -X POST \
'https://developers.hive.app/_mock/merchant-api-v2/mapi_v2_oas31/skus/{sku_id}/inventory_batches/{id}/unblock' \
-H 'Authorization: Bearer <YOUR_token_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"user_email": "warehouse-manager@merchant.com"
}'Inventory batch unblocked successfully
Why this batch is blocked: expiry_window when Hive blocked it because its expiry date came within the merchant's window, expiry_date_reached when that date has passed. null when the batch is not blocked, when the block did not come from expiry handling at all, when it was created before Hive recorded a reason, or until the batch expiry handling feature is rolled out to the account.
{ "block_reason": null, "blocked": false, "expiry_date": "2024-12-31", "id": 1, "lot_number": "LOT-001", "name": "Batch-001", "production_date": "2024-01-15", "status": "active", "tracking_code": "BATCH-TRACK-001" }