curl --request POST \
--url https://{companyName}.api.joinluminous.com/external/api/v1/receiving-reports/items/{receivingReportItemId}/correct-quantity \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"correct_qty": 1,
"preview": false,
"reason": "<string>",
"confirm_shelf_only": false,
"unit_cost": 1
}
'import requests
url = "https://{companyName}.api.joinluminous.com/external/api/v1/receiving-reports/items/{receivingReportItemId}/correct-quantity"
payload = {
"correct_qty": 1,
"preview": False,
"reason": "<string>",
"confirm_shelf_only": False,
"unit_cost": 1
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
correct_qty: 1,
preview: false,
reason: '<string>',
confirm_shelf_only: false,
unit_cost: 1
})
};
fetch('https://{companyName}.api.joinluminous.com/external/api/v1/receiving-reports/items/{receivingReportItemId}/correct-quantity', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{companyName}.api.joinluminous.com/external/api/v1/receiving-reports/items/{receivingReportItemId}/correct-quantity",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'correct_qty' => 1,
'preview' => false,
'reason' => '<string>',
'confirm_shelf_only' => false,
'unit_cost' => 1
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{companyName}.api.joinluminous.com/external/api/v1/receiving-reports/items/{receivingReportItemId}/correct-quantity"
payload := strings.NewReader("{\n \"correct_qty\": 1,\n \"preview\": false,\n \"reason\": \"<string>\",\n \"confirm_shelf_only\": false,\n \"unit_cost\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{companyName}.api.joinluminous.com/external/api/v1/receiving-reports/items/{receivingReportItemId}/correct-quantity")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"correct_qty\": 1,\n \"preview\": false,\n \"reason\": \"<string>\",\n \"confirm_shelf_only\": false,\n \"unit_cost\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{companyName}.api.joinluminous.com/external/api/v1/receiving-reports/items/{receivingReportItemId}/correct-quantity")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"correct_qty\": 1,\n \"preview\": false,\n \"reason\": \"<string>\",\n \"confirm_shelf_only\": false,\n \"unit_cost\": 1\n}"
response = http.request(request)
puts response.read_body{
"success": "<string>",
"data": {
"receiving_report_id": 123,
"receiving_report_item_id": 123,
"posted_qty": 123,
"correct_qty": 123,
"delta": 123,
"direction": "increase",
"prefer_second_receiving_report": true,
"sku_id": 123,
"warehouse_id": 123,
"location_id": 123,
"lot_id": 123,
"unit_cost": 123,
"uom_id": 123,
"qty_log_transaction": "<string>",
"cost_layer_note": "<string>",
"core_note": "<string>",
"confidence": "high",
"warnings": [
"<string>"
],
"void_and_re_receive_recommended": true,
"suspect_fulfillment_orders": [
{
"fulfillment_order_id": 123,
"order_status": "<string>",
"pushed_at": "<string>",
"is_pushed": true,
"sales_order_id": 123,
"over_released": 123,
"peg_ids": [
123
],
"can_safely_reverse": true
}
],
"suspect_pegs": [
{
"peg_id": 123,
"sales_order_id": 123,
"sales_order_item_id": 123,
"quantity_allocated": 123,
"quantity_released": 123,
"expected_released": 123,
"over_released": 123,
"fulfillment_order_id": 123,
"can_safely_reverse": true
}
],
"preview": true,
"applied": true,
"adjustment_id": 123,
"is_correction": true,
"corrects_type": "<string>",
"corrects_id": 123
}
}{
"message": "<string>"
}{
"message": "<string>"
}Correct a posted receiving-report line quantity
Preview or apply a quantity correction for a posted receiving-report line, identified by its receiving-report item id.
Rather than rewriting the receipt line, this posts an inventory adjustment beside the original
receipt (it does not change the receiving-report line, the purchase-order received_qty, or peg
quantity_released). Use preview=true first to measure the impact — including any fulfillment orders
and pegs that may have over-released against the overstated receipt — before applying.
Decreases (correct_qty < posted) peel the newest on-hand back off via a negative adjustment and
require sufficient available on-hand to reverse. Increases (correct_qty > posted) only add
on-hand; they do not advance PO received quantity, pegs, or receipt cost, so a second receiving
report is preferred. Applying an increase therefore requires confirm_shelf_only=true.
The accounting period for the current date must be open, and the receiving report must not be voided.
curl --request POST \
--url https://{companyName}.api.joinluminous.com/external/api/v1/receiving-reports/items/{receivingReportItemId}/correct-quantity \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"correct_qty": 1,
"preview": false,
"reason": "<string>",
"confirm_shelf_only": false,
"unit_cost": 1
}
'import requests
url = "https://{companyName}.api.joinluminous.com/external/api/v1/receiving-reports/items/{receivingReportItemId}/correct-quantity"
payload = {
"correct_qty": 1,
"preview": False,
"reason": "<string>",
"confirm_shelf_only": False,
"unit_cost": 1
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
correct_qty: 1,
preview: false,
reason: '<string>',
confirm_shelf_only: false,
unit_cost: 1
})
};
fetch('https://{companyName}.api.joinluminous.com/external/api/v1/receiving-reports/items/{receivingReportItemId}/correct-quantity', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{companyName}.api.joinluminous.com/external/api/v1/receiving-reports/items/{receivingReportItemId}/correct-quantity",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'correct_qty' => 1,
'preview' => false,
'reason' => '<string>',
'confirm_shelf_only' => false,
'unit_cost' => 1
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{companyName}.api.joinluminous.com/external/api/v1/receiving-reports/items/{receivingReportItemId}/correct-quantity"
payload := strings.NewReader("{\n \"correct_qty\": 1,\n \"preview\": false,\n \"reason\": \"<string>\",\n \"confirm_shelf_only\": false,\n \"unit_cost\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{companyName}.api.joinluminous.com/external/api/v1/receiving-reports/items/{receivingReportItemId}/correct-quantity")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"correct_qty\": 1,\n \"preview\": false,\n \"reason\": \"<string>\",\n \"confirm_shelf_only\": false,\n \"unit_cost\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{companyName}.api.joinluminous.com/external/api/v1/receiving-reports/items/{receivingReportItemId}/correct-quantity")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"correct_qty\": 1,\n \"preview\": false,\n \"reason\": \"<string>\",\n \"confirm_shelf_only\": false,\n \"unit_cost\": 1\n}"
response = http.request(request)
puts response.read_body{
"success": "<string>",
"data": {
"receiving_report_id": 123,
"receiving_report_item_id": 123,
"posted_qty": 123,
"correct_qty": 123,
"delta": 123,
"direction": "increase",
"prefer_second_receiving_report": true,
"sku_id": 123,
"warehouse_id": 123,
"location_id": 123,
"lot_id": 123,
"unit_cost": 123,
"uom_id": 123,
"qty_log_transaction": "<string>",
"cost_layer_note": "<string>",
"core_note": "<string>",
"confidence": "high",
"warnings": [
"<string>"
],
"void_and_re_receive_recommended": true,
"suspect_fulfillment_orders": [
{
"fulfillment_order_id": 123,
"order_status": "<string>",
"pushed_at": "<string>",
"is_pushed": true,
"sales_order_id": 123,
"over_released": 123,
"peg_ids": [
123
],
"can_safely_reverse": true
}
],
"suspect_pegs": [
{
"peg_id": 123,
"sales_order_id": 123,
"sales_order_item_id": 123,
"quantity_allocated": 123,
"quantity_released": 123,
"expected_released": 123,
"over_released": 123,
"fulfillment_order_id": 123,
"can_safely_reverse": true
}
],
"preview": true,
"applied": true,
"adjustment_id": 123,
"is_correction": true,
"corrects_type": "<string>",
"corrects_id": 123
}
}{
"message": "<string>"
}{
"message": "<string>"
}Authorizations
Authenticate using a bearer token. To create a token, navigate to /settings/api-tokens and click Create API Token.
Path Parameters
Receiving report item (line) ID
Body
The corrected quantity for the line, expressed in the same basis (base units) as the
line's received_qty. Must differ from the currently posted quantity.
x >= 0When true, measure the correction and its impact only — do not post the adjustment.
Optional remarks stored on the adjustment.
1000Required (true) to apply an increase via adjustment, acknowledging that only on-hand
is corrected — PO received quantity, pegs, and receipt cost are not advanced. Ignored for
decreases.
Override unit cost for the adjustment. Defaults to the receipt line's unit_price when
omitted. Chiefly relevant to positive (increase) adjustments, which may open a new cost layer.
x >= 0Response
Correction preview (preview=true) or the posted adjustment result. The data object reports the
computed delta and the peg / fulfillment-order over-release impact; when applied it also includes
the posted adjustment id and correction linkage.