curl --request POST \
--url https://api.arcuserp.com/v1/orders/{id}/release-hold \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"notes": "Credit limit increased; releasing hold per credit manager approval."
}
'import requests
url = "https://api.arcuserp.com/v1/orders/{id}/release-hold"
payload = {
"user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"notes": "Credit limit increased; releasing hold per credit manager approval."
}
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({
user_id: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
notes: 'Credit limit increased; releasing hold per credit manager approval.'
})
};
fetch('https://api.arcuserp.com/v1/orders/{id}/release-hold', 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/orders/{id}/release-hold",
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([
'user_id' => 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
'notes' => 'Credit limit increased; releasing hold per credit manager approval.'
]),
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/orders/{id}/release-hold"
payload := strings.NewReader("{\n \"user_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"notes\": \"Credit limit increased; releasing hold per credit manager approval.\"\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/orders/{id}/release-hold")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"user_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"notes\": \"Credit limit increased; releasing hold per credit manager approval.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arcuserp.com/v1/orders/{id}/release-hold")
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 \"user_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"notes\": \"Credit limit increased; releasing hold per credit manager approval.\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"success": true,
"order_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"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"
}Release an order hold
Clears a hold from an order, whether it was placed manually or automatically for exceeding the account’s credit limit at confirmation. Requires orders:write scope.
curl --request POST \
--url https://api.arcuserp.com/v1/orders/{id}/release-hold \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"notes": "Credit limit increased; releasing hold per credit manager approval."
}
'import requests
url = "https://api.arcuserp.com/v1/orders/{id}/release-hold"
payload = {
"user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"notes": "Credit limit increased; releasing hold per credit manager approval."
}
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({
user_id: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
notes: 'Credit limit increased; releasing hold per credit manager approval.'
})
};
fetch('https://api.arcuserp.com/v1/orders/{id}/release-hold', 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/orders/{id}/release-hold",
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([
'user_id' => 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
'notes' => 'Credit limit increased; releasing hold per credit manager approval.'
]),
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/orders/{id}/release-hold"
payload := strings.NewReader("{\n \"user_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"notes\": \"Credit limit increased; releasing hold per credit manager approval.\"\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/orders/{id}/release-hold")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"user_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"notes\": \"Credit limit increased; releasing hold per credit manager approval.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arcuserp.com/v1/orders/{id}/release-hold")
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 \"user_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"notes\": \"Credit limit increased; releasing hold per credit manager approval.\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"success": true,
"order_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"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.
255Path Parameters
UUID of the order to release from hold.
Body
Response
Hold released successfully.
Show child attributes
Show child attributes
Was this page helpful?

