curl --request POST \
--url https://clarus-api.com/api/positive_adjustments/extra_stock_on_storage_unit_found \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Clarus-Subdomain: <api-key>' \
--data '
{
"description": "Extra units found on pallet",
"quantity": 5,
"stock_id": 4521
}
'import requests
url = "https://clarus-api.com/api/positive_adjustments/extra_stock_on_storage_unit_found"
payload = {
"description": "Extra units found on pallet",
"quantity": 5,
"stock_id": 4521
}
headers = {
"Authorization": "Bearer <token>",
"X-Clarus-Subdomain": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'X-Clarus-Subdomain': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({description: 'Extra units found on pallet', quantity: 5, stock_id: 4521})
};
fetch('https://clarus-api.com/api/positive_adjustments/extra_stock_on_storage_unit_found', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"id": "4521",
"type": "stocks",
"attributes": {
"description": null,
"fifo-date": "2026-09-02T08:15:00.000+01:00",
"hold-status-id": null,
"pick-priority": 1,
"quantity": "29.0",
"status": "AVAILABLE"
}
}
}{
"error": "<string>"
}{
"errors": [
{
"code": 123,
"symbol": "<string>",
"details": "<string>",
"source": "<string>",
"context": {}
}
]
}{
"errors": [
{
"code": 123,
"symbol": "<string>",
"details": "<string>",
"source": "<string>",
"context": {}
}
]
}Increase stock quantity (positive adjustment)
Increase the quantity of an existing stock record in place, keeping its ID, location, storage unit, FIFO date and other attributes. Despite the endpoint name, this works for any stock record, whether or not it is on a storage unit. The increase is recorded as a positive adjustment transaction. To add new stock lines instead, use POST /api/positive_adjustments/create_stocks.
curl --request POST \
--url https://clarus-api.com/api/positive_adjustments/extra_stock_on_storage_unit_found \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Clarus-Subdomain: <api-key>' \
--data '
{
"description": "Extra units found on pallet",
"quantity": 5,
"stock_id": 4521
}
'import requests
url = "https://clarus-api.com/api/positive_adjustments/extra_stock_on_storage_unit_found"
payload = {
"description": "Extra units found on pallet",
"quantity": 5,
"stock_id": 4521
}
headers = {
"Authorization": "Bearer <token>",
"X-Clarus-Subdomain": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'X-Clarus-Subdomain': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({description: 'Extra units found on pallet', quantity: 5, stock_id: 4521})
};
fetch('https://clarus-api.com/api/positive_adjustments/extra_stock_on_storage_unit_found', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"id": "4521",
"type": "stocks",
"attributes": {
"description": null,
"fifo-date": "2026-09-02T08:15:00.000+01:00",
"hold-status-id": null,
"pick-priority": 1,
"quantity": "29.0",
"status": "AVAILABLE"
}
}
}{
"error": "<string>"
}{
"errors": [
{
"code": 123,
"symbol": "<string>",
"details": "<string>",
"source": "<string>",
"context": {}
}
]
}{
"errors": [
{
"code": 123,
"symbol": "<string>",
"details": "<string>",
"source": "<string>",
"context": {}
}
]
}Request Structure
{
"description": "Extra units found on pallet",
"quantity": 5,
"stock_id": 4521,
"reason_code_id": 4
}
Key Fields
| Field | Required | Description |
|---|---|---|
stock_id | Yes | ID of the existing stock record to increase |
quantity | Yes | Quantity to add (must be > 0); this is the increase, not the new total |
description | Yes | Free-text reason for the adjustment (audit trail) |
reason_code_id | No | positive_adjustment reason code; required if the account enforces one |
serial_numbers | Conditional | One per added unit when the stock has full serial number tracking |
Behavior
- The stock must have status
AVAILABLEor be on hold; allocated, picked and in-transit stock cannot be adjusted. - The stock’s quantity increases by
quantity, and the stock balance for its account, product and warehouse increases with it. - Returns the updated stock record.
Error Codes
| Code | Symbol | Description |
|---|---|---|
| 134 | cant_adjust_allocated_stock | Stock is not available or on hold |
| 228 | incorrect_reason_code_type | Reason code is not a positive_adjustment reason code |
| 230 | reason_code_missing | No reason code was sent but the account enforces positive adjustment reason codes |
| 229 | reason_code_account_mismatch | Reason code is restricted to other accounts |
| 339 | serial_numbers_quantity_is_not_equal_to_stock_quantity | Serial-tracked product sent with a number of serial numbers that does not match the quantity |
| 341 | serial_numbers_already_in_stock | A serial number is already in stock for the product |
| 342 | serial_numbers_not_unique | The same serial number was sent more than once |
Authorizations
OAuth 2.0 authentication. Use the client credentials or authorization code flow to obtain an access token.
The subdomain/tenant name identifying which tenant's data to access. Required for all API requests.
Body
Request body for increasing the quantity of an existing stock record. The body is sent as plain JSON, not wrapped in a JSON:API data envelope.
Free-text reason for the adjustment, recorded on the transaction
Quantity to ADD to the stock's current quantity (not the new total)
x > 0ID of the existing stock record to increase
ID of a reason code with reason_type positive_adjustment, recorded on the transaction for the audit trail. Required when the stock's account has enforce_positive_adjustment_reason_code enabled.
Serial numbers for the added units. Required when the stock has full serial number tracking, in which case exactly one serial number per added unit must be sent (quantity rounded up). Serial numbers must be unique and must not already be in stock for the product.
Response
Stock quantity increased successfully
The updated stock as a JSON:API resource. Attribute and relationship keys are dasherized (e.g. fifo-date, storage-unit) and decimal values such as quantity are serialized as strings.
Show child attributes
Show child attributes

