Recurring invoices

Recurring invoices are invoices that repeat at periods and durations that you define in the recurrence schedule.

List recurring invoices

get/objects/accounts-receivable/recurring-invoice

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

Permissions and other requirements
SubscriptionAccounts Receivable
User typeBusiness/Admin, Employee, Project Manager, Warehouse, Approver
PermissionsList, View Recurring invoices
SecurityOAuth2
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": [
    • {
      • "key": "3",
      • "id": "3",
      • "href": "/objects/accounts-receivable/recurring-invoice/3"
      },
    • {
      • "key": "4",
      • "id": "4",
      • "href": "/objects/accounts-receivable/recurring-invoice/4"
      },
    • {
      • "key": "7",
      • "id": "7",
      • "href": "/objects/accounts-receivable/recurring-invoice/7"
      }
    ],
  • "ia::meta": {
    • "totalCount": 3,
    • "start": 1,
    • "pageSize": 100,
    • "next": null,
    • "previous": null
    }
}

Create a recurring invoice

post/objects/accounts-receivable/recurring-invoice

Creates a new recurring invoice.

Permissions and other requirements
SubscriptionAccounts Receivable
User typeBusiness/Admin, Employee, Approver
PermissionsList, View, Add Recurring invoices
SecurityOAuth2
Request
Request Body schema: application/json
invoiceNumber
required
string

Each occurrence of the invoice is numbered incrementally based on the sequence type defined in Company Setup - Document Sequence.

Example: "AR-INV"
object

Tax solution details for this invoice.

key
string or null

System-assigned key to uniquely identify the tax solution.

Example: "4"
id
string or null

Name or other unique identifier for the tax solution.

Example: "Australia GST"
description
string or null

Description of the recurring invoice.

Example: "Monthly premium subscription"
referenceNumber
string

A number, such as a purchase order or account number, that may be useful in searches for or reports on this invoice.

Example: "PO1223"
object

Settings that establish the recurrence schedule.

startDate
required
string <date>

The first date on which the invoice is generated.

Example: "2024-01-01"
endDate
string or null <date>

If the scheduleEnd is set to endDate, this establishes the final date on which the invoice will be generated.

Example: "2025-01-01"
repeatCount
string or null

If scheduleEnd is set to numberOfOccurrences, this establishes the number of times the invoice is generated.

Example: "1"
repeatInterval
string or null
Default: "1"

Repeat interval for generating the recurring invoice. For example, if repeatBy is set to month and the repeatInterval is set to 2, an invoice is generated every other month after the start date.

Example: "2"
repeatBy
string
Default: "day"

Indicates the regular interval at which the invoice is generated. To have the invoice occur at regular intervals, set to day, week, month or year. Set to none to have the invoice occur only once.

If set to day, week, month or year, the invoice will recur at the next interval on the same date as the start date. To make an invoice with a monthly interval generate at the end of the month, set to endOfMonth.

Enum: "day" "endOfMonth" "month" "none" "week" "year"
Example: "day"
scheduleEnd
string

Termination point for the recurring invoice schedule.

Enum: "endDate" "never" "numberOfOccurrences"
Example: "never"
object

Payment terms, which are used to calculate due date, discounts, and penalties associated with this invoice.

key
required
string

System-assigned key for the payment term.

Example: "16"
id
string

Name or other unique identifier for the payment term.

Example: "N15"
object
id
string or null

Unique identifier for the contract.

Example: "CON-2"
description
string or null

Description of the contract.

Example: "Contract 2"
object
txnCurrency
required
string

For multi-currency companies, the currency for the invoice.

Example: "USD"
baseCurrency
string

For multi-currency companies, the company's base currency.

Example: "USD"
exchangeRate
number or null

Exchange rate

Example: 1.0789
exchangeRateTypeId
string or null

Exchange rate type

Example: "Intacct Daily Rate"
object

Message to include on the customer's invoice.

key
string

System-assigned key for the customer message.

Example: "10"
id
string

ID for the customer message.

Example: "welcome message"
message
string

Message text for the customer message.

Example: "welcome to the company"
txnTotalEntered
string <decimal-precision-2>

Total transaction amount entered.

Example: "100"
object

Contacts for the invoice.

object

Customer contact to receive the invoice.

key
string

System-assigned key for the contact.

Example: "15"
id
string

Name of the contact.

Example: "Klay Vanderbilt"
object

Ship-to contact for the invoice.

key
string

System-assigned key for the contact.

Example: "15"
id
string

Name of the contact.

Example: "Klay Vanderbilt"
object

Tax related information for the ship-to contact.

object

Customer to receive the invoice.

key
required
string

System-assigned key for the customer.

Example: "10"
id
string

ID for the customer.

Example: "2"
object

List of payments on the recurring AR invoice.

paymentMethod
string

Payment method.

Enum: "cash" "creditCard" "eft" "none" "onlineAchDebit" "onlineChargeCard" "printedCheck"
Example: "creditCard"
paymentAmount
string or null <decimal-precision-2>

Recurring invoice payment amount.

Example: "25.00"
creditCardType
string or null

Card type.

Enum: "amex" "diners" "discover" "mc" null "other" "visa"
Example: "visa"
accountType
string or null
Default: null

Type of account to which the payment will be deposited.

Enum: "bank" null "undepositedFundsAccount"
Example: "bank"
payInFull
boolean
Default: true

Indicates whether to pay the invoice in full.

Example: true
bankAccountID
string or null

Bank account record number.

Example: "SBME"
undepositedFundsAccountId
string or null

Undeposited funds account number.

Example: "1070"
object
key
string or null

Customer credit card key.

Example: "10"
id
string or null

Customer credit card id.

Example: "Card101"
object

Supporting document for the invoice.

key
string or null

System-assigned key for the attachment.

Example: "6"
id
string or null

Unique ID of the attachment.

Example: "Doc6331"
Array of objects

Line items of the invoice.

Array
txnAmount
required
string <decimal-precision-2>

Transaction amount of the line item.

Example: "100.00"
description
string or null

Provides information about the line item that may be of use in the future.

Example: "Service charges"
amount
string <decimal-precision-2>

Base amount of the line item.

Example: "100"
totalTxnAmount
string <decimal-precision-2>

For tax inclusive recurring invoices, provide a total transaction amount.

Example: "100.00"
isBillable
boolean
Default: false

Indicates whether the line item is billable.

Example: true
object

Currency information for the line item.

isTax
boolean
Default: false

Indicates whether the line item is taxable.

Example: true
isSubTotal
boolean
Default: false

Indicates whether the line item is a subtotal.

Example: true
object

Type of transaction allocation for the line item.

object

Account label for the account that the line item is assigned to.

object

For companies subscribed to the Taxes application, the tax category for the line item.

startDate
string or null <date>

Revenue recognition start date.

Example: "2024-01-23"
endDate
string or null <date>

Revenue recognition end date.

Example: "2024-01-23"
object

GL account for deferred revenue for the line item.

object

GL account the line item is assigned to.

object
object

GL account for discounts and penalties.

Array of objects

Tax Entries of the AR recurring invoice

object

Header level details for the AR recurring invoice line entries.

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"
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
{
  • "description": "Monthly premium subscription",
  • "term": {
    • "key": "25"
    },
  • "invoiceNumber": "AR-INV",
  • "referenceNumber": "PO1223",
  • "customer": {
    • "key": "10"
    },
  • "currency": {
    • "txnCurrency": "USD",
    • "baseCurrency": "USD"
    },
  • "payment": {
    • "paymentMethod": "onlineChargeCard",
    • "payInFull": true,
    • "accountType": "bank",
    • "bankAccountID": "BOA"
    },
  • "schedule": {
    • "startDate": "2024-03-11",
    • "repeatBy": "month",
    • "repeatInterval": "2"
    },
  • "lines": [
    • {
      • "description": "line 1",
      • "glAccount": {
        },
      • "txnAmount": "250.00"
      }
    ]
}
Response samples
application/json
{
  • "ia::result": {
    • "id": "4",
    • "key": "4",
    • "href": "/objects/accounts-receivable/recurring-invoice/4"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Get a recurring invoice

get/objects/accounts-receivable/recurring-invoice/{key}

Returns detailed information for a specified recurring invoice.

Permissions and other requirements
SubscriptionAccounts Receivable
User typeBusiness/Admin, Employee, Project Manager, Warehouse, Approver
PermissionsList, View Recurring invoices
SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the recurring invoice.

Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": {
    • "id": "24",
    • "key": "24",
    • "description": "nextGen Recurr",
    • "audit": {
      • "createdDateTime": "2024-09-24T00:00:00Z",
      • "modifiedDateTime": "2024-09-24T14:18:18Z",
      • "createdBy": "1",
      • "modifiedBy": "1"
      },
    • "term": {
      • "key": "15",
      • "id": "Due upon pay",
      • "href": "/objects/accounts-receivable/term/15"
      },
    • "invoiceNumber": "Adjustment Decrease",
    • "totalEntered": "440.00",
    • "referenceNumber": null,
    • "status": "active",
    • "customer": {
      • "name": "Power Aerospace Materials",
      • "key": "1",
      • "id": "1",
      • "href": "/objects/accounts-receivable/customer/1"
      },
    • "contract": {
      • "id": null,
      • "description": null
      },
    • "contacts": {
      • "billTo": {
        },
      • "shipTo": {
        }
      },
    • "currency": {
      • "txnCurrency": "AUD",
      • "baseCurrency": "AUD",
      • "exchangeRateTypeId": "",
      • "exchangeRate": 1
      },
    • "txnTotalEntered": "440.00",
    • "customerMessage": {
      • "key": null,
      • "id": null,
      • "message": null
      },
    • "payment": {
      • "paymentMethod": "none",
      • "payInFull": true,
      • "paymentAmount": null,
      • "customerCreditCard": {
        },
      • "creditCardType": null,
      • "accountType": null,
      • "bankAccountID": null,
      • "undepositedFundsAccountId": null
      },
    • "schedule": {
      • "startDate": "2024-09-24",
      • "endDate": null,
      • "nextExecutionDate": "2024-09-25",
      • "lastExecutionDate": "2024-09-24",
      • "repeatCount": "3",
      • "repeatBy": "day",
      • "repeatInterval": "1"
      },
    • "taxSolution": {
      • "key": "1",
      • "id": "Australia - GST",
      • "href": "/objects/tax/tax-solution/1"
      },
    • "attachment": {
      • "id": "atch1",
      • "key": null
      },
    • "lines": [
      • {
        }
      ],
    • "href": "/objects/accounts-receivable/recurring-invoice/24"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Update a recurring invoice

patch/objects/accounts-receivable/recurring-invoice/{key}

Updates an existing recurring invoice by setting field values. Any fields not provided remain unchanged.

Permissions and other requirements
SubscriptionAccounts Receivable
User typeBusiness
PermissionsList, View, Edit Recurring invoices
SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the recurring invoice.

Request Body schema: application/json
invoiceNumber
string

Each occurrence of the invoice is numbered incrementally based on the sequence type defined in Company Setup - Document Sequence.

Example: "AR-INV"
object

Tax solution details for this invoice.

key
string or null

System-assigned key to uniquely identify the tax solution.

Example: "4"
id
string or null

Name or other unique identifier for the tax solution.

Example: "Australia GST"
description
string or null

Description of the recurring invoice.

Example: "Monthly premium subscription"
referenceNumber
string

A number, such as a purchase order or account number, that may be useful in searches for or reports on this invoice.

Example: "PO1223"
object

Settings that establish the recurrence schedule.

startDate
string <date>

The first date on which the invoice is generated.

Example: "2024-01-01"
endDate
string or null <date>

If the scheduleEnd is set to endDate, this establishes the final date on which the invoice will be generated.

Example: "2025-01-01"
repeatCount
string or null

If scheduleEnd is set to numberOfOccurrences, this establishes the number of times the invoice is generated.

Example: "1"
repeatInterval
string or null
Default: "1"

Repeat interval for generating the recurring invoice. For example, if repeatBy is set to month and the repeatInterval is set to 2, an invoice is generated every other month after the start date.

Example: "2"
repeatBy
string
Default: "day"

Indicates the regular interval at which the invoice is generated. To have the invoice occur at regular intervals, set to day, week, month or year. Set to none to have the invoice occur only once.

If set to day, week, month or year, the invoice will recur at the next interval on the same date as the start date. To make an invoice with a monthly interval generate at the end of the month, set to endOfMonth.

Enum: "day" "endOfMonth" "month" "none" "week" "year"
Example: "day"
scheduleEnd
string

Termination point for the recurring invoice schedule.

Enum: "endDate" "never" "numberOfOccurrences"
Example: "never"
object

Payment terms, which are used to calculate due date, discounts, and penalties associated with this invoice.

key
string

System-assigned key for the payment term.

Example: "16"
id
string

Name or other unique identifier for the payment term.

Example: "N15"
object
id
string or null

Unique identifier for the contract.

Example: "CON-2"
description
string or null

Description of the contract.

Example: "Contract 2"
object
baseCurrency
string

For multi-currency companies, the company's base currency.

Example: "USD"
txnCurrency
string

For multi-currency companies, the currency for the invoice.

Example: "USD"
exchangeRate
number or null

Exchange rate

Example: 1.0789
exchangeRateTypeId
string or null

Exchange rate type

Example: "Intacct Daily Rate"
object

Message to include on the customer's invoice.

key
string

System-assigned key for the customer message.

Example: "10"
id
string

ID for the customer message.

Example: "welcome message"
message
string

Message text for the customer message.

Example: "welcome to the company"
txnTotalEntered
string <decimal-precision-2>

Total transaction amount entered.

Example: "100"
object

Contacts for the invoice.

object

Customer contact to receive the invoice.

key
string

System-assigned key for the contact.

Example: "15"
id
string

Name of the contact.

Example: "Klay Vanderbilt"
object

Ship-to contact for the invoice.

key
string

System-assigned key for the contact.

Example: "15"
id
string

Name of the contact.

Example: "Klay Vanderbilt"
object

Tax related information for the ship-to contact.

object

Customer to receive the invoice.

key
string

System-assigned key for the customer.

Example: "10"
id
string

ID for the customer.

Example: "2"
object

List of payments on the recurring AR invoice.

paymentMethod
string

Payment method.

Enum: "cash" "creditCard" "eft" "none" "onlineAchDebit" "onlineChargeCard" "printedCheck"
Example: "creditCard"
paymentAmount
string or null <decimal-precision-2>

Recurring invoice payment amount.

Example: "25.00"
creditCardType
string or null

Card type.

Enum: "amex" "diners" "discover" "mc" null "other" "visa"
Example: "visa"
accountType
string or null
Default: null

Type of account to which the payment will be deposited.

Enum: "bank" null "undepositedFundsAccount"
Example: "bank"
payInFull
boolean
Default: true

Indicates whether to pay the invoice in full.

Example: true
bankAccountID
string or null

Bank account record number.

Example: "SBME"
undepositedFundsAccountId
string or null

Undeposited funds account number.

Example: "1070"
object
key
string or null

Customer credit card key.

Example: "10"
id
string or null

Customer credit card id.

Example: "Card101"
object

Supporting document for the invoice.

key
string or null

System-assigned key for the attachment.

Example: "6"
id
string or null

Unique ID of the attachment.

Example: "Doc6331"
Array of objects

Line items of the invoice.

Array
description
string or null

Provides information about the line item that may be of use in the future.

Example: "Service charges"
amount
string <decimal-precision-2>

Base amount of the line item.

Example: "100"
txnAmount
string <decimal-precision-2>

Transaction amount of the line item.

Example: "100.00"
totalTxnAmount
string <decimal-precision-2>

For tax inclusive recurring invoices, provide a total transaction amount.

Example: "100.00"
isBillable
boolean
Default: false

Indicates whether the line item is billable.

Example: true
object

Currency information for the line item.

isTax
boolean
Default: false

Indicates whether the line item is taxable.

Example: true
isSubTotal
boolean
Default: false

Indicates whether the line item is a subtotal.

Example: true
object

Type of transaction allocation for the line item.

object

Account label for the account that the line item is assigned to.

object

For companies subscribed to the Taxes application, the tax category for the line item.

startDate
string or null <date>

Revenue recognition start date.

Example: "2024-01-23"
endDate
string or null <date>

Revenue recognition end date.

Example: "2024-01-23"
object

GL account for deferred revenue for the line item.

object

GL account the line item is assigned to.

object
object

GL account for discounts and penalties.

Array of objects

Tax Entries of the AR recurring invoice

object

Header level details for the AR recurring invoice line entries.

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"
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": "Renewed subscription for 2024",
  • "status": "active"
}
Response samples
application/json
{
  • "ia::result": {
    • "id": "4",
    • "key": "4",
    • "href": "/objects/accounts-receivable/recurring-invoice/4"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Delete a recurring invoice

delete/objects/accounts-receivable/recurring-invoice/{key}

Deletes a recurring invoice. If a recurring invoice is no longer in use, you can delete it instead of ending the recurring schedule. For example, if a contract with a customer is permanently canceled, you can delete the recurring invoice for that customer.

Permissions and other requirements
SubscriptionAccounts Receivable
User typeBusiness
PermissionsList, View, Edit, Delete Recurring invoices
SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the recurring invoice.

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 recurring invoices

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: "accounts-receivable/recurring-invoice"
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-receivable/recurring-invoice",
  • "filters": [
    • {
      • "$eq": {
        }
      }
    ],
  • "fields": [
    • "key",
    • "id",
    • "customer.name",
    • "contract.id",
    • "schedule.nextExecutionDate"
    ],
  • "orderBy": [
    • {
      • "id": "asc"
      }
    ]
}
Response samples
application/json
{
  • "ia::result": [
    • {
      • "key": "3",
      • "id": "3",
      • "customer.name": "CC Pharmaceuticals",
      • "contract.id": "CON-2",
      • "schedule.nextExecutionDate": "2024-09-05"
      },
    • {
      • "key": "4",
      • "id": "4",
      • "customer.name": "University Schematics",
      • "contract.id": "CON-41",
      • "schedule.nextExecutionDate": "2025-01-05"
      },
    • {
      • "key": "5",
      • "id": "5",
      • "customer.name": "Go Go Rentals",
      • "contract.id": "CON-13",
      • "schedule.nextExecutionDate": "2024-11-15"
      },
    • {
      • "key": "9",
      • "id": "9",
      • "customer.name": "Synergy Sales Solutions",
      • "contract.id": "CON-6",
      • "schedule.nextExecutionDate": "2024-08-16"
      },
    • {
      • "key": "10",
      • "id": "10",
      • "customer.name": "New Age Oil & Gas Corp",
      • "contract.id": "CON-420",
      • "schedule.nextExecutionDate": "2024-11-30"
      }
    ],
  • "ia::meta": {
    • "totalCount": 5,
    • "start": 1,
    • "pageSize": 100,
    • "next": null,
    • "previous": null
    }
}