Fulfill allocated outbound stock
POST
/v1/organizations/{organizationId}/outbounds/{outboundId}/fulfill
API key scope: inventory:write.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”outboundId
required
string
Header Parameters
Section titled “Header Parameters”X-Request-Id
string
Optional client request id returned in structured errors.
Idempotency-Key
required
string
Unique key used to safely retry outbound fulfillment.
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
ownerId
Inventory owner id. Defaults to the organization default owner.
string
channelId
Inventory channel id. Defaults to the organization default channel.
string
serialIds
Existing serial ids to apply to this operation.
Array<string>
serialNumbers
Existing serial numbers to apply to this operation.
Array<string>
quantity
Quantity to fulfill. Omit to fulfill all allocated pending quantity.
number
reason
string
Example
Shipment createdmetadata
object
Example
{ "carrier": "UPS"}Responses
Section titled “Responses”Outbound fulfilled with ledger movements.
Media typeapplication/json
object
balance
required
object
id
required
string format: uuid
organizationId
required
string format: uuid
environment
required
string
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
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
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
inventoryState
required
string
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
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
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
serials
required
Array<object>
object
id
required
string format: uuid
serialNumber
required
string
status
required
string
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
outbound
required
object
id
required
string format: uuid
organizationId
required
string format: uuid
environment
required
string
productId
required
string format: uuid
locationId
required
string format: uuid
ownerId
required
string format: uuid
channelId
required
string format: uuid
requestedQuantity
required
number
allocatedQuantity
required
number
pickedQuantity
required
number
packedQuantity
required
number
fulfilledQuantity
required
number
pendingAllocationQuantity
required
number
pendingPickQuantity
required
number
pendingPackQuantity
required
number
pendingFulfillmentQuantity
required
number
status
required
string
customerName
object
externalOrderType
object
externalOrderId
object
expectedShipAt
object
allocatedAt
object
fulfilledAt
object
cancelledAt
object
referenceType
object
referenceId
object
metadata
object
key
additional properties
any
version
required
number
createdBy
object
actor
required
object
type
required
string
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
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
lines
required
Array<object>
object
id
required
string format: uuid
organizationId
required
string format: uuid
environment
required
string
outboundId
required
string format: uuid
productId
required
string format: uuid
locationId
required
string format: uuid
ownerId
required
string format: uuid
channelId
required
string format: uuid
requestedQuantity
required
number
allocatedQuantity
required
number
pickedQuantity
required
number
packedQuantity
required
number
fulfilledQuantity
required
number
pendingAllocationQuantity
required
number
pendingPickQuantity
required
number
pendingPackQuantity
required
number
pendingFulfillmentQuantity
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
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
serials
required
Array<object>
object
id
required
string format: uuid
serialId
required
string format: uuid
pickedAt
object
packedAt
object
shippedAt
object
serial
required
object
id
required
string format: uuid
serialNumber
required
string
status
required
string
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
updatedAt
required
string format: date-time
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
balances
required
Array<object>
object
id
required
string format: uuid
organizationId
required
string format: uuid
environment
required
string
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
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
{ "outbound": { "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa", "organizationId": "11111111-1111-4111-8111-111111111111", "environment": "test", "productId": "22222222-2222-4222-8222-222222222222", "locationId": "33333333-3333-4333-8333-333333333333", "requestedQuantity": 4, "allocatedQuantity": 2, "pickedQuantity": 1, "packedQuantity": 0, "fulfilledQuantity": 0, "pendingAllocationQuantity": 2, "pendingPickQuantity": 1, "pendingPackQuantity": 1, "pendingFulfillmentQuantity": 2, "status": "partiallyPicked", "customerName": "Acme Customer", "externalOrderType": "sales_order", "externalOrderId": "so_01JABC", "expectedShipAt": "2026-07-10T12:00:00.000Z", "allocatedAt": "2026-06-29T10:05:00.000Z", "fulfilledAt": null, "cancelledAt": null, "referenceType": "sales_order", "referenceId": "so_01JABC", "metadata": { "channel": "web" }, "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, "pickedQuantity": 1, "packedQuantity": 0, "fulfilledQuantity": 0, "pendingAllocationQuantity": 2, "pendingPickQuantity": 1, "pendingPackQuantity": 1, "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" }, "serials": [ { "id": "15151515-1515-4515-8515-151515151515", "serialId": "14141414-1414-4414-8414-141414141414", "pickedAt": "2026-07-01T12:05:00.000Z", "packedAt": null, "shippedAt": null, "serial": { "id": "14141414-1414-4414-8414-141414141414", "serialNumber": "SN-2026-0001", "status": "picked", "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", "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": 10, "available": 8, "reserved": 0, "committed": 2, "incoming": 0, "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" }, "balances": [ { "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": 10, "available": 8, "reserved": 0, "committed": 2, "incoming": 0, "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": "outbound_allocate", "inventoryState": "available", "quantity": -2, "unitCode": "CASE", "unitQuantity": 1, "baseUnitCode": "EA", "balanceBefore": 10, "balanceAfter": 8, "reason": "Allocate outbound stock", "referenceType": "outbound", "referenceId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa", "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 } } }}{ "error": { "code": "PLAN_LIMIT_EXCEEDED", "message": "Plan limit exceeded for api_requests", "requestId": "req_123", "details": { "entitlementKey": "api_requests", "scope": "environment", "environment": "live", "configured": true, "limit": "50000", "used": "50000", "requested": "1", "currentPlan": { "code": "free", "version": 1 }, "requiredPlan": { "code": "starter", "version": 1, "requiresOverride": false } } }}