Account allocation definitions

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

Before you generate an account allocation, you must create an account allocation definition. The account allocation definition enables you to record the rationale used for your allocation, the source pool, basis, and target entry in 1 place. After the definition is in place, you can generate the allocation.

For example, you can create an account allocation definition that distributes expenses across revenue-earning departments, then run an account allocation using that definition for the dates you want.

List account allocation definitions

get/objects/general-ledger/account-allocation

Returns a collection with a key, ID, and link for each account allocation definition. 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

Create a new account allocation definition.

SecurityOAuth2
Request
Request Body schema: application/json
required

Create an account allocation definition.

name
required
string

Name for the account allocation definition (must be 20 characters or less).

Example: "AllocaForAdjBookNew"
description
string

Description of the account allocation definition.

Example: "Monthly allocation of expenses"
methodology
string

The reasoning and methodology behind the configuration of the account allocation definition.

Example: "Expense allocation across revenue earning departments"
object

Supporting documents that provide reasoning and methodology for the account allocation.

key
string or null

System-assigned key for the attachment.

Example: "21"
id
string or null

Unique identifier for the attachment.

Example: "Sales01"
latestVersion
integer or null

Latest version of the account allocation definition.

Example: null
object

Determine how dimensions behave during allocation calculations, the level of detail included in the created allocation entries and whether the allocation occurs within a single entity, or across entities.

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 - These dimensions keep their 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 dimensions based on the calculation method selected in glAccountAllocationBasis. These dimensions are included in any dynamic calculations for the basis.
location
string
Default: "notConsidered"

How location dimension values are applied in the account allocation definition.

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

How department dimension values are applied in the account allocation definition.

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

How project dimension values are applied in the account allocation definition.

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

How customer dimension values are applied in the account allocation definition.

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

How vendor dimension values are applied in the account allocation definition.

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

How employee dimension values are applied in the account allocation definition.

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

How class dimension values are applied in the account allocation definition.

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

How item dimension values are applied in the account allocation definition.

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

How warehouse dimension values are applied in the account allocation definition.

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

How contract dimension values are applied in the account allocation definition.

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

When set to true, the activity delta includes another layer of validation for your allocation. For example, you create an allocation that needs to be run more often than once a period (payroll, for example). Enabling the activity delta tells Intacct to validate that your account setup is designed to clear the source amounts with each allocation generation. This is accomplished as follows:

  • By making sure that the accounts selected for your source pool are used as the reversing source pool selection.
  • If an alternate specific account is used for the reversal, it's included in the source pool account group so that it removes any prior allocation activity.

Allocated entries must be reflected in the source books to correctly consider the prior allocation impact. 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 to true, Intacct checks for a previously generated allocation in the same source period. If found, it's reversed as the first step when the new allocation is generated.

This reversal occurs on the same posting date as the new allocation. The reversal resets the allocation amount for the new allocation to consider the source amounts as though the prior allocation didn't 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

The source pool specified in the account allocation definition.

Array (= 1 items)
percentToAllocate
string

Percent of the source pool to be allocated and applied to the source amount during calculation.

Example: "100"
object

Source pool time period, the default time interval for the allocation.

reportingBook
string
Default: "accrual"

Accounting method used when calculating the allocation.

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

Use amounts from specified reporting book when calculating the allocation.

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

Account allocation.

object

Account group to base your allocation split on.

object

Account allocation source dimensions.

Array of objects = 1 items

Determines how the account allocation definition distributes the source pool amount across each allocation-focused dimension.

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

Determines how the amounts within the basis accounts are interpreted to derive amounts for the allocation split.

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

Time period used to get the basis information.

reportingBook
string
Default: "accrual"

Accounting method used in the basis calculation.

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

Method used to to distribute the source pool in the basis calculation.

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

Excludes negative balances from the basis calculation.

Example: false
useAmountsFrom
string
Default: "mainReportingBookAndAlternateBooks"

Uses amounts from specified reporting book in the basis calculation.

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

Account group to base your allocation split on.

object

Account allocation basis dimensions.

Array of objects = 1 items

Specifies where the account allocation definition distributes source pool amounts during calculation.

Array (= 1 items)
object

Account group to base your allocation split on.

isBillable
boolean
Default: false

Flag lines in the allocation target as billable.

Example: false
object

General ledger account.

object

Journal where the allocation will be recorded when generated.

object

Exchange rate details used to calculate the base amount.

object

Dimension overrides for the account allocation target.

Array of objects = 1 items

Determines whether to keep the allocated amounts in the allocation book or move them using copy and reverse to another book (like accrual).

Array (= 1 items)
useSourceAccount
boolean
Default: false

Specify if the original source account is included in the reversal.

Example: true
object

General ledger account associated with the reversal.

object

Dimension overrides for the account allocation reversal.

allowAllocation
string
Default: "withinOneEntity"

Specifies how the account allocation definition interacts with multiple entities.

  • withinOneEntity - You can only select source and basis options from the entity in which the allocation originates. Target entries are made in the same entity as the reversing source entries.
  • acrossEntities - For companies with multiple entities, account allocations can include more than one entity, even if they have different currencies. If using acrossEntities, 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.

Example: 178
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": "Admin",
      • "modifiedBy": "Admin"
      },
    • "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
      },
    • "glAccountAllocationSource": [
      • {
        }
      ],
    • "glAccountAllocationBasis": [
      • {
        }
      ],
    • "glAccountAllocationTarget": [
      • {
        }
      ],
    • "glAccountAllocationReverse": [
      • {
        }
      ],
    • "href": "/objects/general-ledger/account-allocation/29"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Update an 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.

Example: 178
Request Body schema: application/json
name
string

Name for the account allocation definition (must be 20 characters or less).

Example: "AllocaForAdjBookNew"
description
string

Description of the account allocation definition.

Example: "Monthly allocation of expenses"
methodology
string

The reasoning and methodology behind the configuration of the account allocation definition.

Example: "Expense allocation across revenue earning departments"
object

Supporting documents that provide reasoning and methodology for the account allocation.

key
string or null

System-assigned key for the attachment.

Example: "21"
id
string or null

Unique identifier for the attachment.

Example: "Sales01"
latestVersion
integer or null

Latest version of the account allocation definition.

Example: null
object

Determine how dimensions behave during allocation calculations, the level of detail included in the created allocation entries and whether the allocation occurs within a single entity, or across entities.

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 - These dimensions keep their 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 dimensions based on the calculation method selected in glAccountAllocationBasis. These dimensions are included in any dynamic calculations for the basis.
location
string
Default: "notConsidered"

How location dimension values are applied in the account allocation definition.

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

How department dimension values are applied in the account allocation definition.

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

How project dimension values are applied in the account allocation definition.

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

How customer dimension values are applied in the account allocation definition.

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

How vendor dimension values are applied in the account allocation definition.

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

How employee dimension values are applied in the account allocation definition.

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

How class dimension values are applied in the account allocation definition.

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

How item dimension values are applied in the account allocation definition.

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

How warehouse dimension values are applied in the account allocation definition.

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

How contract dimension values are applied in the account allocation definition.

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

When set to true, the activity delta includes another layer of validation for your allocation. For example, you create an allocation that needs to be run more often than once a period (payroll, for example). Enabling the activity delta tells Intacct to validate that your account setup is designed to clear the source amounts with each allocation generation. This is accomplished as follows:

  • By making sure that the accounts selected for your source pool are used as the reversing source pool selection.
  • If an alternate specific account is used for the reversal, it's included in the source pool account group so that it removes any prior allocation activity.

Allocated entries must be reflected in the source books to correctly consider the prior allocation impact. 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 to true, Intacct checks for a previously generated allocation in the same source period. If found, it's reversed as the first step when the new allocation is generated.

This reversal occurs on the same posting date as the new allocation. The reversal resets the allocation amount for the new allocation to consider the source amounts as though the prior allocation didn't 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

The source pool specified in the account allocation definition.

Array (= 1 items)
percentToAllocate
string

Percent of the source pool to be allocated and applied to the source amount during calculation.

Example: "100"
object

Source pool time period, the default time interval for the allocation.

reportingBook
string
Default: "accrual"

Accounting method used when calculating the allocation.

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

Use amounts from specified reporting book when calculating the allocation.

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

Account allocation.

object

Account group to base your allocation split on.

object

Account allocation source dimensions.

Array of objects = 1 items

Determines how the account allocation definition distributes the source pool amount across each allocation-focused dimension.

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

Determines how the amounts within the basis accounts are interpreted to derive amounts for the allocation split.

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

Time period used to get the basis information.

reportingBook
string
Default: "accrual"

Accounting method used in the basis calculation.

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

Method used to to distribute the source pool in the basis calculation.

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

Excludes negative balances from the basis calculation.

Example: false
useAmountsFrom
string
Default: "mainReportingBookAndAlternateBooks"

Uses amounts from specified reporting book in the basis calculation.

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

Account group to base your allocation split on.

object

Account allocation basis dimensions.

Array of objects = 1 items

Specifies where the account allocation definition distributes source pool amounts during calculation.

Array (= 1 items)
object

Account group to base your allocation split on.

isBillable
boolean
Default: false

Flag lines in the allocation target as billable.

Example: false
object

General ledger account.

object

Journal where the allocation will be recorded when generated.

object

Exchange rate details used to calculate the base amount.

object

Dimension overrides for the account allocation target.

Array of objects = 1 items

Determines whether to keep the allocated amounts in the allocation book or move them using copy and reverse to another book (like accrual).

Array (= 1 items)
useSourceAccount
boolean
Default: false

Specify if the original source account is included in the reversal.

Example: true
object

General ledger account associated with the reversal.

object

Dimension overrides for the account allocation reversal.

allowAllocation
string
Default: "withinOneEntity"

Specifies how the account allocation definition interacts with multiple entities.

  • withinOneEntity - You can only select source and basis options from the entity in which the allocation originates. Target entries are made in the same entity as the reversing source entries.
  • acrossEntities - For companies with multiple entities, account allocations can include more than one entity, even if they have different currencies. If using acrossEntities, 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 an account allocation definition

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

Deletes an account allocation definition.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the account allocation definition.

Example: 178
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
    }
}