Subtotal templates

When advanced workflows are enabled in a multi-entity company, subtotal templates allow you to create different sets of subtotals and then refer to them by name within a transaction definition. Subtotal templates simplify setting up and managing transactions definitions.

For more information, see Subtotal templates — Purchasing in the Sage Intacct Help Center.

List subtotal templates

get/objects/purchasing/subtotal-template

Returns a collection with a key, ID, and link for each subtotal template. This operation is mostly for use in testing; use the query service to find objects that meet certain criteria and to specify properties that are returned.

SecurityOAuth2
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": [
    • {
      • "key": "27",
      • "id": "VAT",
      • "href": "/objects/purchasing/subtotal-template/27"
      },
    • {
      • "key": "28",
      • "id": "Invoice Tax",
      • "href": "/objects/purchasing/subtotal-template/28"
      },
    • {
      • "key": "30",
      • "id": "Invoice Charges",
      • "href": "/objects/purchasing/subtotal-template/30"
      }
    ],
  • "ia::meta": {
    • "totalCount": 3,
    • "start": 1,
    • "pageSize": 100,
    • "next": null,
    • "previous": null
    }
}

Create a subtotal template

post/objects/purchasing/subtotal-template

Creates a new subtotal template. If Purchasing is configured for subtotal templates, you can add a subtotal template. For more information, see About subtotal templates in the Sage Intacct Help Center.

SecurityOAuth2
Request
Request Body schema: application/json
required
id
required
string <= 100 characters

Name or other unique ID for the subtotal template.

Example: "Invoice Charges"
Array of objects

Line item details for the subtotal template.

Array
description
required
string <= 100 characters

Provide a description of the subtotal template line. Each description must be unique.

Example: "HandlingCharge"
subtotalType
required
string

Specifies whether the subtotal line item is a discount or charge.

Enum: "charge" "discount"
Example: "charge"
valueType
required
string

The subtotal line item can be either an amount or a percent.

Enum: "amount" "percent"
Example: "amount"
txnType
required
string or null

Indicates whether the subtotal will debit or credit the corresponding GL account and GL offset account.

Enum: "credit" "debit" null
Example: "debit"
lineNumber
integer <= 8 characters

Line number for the template line.

Example: 1
defaultValue
string <decimal-precision-10> <= 12 characters

Default value for the subtotal.

  • If valueType is amount, specify the amount of the subtotal. For example. specify 250.
  • If valueType is percent, specify a percentage as a whole number. For example, specify 10 for 10%. End users can override the default subtotal value in a transaction. The default value can have up to 10 decimals and should be a positive numeric value.
Example: "10"
isApportioned
boolean
Default: false

Indicates whether the discount subtotal will be apportioned across all line items in the transaction. Cannot be enabled if isTax is set to true.

Example: false
applyToLineNumber
integer or null <= 8 characters

Specify the subtotal line number to which the subtotal will apply. Sage Intacct treats the initial subtotal line as line number 0. The first defined subtotal from the transaction definition is line number 1, the second defined subtotal is line number 2, and so on.

Example: 1
isTax
boolean
Default: false

Set to true if the subtotal line is for tax. If set to true, when the transaction posts, the tax will post separately based on the items in the transaction.

Example: false
isAvalaraTax
boolean or null
Default: false

Set to true if the subtotal line item applies to AvaTax. This field only applies if a company is configured to use the Avalara AvaTax integration.

Example: false
object

Specify the GL account to which the subtotal will post. Transactions posted to a cash/bank GL account do not appear during reconciliation.

object

Specify the offset GL account to which the subtotal will post.

object

The purchasing subtotal template that includes this line item detail.

Responses
201

Created

400

Bad Request

Request samples
application/json
{
  • "id": "Invoice Charges",
  • "lines": [
    • {
      • "description": "Handling Charge",
      • "subtotalType": "charge",
      • "valueType": "amount",
      • "defaultValue": "20.50",
      • "isApportioned": false,
      • "glAccount": {
        },
      • "offsetGLAccount": {
        },
      • "txnType": "debit",
      • "applyToLineNumber": 0,
      • "isTax": false,
      • "isAvalaraTax": false
      }
    ]
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "30",
    • "id": "Invoice Charges",
    • "href": "/objects/purchasing/subtotal-template/30"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Get a subtotal template

get/objects/purchasing/subtotal-template/{key}

Returns detailed information for a specified subtotal template.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned unique key for the subtotal template.

Example: 30
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": {
    • "key": "30",
    • "id": "Invoice Charges",
    • "moduleKey": "9.PO",
    • "lines": [
      • {
        }
      ],
    • "href": "/objects/purchasing/subtotal-template/30",
    • "audit": {
      • "createdDateTime": "2024-05-28T07:14:59Z",
      • "modifiedDateTime": "2024-05-28T11:55:51Z",
      • "createdBy": "1",
      • "modifiedBy": "1"
      }
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Update a subtotal template

patch/objects/purchasing/subtotal-template/{key}

Updates an existing subtotal template by setting field values. Any fields not provided remain unchanged. Changes that are made to a subtotal template that affect the amount or percent of a subtotal line will not apply to existing transaction definitions. The previous subtotal details will be used instead. Any changes will always apply to new transaction definitions.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned unique key for the subtotal template.

Example: 30
Request Body schema: application/json
Array of objects

Line item details for the subtotal template.

Array
description
string <= 100 characters

Provide a description of the subtotal template line. Each description must be unique.

Example: "HandlingCharge"
subtotalType
string

Specifies whether the subtotal line item is a discount or charge.

Enum: "charge" "discount"
Example: "charge"
lineNumber
integer <= 8 characters

Line number for the template line.

Example: 1
valueType
string

The subtotal line item can be either an amount or a percent.

Enum: "amount" "percent"
Example: "amount"
defaultValue
string <decimal-precision-10> <= 12 characters

Default value for the subtotal.

  • If valueType is amount, specify the amount of the subtotal. For example. specify 250.
  • If valueType is percent, specify a percentage as a whole number. For example, specify 10 for 10%. End users can override the default subtotal value in a transaction. The default value can have up to 10 decimals and should be a positive numeric value.
Example: "10"
isApportioned
boolean
Default: false

Indicates whether the discount subtotal will be apportioned across all line items in the transaction. Cannot be enabled if isTax is set to true.

Example: false
txnType
string or null

Indicates whether the subtotal will debit or credit the corresponding GL account and GL offset account.

Enum: "credit" "debit" null
Example: "debit"
applyToLineNumber
integer or null <= 8 characters

Specify the subtotal line number to which the subtotal will apply. Sage Intacct treats the initial subtotal line as line number 0. The first defined subtotal from the transaction definition is line number 1, the second defined subtotal is line number 2, and so on.

Example: 1
isTax
boolean
Default: false

Set to true if the subtotal line is for tax. If set to true, when the transaction posts, the tax will post separately based on the items in the transaction.

Example: false
isAvalaraTax
boolean or null
Default: false

Set to true if the subtotal line item applies to AvaTax. This field only applies if a company is configured to use the Avalara AvaTax integration.

Example: false
object

Specify the GL account to which the subtotal will post. Transactions posted to a cash/bank GL account do not appear during reconciliation.

object

Specify the offset GL account to which the subtotal will post.

object

The purchasing subtotal template that includes this line item detail.

Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "lines": [
    • {
      • "key": "28",
      • "subtotalType": "charge",
      • "defaultValue": "25.00"
      }
    ]
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "30",
    • "id": "Invoice Charges",
    • "href": "/objects/purchasing/subtotal-template/30"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Delete a subtotal template

delete/objects/purchasing/subtotal-template/{key}

Deletes a subtotal template. You can delete a subtotal template if no transactions have been created with a transaction definition that refers to the template.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned unique key for the subtotal template.

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