Skip to main content

Articles

Articles represent the products or services that can be billed to customers in the system. Each article has a unique code, descriptive information, and configuration for tax codes, cost centers, and revenue accounts. Articles support time-based pricing that allows prices to change over time while maintaining historical accuracy for past invoices.

Article Properties

PropertyTypeDescription
idGUIDUnique identifier
codestringShort code identifier
namestringDisplay name
descriptionstringDetailed description
isActivebooleanActive status
defaultTaxCodeIdGUIDDefault tax code
defaultCostCenterIdGUIDDefault cost center
revenueAccountIdGUIDRevenue account
useArticleCostCenterbooleanForce article cost center

Article Price Properties

Each article can have multiple prices with different effective dates. The system automatically selects the appropriate price based on the invoice date or price guarantee date. This allows institutions to update prices for future billing while maintaining accurate historical records.

PropertyTypeDescription
idGUIDUnique identifier
articleIdGUIDArticle reference
amountdecimalPrice amount
validFromdatetimeEffective date

API Endpoints

GET /articles
GET /articles/{id}
GET /article-prices?articleId={id}

Article Response Example

{
"id": "a7b8c9d0-e1f2-3456-1234-567890123456",
"code": "TUI-001",
"name": "Tuition Fee",
"description": "Standard tuition fee for semester-based programs",
"isActive": true,
"defaultTaxCodeId": "b8c9d0e1-f2a3-4567-2345-678901234567",
"defaultCostCenterId": "d0e1f2a3-b4c5-6789-4567-890123456789",
"revenueAccountId": "c9d0e1f2-a3b4-5678-3456-789012345678",
"useArticleCostCenter": false
}

Article Price Response Example

[
{
"id": "e1f2a3b4-c5d6-7890-5678-901234567890",
"articleId": "a7b8c9d0-e1f2-3456-1234-567890123456",
"amount": 5000.00,
"validFrom": "2023-01-01T00:00:00Z"
},
{
"id": "f2a3b4c5-d6e7-8901-6789-012345678901",
"articleId": "a7b8c9d0-e1f2-3456-1234-567890123456",
"amount": 5200.00,
"validFrom": "2024-01-01T00:00:00Z"
},
{
"id": "a3b4c5d6-e7f8-9012-7890-123456789012",
"articleId": "a7b8c9d0-e1f2-3456-1234-567890123456",
"amount": 5500.00,
"validFrom": "2025-01-01T00:00:00Z"
}
]

Pricing Logic

The billing system uses time-based pricing to determine the correct amount to charge for an article. When generating an invoice, the system looks at all prices for the article and selects the one with the most recent validFrom date that is on or before the billing date. For example, if an invoice is dated January 15, 2024, and the article has prices valid from January 1, 2023 ($5,000), January 1, 2024 ($5,200), and January 1, 2025 ($5,500), the system would use the $5,200 price because it is the most recent price that was valid on the invoice date.

Price Guarantee

Some billing configurations support price guarantee functionality that locks in prices at a specific reference date. This is commonly used to honor the tuition rate that was in effect when a student first enrolled, even if prices increase in subsequent years. When price guarantee is enabled for a fee, the system uses the contract's reference date (typically the student's matriculation date) instead of the invoice date to determine which price to apply. This ensures students pay consistent rates throughout their program regardless of price increases.

Cost Center Assignment

Articles can specify cost centers for financial tracking and reporting purposes. The defaultCostCenterId property defines which cost center should be used when the article appears on an invoice line item. However, this default can be overridden at the line item level if needed for specific billing scenarios. When the useArticleCostCenter flag is set to true, the article's cost center is always used regardless of any other configuration, ensuring consistent cost allocation for that article type across all invoices.