# Invoice Frequency Templates

`GET /accounting/invoice-frequency-templates`

Group: Accounting › Invoice Frequency Templates · Operation ID: `invoiceFrequencyTemplates`

List invoice frequency templates with structured filters. GET data-set exposing filter[field][op]= (eq/ne/gt/gte/lt/lte/in/notIn/between/like), sort=-name,lastModifiedDate, sparse fields=, and page[size]/page[cursor] cursor pagination. Returns the catalogue of reusable billing schedules, each an RRULE recurrence rule a sales order product line can bill on instead of a fixed invoice frequency. Every request must carry the Api-Version header: a missing or empty header is rejected with 400, an identifier naming no version of the company with 400, and a route that exists but not in the requested version with 404.

[Open in the interactive reference](https://docs.api.lensing.ai/?op=invoiceFrequencyTemplates)

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Api-Version` | header | `"v1"` | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version `v1`. |

## Query surface

- `id` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `name` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `isEvenInvoicing` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `lastModifiedDate` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- Orderable: id, name, isEvenInvoicing, lastModifiedDate
- Selectable: id, name, rule, isEvenInvoicing, lastModifiedDate

## Response

`200` Success

Under `data`, an array of invoiceFrequencyTemplatesRow:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Stable, platform-assigned id (a UUID) of the invoice frequency template — the public identifier other accounting contracts reference a template by. |
| `name` | string | no | Human-readable name of the template, e.g. 'Month end' or 'Twice monthly'. This is what a user picks from the invoice frequency dropdown on a sales order product line. Filter target: filter[name][eq]=Month end, or filter[name][in]=Month end,Twice monthly. Filterable because it is the node's only human-facing key — there is no machine code to filter instead, and no Search sibling to fall back on (R2.3.4c). |
| `rule` | string | no | Recurrence rule of the template as an RFC 5545 RRULE string, e.g. 'FREQ=MONTHLY;INTERVAL=1;BYMONTHDAY=15,-1' for the 15th and the last day of every month. BYMONTHDAY=-1 denotes the last day of the month whatever its length, so it resolves to the 28th, 29th, 30th or 31st as applicable. Returned only: in neither filterableFields nor orderableFields, because it is a structured expression rather than a comparable scalar (R7.2) — filtering on what a rule MEANS needs the Search target. |
| `isEvenInvoicing` | boolean or null | no | Whether the period amount is split evenly across the period's invoices (true) rather than prorated by day count (false). On a twice-monthly template billing 2000 per month, true invoices 1000 and 1000 regardless of how many days each half holds, while false apportions by days. Applies to recurring product lines; a usage line's amount is metered, so the flag has no effect there. Filter target: filter[isEvenInvoicing][eq]=true. |
| `lastModifiedDate` | string (date-time) | no | Instant the invoice frequency template last changed, as ISO 8601 UTC (YYYY-MM-DDTHH:mm:ss.sssZ). Filter and sort on this to sync incrementally: filter[lastModifiedDate][gte]=2026-08-01T00:00:00.000Z with sort=lastModifiedDate. |

## Statuses

- `400` — Invalid request or business failure
- `401` — Missing or invalid access token
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests
- `500` — Internal server error
