Create a custom account
curl --request POST \
--url https://app.equated.co/api/accounts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"parentId": 1,
"emoji": "<string>",
"color": "<string>",
"description": "<string>",
"searchTerms": [
"<string>"
],
"registerKind": "clearing"
}
'import requests
url = "https://app.equated.co/api/accounts"
payload = {
"name": "<string>",
"parentId": 1,
"emoji": "<string>",
"color": "<string>",
"description": "<string>",
"searchTerms": ["<string>"],
"registerKind": "clearing"
}
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({
name: '<string>',
parentId: 1,
emoji: '<string>',
color: '<string>',
description: '<string>',
searchTerms: ['<string>'],
registerKind: 'clearing'
})
};
fetch('https://app.equated.co/api/accounts', 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://app.equated.co/api/accounts",
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([
'name' => '<string>',
'parentId' => 1,
'emoji' => '<string>',
'color' => '<string>',
'description' => '<string>',
'searchTerms' => [
'<string>'
],
'registerKind' => 'clearing'
]),
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.equated.co/api/accounts"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"parentId\": 1,\n \"emoji\": \"<string>\",\n \"color\": \"<string>\",\n \"description\": \"<string>\",\n \"searchTerms\": [\n \"<string>\"\n ],\n \"registerKind\": \"clearing\"\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://app.equated.co/api/accounts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"parentId\": 1,\n \"emoji\": \"<string>\",\n \"color\": \"<string>\",\n \"description\": \"<string>\",\n \"searchTerms\": [\n \"<string>\"\n ],\n \"registerKind\": \"clearing\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.equated.co/api/accounts")
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 \"name\": \"<string>\",\n \"parentId\": 1,\n \"emoji\": \"<string>\",\n \"color\": \"<string>\",\n \"description\": \"<string>\",\n \"searchTerms\": [\n \"<string>\"\n ],\n \"registerKind\": \"clearing\"\n}"
response = http.request(request)
puts response.read_body{
"category": {
"id": 1,
"key": "<string>",
"name": "<string>",
"type": "<string>",
"parentId": 1,
"kind": "group",
"bankAccount": {
"id": 1,
"feedType": "<string>",
"institutionName": "<string>",
"institutionLogo": "<string>",
"institutionUrl": "<string>",
"isoCurrencyCode": "<string>"
},
"emoji": "<string>",
"color": "<string>",
"description": "<string>",
"registerKind": "clearing"
}
}Accounts
Create a custom account
Creates a new custom leaf account under an existing parent. The account type (ASSET, LIABILITY, EQUITY, REVENUE, EXPENSE) is determined by the parent’s position in the chart of accounts — choose the parent that matches the type you need.
name is the display label used in the ledger and category pickers. Optional emoji and color are UI hints. searchTerms improves auto-categorization matching by the AI enrichment layer.
POST
/
api
/
accounts
Create a custom account
curl --request POST \
--url https://app.equated.co/api/accounts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"parentId": 1,
"emoji": "<string>",
"color": "<string>",
"description": "<string>",
"searchTerms": [
"<string>"
],
"registerKind": "clearing"
}
'import requests
url = "https://app.equated.co/api/accounts"
payload = {
"name": "<string>",
"parentId": 1,
"emoji": "<string>",
"color": "<string>",
"description": "<string>",
"searchTerms": ["<string>"],
"registerKind": "clearing"
}
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({
name: '<string>',
parentId: 1,
emoji: '<string>',
color: '<string>',
description: '<string>',
searchTerms: ['<string>'],
registerKind: 'clearing'
})
};
fetch('https://app.equated.co/api/accounts', 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://app.equated.co/api/accounts",
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([
'name' => '<string>',
'parentId' => 1,
'emoji' => '<string>',
'color' => '<string>',
'description' => '<string>',
'searchTerms' => [
'<string>'
],
'registerKind' => 'clearing'
]),
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.equated.co/api/accounts"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"parentId\": 1,\n \"emoji\": \"<string>\",\n \"color\": \"<string>\",\n \"description\": \"<string>\",\n \"searchTerms\": [\n \"<string>\"\n ],\n \"registerKind\": \"clearing\"\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://app.equated.co/api/accounts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"parentId\": 1,\n \"emoji\": \"<string>\",\n \"color\": \"<string>\",\n \"description\": \"<string>\",\n \"searchTerms\": [\n \"<string>\"\n ],\n \"registerKind\": \"clearing\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.equated.co/api/accounts")
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 \"name\": \"<string>\",\n \"parentId\": 1,\n \"emoji\": \"<string>\",\n \"color\": \"<string>\",\n \"description\": \"<string>\",\n \"searchTerms\": [\n \"<string>\"\n ],\n \"registerKind\": \"clearing\"\n}"
response = http.request(request)
puts response.read_body{
"category": {
"id": 1,
"key": "<string>",
"name": "<string>",
"type": "<string>",
"parentId": 1,
"kind": "group",
"bankAccount": {
"id": 1,
"feedType": "<string>",
"institutionName": "<string>",
"institutionLogo": "<string>",
"institutionUrl": "<string>",
"isoCurrencyCode": "<string>"
},
"emoji": "<string>",
"color": "<string>",
"description": "<string>",
"registerKind": "clearing"
}
}Authorizations
API token issued from the Equated app under Settings → API Tokens.
Body
application/json
Required string length:
1 - 255Required range:
x > 0Available options:
group, category Maximum string length:
8Maximum string length:
7Maximum string length:
500Available options:
clearing Response
201 - application/json
Created
Show child attributes
Show child attributes