Object Types
Reference documentation for all GLAPI object types
Object Types
This section provides detailed documentation for all data objects used in the GLAPI API.
Accounting Dimensions
Core accounting dimension object types:
- Customer - Customer entity
- Vendor - Vendor entity
- Organization - Organization entity
- Subsidiary - Subsidiary entity
- Department - Department entity
- Location - Location entity
- Class - Class/Cost Center entity
- Account - Chart of accounts entry
People & Entities
- Employee - Employee record
- Lead - Lead entity
- Prospect - Prospect entity
- Contact - Contact entity
- Entity - Base multi-type entity
Inventory & Products
- Item - Item/Product entity
- Warehouse - Warehouse entity
- Price List - Price list entity
- Unit of Measure - UOM entity
- Item Category - Item categorization
- Kit Component - Assembly/kit component
Financial Objects
- Invoice - Invoice entity
- Invoice Line Item - Invoice line
- Payment - Payment entity
- Business Transaction - Transaction entity
Revenue Recognition
- Subscription - Subscription entity
- Subscription Item - Subscription line item
- Contract - Contract entity
- Contract Line Item - Contract line
- Performance Obligation - Performance obligation
- Revenue Schedule - Revenue schedule
- Revenue Journal Entry - Revenue journal entry
- SSP Evidence - Standalone selling price evidence
- Contract Modification - Contract modification
General Ledger
- GL Transaction - General ledger transaction
- GL Journal Entry - Journal entry
- GL Account Balance - Account balance
- GL Posting Rule - Posting rule
- Accounting Period - Accounting period
Supporting Objects
- Address - Address object
- Currency - Currency entity
- Tax Code - Tax code entity
- Activity Code - Activity tracking code
Common Field Patterns
Standard Fields
Most entities include these standard fields:
| Field | Type | Description |
|---|---|---|
id | UUID | Unique identifier |
organizationId | string | Organization identifier (for multi-tenancy) |
createdAt | datetime | Creation timestamp |
updatedAt | datetime | Last update timestamp |
status | enum | Status (active, inactive, archived) |
Hierarchical Entities
Some entities support hierarchical structures with:
| Field | Type | Description |
|---|---|---|
parentId | UUID | Parent entity ID (nullable) |
fullName | string | Full hierarchical name (e.g., "Parent:Child") |
Examples: Customers, Departments, Locations, Classes, Accounts
Multi-Type Entity
The Entity object is a polymorphic type that can represent:
- Customer
- Vendor
- Employee
- Partner
- Lead
- Prospect
- Contact
It includes a type field to distinguish between types.
Field Types
UUID
A universally unique identifier (v4):
"123e4567-e89b-12d3-a456-426614174000"Datetime
ISO 8601 formatted timestamp with timezone:
"2025-01-15T10:30:00.000Z"Enum
String value from a predefined set of options:
{
"status": "active" // one of: "active", "inactive", "archived"
}Money/Decimal
Numeric value with precision for financial calculations:
{
"amount": 1234.56
}Address Object
Structured address information:
{
"street": "123 Main St",
"city": "San Francisco",
"state": "CA",
"postalCode": "94105",
"country": "USA"
}Validation Rules
Required Fields
Fields marked as required must be provided when creating an object.
Optional Fields
Optional fields can be omitted or set to null.
Field Constraints
- Email: Must be valid email format
- UUID: Must be valid UUID v4 format
- Min Length: Minimum character length
- Max Length: Maximum character length
- Enum: Must be one of the predefined values
Relationships
Objects are related through foreign keys (UUID references):
{
"id": "customer-uuid",
"parentCustomerId": "parent-customer-uuid", // References another Customer
"organizationId": "org-uuid" // References Organization
}When fetching related objects, use the appropriate endpoint with the foreign key value.
Null vs Undefined
null: Explicitly set to no value (clears existing value)undefinedor omitted: Field is not being updated
When updating objects:
{
"email": null // Clears the email field
// phone not included // Leaves phone unchanged
}SuperJSON Serialization
GLAPI uses SuperJSON for enhanced type support:
- Dates: Serialized as ISO strings, automatically parsed to Date objects in TypeScript clients
- BigInt: Supported for large numbers
- undefined: Preserved in responses (not converted to null)
- Map/Set: Supported in TypeScript clients
Next Steps
- Browse individual object documentation in the sidebar
- See API Endpoints for usage examples
- Try the Interactive API Reference to explore objects