curl --request POST \
--url https://api.arcuserp.com/v1/packages/{id}/items/{item_id}/move \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"target_package_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 2
}
'import requests
url = "https://api.arcuserp.com/v1/packages/{id}/items/{item_id}/move"
payload = {
"target_package_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 2
}
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({target_package_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', quantity: 2})
};
fetch('https://api.arcuserp.com/v1/packages/{id}/items/{item_id}/move', 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.arcuserp.com/v1/packages/{id}/items/{item_id}/move",
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([
'target_package_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'quantity' => 2
]),
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.arcuserp.com/v1/packages/{id}/items/{item_id}/move"
payload := strings.NewReader("{\n \"target_package_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 2\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.arcuserp.com/v1/packages/{id}/items/{item_id}/move")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"target_package_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arcuserp.com/v1/packages/{id}/items/{item_id}/move")
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 \"target_package_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 2\n}"
response = http.request(request)
puts response.read_body{
"source": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"package_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"order_item_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"product_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 123,
"sku": "<string>",
"title": "<string>",
"serial_numbers": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z"
},
"target": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"package_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"order_item_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"product_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 123,
"sku": "<string>",
"title": "<string>",
"serial_numbers": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z"
}
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}Move an item from this package to another package
Moves an item (or partial quantity) from one package to another package on the same order.
Both packages must be in status: draft or status: packed. This is useful when re-packing
items across boxes before labels are purchased.
Requires fulfillment:write scope.
curl --request POST \
--url https://api.arcuserp.com/v1/packages/{id}/items/{item_id}/move \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"target_package_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 2
}
'import requests
url = "https://api.arcuserp.com/v1/packages/{id}/items/{item_id}/move"
payload = {
"target_package_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 2
}
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({target_package_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', quantity: 2})
};
fetch('https://api.arcuserp.com/v1/packages/{id}/items/{item_id}/move', 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.arcuserp.com/v1/packages/{id}/items/{item_id}/move",
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([
'target_package_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'quantity' => 2
]),
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.arcuserp.com/v1/packages/{id}/items/{item_id}/move"
payload := strings.NewReader("{\n \"target_package_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 2\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.arcuserp.com/v1/packages/{id}/items/{item_id}/move")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"target_package_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arcuserp.com/v1/packages/{id}/items/{item_id}/move")
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 \"target_package_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 2\n}"
response = http.request(request)
puts response.read_body{
"source": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"package_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"order_item_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"product_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 123,
"sku": "<string>",
"title": "<string>",
"serial_numbers": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z"
},
"target": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"package_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"order_item_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"product_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 123,
"sku": "<string>",
"title": "<string>",
"serial_numbers": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z"
}
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}Authorizations
API key issued per entity via Settings > Developers > API Keys.
Each key carries scopes (e.g. orders:read, products:write).
Bearer token format: Authorization: Bearer ark_live_ent_Test keys use ark_test_ent_. Both are issued per entity
via Settings > Developers > API Keys.
Headers
Client-generated unique key for idempotent POST/PATCH/DELETE operations. Alias for the Idempotency parameter. Max 255 chars. On retry with the same key, the original response is returned without re-executing the operation. Keys expire after 24 hours.
255Was this page helpful?

