Account Structure

Understanding how Ottimate organizes accounts, companies, locations, and groups

Overview

Ottimate uses a tiered organizational hierarchy to manage accounts payable operations. Understanding this structure is essential for integration because every API request must be properly scoped to the correct company and location.

The hierarchy consists of:

  1. Account - The top-level organization (an Ottimate client)
  2. Company - A distinct accounting entity with its own chart of accounts and vendors
  3. Location - A subdivision within a company for invoice processing and approvals

Additionally, locations can be organized into Groups - optional organizational collections that can span multiple companies in multi-company accounts.

Single-Company Account:

Structural Hierarchy:
Ottimate Account (racc_xxx)
└── Company 1 (ottimate_company_id: 123)
├── Chart of Accounts (Dimensions)
├── Vendor List
└── Locations
├── Location A (ottimate_location_id: 456)
├── Location B (ottimate_location_id: 457)
├── Location C (ottimate_location_id: 458)
└── Location D (ottimate_location_id: 459)
Optional Groups (organizational only):
├── North Region → Locations A, B
└── South Region → Locations C, D

Multi-Company Account:

Structural Hierarchy:
Ottimate Account (racc_xxx)
├── Company 1 (ottimate_company_id: 123)
│ ├── Chart of Accounts (Dimensions)
│ ├── Vendor List
│ └── Locations
│ ├── Location A (ottimate_location_id: 456)
│ └── Location B (ottimate_location_id: 457)
└── Company 2 (ottimate_company_id: 789)
├── Chart of Accounts (Dimensions)
├── Vendor List
└── Locations
├── Location D (ottimate_location_id: 460)
└── Location E (ottimate_location_id: 461)
Groups (can span across companies):
├── West Region → Location A (Company 1), Location D (Company 2)
└── East Region → Location B (Company 1), Location E (Company 2)

Key Principle: Data does not cross company boundaries. Each company has completely separate dimensions, vendors, and invoice workflows.


Hierarchy Components

Client Accounts (racc_)

A client account represents an organization using Ottimate to automate accounts payable processes. This is the top-level entity that Ottimate provisions during onboarding.

Key Characteristics:

  • Unique identifier format: racc_ prefix (e.g., racc_90832490382904802384)
  • Contains one or more companies
  • API credentials (Client ID, Client Secret) are scoped to an account
  • Billing and subscription are managed at the account level

For API Integrators

Accounts are provisioned by Ottimate during the Onboarding process before you begin integration development. By the time you receive your API credentials, your account structure (account, companies, and locations) is already configured.

Read-Only Access: API integrators have read-only access to account structure via GET endpoints. You cannot create or modify accounts, companies, or locations through the API. If you need structural changes, contact your Ottimate Partner Manager.


Companies

A company is a distinct accounting entity within a client account. Each company maintains its own:

  • Chart of accounts - Separate set of dimensions (GL accounts, departments, etc.)
  • Vendor list - Vendors are company-specific
  • Accounting rules - Separate coding and approval policies
  • ERP connection - Each company connects to one ERP instance

When to Use Multiple Companies

Use separate companies when:

  • Different ERP systems - Subsidiary A uses NetSuite, Subsidiary B uses QuickBooks
  • Separate legal entities - Each entity files taxes separately and maintains separate books
  • Distinct chart of accounts - Each entity has a completely different GL structure
  • Separate vendor relationships - Vendors are managed independently between entities

Use a single company with multiple locations when:

  • Same ERP system - All locations use the same accounting software
  • Shared chart of accounts - Same GL structure across all locations
  • Shared vendor list - Vendors serve multiple locations
  • Centralized accounting - Single accounting team manages all locations

Examples

Multi-Company Scenario:

Restaurant Group (Account)
├── Brand A LLC (Company 1) - Uses NetSuite
│ └── 50 Brand A locations
└── Brand B Corp (Company 2) - Uses QuickBooks
└── 30 Brand B locations

Single-Company Scenario:

Regional Restaurant Chain (Account)
└── ABC Restaurants Inc (Company 1) - Uses NetSuite
├── Boston Location
├── New York Location
└── Philadelphia Location

Accessing Company Information

Companies are pre-configured during account onboarding. Use the companies endpoint to retrieve company IDs for your API calls:

TaskEndpoint
List all companies for an accountGET /v1/accounts/{account_id}/companies
Get company detailsIncluded in the list response above

List Companies Example:

$GET https://api.ottimate.com/v1/accounts/racc_90832490382904802384/companies

Response:

1{
2 "count": 2,
3 "page": 1,
4 "limit": 10,
5 "next": null,
6 "previous": null,
7 "results": [
8 {
9 "id": 123,
10 "name": "Acme Inc.",
11 "location_count": 5
12 },
13 {
14 "id": 124,
15 "name": "Acme Inc. - Downtown",
16 "location_count": 1
17 }
18 ]
19}

Response Fields:

FieldTypeDescription
idintegerThe Ottimate-assigned company ID (use as ottimate_company_id in other API calls)
namestringCompany name
location_countintegerNumber of locations within this company

Locations

A location is a subdivision within a company used to organize invoice processing, permissions, and approval workflows. Locations share the same chart of accounts and vendor list as their parent company.

Key Characteristics:

  • Belongs to exactly one company
  • Shares the company’s dimensions and vendors
  • Can have location-specific approval policies
  • Can have location-specific user permissions
  • Can have location-specific email to receive invoices
  • Used to route invoices to appropriate approvers

Accessing Location Information

Locations are pre-configured during account onboarding. Use the locations endpoint to retrieve location IDs for invoice creation and filtering:

TaskEndpoint
List all locations for an accountGET /v1/accounts/{account_id}/locations
Filter locations by nameGET /v1/accounts/{account_id}/locations?search={location_name}

List Locations Example:

$GET https://api.ottimate.com/v1/accounts/racc_90832490382904802384/locations

Response:

1{
2 "count": 5,
3 "page": 1,
4 "limit": 10,
5 "next": null,
6 "previous": null,
7 "results": [
8 {
9 "id": 456,
10 "name": "Main Kitchen",
11 "company": "Acme Inc.",
12 "group": "West Region"
13 },
14 {
15 "id": 457,
16 "name": "Downtown Branch",
17 "company": "Acme Inc.",
18 "group": "West Region"
19 },
20 {
21 "id": 458,
22 "name": "East Side Location",
23 "company": "Acme Inc.",
24 "group": "East Region"
25 }
26 ]
27}

Response Fields:

FieldTypeDescription
idintegerThe Ottimate-assigned location ID (use as ottimate_location_id in invoice creation)
namestringLocation name
companystringParent company name
groupstringOptional location grouping (e.g., “West Region”, “East Region”)

Filtering by company: The locations endpoint returns all locations for an account across all companies. Use the company field in the response to identify which company each location belongs to. If you need to filter locations for a specific company, filter the results client-side by matching the company field to your target company name.


Groups

A group is an optional organizational collection of one or more locations within an account. Groups provide flexibility for organizing locations for reporting, permissions, and workflow management.

Key Characteristics:

  • A group contains 1 or more locations
  • A location can only belong to 1 group (or none)
  • Groups are optional - locations can exist without being assigned to a group
  • Returned in the group field of the Location object
  • Groups are read-only via API (configured through Ottimate Onboarding Tool)

Groups in Single-Company Accounts:

In a single-company account, groups organize locations within the same company:

  • Regional organization - “North Region” and “South Region” groups organize stores by geography
  • Department-based grouping - “Corporate Offices” vs “Warehouse Locations”
  • Reporting - Track AP metrics by location grouping

Groups in Multi-Company Accounts (Cross-Company Groups):

In multi-company accounts, groups can span across companies, creating “cross-company groups”:

  • Regional organization - “West Coast” group contains locations from multiple subsidiary companies
  • Cross-company reporting - Track AP metrics across subsidiaries by region/division
  • Shared management - A regional manager oversees locations from multiple legal entities