curl --request POST \
--url https://app.stockshift.io/api/v1/manufacturing/builds/{build}/labels \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"serials": [
"<string>"
],
"lot": "<string>",
"carton_quantity": "<string>"
}
'import requests
url = "https://app.stockshift.io/api/v1/manufacturing/builds/{build}/labels"
payload = {
"serials": ["<string>"],
"lot": "<string>",
"carton_quantity": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.stockshift.io/api/v1/manufacturing/builds/{build}/labels",
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([
'serials' => [
'<string>'
],
'lot' => '<string>',
'carton_quantity' => '<string>'
]),
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://app.stockshift.io/api/v1/manufacturing/builds/{build}/labels"
payload := strings.NewReader("{\n \"serials\": [\n \"<string>\"\n ],\n \"lot\": \"<string>\",\n \"carton_quantity\": \"<string>\"\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))
}"<string>"{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"errors": {},
"feature": "<string>",
"reason": "<string>",
"attempts_left": 123,
"rule_ids": [
"<string>"
],
"witness": "<string>",
"blind_recount": true,
"flags": [
{
"flag": "<string>",
"facts": {},
"choices": [
"<string>"
]
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"errors": {},
"feature": "<string>",
"reason": "<string>",
"attempts_left": 123,
"rule_ids": [
"<string>"
],
"witness": "<string>",
"blind_recount": true,
"flags": [
{
"flag": "<string>",
"facts": {},
"choices": [
"<string>"
]
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"errors": {},
"feature": "<string>",
"reason": "<string>",
"attempts_left": 123,
"rule_ids": [
"<string>"
],
"witness": "<string>",
"blind_recount": true,
"flags": [
{
"flag": "<string>",
"facts": {},
"choices": [
"<string>"
]
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"errors": {},
"feature": "<string>",
"reason": "<string>",
"attempts_left": 123,
"rule_ids": [
"<string>"
],
"witness": "<string>",
"blind_recount": true,
"flags": [
{
"flag": "<string>",
"facts": {},
"choices": [
"<string>"
]
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"errors": {},
"feature": "<string>",
"reason": "<string>",
"attempts_left": 123,
"rule_ids": [
"<string>"
],
"witness": "<string>",
"blind_recount": true,
"flags": [
{
"flag": "<string>",
"facts": {},
"choices": [
"<string>"
]
}
]
}Imprime etiquetas para las unidades de una orden de fabricación
{build} es el ID de la orden de fabricación. Imprime una pieza por cada número de serie
de la producción, o por cada caja de su lote de producción, numeradas n de N
a lo largo de la orden. La respuesta es un PDF con una página por pieza. Cuando
no se indican números de serie ni lote, se usan los propios de una orden completada.
Los números de serie indicados deben coincidir con la cantidad que produce la orden. Una
etiqueta muestra el artículo, su número de serie o lote y el día en que se liberó
la orden, o el día en que se fabricó una vez completada. También
muestra la orden, la revisión de la ruta y el centro de trabajo que la ejecuta.
Al escanear la etiqueta se ve el resto. Imprímela al 100% en papel de 4x6.
Las piezas del conjunto se listan en /labels/sets. La impresión se
registra en el historial de auditoría. Requiere los permisos manufacturing.builds.view y
labels.print y un token con manufacturing:read y
labels:write.
curl --request POST \
--url https://app.stockshift.io/api/v1/manufacturing/builds/{build}/labels \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"serials": [
"<string>"
],
"lot": "<string>",
"carton_quantity": "<string>"
}
'import requests
url = "https://app.stockshift.io/api/v1/manufacturing/builds/{build}/labels"
payload = {
"serials": ["<string>"],
"lot": "<string>",
"carton_quantity": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.stockshift.io/api/v1/manufacturing/builds/{build}/labels",
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([
'serials' => [
'<string>'
],
'lot' => '<string>',
'carton_quantity' => '<string>'
]),
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://app.stockshift.io/api/v1/manufacturing/builds/{build}/labels"
payload := strings.NewReader("{\n \"serials\": [\n \"<string>\"\n ],\n \"lot\": \"<string>\",\n \"carton_quantity\": \"<string>\"\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))
}"<string>"{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"errors": {},
"feature": "<string>",
"reason": "<string>",
"attempts_left": 123,
"rule_ids": [
"<string>"
],
"witness": "<string>",
"blind_recount": true,
"flags": [
{
"flag": "<string>",
"facts": {},
"choices": [
"<string>"
]
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"errors": {},
"feature": "<string>",
"reason": "<string>",
"attempts_left": 123,
"rule_ids": [
"<string>"
],
"witness": "<string>",
"blind_recount": true,
"flags": [
{
"flag": "<string>",
"facts": {},
"choices": [
"<string>"
]
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"errors": {},
"feature": "<string>",
"reason": "<string>",
"attempts_left": 123,
"rule_ids": [
"<string>"
],
"witness": "<string>",
"blind_recount": true,
"flags": [
{
"flag": "<string>",
"facts": {},
"choices": [
"<string>"
]
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"errors": {},
"feature": "<string>",
"reason": "<string>",
"attempts_left": 123,
"rule_ids": [
"<string>"
],
"witness": "<string>",
"blind_recount": true,
"flags": [
{
"flag": "<string>",
"facts": {},
"choices": [
"<string>"
]
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"errors": {},
"feature": "<string>",
"reason": "<string>",
"attempts_left": 123,
"rule_ids": [
"<string>"
],
"witness": "<string>",
"blind_recount": true,
"flags": [
{
"flag": "<string>",
"facts": {},
"choices": [
"<string>"
]
}
]
}Autorizaciones
Para tus propios scripts e integraciones de servidor a servidor. Crea una clave en la app en Configuración > Acceso > Claves de API y cópiala entonces, porque se muestra una sola vez. Envíala como Authorization: Bearer <key>. La clave actúa como el miembro que la creó, en la organización en la que se creó. Una llamada necesita el permiso del miembro y uno de los alcances de la clave, como inventory:read o sales:write. Una clave con * tiene todos los alcances.
Parámetros de ruta
El ID de la orden de fabricación.
Cuerpo
Las etiquetas a imprimir para las unidades que fabrica una orden de fabricación.
Los números de serie de la salida, una etiqueta por unidad producida. Si no envías este campo ni lot, se usan los números de serie o el lote propios de una fabricación completada.
25064El lote de la salida, para un artículo con seguimiento por lote. No se puede enviar con serials.
64Cuánto contiene una caja de cartón del lote, en la unidad base del artículo. Si se omite, toda la producción es una sola caja.
^(?!0+(\.0+)?$)\d{1,20}(\.\d{1,20})?$La orientación de la etiqueta: portrait (el valor predeterminado) o landscape.
portrait, landscape Respuesta
Las etiquetas como PDF, una página por pieza.
The response is of type file.
¿Esta página le ayudó?