curl --request POST \
--url https://api.chift.eu/consumers/{consumer_id}/accounting/accounts \
--header 'Content-Type: application/json' \
--data '
{
"name": "Consulting services",
"number": "700000",
"type": "other"
}
'import requests
url = "https://api.chift.eu/consumers/{consumer_id}/accounting/accounts"
payload = {
"name": "Consulting services",
"number": "700000",
"type": "other"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Consulting services', number: '700000', type: 'other'})
};
fetch('https://api.chift.eu/consumers/{consumer_id}/accounting/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://api.chift.eu/consumers/{consumer_id}/accounting/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' => 'Consulting services',
'number' => '700000',
'type' => 'other'
]),
CURLOPT_HTTPHEADER => [
"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.chift.eu/consumers/{consumer_id}/accounting/accounts"
payload := strings.NewReader("{\n \"name\": \"Consulting services\",\n \"number\": \"700000\",\n \"type\": \"other\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.chift.eu/consumers/{consumer_id}/accounting/accounts")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Consulting services\",\n \"number\": \"700000\",\n \"type\": \"other\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chift.eu/consumers/{consumer_id}/accounting/accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Consulting services\",\n \"number\": \"700000\",\n \"type\": \"other\"\n}"
response = http.request(request)
puts response.read_body{
"number": "<this-account-number>",
"name": "Consulting services",
"active": true,
"type": "bank",
"scheme_ids": [
"<string>"
],
"accounting_category": "<string>",
"tax_information": {
"tax_codes": [
{
"id": "<accounting-tax-code>",
"default": false
}
],
"mode": "free"
}
}{
"message": "A ledger account already exists with the same number in the accounting system.",
"status": "error",
"error_code": "ERROR_LEDGER_ACCOUNT_ALREADY_EXISTS"
}{
"message": "Validation error",
"status": "error",
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Create ledger account
Creates a new ledger account in the chart of accounts for the accounting system.
curl --request POST \
--url https://api.chift.eu/consumers/{consumer_id}/accounting/accounts \
--header 'Content-Type: application/json' \
--data '
{
"name": "Consulting services",
"number": "700000",
"type": "other"
}
'import requests
url = "https://api.chift.eu/consumers/{consumer_id}/accounting/accounts"
payload = {
"name": "Consulting services",
"number": "700000",
"type": "other"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Consulting services', number: '700000', type: 'other'})
};
fetch('https://api.chift.eu/consumers/{consumer_id}/accounting/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://api.chift.eu/consumers/{consumer_id}/accounting/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' => 'Consulting services',
'number' => '700000',
'type' => 'other'
]),
CURLOPT_HTTPHEADER => [
"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.chift.eu/consumers/{consumer_id}/accounting/accounts"
payload := strings.NewReader("{\n \"name\": \"Consulting services\",\n \"number\": \"700000\",\n \"type\": \"other\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.chift.eu/consumers/{consumer_id}/accounting/accounts")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Consulting services\",\n \"number\": \"700000\",\n \"type\": \"other\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chift.eu/consumers/{consumer_id}/accounting/accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Consulting services\",\n \"number\": \"700000\",\n \"type\": \"other\"\n}"
response = http.request(request)
puts response.read_body{
"number": "<this-account-number>",
"name": "Consulting services",
"active": true,
"type": "bank",
"scheme_ids": [
"<string>"
],
"accounting_category": "<string>",
"tax_information": {
"tax_codes": [
{
"id": "<accounting-tax-code>",
"default": false
}
],
"mode": "free"
}
}{
"message": "A ledger account already exists with the same number in the accounting system.",
"status": "error",
"error_code": "ERROR_LEDGER_ACCOUNT_ALREADY_EXISTS"
}{
"message": "Validation error",
"status": "error",
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Path Parameters
Query Parameters
Id of the accounting folder instance. A folder represents a legal entity within the system. Required when the multiple folders feature is enabled.
Body
Name or label of the ledger account as it appears in the accounting system.
1"Consulting services"
The account number in the chart of accounts. Must be unique within the accounting folder. In some countries (e.g., France, Belgium, Spain), the number structure is constrained by local accounting rules and must follow official charts of accounts (e.g., Plan Comptable Général).
3"700000"
bank, cash, other_financial, receivable, payable, income, expense, other_expense, vat, other Response
Successful Response
The account number in the chart of accounts. Must be unique within the accounting folder. In some countries (e.g., France, Belgium, Spain), the number structure is constrained by local accounting rules and must follow official charts of accounts (e.g., Plan Comptable Général).
"<this-account-number>"
Name or label of the account as it appears in the accounting system. This is typically used for internal referencing and identification of the account.
"Consulting services"
Flag indicating whether the account is active. If True, the account is active and can be used in transactions. If False, the account is inactive and cannot be used for transactions.
Represents the functional type of the ledger account, used to support common accounting operations such as payments, invoicing, tax handling, and reporting. The type here is more operational and aligned with how accounts are actually used in day-to-day processes (e.g., tracking receivables, recording VAT, handling bank transactions)
bank, cash, other_financial, receivable, payable, income, expense, other_expense, vat, other List of scheme classification IDs linked to this ledger account. A scheme (e.g., RGS, SBR) provides a standardized classification structure for organizing accounts for reporting purposes. Multiple scheme codes can be associated with a single account.
Category of the ledger account in the accounting system. This is the category of the account as defined in the accounting system.
Tax codes configured on the ledger account and how strictly the accounting system applies them. Null means the connector does not provide this information.
Show child attributes
Show child attributes