Accounts
Accounts represent the financial ledger structure used for posting transactions and integrating with external accounting systems. The billing system uses accounts to track receivables, revenue, tax collections, and prepayments. Each account has a hierarchical structure, classification properties, and specific rules about whether transactions can be posted directly to it and whether cost centers are required for transactions.
Properties
| Property | Type | Description |
|---|---|---|
id | GUID | Unique identifier |
accountCode | string | Account number |
name | string | Account name |
description | string | Detailed description |
accountStatus | string | Active, Inactive, Archived |
isPostingAccount | boolean | Can post transactions |
requiresCostCenter | boolean | Cost center required |
balanceSheetPosition | string | Asset, Liability, Equity, null |
profitAndLossPosition | string | Revenue, Expense, null |
accountTypeId | GUID | Account type reference |
accountCategoryId | GUID | Account category reference |
parentAccountId | GUID | Parent account (hierarchy) |
Account Types in Billing
The billing system uses several specific account types for different purposes. Receivable accounts track customer outstanding balances and are assigned at the customer level. Revenue accounts record income from invoice line items and are typically assigned at the article level. Tax accounts hold tax amounts collected from customers. Prepayment accounts track advance payments made by customers before invoices are issued.
API Endpoints
GET /accounts
GET /accounts/{id}
GET /account-types
GET /account-categories
Response Example
{
"id": "8d7f9e8a-8536-41fe-a53c-3d874bf2c9d1",
"accountCode": "4000",
"name": "Tuition Revenue",
"description": "Revenue from tuition fees",
"accountStatus": "Active",
"isPostingAccount": true,
"requiresCostCenter": true,
"balanceSheetPosition": null,
"profitAndLossPosition": "Revenue",
"accountTypeId": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"accountCategoryId": "2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e",
"parentAccountId": null
}
Usage in Invoices
Accounts are referenced at two levels in the invoice structure. At the invoice level, the receivableAccountId specifies where to post the total amount due from the customer. At the line item level, each item has a revenueAccountId that determines where the revenue for that specific charge should be posted in the accounting system.