Skip to content

Unblock an inventory batch

Request

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.

Security
BearerAuth
Path
sku_idinteger, (int64)required

SKU ID

idinteger, (int64)required

Inventory Batch ID

Bodyapplication/jsonrequired
user_emailstring, (email)required

Email of the merchant user performing the unblock action. Must belong to the merchant.

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"
  }'

Responses

Inventory batch unblocked successfully

Bodyapplication/json
block_reasonstring or nullrequired

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.

Enum:"expiry_date_reached""expiry_window"null
blockedbooleanrequired

Whether this batch has pending blocking issues that prevent fulfillment

expiry_datestring or null, (date)required

Expiration date of the batch (ISO8601 date, read-only)

idintegerrequired

Hive unique ID for the batch (read-only)

lot_numberstring or nullrequired

Lot number for the batch (read-only)

production_datestring or null, (date)required

Production date of the batch (ISO8601 date, read-only)

statusstringrequired

Status of the batch (active or archived)

Enum:"active""archived"
namestringdeprecated

Name of the batch (read-only)

tracking_codestring or nulldeprecated

Tracking code (read-only)

Response
{ "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" }