Devices
Create device
POST
/
v1
/
devices
Create device
curl --request POST \
--url https://sand-api.orquestr.dev/cloud/v1/devices \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"license_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customer_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
license_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://sand-api.orquestr.dev/cloud/v1/devices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sand-api.orquestr.dev/cloud/v1/devices"
payload = {
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"license_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"id": "d7777777-7777-7777-7777-777777777777",
"customer_id": "o2222222-2222-2222-2222-222222222222",
"license_id": "l6666666-6666-6666-6666-666666666666",
"adapter": "sicarv4",
"name": "Caja 1",
"status": "pending",
"agent_version": null,
"last_seen_at": null,
"created_at": "2026-09-15T18:00:00.000Z",
"updated_at": "2026-09-15T17:55:00.000Z",
"external_device_id": "caja-1"
}
}{
"error": {
"code": "bad_request",
"message": "Invalid body"
}
}{
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"error": {
"code": "forbidden",
"message": "Account not eligible for this action"
}
}{
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"error": {
"code": "not_found",
"message": "Not found"
}
}{
"error": {
"code": "conflict",
"message": "Device quota exceeded"
}
}Authorizations
API key (sk_live_…). Send as Authorization: Bearer <api_key>.
Body
application/json
Available options:
sicarv4, eleventa, microsip, mybusinesspos Maximum string length:
200Optional integration id. Unique per customer when set. Empty string clears to null.
Maximum string length:
200Response
Success
The response is of type object.
⌘I
Create device
curl --request POST \
--url https://sand-api.orquestr.dev/cloud/v1/devices \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"license_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customer_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
license_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://sand-api.orquestr.dev/cloud/v1/devices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sand-api.orquestr.dev/cloud/v1/devices"
payload = {
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"license_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"id": "d7777777-7777-7777-7777-777777777777",
"customer_id": "o2222222-2222-2222-2222-222222222222",
"license_id": "l6666666-6666-6666-6666-666666666666",
"adapter": "sicarv4",
"name": "Caja 1",
"status": "pending",
"agent_version": null,
"last_seen_at": null,
"created_at": "2026-09-15T18:00:00.000Z",
"updated_at": "2026-09-15T17:55:00.000Z",
"external_device_id": "caja-1"
}
}{
"error": {
"code": "bad_request",
"message": "Invalid body"
}
}{
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"error": {
"code": "forbidden",
"message": "Account not eligible for this action"
}
}{
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"error": {
"code": "not_found",
"message": "Not found"
}
}{
"error": {
"code": "conflict",
"message": "Device quota exceeded"
}
}
