Budgets

Budgets help you to track company performance over time by comparing actual results against forecasted figures across pre-defined reporting periods. A budget represents a financial plan used to estimate company revenue and expenses. Each budget objects contains associated budget detail objects that correspond to specific reporting periods and include information such as location, department or other dimensions.

Before you can create or import a budget, several items in Sage Intacct must be set up:

  • Reporting periods for budgeting: Budgets are typically created for reporting periods of 1 month. Reporting periods must exist and be available for inclusion in a budget. The dates of reporting periods selected for budgets cannot overlap.
  • Accounts: Each account for which you want to create a budget must exist in the Chart of Accounts.
  • Dimensions: Although using dimensions in budgets isn't required, dimensions such as Location, Department, or Employee can be included in a budget if they've been created in Intacct.

To learn more about the requirements for creating a budget, see Before you create a budget in the Sage Intacct Help Center.

List budgets

get/objects/general-ledger/budget

Returns a collection with a key, ID, and link for each budget. This operation is mostly for use in testing; use the query service to find budgets 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": "1",
      • "id": "Std_Budget",
      • "href": "/objects/general-ledger/budget/1"
      },
    • {
      • "key": "2",
      • "id": "KPI_BUDGET",
      • "href": "/objects/general-ledger/budget/2"
      }
    ],
  • "ia::meta": {
    • "totalCount": 2,
    • "start": 1,
    • "pageSize": 100,
    • "next": null,
    • "previous": null
    }
}

Create a budget

post/objects/general-ledger/budget

Creates a new budget. The API does not compute amounts for calculated budgets, so an amount must be provided for each budget detail object.

SecurityOAuth2
Request
Request Body schema: application/json
required

Create a budget

id
required
string

Unique identifier for the budget. Assign a budget id that does not include a specific fiscal year or date to allow new time periods to be added to an existing budget when needed.

Example: "Employee Expense Budget"
description
required
string

Description of the budget.

Example: "Budget for project costs"
isDefault
boolean
Default: false

Indicates whether this budget is the company's default budget for financial reporting. Only one top-level budget can be set to true to designate it as the default. The system sets this value to false for all other budgets.

Example: false
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"
consolidateAmounts
boolean
Default: false

Indicates whether the budget includes consolidated amounts. Set to true to include in consolidated financial reports. (Consolidation subscription)

Example: false
currency
string

Specifies the budget currency in a multi-currency company. Required when consolidateAmounts is set to true. (Consolidation subscription)

Example: "USD"
postProjectEstimate
boolean
Default: false

Indicates whether project estimates can be posted to the budget. Set to true to allow posting. (Construction subscription)

Example: false
postProjectContract
boolean
Default: false

Indicates whether project contracts can be posted to the budget. Set to true to allow posting. (Construction subscription)

Example: false
Array of objects

Budget detail line items contained within the budget.

Array
required
object

General ledger account associated with the budget details. Once the details are saved, the selected account cannot be changed.

amount
required
string <decimal-precision-2>

Budgeted amount for the budget details.

Example: "100.00"
object

Dimensions associated with the budget detail. Any dimension that is available in the General Ledger can be used with budgets, including user-defined dimensions.

object

Reporting period for the budget details, limits information to a specific time-period.

A reporting period cannot be used if it has already been assigned to the same combination of account, department and location in another budget detail.

notes
string

Brief description with any relevant notes for the budget details.

Example: "Projection for 2025"
object

Defines how the budget details are calculated using the specified budget type and planned growth. The calculation is triggered when the budget details object is created or updated.

object
Responses
201

Created

400

Bad Request

Request samples
application/json
{
  • "id": "KPI_BUDGET",
  • "description": "KPI Budget",
  • "isDefault": true,
  • "status": "active",
  • "consolidateAmounts": false,
  • "currency": "USD",
  • "postProjectEstimate": false,
  • "lines": [
    • {
      • "glAccount": {
        },
      • "dimensions": {
        },
      • "reportingPeriod": {
        },
      • "amount": "1000.00",
      • "budgetGrowth": {
        }
      },
    • {
      • "glAccount": {
        },
      • "dimensions": {
        },
      • "reportingPeriod": {
        },
      • "amount": "1500.00",
      • "budgetGrowth": {
        }
      }
    ]
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "41",
    • "id": "KPI_BUDGET",
    • "href": "/objects/general-ledger/budget/41"
    },
  • "ia::meta": {
    • "totalCount": 1
    }
}

Get a budget

get/objects/general-ledger/budget/{key}

Returns detailed information for a specified budget.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the budget.

Example: 291
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": {
    • "key": "5",
    • "id": "Employee Expense Budget",
    • "description": "Employee Expense Budget",
    • "isDefault": false,
    • "submitterName": "John Smith",
    • "status": "active",
    • "audit": {
      • "createdDateTime": "2025-04-24T12:10:25Z",
      • "modifiedDateTime": "2025-04-24T12:10:25Z",
      • "createdByUser": {
        },
      • "modifiedByUser": {
        },
      • "createdBy": "John Smith",
      • "modifiedBy": "John Smith"
      },
    • "consolidateAmounts": false,
    • "currency": "USD",
    • "postProjectEstimate": false,
    • "postProjectContract": false,
    • "entity": {
      • "key": null,
      • "id": null
      },
    • "lines": [
      • {
        }
      ],
    • "href": "/objects/general-ledger/budget/5"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Update a budget

patch/objects/general-ledger/budget/{key}

Updates an existing budget and its associated budget details by setting field values. Any fields not provided remain unchanged.

  • To update an existing budget detail, provide the key value for the object.
  • To add new details to a budget, do not include a key value for the budget detail object.
  • To delete a budget detail object from a budget, send a DELETE /objects/general-ledger/budget-detail/{key} request.
SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the budget.

Example: 291
Request Body schema: application/json
description
string

Description of the budget.

Example: "Budget for project costs"
isDefault
boolean
Default: false

Indicates whether this budget is the company's default budget for financial reporting. Only one top-level budget can be set to true to designate it as the default. The system sets this value to false for all other budgets.

Example: false
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"
consolidateAmounts
boolean
Default: false

Indicates whether the budget includes consolidated amounts. Set to true to include in consolidated financial reports. (Consolidation subscription)

Example: false
currency
string

Specifies the budget currency in a multi-currency company. Required when consolidateAmounts is set to true. (Consolidation subscription)

Example: "USD"
postProjectEstimate
boolean
Default: false

Indicates whether project estimates can be posted to the budget. Set to true to allow posting. (Construction subscription)

Example: false
postProjectContract
boolean
Default: false

Indicates whether project contracts can be posted to the budget. Set to true to allow posting. (Construction subscription)

Example: false
Array of objects

Budget detail line items contained within the budget.

Array
object

General ledger account associated with the budget details. Once the details are saved, the selected account cannot be changed.

object

Dimensions associated with the budget detail. Any dimension that is available in the General Ledger can be used with budgets, including user-defined dimensions.

object

Reporting period for the budget details, limits information to a specific time-period.

A reporting period cannot be used if it has already been assigned to the same combination of account, department and location in another budget detail.

notes
string

Brief description with any relevant notes for the budget details.

Example: "Projection for 2025"
object

Defines how the budget details are calculated using the specified budget type and planned growth. The calculation is triggered when the budget details object is created or updated.

amount
string <decimal-precision-2>

Budgeted amount for the budget details.

Example: "100.00"
object
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "status": "inactive"
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "21",
    • "id": "KPI_BUDGET",
    • "href": "/objects/general-ledger/budget/21"
    },
  • "ia::meta": {
    • "totalCount": 1
    }
}

Delete budget

delete/objects/general-ledger/budget/{key}

Deletes a budget. You cannot delete the default budget or any budget that is being used by a financial report.

Carefully consider the implications before you delete a budget. After you delete a budget, you will no longer be able to use its data to create future budgets. Deleted budgets can no longer be used in financial reports.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the budget.

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