Complete an operations group
curl --request POST \
--url https://api.bold-factory.com/v1/production/operationsGroups/{groupReference}/complete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"completedQuantity": 123,
"operations": [
{
"operationId": "<string>",
"quantity": 123
}
]
}
'import requests
url = "https://api.bold-factory.com/v1/production/operationsGroups/{groupReference}/complete"
payload = {
"completedQuantity": 123,
"operations": [
{
"operationId": "<string>",
"quantity": 123
}
]
}
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({completedQuantity: 123, operations: [{operationId: '<string>', quantity: 123}]})
};
fetch('https://api.bold-factory.com/v1/production/operationsGroups/{groupReference}/complete', 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://api.bold-factory.com/v1/production/operationsGroups/{groupReference}/complete",
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([
'completedQuantity' => 123,
'operations' => [
[
'operationId' => '<string>',
'quantity' => 123
]
]
]),
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://api.bold-factory.com/v1/production/operationsGroups/{groupReference}/complete"
payload := strings.NewReader("{\n \"completedQuantity\": 123,\n \"operations\": [\n {\n \"operationId\": \"<string>\",\n \"quantity\": 123\n }\n ]\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://api.bold-factory.com/v1/production/operationsGroups/{groupReference}/complete")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"completedQuantity\": 123,\n \"operations\": [\n {\n \"operationId\": \"<string>\",\n \"quantity\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bold-factory.com/v1/production/operationsGroups/{groupReference}/complete")
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 \"completedQuantity\": 123,\n \"operations\": [\n {\n \"operationId\": \"<string>\",\n \"quantity\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"type": "https://api.bold-factory.com/errors/COMMON.QUERY.FILTER_PARSING_FAILED",
"title": "Filter parsing failed",
"status": 400,
"detail": "The filter string could not be parsed or contains invalid column references: CreatedBy column does not exist.",
"instance": "POST /v1/items/families/search",
"code": "COMMON.QUERY.FILTER_PARSING_FAILED"
}{
"type": "https://www.rfc-editor.org/rfc/rfc9110.html#name-401-unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "You are not authenticated.",
"instance": "GET /v1/items/skus"
}{
"type": "https://api.bold-factory.com/errors/COMMON.AUTH.MISSING_PERMISSIONS",
"title": "Missing permissions",
"status": 403,
"detail": "Missing permissions: Items.Families.Read",
"instance": "GET /v1/maintenance/assets",
"code": "COMMON.AUTH.MISSING_PERMISSIONS"
}{
"type": "https://api.bold-factory.com/errors/COMMON.ENTITY.NOT_FOUND",
"title": "The entity was not found.",
"status": 404,
"detail": "Entity Family (pr_72f13bd8218h9823dfj9) was not found.",
"instance": "DELETE /v1/items/families/pr_72f13bd8218h9823dfj9",
"code": "COMMON.ENTITY.NOT_FOUND"
}{
"type": "https://api.bold-factory.com/errors/PRODUCTION.EMPLOYEE.USUAL_WORKSTATION_ALREADY_SET",
"title": "Usual workstation already set",
"status": 409,
"detail": "This employee (emp_hf9843hf84fdi5us900) already has workstation res_usf8sdf8dfh2bnd as a usual workstation",
"instance": "POST /v1/people/employees/emp_hf9843hf84fdi5us900/workstations",
"code": "PRODUCTION.EMPLOYEE.USUAL_WORKSTATION_ALREADY_SET"
}{
"type": "https://api.bold-factory.com/errors/PLANNING.PURCHASE_ORDER.CANNOT_MODIFY_CANCELLED_LINE",
"title": "Cannot modify cancelled line",
"status": 422,
"detail": "A cancelled line can't be modified.",
"instance": "PUT /v1/planning/purchaseOrders/po_sd786f78s78hgf8hg/lines/pol_n7893ytw3et7w4wfo5rf",
"code": "PLANNING.PURCHASE_ORDER.CANNOT_MODIFY_CANCELLED_LINE"
}{
"type": "https://api.bold-factory.com/errors/COMMON.RATE_LIMIT.EXCEEDED",
"title": "Rate limit exceeded",
"status": 429,
"detail": "The request rate limit for this tenant has been exceeded. Retry after the indicated delay.",
"instance": "GET /v1/admin/tenants/self",
"code": "COMMON.RATE_LIMIT.EXCEEDED",
"parameters": {}
}OperationsGroups
Complete an operations group
Requires Production.Orders.Work permissions. CompletedQuantity is the absolute final group quantity in the shared SKU base unit. Operations must contain the complete quantity breakdown for every group member exactly once.
POST
/
v1
/
production
/
operationsGroups
/
{groupReference}
/
complete
Complete an operations group
curl --request POST \
--url https://api.bold-factory.com/v1/production/operationsGroups/{groupReference}/complete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"completedQuantity": 123,
"operations": [
{
"operationId": "<string>",
"quantity": 123
}
]
}
'import requests
url = "https://api.bold-factory.com/v1/production/operationsGroups/{groupReference}/complete"
payload = {
"completedQuantity": 123,
"operations": [
{
"operationId": "<string>",
"quantity": 123
}
]
}
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({completedQuantity: 123, operations: [{operationId: '<string>', quantity: 123}]})
};
fetch('https://api.bold-factory.com/v1/production/operationsGroups/{groupReference}/complete', 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://api.bold-factory.com/v1/production/operationsGroups/{groupReference}/complete",
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([
'completedQuantity' => 123,
'operations' => [
[
'operationId' => '<string>',
'quantity' => 123
]
]
]),
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://api.bold-factory.com/v1/production/operationsGroups/{groupReference}/complete"
payload := strings.NewReader("{\n \"completedQuantity\": 123,\n \"operations\": [\n {\n \"operationId\": \"<string>\",\n \"quantity\": 123\n }\n ]\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://api.bold-factory.com/v1/production/operationsGroups/{groupReference}/complete")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"completedQuantity\": 123,\n \"operations\": [\n {\n \"operationId\": \"<string>\",\n \"quantity\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bold-factory.com/v1/production/operationsGroups/{groupReference}/complete")
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 \"completedQuantity\": 123,\n \"operations\": [\n {\n \"operationId\": \"<string>\",\n \"quantity\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"type": "https://api.bold-factory.com/errors/COMMON.QUERY.FILTER_PARSING_FAILED",
"title": "Filter parsing failed",
"status": 400,
"detail": "The filter string could not be parsed or contains invalid column references: CreatedBy column does not exist.",
"instance": "POST /v1/items/families/search",
"code": "COMMON.QUERY.FILTER_PARSING_FAILED"
}{
"type": "https://www.rfc-editor.org/rfc/rfc9110.html#name-401-unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "You are not authenticated.",
"instance": "GET /v1/items/skus"
}{
"type": "https://api.bold-factory.com/errors/COMMON.AUTH.MISSING_PERMISSIONS",
"title": "Missing permissions",
"status": 403,
"detail": "Missing permissions: Items.Families.Read",
"instance": "GET /v1/maintenance/assets",
"code": "COMMON.AUTH.MISSING_PERMISSIONS"
}{
"type": "https://api.bold-factory.com/errors/COMMON.ENTITY.NOT_FOUND",
"title": "The entity was not found.",
"status": 404,
"detail": "Entity Family (pr_72f13bd8218h9823dfj9) was not found.",
"instance": "DELETE /v1/items/families/pr_72f13bd8218h9823dfj9",
"code": "COMMON.ENTITY.NOT_FOUND"
}{
"type": "https://api.bold-factory.com/errors/PRODUCTION.EMPLOYEE.USUAL_WORKSTATION_ALREADY_SET",
"title": "Usual workstation already set",
"status": 409,
"detail": "This employee (emp_hf9843hf84fdi5us900) already has workstation res_usf8sdf8dfh2bnd as a usual workstation",
"instance": "POST /v1/people/employees/emp_hf9843hf84fdi5us900/workstations",
"code": "PRODUCTION.EMPLOYEE.USUAL_WORKSTATION_ALREADY_SET"
}{
"type": "https://api.bold-factory.com/errors/PLANNING.PURCHASE_ORDER.CANNOT_MODIFY_CANCELLED_LINE",
"title": "Cannot modify cancelled line",
"status": 422,
"detail": "A cancelled line can't be modified.",
"instance": "PUT /v1/planning/purchaseOrders/po_sd786f78s78hgf8hg/lines/pol_n7893ytw3et7w4wfo5rf",
"code": "PLANNING.PURCHASE_ORDER.CANNOT_MODIFY_CANCELLED_LINE"
}{
"type": "https://api.bold-factory.com/errors/COMMON.RATE_LIMIT.EXCEEDED",
"title": "Rate limit exceeded",
"status": 429,
"detail": "The request rate limit for this tenant has been exceeded. Retry after the indicated delay.",
"instance": "GET /v1/admin/tenants/self",
"code": "COMMON.RATE_LIMIT.EXCEEDED",
"parameters": {}
}Autorizaciones
JWTApiKey
Use a valid JWT token in the Authorization header with the format 'Bearer {token}'
Parámetros de ruta
Cuerpo
application/json
Respuesta
No Content