In accounting systems, financial transactions must be properly categorized for reporting and compliance. Transactions are assigned to GL accounts, departments, locations, projects, and other organizational segments based on a company’s accounting rules.
Ottimate represents these transaction classifications through dimensions. Each dimension links an Ottimate record to a corresponding entity in the client’s ERP/accounting system.
Key Characteristics:
erp_dimension_id links Ottimate dimensions to your accounting systemThe following dimension types are supported. The table shows equivalent entities across common ERP systems.
account)Classifies how a transaction will be recorded in the general ledger.
Example:
location)Represents geographic locations like offices, facilities, or warehouses.
department)Represents internal business units or functions.
project)Tracks transactions related to a specific initiative, job, or capital effort.
task)Represents specific tasks within a project.
cost_type)Categorizes different types of costs within projects.
item)Represents goods and services purchased from vendors.
When you use an Ottimate-hosted integration (e.g., QuickBooks, NetSuite, Sage), Ottimate automatically syncs dimensions from your ERP:
In this scenario, you primarily use the Dimensions API to read dimension data for reference or validation.
If you’re building a custom integration with an unsupported ERP, you’re responsible for syncing dimensions:
POST /dimensions or POST /dimensions/bulk-create/)Keep dimension data consistent between Ottimate and your ERP. Mismatched dimension IDs can cause issues during invoice export.
Retrieve all dimensions for a company, optionally filtered by type:
Response:
Retrieve a specific dimension by ID:
Response:
Create a new dimension:
Response (201 Created):
Create or update multiple dimensions in a single request. This endpoint uses upsert behavior - existing dimensions (matched by unique_key) are updated, new dimensions are created.
Response (201 Created):
Partial Failure Response (207 Multi-Status):
Dimensions are applied to invoices and line items to categorize transactions for proper GL coding.
Invoice Header Dimensions: Used for header-level coding that applies to the entire invoice (e.g., department, location).
Line Item Dimensions: Used for item-level coding when different line items should be coded to different accounts.
The dimension keys in the dimensions object are the display type names (e.g., “Account”, “Department”), and the values are the erp_dimension_id values.
erp_dimension_id must match your ERP’s identifier for successful invoice export.unique_key field determines upsert behavior; use a consistent naming convention.errors array and handle failed dimensions appropriately.GET /dimensions?ottimate_company_id=123&type=Accounterp_dimension_id valueerp_dimension_id matches exactly what’s in your ERPerrors array in the response for specific validation failuresdimension_type_code, missing unique_key, invalid type