curl --request POST \
--url https://api.arcuserp.com/v1/fixed_assets/{id}/depreciate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"period_start": "2026-04-01T00:00:00.000Z",
"period_end": "2026-04-30T00:00:00.000Z",
"period_date": "2023-12-25",
"book_type": "book",
"strict": true
}
'import requests
url = "https://api.arcuserp.com/v1/fixed_assets/{id}/depreciate"
payload = {
"period_start": "2026-04-01T00:00:00.000Z",
"period_end": "2026-04-30T00:00:00.000Z",
"period_date": "2023-12-25",
"book_type": "book",
"strict": True
}
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({
period_start: '2026-04-01T00:00:00.000Z',
period_end: '2026-04-30T00:00:00.000Z',
period_date: '2023-12-25',
book_type: 'book',
strict: true
})
};
fetch('https://api.arcuserp.com/v1/fixed_assets/{id}/depreciate', 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/fixed_assets/{id}/depreciate",
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([
'period_start' => '2026-04-01T00:00:00.000Z',
'period_end' => '2026-04-30T00:00:00.000Z',
'period_date' => '2023-12-25',
'book_type' => 'book',
'strict' => true
]),
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/fixed_assets/{id}/depreciate"
payload := strings.NewReader("{\n \"period_start\": \"2026-04-01T00:00:00.000Z\",\n \"period_end\": \"2026-04-30T00:00:00.000Z\",\n \"period_date\": \"2023-12-25\",\n \"book_type\": \"book\",\n \"strict\": true\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/fixed_assets/{id}/depreciate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"period_start\": \"2026-04-01T00:00:00.000Z\",\n \"period_end\": \"2026-04-30T00:00:00.000Z\",\n \"period_date\": \"2023-12-25\",\n \"book_type\": \"book\",\n \"strict\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arcuserp.com/v1/fixed_assets/{id}/depreciate")
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 \"period_start\": \"2026-04-01T00:00:00.000Z\",\n \"period_end\": \"2026-04-30T00:00:00.000Z\",\n \"period_date\": \"2023-12-25\",\n \"book_type\": \"book\",\n \"strict\": true\n}"
response = http.request(request)
puts response.read_body{
"data": {
"asset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"period_date": "2023-12-25",
"depreciation_amount": 123,
"journal_entry_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"book_type": "book",
"idempotent": true
}
}{
"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"
}Post a depreciation period
Posts one depreciation period’s journal entry for an asset, debiting depreciation expense and crediting accumulated depreciation, for either the book or tax schedule. Calling it again for an already-posted period returns the existing journal entry unless strict is set, in which case it returns a 409; a disposed, suspended, or not-yet-in-service asset is rejected.
curl --request POST \
--url https://api.arcuserp.com/v1/fixed_assets/{id}/depreciate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"period_start": "2026-04-01T00:00:00.000Z",
"period_end": "2026-04-30T00:00:00.000Z",
"period_date": "2023-12-25",
"book_type": "book",
"strict": true
}
'import requests
url = "https://api.arcuserp.com/v1/fixed_assets/{id}/depreciate"
payload = {
"period_start": "2026-04-01T00:00:00.000Z",
"period_end": "2026-04-30T00:00:00.000Z",
"period_date": "2023-12-25",
"book_type": "book",
"strict": True
}
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({
period_start: '2026-04-01T00:00:00.000Z',
period_end: '2026-04-30T00:00:00.000Z',
period_date: '2023-12-25',
book_type: 'book',
strict: true
})
};
fetch('https://api.arcuserp.com/v1/fixed_assets/{id}/depreciate', 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/fixed_assets/{id}/depreciate",
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([
'period_start' => '2026-04-01T00:00:00.000Z',
'period_end' => '2026-04-30T00:00:00.000Z',
'period_date' => '2023-12-25',
'book_type' => 'book',
'strict' => true
]),
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/fixed_assets/{id}/depreciate"
payload := strings.NewReader("{\n \"period_start\": \"2026-04-01T00:00:00.000Z\",\n \"period_end\": \"2026-04-30T00:00:00.000Z\",\n \"period_date\": \"2023-12-25\",\n \"book_type\": \"book\",\n \"strict\": true\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/fixed_assets/{id}/depreciate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"period_start\": \"2026-04-01T00:00:00.000Z\",\n \"period_end\": \"2026-04-30T00:00:00.000Z\",\n \"period_date\": \"2023-12-25\",\n \"book_type\": \"book\",\n \"strict\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arcuserp.com/v1/fixed_assets/{id}/depreciate")
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 \"period_start\": \"2026-04-01T00:00:00.000Z\",\n \"period_end\": \"2026-04-30T00:00:00.000Z\",\n \"period_date\": \"2023-12-25\",\n \"book_type\": \"book\",\n \"strict\": true\n}"
response = http.request(request)
puts response.read_body{
"data": {
"asset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"period_date": "2023-12-25",
"depreciation_amount": 123,
"journal_entry_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"book_type": "book",
"idempotent": true
}
}{
"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
Body
"2026-04-01T00:00:00.000Z"
"2026-04-30T00:00:00.000Z"
Frontend convenience; equivalent to period_start with period_end auto-filled.
book, tax When true
Response
Depreciation posted
Show child attributes
Show child attributes
Was this page helpful?

