Skip to content

Receive a partial or full inbound quantity

POST
/v1/organizations/{organizationId}/inbounds/{inboundId}/receive

API key scope: inventory:write.

inboundId
required
string
X-Request-Id
string

Optional client request id returned in structured errors.

Idempotency-Key
required
string

Unique key used to safely retry inbound receiving.

Media typeapplication/json
object
quantity
required
number
>= 1
reason
string
Example
Inbound stock received
metadata
object
Example
{
"dockDoor": "D-3"
}
lotId

Existing lot id to receive into.

string
lotCode
string
Example
LOT-2026-001
batchCode
string
Example
BATCH-A
expiresAt
string format: date-time
Example
2027-07-01T00:00:00.000Z
receivedAt
string format: date-time
Example
2026-07-01T12:00:00.000Z
lotMetadata
object
Example
{
"supplierLot": "SUP-A1"
}
serials
Array<object>
object
serialNumber
required
string
Example
SN-2026-0001
metadata
object
Example
{
"warranty": "standard"
}

Inbound received with ledger movements.

Media typeapplication/json
object
balance
required
object
id
required
string format: uuid
organizationId
required
string format: uuid
environment
required
string
Allowed values: live test
productId
required
string format: uuid
locationId
required
string format: uuid
ownerId
required
string format: uuid
channelId
required
string format: uuid
onHand
required
number
available
required
number
reserved
required
number
committed
required
number
incoming
required
number
damaged
required
number
qualityControl
required
number
safetyStock
required
number
version
required
number
product
object
id
required
string format: uuid
name
required
string
sku
required
string
location
object
id
required
string format: uuid
name
required
string
code
required
string
type
required
string
Allowed values: warehouse store virtual
owner
object
id
required
string format: uuid
name
required
string
code
required
string
type
required
string
channel
object
id
required
string format: uuid
name
required
string
code
required
string
type
required
string
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
movements
required
Array<object>
object
id
required
string format: uuid
organizationId
required
string format: uuid
environment
required
string
Allowed values: live test
productId
required
string format: uuid
locationId
required
string format: uuid
ownerId
required
string format: uuid
channelId
required
string format: uuid
lotId
object
operation
required
string
Allowed values: receive adjust fulfill write_off return_stock move_state reconcile reserve commit release reservation_cancel expire transfer_out transfer_in transfer_cancel transfer_close inbound_expect inbound_receive inbound_close inbound_cancel outbound_allocate outbound_pick outbound_pack outbound_ship outbound_fulfill outbound_cancel composition_assemble_component composition_assemble_output composition_disassemble_input composition_disassemble_component
inventoryState
required
string
Allowed values: onHand available reserved committed incoming damaged qualityControl safetyStock
quantity
required
number
unitCode
object
unitQuantity
object
baseUnitCode
object
balanceBefore
required
number
balanceAfter
required
number
reason
object
referenceType
object
referenceId
object
source
object
idempotencyKey
object
metadata
object
key
additional properties
any
createdBy
object
actor
required
object
type
required
string
Allowed values: user api_key system
id
object
label
required
string
product
object
id
required
string format: uuid
name
required
string
sku
required
string
location
object
id
required
string format: uuid
name
required
string
code
required
string
type
required
string
Allowed values: warehouse store virtual
owner
object
id
required
string format: uuid
name
required
string
code
required
string
type
required
string
channel
object
id
required
string format: uuid
name
required
string
code
required
string
type
required
string
lot
object
id
required
string format: uuid
lotCode
required
string
batchCode
object
expiresAt
object
status
required
string
Allowed values: active archived
serials
required
Array<object>
object
id
required
string format: uuid
serialNumber
required
string
status
required
string
Allowed values: in_stock picked packed consumed written_off archived
productId
required
string format: uuid
locationId
required
string format: uuid
ownerId
required
string format: uuid
channelId
required
string format: uuid
lotId
object
createdAt
required
string format: date-time
inbound
required
object
id
required
string format: uuid
organizationId
required
string format: uuid
environment
required
string
Allowed values: live test
productId
required
string format: uuid
locationId
required
string format: uuid
ownerId
required
string format: uuid
channelId
required
string format: uuid
expectedQuantity
required
number
receivedQuantity
required
number
status
required
string
Allowed values: expected partiallyReceived received closed cancelled
supplierName
object
supplierReference
object
externalOrderType
object
externalOrderId
object
expectedAt
object
receivedAt
object
closedAt
object
cancelledAt
object
referenceType
object
referenceId
object
metadata
object
key
additional properties
any
version
required
number
createdBy
object
actor
required
object
type
required
string
Allowed values: user api_key system
id
object
label
required
string
product
object
id
required
string format: uuid
name
required
string
sku
required
string
location
object
id
required
string format: uuid
name
required
string
code
required
string
type
required
string
Allowed values: warehouse store virtual
owner
object
id
required
string format: uuid
name
required
string
code
required
string
type
required
string
channel
object
id
required
string format: uuid
name
required
string
code
required
string
type
required
string
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
Example
{
"inbound": {
"id": "99999999-9999-4999-8999-999999999999",
"organizationId": "11111111-1111-4111-8111-111111111111",
"environment": "test",
"productId": "22222222-2222-4222-8222-222222222222",
"locationId": "33333333-3333-4333-8333-333333333333",
"expectedQuantity": 20,
"receivedQuantity": 5,
"status": "partiallyReceived",
"supplierName": "Acme Supplies",
"supplierReference": "SUP-PO-1001",
"externalOrderType": "purchase_order",
"externalOrderId": "po_01JABC",
"expectedAt": "2026-07-10T12:00:00.000Z",
"receivedAt": null,
"closedAt": null,
"cancelledAt": null,
"referenceType": "purchase_order",
"referenceId": "po_01JABC",
"metadata": {
"receivingDock": "A"
},
"version": 1,
"createdBy": null,
"actor": {
"type": "api_key",
"id": "api-key-1",
"label": "Public test integration"
},
"product": {
"id": "22222222-2222-4222-8222-222222222222",
"name": "Black T-Shirt - Medium",
"sku": "TSHIRT-BLACK-M"
},
"location": {
"id": "33333333-3333-4333-8333-333333333333",
"name": "Main Warehouse",
"code": "MAIN-WH",
"type": "warehouse"
},
"lines": [
{
"id": "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb",
"organizationId": "11111111-1111-4111-8111-111111111111",
"environment": "test",
"outboundId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
"productId": "22222222-2222-4222-8222-222222222222",
"locationId": "33333333-3333-4333-8333-333333333333",
"requestedQuantity": 4,
"allocatedQuantity": 2,
"fulfilledQuantity": 0,
"pendingAllocationQuantity": 2,
"pendingFulfillmentQuantity": 2,
"product": {
"id": "22222222-2222-4222-8222-222222222222",
"name": "Black T-Shirt - Medium",
"sku": "TSHIRT-BLACK-M"
},
"location": {
"id": "33333333-3333-4333-8333-333333333333",
"name": "Main Warehouse",
"code": "MAIN-WH",
"type": "warehouse"
},
"createdAt": "2026-06-29T10:00:00.000Z",
"updatedAt": "2026-06-29T10:05:00.000Z"
}
],
"createdAt": "2026-06-29T10:00:00.000Z",
"updatedAt": "2026-06-29T10:05:00.000Z"
},
"balance": {
"id": "55555555-5555-4555-8555-555555555555",
"organizationId": "11111111-1111-4111-8111-111111111111",
"environment": "test",
"productId": "22222222-2222-4222-8222-222222222222",
"locationId": "33333333-3333-4333-8333-333333333333",
"onHand": 15,
"available": 15,
"reserved": 0,
"committed": 0,
"incoming": 15,
"damaged": 0,
"qualityControl": 0,
"safetyStock": 0,
"version": 1,
"product": {
"id": "22222222-2222-4222-8222-222222222222",
"name": "Black T-Shirt - Medium",
"sku": "TSHIRT-BLACK-M"
},
"location": {
"id": "33333333-3333-4333-8333-333333333333",
"name": "Main Warehouse",
"code": "MAIN-WH",
"type": "warehouse"
},
"createdAt": "2026-06-29T10:00:00.000Z",
"updatedAt": "2026-06-29T10:00:00.000Z"
},
"movements": [
{
"id": "88888888-8888-4888-8888-888888888888",
"organizationId": "11111111-1111-4111-8111-111111111111",
"environment": "test",
"productId": "22222222-2222-4222-8222-222222222222",
"locationId": "33333333-3333-4333-8333-333333333333",
"lotId": "12121212-1212-4212-8212-121212121212",
"operation": "inbound_receive",
"inventoryState": "incoming",
"quantity": -5,
"unitCode": "CASE",
"unitQuantity": 1,
"baseUnitCode": "EA",
"balanceBefore": 20,
"balanceAfter": 15,
"reason": "Inbound stock received",
"referenceType": "inbound",
"referenceId": "99999999-9999-4999-8999-999999999999",
"source": "api_key",
"idempotencyKey": "receive-unique-key",
"metadata": {
"batch": "A1"
},
"actor": {
"type": "api_key",
"id": "api-key-1",
"label": "Public test integration"
},
"product": {
"id": "22222222-2222-4222-8222-222222222222",
"name": "Black T-Shirt - Medium",
"sku": "TSHIRT-BLACK-M"
},
"location": {
"id": "33333333-3333-4333-8333-333333333333",
"name": "Main Warehouse",
"code": "MAIN-WH",
"type": "warehouse"
},
"lot": {
"id": "12121212-1212-4212-8212-121212121212",
"lotCode": "LOT-2026-001",
"batchCode": "BATCH-A",
"expiresAt": "2027-07-01T00:00:00.000Z",
"status": "active"
},
"serials": [
{
"id": "14141414-1414-4414-8414-141414141414",
"serialNumber": "SN-2026-0001",
"status": "in_stock",
"productId": "22222222-2222-4222-8222-222222222222",
"locationId": "33333333-3333-4333-8333-333333333333",
"lotId": "12121212-1212-4212-8212-121212121212"
}
],
"createdAt": "2026-06-29T10:00:00.000Z"
}
]
}

The organization has exhausted its monthly public API request quota.

The organization has exhausted an applicable monthly billing quota.

Media typeapplication/json
Examples
{
"error": {
"code": "PLAN_LIMIT_EXCEEDED",
"message": "Plan limit exceeded for billable_inventory_operations",
"requestId": "req_123",
"details": {
"entitlementKey": "billable_inventory_operations",
"scope": "environment",
"environment": "live",
"configured": true,
"limit": "2000",
"used": "2000",
"requested": "1",
"currentPlan": {
"code": "free",
"version": 1
},
"requiredPlan": {
"code": "starter",
"version": 1,
"requiresOverride": false
}
}
}
}