Account allocations

Account allocations let you automatically distribute amounts across multiple dimensions such as departments, locations, projects, or classes.

An account allocation definition is a template for allocations. After it's created, you can generate the allocation as often as needed using the same definition to streamline the overall allocation process. For example, you can create an allocation definition that distributes expenses across revenue-earning departments, then run an allocation using that definition for the dates you want.

Note that only intra-entity (not inter-entity) revenue and expense allocations are supported at this time.

Please be aware that this object is currently "Uncertified", signifying that it has not undergone the complete review process and the design may change during ongoing refinement. Users are advised to exercise discretion in using this object and are encouraged to provide feedback.

List account allocation definitions

get/objects/general-ledger/account-allocation

Returns a collection with a key, ID, and link for each account allocation. This operation is mostly for use in testing; use the query service to find allocation definitions that meet specific criteria and to specify the properties that you want in the response.

SecurityOAuth2
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": [
    • {
      • "key": "23",
      • "id": "23",
      • "href": "/objects/general-ledger/account-allocation/23"
      },
    • {
      • "key": "27",
      • "id": "27",
      • "href": "/objects/general-ledger/account-allocation/27"
      },
    • {
      • "key": "21",
      • "id": "21",
      • "href": "/objects/general-ledger/account-allocation/21"
      }
    ],
  • "ia::meta": {
    • "totalCount": 3,
    • "start": 1,
    • "pageSize": 100,
    • "next": null,
    • "previous": null
    }
}

Create an account allocation definition

post/objects/general-ledger/account-allocation

Creates a new account allocation definition.

SecurityOAuth2
Request
Request Body schema: application/json

Account allocation definition to create

name
required
string

Account Allocation definition ID. Must be 20 characters or less.

Example: "AllocaForAdjBookNew"
description
string

Description of the allocation definition.

Example: "Monthly allocation of expenses"
methodology
string

Description of methodology used for the allocation definition.

Example: "Expense allocation across revenue earning departments"
object

Supporting document ID for this attachment.

key
string or null
Example: "21"
id
string or null
Example: "Sales01"
latestVersion
integer or null

Latest version

Example: null
object

Sets how dimensions are used during allocation calculations and the level of detail that will be included in the created allocation entries. Also indicates whether allocation occurs within a single entity or occurs across entities in companies with more than one entity. Valid values:

  • notConsidered - The dimension is not used for calculations during the generation of the allocation but can still be used as a filter to narrow the source pool or basis. You can either leave the dimension with no value in the allocated entry, or apply a single value by using the override parameters in glAccountAllocationTarget.
  • preserveValues - Retain the original value assigned during initial entry. The dimension is included in the calculations for the source and the basis to ensure that the proportional distribution is kept when the allocated entry is recorded.
  • allocationFocus - Allocate or reclassify based on the calculation method selected in glAccountAllocationBasis.
location
string
Default: "notConsidered"

How location values are used in allocations.

Enum: "allocationFocus" "notConsidered" "preserveValues"
Example: "preserveValues"
department
string
Default: "notConsidered"

How department values are used in allocations.

Enum: "allocationFocus" "notConsidered" "preserveValues"
Example: "allocationFocus"
project
string
Default: "notConsidered"

How project values are used in allocations.

Enum: "allocationFocus" "notConsidered" "perDimensionValue" "preserveValues"
Example: "notConsidered"
customer
string
Default: "notConsidered"

How customer values are used in allocations.

Enum: "allocationFocus" "notConsidered" "preserveValues"
Example: "notConsidered"
vendor
string
Default: "notConsidered"

How vendor values are used in allocations.

Enum: "allocationFocus" "notConsidered" "preserveValues"
Example: "notConsidered"
employee
string
Default: "notConsidered"

How employee values are used in allocations.

Enum: "allocationFocus" "notConsidered" "perDimensionValue" "preserveValues"
Example: "notConsidered"
class
string
Default: "notConsidered"

How class values are used in allocations.

Enum: "allocationFocus" "notConsidered" "preserveValues"
Example: "notConsidered"
item
string
Default: "notConsidered"

How item values are used in allocations.

Enum: "allocationFocus" "notConsidered" "preserveValues"
Example: "notConsidered"
warehouse
string
Default: "notConsidered"

How warehouse values are used in allocations.

Value: "notConsidered"
Example: "notConsidered"
contract
string
Default: "notConsidered"

How contract values are used in allocations.

Value: "notConsidered"
Example: "notConsidered"
activityDelta
boolean
Default: false

Activity delta. Set to true so that, before allocation, Intacct validates that the account setup is designed to clear the source amounts with each allocation generation. This is done by making sure that the accounts selected for your source pool are used as the reversing source pool selection, or if an alternate specific account is used for the reversal, that it's included in the source pool account group so that it removes any prior allocation activity. This option is only effective if the source account is used for the pool reversal in the allocation target, either via glAccountAllocationTarget or glAccountAllocationReverse.

Example: true
autoReversePriorPostedJournalEntry
boolean
Default: false

When set t true, Intacct checks if there's a previously generated allocation in the same source period and if so, the previously generated allocation is reversed as the first step when the new allocation is generated. This reversal occurs on the same posting date as the new allocation and will essentially reset the allocation amount for the new allocation to consider the source amounts as though the prior allocation did not take place. The result is a new, more accurate allocation that uses the latest basis information to allocate for the entire period.

This property cannot be set to true if allocations have already been generated with this definition.

Example: false
Array of objects = 1 items

Source pool for the allocation.

Array (= 1 items)
percentToAllocate
string

Percentage to allocate

Example: "100"
object

Source pool time period

reportingBook
string
Default: "accrual"

Reporting book

Enum: "accrual" "cash"
Example: "accrual"
useAmountsFrom
string
Default: "mainReportingBookAndAlternateBooks"

Use amounts from

Enum: "alternateBooksOnly" "mainReportingBookAndAlternateBooks"
Example: "mainReportingBookAndAlternateBooks"
object
object

Account group

object

GL account allocation source dimensions

Array of objects = 1 items

Basis information that specifies how the allocation splits source amounts into each target.

Array (= 1 items)
accumulation
string
Default: "activity"

Accumulation

Enum: "activity" "endingBalance"
Example: "activity"
object

Basis pool time period

reportingBook
string
Default: "accrual"

Reporting book

Enum: "accrual" "cash"
Example: "accrual"
allocationMethod
string
Default: "dynamicRelativeAccountFinancial"

Allocation method

Enum: "dynamicRelativeAccountFinancial" "dynamicRelativeAccountStatistical"
Example: "dynamicRelativeAccountFinancial"
skipNegative
boolean
Default: false

Drop negative basis lines from consideration

Example: false
useAmountsFrom
string
Default: "mainReportingBookAndAlternateBooks"

Use amounts from

Enum: "alternateBooksOnly" "mainReportingBookAndAlternateBooks"
Example: "mainReportingBookAndAlternateBooks"
object

Account group

object

GL account allocation basis dimensions

Array of objects = 1 items

Allocation destination in the target entry. Specifies where the allocation will be recorded. The debit and credit accounts selected depend on your allocation setup. For example, expense allocations typically have the allocation as a debit.

Array (= 1 items)
object

Account group

isBillable
boolean
Default: false

Flag target lines as billable

Example: false
object
object
object

GL account allocation reverse dimension override

Array of objects = 1 items

Reversing source pool in the target entry.

Array (= 1 items)
useSourceAccount
boolean
Default: false

Use source account

Example: true
object
object

GL account allocation reverse dimension override

allowAllocation
string
Default: "withinOneEntity"

Specifies how the allocation should interact when there is data in more than 1 entity.

  • withinOneEntity - Target entries are made in the same entity as the reversing source entries.
  • acrossEntities - For companies with more than one entity, allocations can be created that include more than 1 entity, even if those entities have different currencies. When you allocate across entities, you need to specify an exchange rate type in the glAccountAllocationTarget.
Enum: "acrossEntities" "withinOneEntity"
Example: "withinOneEntity"
status
string
Default: "active"

Object status. Active objects are fully functional. Inactive objects are essentially hidden and cannot be used or referenced.

Enum: "active" "inactive"
Example: "active"
Responses
201

Created

400

Bad Request

Request samples
application/json
{
  • "name": "Monthly Expenses RE",
  • "description": "Monthly allocation of expenses",
  • "methodology": "Monthly Expense allocation across revenue earning departments",
  • "status": "active",
  • "activityDelta": false,
  • "autoReversePriorPostedJournalEntry": false,
  • "dimensionTreatment": {
    • "location": "preserveValues",
    • "department": "allocationFocus",
    • "project": "notConsidered",
    • "customer": "notConsidered",
    • "vendor": "notConsidered",
    • "employee": "notConsidered",
    • "item": "notConsidered",
    • "class": "notConsidered",
    • "contract": "notConsidered",
    • "warehouse": "notConsidered"
    },
  • "latestVersion": null,
  • "allowAllocation": "withinOneEntity",
  • "glAccountAllocationSource": [
    • {
      • "glAccountGroup": {
        },
      • "percentToAllocate": "100",
      • "timePeriod": {
        },
      • "reportingBook": "accrual",
      • "useAmountsFrom": "mainReportingBookAndAlternateBooks",
      • "currency": "USD",
      • "dimensions": {
        }
      }
    ],
  • "glAccountAllocationBasis": [
    • {
      • "glAccountGroup": {
        },
      • "accumulation": "activity",
      • "timePeriod": {
        },
      • "allocationMethod": "dynamicRelativeAccountFinancial",
      • "reportingBook": "accrual",
      • "useAmountsFrom": "mainReportingBookAndAlternateBooks",
      • "skipNegative": false,
      • "dimensions": {
        }
      }
    ],
  • "glAccountAllocationTarget": [
    • {
      • "journal": {
        },
      • "glAccount": {
        },
      • "isBillable": false,
      • "dimensions": {
        }
      }
    ],
  • "glAccountAllocationReverse": [
    • {
      • "useSourceAccount": true,
      • "dimensions": {
        }
      }
    ]
}
Response samples
application/json
{
  • "ia::result": {
    • "id": "29",
    • "key": "29",
    • "href": "/objects/general-ledger/account-allocation/29"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Get an account allocation definition

get/objects/general-ledger/account-allocation/{key}

Returns detailed information for a specified account allocation definition.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the account allocation definition.

Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": {
    • "id": "29",
    • "key": "29",
    • "name": "Monthly Expenses RE",
    • "description": "Monthly allocation of expenses",
    • "methodology": "Monthly Expense allocation across revenue earning departments",
    • "status": "active",
    • "activityDelta": false,
    • "autoReversePriorPostedJournalEntry": false,
    • "dimensionTreatment": {
      • "location": "preserveValues",
      • "department": "allocationFocus",
      • "project": "notConsidered",
      • "customer": "notConsidered",
      • "vendor": "notConsidered",
      • "employee": "notConsidered",
      • "item": "notConsidered",
      • "class": "notConsidered",
      • "contract": "notConsidered",
      • "warehouse": "notConsidered"
      },
    • "latestVersion": null,
    • "audit": {
      • "createdDateTime": "2024-06-25T12:16:47Z",
      • "modifiedDateTime": "2024-06-25T12:16:47Z",
      • "createdBy": "1",
      • "modifiedBy": "1"
      },
    • "journal": {
      • "id": "Travel",
      • "key": "41",
      • "href": "/objects/general-ledger/journal/41"
      },
    • "allowAllocation": "withinOneEntity",
    • "attachment": {
      • "id": null,
      • "key": null
      },
    • "entity": {
      • "key": null,
      • "id": null,
      • "name": null
      },
    • "dimensions": {
      • "nsp::udd1": {
        }
      },
    • "glAccountAllocationSource": [
      • {
        }
      ],
    • "glAccountAllocationBasis": [
      • {
        }
      ],
    • "glAccountAllocationTarget": [
      • {
        }
      ],
    • "glAccountAllocationReverse": [
      • {
        }
      ],
    • "href": "/objects/general-ledger/account-allocation/29"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Update a account allocation definition

patch/objects/general-ledger/account-allocation/{key}

Updates an existing account allocation definition by setting field values. Any fields not provided remain unchanged.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the account allocation definition.

Request Body schema: application/json
name
string

Account Allocation definition ID. Must be 20 characters or less.

Example: "AllocaForAdjBookNew"
description
string

Description of the allocation definition.

Example: "Monthly allocation of expenses"
methodology
string

Description of methodology used for the allocation definition.

Example: "Expense allocation across revenue earning departments"
object

Supporting document ID for this attachment.

key
string or null
Example: "21"
id
string or null
Example: "Sales01"
latestVersion
integer or null

Latest version

Example: null
object

Sets how dimensions are used during allocation calculations and the level of detail that will be included in the created allocation entries. Also indicates whether allocation occurs within a single entity or occurs across entities in companies with more than one entity. Valid values:

  • notConsidered - The dimension is not used for calculations during the generation of the allocation but can still be used as a filter to narrow the source pool or basis. You can either leave the dimension with no value in the allocated entry, or apply a single value by using the override parameters in glAccountAllocationTarget.
  • preserveValues - Retain the original value assigned during initial entry. The dimension is included in the calculations for the source and the basis to ensure that the proportional distribution is kept when the allocated entry is recorded.
  • allocationFocus - Allocate or reclassify based on the calculation method selected in glAccountAllocationBasis.
location
string
Default: "notConsidered"

How location values are used in allocations.

Enum: "allocationFocus" "notConsidered" "preserveValues"
Example: "preserveValues"
department
string
Default: "notConsidered"

How department values are used in allocations.

Enum: "allocationFocus" "notConsidered" "preserveValues"
Example: "allocationFocus"
project
string
Default: "notConsidered"

How project values are used in allocations.

Enum: "allocationFocus" "notConsidered" "perDimensionValue" "preserveValues"
Example: "notConsidered"
customer
string
Default: "notConsidered"

How customer values are used in allocations.

Enum: "allocationFocus" "notConsidered" "preserveValues"
Example: "notConsidered"
vendor
string
Default: "notConsidered"

How vendor values are used in allocations.

Enum: "allocationFocus" "notConsidered" "preserveValues"
Example: "notConsidered"
employee
string
Default: "notConsidered"

How employee values are used in allocations.

Enum: "allocationFocus" "notConsidered" "perDimensionValue" "preserveValues"
Example: "notConsidered"
class
string
Default: "notConsidered"

How class values are used in allocations.

Enum: "allocationFocus" "notConsidered" "preserveValues"
Example: "notConsidered"
item
string
Default: "notConsidered"

How item values are used in allocations.

Enum: "allocationFocus" "notConsidered" "preserveValues"
Example: "notConsidered"
warehouse
string
Default: "notConsidered"

How warehouse values are used in allocations.

Value: "notConsidered"
Example: "notConsidered"
contract
string
Default: "notConsidered"

How contract values are used in allocations.

Value: "notConsidered"
Example: "notConsidered"
activityDelta
boolean
Default: false

Activity delta. Set to true so that, before allocation, Intacct validates that the account setup is designed to clear the source amounts with each allocation generation. This is done by making sure that the accounts selected for your source pool are used as the reversing source pool selection, or if an alternate specific account is used for the reversal, that it's included in the source pool account group so that it removes any prior allocation activity. This option is only effective if the source account is used for the pool reversal in the allocation target, either via glAccountAllocationTarget or glAccountAllocationReverse.

Example: true
autoReversePriorPostedJournalEntry
boolean
Default: false

When set t true, Intacct checks if there's a previously generated allocation in the same source period and if so, the previously generated allocation is reversed as the first step when the new allocation is generated. This reversal occurs on the same posting date as the new allocation and will essentially reset the allocation amount for the new allocation to consider the source amounts as though the prior allocation did not take place. The result is a new, more accurate allocation that uses the latest basis information to allocate for the entire period.

This property cannot be set to true if allocations have already been generated with this definition.

Example: false
Array of objects = 1 items

Source pool for the allocation.

Array (= 1 items)
percentToAllocate
string

Percentage to allocate

Example: "100"
object

Source pool time period

reportingBook
string
Default: "accrual"

Reporting book

Enum: "accrual" "cash"
Example: "accrual"
useAmountsFrom
string
Default: "mainReportingBookAndAlternateBooks"

Use amounts from

Enum: "alternateBooksOnly" "mainReportingBookAndAlternateBooks"
Example: "mainReportingBookAndAlternateBooks"
object
object

Account group

object

GL account allocation source dimensions

Array of objects = 1 items

Basis information that specifies how the allocation splits source amounts into each target.

Array (= 1 items)
accumulation
string
Default: "activity"

Accumulation

Enum: "activity" "endingBalance"
Example: "activity"
object

Basis pool time period

reportingBook
string
Default: "accrual"

Reporting book

Enum: "accrual" "cash"
Example: "accrual"
allocationMethod
string
Default: "dynamicRelativeAccountFinancial"

Allocation method

Enum: "dynamicRelativeAccountFinancial" "dynamicRelativeAccountStatistical"
Example: "dynamicRelativeAccountFinancial"
skipNegative
boolean
Default: false

Drop negative basis lines from consideration

Example: false
useAmountsFrom
string
Default: "mainReportingBookAndAlternateBooks"

Use amounts from

Enum: "alternateBooksOnly" "mainReportingBookAndAlternateBooks"
Example: "mainReportingBookAndAlternateBooks"
object

Account group

object

GL account allocation basis dimensions

Array of objects = 1 items

Allocation destination in the target entry. Specifies where the allocation will be recorded. The debit and credit accounts selected depend on your allocation setup. For example, expense allocations typically have the allocation as a debit.

Array (= 1 items)
object

Account group

isBillable
boolean
Default: false

Flag target lines as billable

Example: false
object
object
object

GL account allocation reverse dimension override

Array of objects = 1 items

Reversing source pool in the target entry.

Array (= 1 items)
useSourceAccount
boolean
Default: false

Use source account

Example: true
object
object

GL account allocation reverse dimension override

allowAllocation
string
Default: "withinOneEntity"

Specifies how the allocation should interact when there is data in more than 1 entity.

  • withinOneEntity - Target entries are made in the same entity as the reversing source entries.
  • acrossEntities - For companies with more than one entity, allocations can be created that include more than 1 entity, even if those entities have different currencies. When you allocate across entities, you need to specify an exchange rate type in the glAccountAllocationTarget.
Enum: "acrossEntities" "withinOneEntity"
Example: "withinOneEntity"
status
string
Default: "active"

Object status. Active objects are fully functional. Inactive objects are essentially hidden and cannot be used or referenced.

Enum: "active" "inactive"
Example: "active"
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "description": "Yearly allocation of expenses",
  • "methodology": "Yearly Expense allocation across revenue earning departments",
  • "activityDelta": true
}
Response samples
application/json
{
  • "ia::result": {
    • "id": "29",
    • "key": "29",
    • "href": "/objects/general-ledger/account-allocation/29"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Delete a GL account allocation definition

delete/objects/general-ledger/account-allocation/{key}

Deletes a GL account allocation definition.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the account allocation definition.

Responses
204

No Content

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": {
    • "ia::error": {
      • "code": "invalidRequest",
      • "message": "A POST request requires a payload",
      • "errorId": "REST-1028",
      • "additionalInfo": {
        },
      • "supportId": "Kxi78%7EZuyXBDEGVHD2UmO1phYXDQAAAAo"
      }
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 0,
    • "totalError": 1
    }
}

Query account allocations

post/services/core/query

Queries an object for filtered data.

SecurityOAuth2
Request
Request Body schema: application/json
object
string

Object type to query, in the form <application-name>/<object name>. For custom objects use platform-apps/nsp::<object-name>.

Example: "general-ledger/account-allocation"
fields
Array of strings

List of fields to include in the response. Can be any combination of these:

  • The name of a field in the object that you are querying, such as id.

  • The name of a field in a related object, using the form relatedObjectName.fieldName, such as vendor.id.

  • The result of an aggregate function run against the values in the returned objects. Use the form function:fieldName, such as min:startDate to return the earliest starting date. Valid function names are:

    • count
    • avg
    • sum
    • min
    • max
  • The result of an aggregate function run against the values in related objects, using the form function:relatedObjectName.fieldName, such as max:vendor.creditLimit. The same functions are supported as for object fields.

Example: ["key","id","max:vendor.creditLimit"]
Array of equal (object) or not equal (object) or less than (object) or (less than or equal (object)) or greater than (object) or (greater than or equal (object)) or in (object) or not in (object) or between (object) or not between (object) or contains (object) or does not contain (object) or starts with (object) or does not start with (object) or ends with (object) or does not end with (object)

Filter conditions to select the objects to return based on their field values. You use operators and conditions to build your filter, such as {"$eq":{"status":"active"}} to select objects in which status is equal to "active".

Example: [{"$eq":{"status":"active"}},{"$gt":{"totalDue":"1000"}},{"$contains":{"name":"Acme"}}]
Array
Any of:

Field value must be equal to this specified value.

For date fields, you can use these macro values that are relative to the current date or the asOfDate in filterParameters, if set:

  • today
  • currentWeek
  • currentMonth
  • currentQuarter
  • currentYear
  • yesterday
  • lastWeek
  • priorMonth
  • priorQuarter
  • priorYear

These are most useful for queries that you want to save and use repeatedly, such as for views or reports. Just change the asOfDate each time to retrieve the same data set for different time periods.

For example, {"eq":{"postingDate":"priorYear"}}.

object

The field name and value to be compared with object values.

Example: {"status":"active"}
filterExpression
string
Default: "and"

Logical operators to apply when there are multiple filter conditions. The conditions in the filters array are implicitly numbered starting at 1. Supports and, or, and grouping with parentheses.

Shortcuts:

  • and by itself means that all conditions must be true.
  • or by itself means that at least one condition must be true.
Example: "(1 and 2) or 3"
object

Pre-defined filter options.

asOfDate
string <date>

The "as of" date to use with any relative date comparisons in filters. For example, if asOfDate is set to "2022-04-01" then priorMonth will be "03".

The current date is used if asOfDate is not set.

Example: "2022-04-01"
includeHierarchyFields
boolean
Default: false

Set to true to include hierarchical structure information with each object in the response.

Example: false
caseSensitiveComparison
boolean
Default: true

Queries are case-sensitive by default. Set to false to ignore case in a query.

Example: true
includePrivate
boolean
Default: false

By default, in a multi-entity company, queries from the top-level entity do not access data in private entities. Set includePrivate to true if you want to query data in private entities.

Example: false
Array of objects

Set the order of the results by specifying field names to sort by and whether they should be in ascending or descending order.

Example: [{"totalDue":"asc"},{"lastPaymentMadeDate":"desc"}]
Array
property name*
additional property
string
Enum: "asc" "desc"
start
integer

First record of the result set to include in the response.

Example: 1
size
integer

Number of records to include in the response.

Example: 100
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "object": "accounts-payable/vendor",
  • "fields": [
    • "id",
    • "name",
    • "status",
    • "href"
    ],
  • "filters": [
    • {
      • "$eq": {
        }
      },
    • {
      • "$eq": {
        }
      }
    ],
  • "filterExpression": "1 and 2",
  • "orderBy": [
    • {
      • "id": "asc"
      }
    ]
}
Response samples
application/json
{
  • "ia::result": [
    • {
      • "id": "Vend-00002",
      • "name": "Test vendor",
      • "status": "active",
      • "href": "/objects/accounts-payable/vendor/85"
      },
    • {
      • "id": "VEND-00010",
      • "name": "Design Works",
      • "status": "active",
      • "href": "/objects/accounts-payable/vendor/111"
      }
    ],
  • "ia::meta": {
    • "totalCount": 2,
    • "start": 1,
    • "pageSize": 100,
    • "next": null,
    • "previous": null
    }
}