Create Chart Account
curl --request POST \
--url https://api.meetcampfire.com/coa/api/account/income-statement \
--header 'Content-Type: application/json' \
--data '
{
"number": "<string>",
"currency": "<string>",
"name": "<string>",
"nickname": "<string>",
"description": "<string>",
"include_in_eliminations": true,
"include_in_revaluations": true,
"protected": true,
"skip_subledger_validation": true,
"last_recompute_balance_at": "2023-11-07T05:31:56Z",
"lock_recompute_balance_key": "<string>",
"current_balance": 0,
"current_balance_book": 0,
"lineage_array": [
"<string>"
],
"parent": 123,
"parent_bank_account": 123,
"default_department": 123,
"default_tags": [
123
]
}
'import requests
url = "https://api.meetcampfire.com/coa/api/account/income-statement"
payload = {
"number": "<string>",
"currency": "<string>",
"name": "<string>",
"nickname": "<string>",
"description": "<string>",
"include_in_eliminations": True,
"include_in_revaluations": True,
"protected": True,
"skip_subledger_validation": True,
"last_recompute_balance_at": "2023-11-07T05:31:56Z",
"lock_recompute_balance_key": "<string>",
"current_balance": 0,
"current_balance_book": 0,
"lineage_array": ["<string>"],
"parent": 123,
"parent_bank_account": 123,
"default_department": 123,
"default_tags": [123]
}
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({
number: '<string>',
currency: '<string>',
name: '<string>',
nickname: '<string>',
description: '<string>',
include_in_eliminations: true,
include_in_revaluations: true,
protected: true,
skip_subledger_validation: true,
last_recompute_balance_at: '2023-11-07T05:31:56Z',
lock_recompute_balance_key: '<string>',
current_balance: 0,
current_balance_book: 0,
lineage_array: ['<string>'],
parent: 123,
parent_bank_account: 123,
default_department: 123,
default_tags: [123]
})
};
fetch('https://api.meetcampfire.com/coa/api/account/income-statement', 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.meetcampfire.com/coa/api/account/income-statement",
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([
'number' => '<string>',
'currency' => '<string>',
'name' => '<string>',
'nickname' => '<string>',
'description' => '<string>',
'include_in_eliminations' => true,
'include_in_revaluations' => true,
'protected' => true,
'skip_subledger_validation' => true,
'last_recompute_balance_at' => '2023-11-07T05:31:56Z',
'lock_recompute_balance_key' => '<string>',
'current_balance' => 0,
'current_balance_book' => 0,
'lineage_array' => [
'<string>'
],
'parent' => 123,
'parent_bank_account' => 123,
'default_department' => 123,
'default_tags' => [
123
]
]),
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.meetcampfire.com/coa/api/account/income-statement"
payload := strings.NewReader("{\n \"number\": \"<string>\",\n \"currency\": \"<string>\",\n \"name\": \"<string>\",\n \"nickname\": \"<string>\",\n \"description\": \"<string>\",\n \"include_in_eliminations\": true,\n \"include_in_revaluations\": true,\n \"protected\": true,\n \"skip_subledger_validation\": true,\n \"last_recompute_balance_at\": \"2023-11-07T05:31:56Z\",\n \"lock_recompute_balance_key\": \"<string>\",\n \"current_balance\": 0,\n \"current_balance_book\": 0,\n \"lineage_array\": [\n \"<string>\"\n ],\n \"parent\": 123,\n \"parent_bank_account\": 123,\n \"default_department\": 123,\n \"default_tags\": [\n 123\n ]\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.meetcampfire.com/coa/api/account/income-statement")
.header("Content-Type", "application/json")
.body("{\n \"number\": \"<string>\",\n \"currency\": \"<string>\",\n \"name\": \"<string>\",\n \"nickname\": \"<string>\",\n \"description\": \"<string>\",\n \"include_in_eliminations\": true,\n \"include_in_revaluations\": true,\n \"protected\": true,\n \"skip_subledger_validation\": true,\n \"last_recompute_balance_at\": \"2023-11-07T05:31:56Z\",\n \"lock_recompute_balance_key\": \"<string>\",\n \"current_balance\": 0,\n \"current_balance_book\": 0,\n \"lineage_array\": [\n \"<string>\"\n ],\n \"parent\": 123,\n \"parent_bank_account\": 123,\n \"default_department\": 123,\n \"default_tags\": [\n 123\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetcampfire.com/coa/api/account/income-statement")
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 \"number\": \"<string>\",\n \"currency\": \"<string>\",\n \"name\": \"<string>\",\n \"nickname\": \"<string>\",\n \"description\": \"<string>\",\n \"include_in_eliminations\": true,\n \"include_in_revaluations\": true,\n \"protected\": true,\n \"skip_subledger_validation\": true,\n \"last_recompute_balance_at\": \"2023-11-07T05:31:56Z\",\n \"lock_recompute_balance_key\": \"<string>\",\n \"current_balance\": 0,\n \"current_balance_book\": 0,\n \"lineage_array\": [\n \"<string>\"\n ],\n \"parent\": 123,\n \"parent_bank_account\": 123,\n \"default_department\": 123,\n \"default_tags\": [\n 123\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"reconciliation_ending_date": "2023-12-25",
"reconciliation_ending_balance": 0,
"balance_ytd": 0,
"name_and_number": "<string>",
"parent_name_and_number": "<string>",
"sort_key": "<string>",
"has_associated_data": true,
"last_modified_at": "2023-11-07T05:31:56Z",
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"number": "<string>",
"external_id": "<string>",
"source": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"customer": 123,
"currency": "<string>",
"name": "<string>",
"nickname": "<string>",
"description": "<string>",
"status": "ACTIVE",
"account_type": "ASSET",
"account_subtype": "BANK",
"account_cashflow_classification": "NONE",
"include_in_eliminations": true,
"include_in_revaluations": true,
"protected": true,
"skip_subledger_validation": true,
"last_recompute_balance_at": "2023-11-07T05:31:56Z",
"lock_recompute_balance_key": "<string>",
"current_balance": 0,
"current_balance_book": 0,
"lineage_array": [
"<string>"
],
"parent": 123,
"parent_bank_account": 123,
"default_department": 123,
"default_tags": [
123
]
}Company Objects
Create Chart Account
Lists the chart of accounts (GL accounts). Each account includes metadata about its parent account and its full lineage (the ordered chain of ancestor accounts), so parent/child account relationships can be reconstructed from the response.
POST
/
coa
/
api
/
account
/
income-statement
Create Chart Account
curl --request POST \
--url https://api.meetcampfire.com/coa/api/account/income-statement \
--header 'Content-Type: application/json' \
--data '
{
"number": "<string>",
"currency": "<string>",
"name": "<string>",
"nickname": "<string>",
"description": "<string>",
"include_in_eliminations": true,
"include_in_revaluations": true,
"protected": true,
"skip_subledger_validation": true,
"last_recompute_balance_at": "2023-11-07T05:31:56Z",
"lock_recompute_balance_key": "<string>",
"current_balance": 0,
"current_balance_book": 0,
"lineage_array": [
"<string>"
],
"parent": 123,
"parent_bank_account": 123,
"default_department": 123,
"default_tags": [
123
]
}
'import requests
url = "https://api.meetcampfire.com/coa/api/account/income-statement"
payload = {
"number": "<string>",
"currency": "<string>",
"name": "<string>",
"nickname": "<string>",
"description": "<string>",
"include_in_eliminations": True,
"include_in_revaluations": True,
"protected": True,
"skip_subledger_validation": True,
"last_recompute_balance_at": "2023-11-07T05:31:56Z",
"lock_recompute_balance_key": "<string>",
"current_balance": 0,
"current_balance_book": 0,
"lineage_array": ["<string>"],
"parent": 123,
"parent_bank_account": 123,
"default_department": 123,
"default_tags": [123]
}
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({
number: '<string>',
currency: '<string>',
name: '<string>',
nickname: '<string>',
description: '<string>',
include_in_eliminations: true,
include_in_revaluations: true,
protected: true,
skip_subledger_validation: true,
last_recompute_balance_at: '2023-11-07T05:31:56Z',
lock_recompute_balance_key: '<string>',
current_balance: 0,
current_balance_book: 0,
lineage_array: ['<string>'],
parent: 123,
parent_bank_account: 123,
default_department: 123,
default_tags: [123]
})
};
fetch('https://api.meetcampfire.com/coa/api/account/income-statement', 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.meetcampfire.com/coa/api/account/income-statement",
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([
'number' => '<string>',
'currency' => '<string>',
'name' => '<string>',
'nickname' => '<string>',
'description' => '<string>',
'include_in_eliminations' => true,
'include_in_revaluations' => true,
'protected' => true,
'skip_subledger_validation' => true,
'last_recompute_balance_at' => '2023-11-07T05:31:56Z',
'lock_recompute_balance_key' => '<string>',
'current_balance' => 0,
'current_balance_book' => 0,
'lineage_array' => [
'<string>'
],
'parent' => 123,
'parent_bank_account' => 123,
'default_department' => 123,
'default_tags' => [
123
]
]),
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.meetcampfire.com/coa/api/account/income-statement"
payload := strings.NewReader("{\n \"number\": \"<string>\",\n \"currency\": \"<string>\",\n \"name\": \"<string>\",\n \"nickname\": \"<string>\",\n \"description\": \"<string>\",\n \"include_in_eliminations\": true,\n \"include_in_revaluations\": true,\n \"protected\": true,\n \"skip_subledger_validation\": true,\n \"last_recompute_balance_at\": \"2023-11-07T05:31:56Z\",\n \"lock_recompute_balance_key\": \"<string>\",\n \"current_balance\": 0,\n \"current_balance_book\": 0,\n \"lineage_array\": [\n \"<string>\"\n ],\n \"parent\": 123,\n \"parent_bank_account\": 123,\n \"default_department\": 123,\n \"default_tags\": [\n 123\n ]\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.meetcampfire.com/coa/api/account/income-statement")
.header("Content-Type", "application/json")
.body("{\n \"number\": \"<string>\",\n \"currency\": \"<string>\",\n \"name\": \"<string>\",\n \"nickname\": \"<string>\",\n \"description\": \"<string>\",\n \"include_in_eliminations\": true,\n \"include_in_revaluations\": true,\n \"protected\": true,\n \"skip_subledger_validation\": true,\n \"last_recompute_balance_at\": \"2023-11-07T05:31:56Z\",\n \"lock_recompute_balance_key\": \"<string>\",\n \"current_balance\": 0,\n \"current_balance_book\": 0,\n \"lineage_array\": [\n \"<string>\"\n ],\n \"parent\": 123,\n \"parent_bank_account\": 123,\n \"default_department\": 123,\n \"default_tags\": [\n 123\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetcampfire.com/coa/api/account/income-statement")
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 \"number\": \"<string>\",\n \"currency\": \"<string>\",\n \"name\": \"<string>\",\n \"nickname\": \"<string>\",\n \"description\": \"<string>\",\n \"include_in_eliminations\": true,\n \"include_in_revaluations\": true,\n \"protected\": true,\n \"skip_subledger_validation\": true,\n \"last_recompute_balance_at\": \"2023-11-07T05:31:56Z\",\n \"lock_recompute_balance_key\": \"<string>\",\n \"current_balance\": 0,\n \"current_balance_book\": 0,\n \"lineage_array\": [\n \"<string>\"\n ],\n \"parent\": 123,\n \"parent_bank_account\": 123,\n \"default_department\": 123,\n \"default_tags\": [\n 123\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"reconciliation_ending_date": "2023-12-25",
"reconciliation_ending_balance": 0,
"balance_ytd": 0,
"name_and_number": "<string>",
"parent_name_and_number": "<string>",
"sort_key": "<string>",
"has_associated_data": true,
"last_modified_at": "2023-11-07T05:31:56Z",
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"number": "<string>",
"external_id": "<string>",
"source": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"customer": 123,
"currency": "<string>",
"name": "<string>",
"nickname": "<string>",
"description": "<string>",
"status": "ACTIVE",
"account_type": "ASSET",
"account_subtype": "BANK",
"account_cashflow_classification": "NONE",
"include_in_eliminations": true,
"include_in_revaluations": true,
"protected": true,
"skip_subledger_validation": true,
"last_recompute_balance_at": "2023-11-07T05:31:56Z",
"lock_recompute_balance_key": "<string>",
"current_balance": 0,
"current_balance_book": 0,
"lineage_array": [
"<string>"
],
"parent": 123,
"parent_bank_account": 123,
"default_department": 123,
"default_tags": [
123
]
}Body
application/jsonapplication/x-www-form-urlencodedmultipart/form-data
Maximum string length:
12Maximum string length:
3Maximum string length:
250Maximum string length:
250ACTIVE- ActiveINACTIVE- Inactive
Available options:
ACTIVE, INACTIVE ASSET- AssetLIABILITY- LiabilityEQUITY- EquityREVENUE- RevenueCOGS- Cost of Goods SoldOPERATING_EXPENSES- Operating ExpensesOTHER_INCOME- Other IncomeOTHER_EXPENSE- Other ExpenseUNCATEGORIZED- UncategorizedCOST_ALLOCATION- Cost Allocation
Available options:
ASSET, LIABILITY, EQUITY, REVENUE, COGS, OPERATING_EXPENSES, OTHER_INCOME, OTHER_EXPENSE, UNCATEGORIZED, COST_ALLOCATION BANK- BankACCOUNTS_RECEIVABLE- Accounts ReceivableOTHER_CURRENT_ASSET- Other Current AssetFIXED_ASSET- Fixed AssetOTHER_ASSET- Other AssetACCOUNTS_PAYABLE- Accounts PayableUNAPPLIED_CREDITS- Unapplied CreditsCREDIT_CARD- Credit CardACCRUED_REVENUE- Accrued RevenueDEFERRED_REVENUE- Deferred RevenueOTHER_CURRENT_LIABILITY- Other Current LiabilityLONG_TERM_LIABILITY- Long Term LiabilityUNBILLED_RECEIVABLE- Unbilled ReceivableEQUITY- EquityRETAINED_EARNINGS- Retained EarningsINCOME- IncomeCOST_OF_GOODS_SOLD- Cost of Goods SoldEXPENSE- ExpenseDEFERRED_EXPENSE- Deferred ExpenseOTHER_INCOME- Other IncomeOTHER_EXPENSE- Other ExpenseREALIZED_GAIN_LOSS- Realized Gain LossUNREALIZED_GAIN_LOSS- Unrealized Gain LossPREPAID- PrepaidCOST_ALLOCATION- Cost AllocationUNCATEGORIZED- Uncategorized
Available options:
BANK, ACCOUNTS_RECEIVABLE, OTHER_CURRENT_ASSET, FIXED_ASSET, OTHER_ASSET, ACCOUNTS_PAYABLE, UNAPPLIED_CREDITS, CREDIT_CARD, ACCRUED_REVENUE, DEFERRED_REVENUE, OTHER_CURRENT_LIABILITY, LONG_TERM_LIABILITY, UNBILLED_RECEIVABLE, EQUITY, RETAINED_EARNINGS, INCOME, COST_OF_GOODS_SOLD, EXPENSE, DEFERRED_EXPENSE, OTHER_INCOME, OTHER_EXPENSE, REALIZED_GAIN_LOSS, UNREALIZED_GAIN_LOSS, PREPAID, COST_ALLOCATION, UNCATEGORIZED NONE- NoneOPERATING- OperatingINVESTING- InvestingFINANCING- Financing
Available options:
NONE, OPERATING, INVESTING, FINANCING Allow manual journal entries to post to this AR/AP account, bypassing subledger validation
Maximum string length:
250Required range:
-1000000000000000000 < x < 1000000000000000000Required range:
-1000000000000000000 < x < 1000000000000000000Pre-computed lineage array from root to this account
Maximum string length:
50Response
201 - application/json
Required range:
-1000000000000000000 < x < 1000000000000000000Required range:
-1000000000000000000 < x < 1000000000000000000Maximum string length:
12Maximum string length:
3Maximum string length:
250Maximum string length:
250ACTIVE- ActiveINACTIVE- Inactive
Available options:
ACTIVE, INACTIVE ASSET- AssetLIABILITY- LiabilityEQUITY- EquityREVENUE- RevenueCOGS- Cost of Goods SoldOPERATING_EXPENSES- Operating ExpensesOTHER_INCOME- Other IncomeOTHER_EXPENSE- Other ExpenseUNCATEGORIZED- UncategorizedCOST_ALLOCATION- Cost Allocation
Available options:
ASSET, LIABILITY, EQUITY, REVENUE, COGS, OPERATING_EXPENSES, OTHER_INCOME, OTHER_EXPENSE, UNCATEGORIZED, COST_ALLOCATION BANK- BankACCOUNTS_RECEIVABLE- Accounts ReceivableOTHER_CURRENT_ASSET- Other Current AssetFIXED_ASSET- Fixed AssetOTHER_ASSET- Other AssetACCOUNTS_PAYABLE- Accounts PayableUNAPPLIED_CREDITS- Unapplied CreditsCREDIT_CARD- Credit CardACCRUED_REVENUE- Accrued RevenueDEFERRED_REVENUE- Deferred RevenueOTHER_CURRENT_LIABILITY- Other Current LiabilityLONG_TERM_LIABILITY- Long Term LiabilityUNBILLED_RECEIVABLE- Unbilled ReceivableEQUITY- EquityRETAINED_EARNINGS- Retained EarningsINCOME- IncomeCOST_OF_GOODS_SOLD- Cost of Goods SoldEXPENSE- ExpenseDEFERRED_EXPENSE- Deferred ExpenseOTHER_INCOME- Other IncomeOTHER_EXPENSE- Other ExpenseREALIZED_GAIN_LOSS- Realized Gain LossUNREALIZED_GAIN_LOSS- Unrealized Gain LossPREPAID- PrepaidCOST_ALLOCATION- Cost AllocationUNCATEGORIZED- Uncategorized
Available options:
BANK, ACCOUNTS_RECEIVABLE, OTHER_CURRENT_ASSET, FIXED_ASSET, OTHER_ASSET, ACCOUNTS_PAYABLE, UNAPPLIED_CREDITS, CREDIT_CARD, ACCRUED_REVENUE, DEFERRED_REVENUE, OTHER_CURRENT_LIABILITY, LONG_TERM_LIABILITY, UNBILLED_RECEIVABLE, EQUITY, RETAINED_EARNINGS, INCOME, COST_OF_GOODS_SOLD, EXPENSE, DEFERRED_EXPENSE, OTHER_INCOME, OTHER_EXPENSE, REALIZED_GAIN_LOSS, UNREALIZED_GAIN_LOSS, PREPAID, COST_ALLOCATION, UNCATEGORIZED NONE- NoneOPERATING- OperatingINVESTING- InvestingFINANCING- Financing
Available options:
NONE, OPERATING, INVESTING, FINANCING Allow manual journal entries to post to this AR/AP account, bypassing subledger validation
Maximum string length:
250Required range:
-1000000000000000000 < x < 1000000000000000000Required range:
-1000000000000000000 < x < 1000000000000000000Pre-computed lineage array from root to this account
Maximum string length:
50