COUNTCOUNT
Sign Up
Recurring Invoice TemplatesList recurring invoice templates

List recurring invoice templates

GET/partners/recurring-invoice-templates

Returns a paginated list of recurring invoice templates in the workspace.

Defaults to non-draft templates. Pass isDraft=true to retrieve templates still seeded from a draft invoice, or isDraft=all for both. Results embed the customer and line items. Use search and ordering to narrow the list.

HMAC signature + Bearer access token
Try this request

Query parameters

pageintegeroptional

Page number for pagination. The first page is 1.

limitintegeroptional

Records to return per page.

searchstringoptional

Partial, case-insensitive match across invoice title, summary, email, customer name, and total amount.

orderByenumoptional

Field to sort by. Defaults to nextInvoiceDate.

One of: customer, nextInvoiceDate, createdAt, updatedAt, total

orderDirectionenumoptional

Sort direction. Defaults to DESC.

One of: ASC, DESC

isDraftstringoptional

Draft filter: true returns only templates still seeded from a draft invoice, false (default) returns only active templates, all returns both.

One of: true, false, all

Responses

200Paginated list of recurring invoice templates.
401Missing or invalid HMAC signature, expired timestamp, or invalid Bearer token. Troubleshoot
403The credential does not have access to this workspace or resource. Troubleshoot
429Rate limit exceeded (100 requests per minute per clientId). Retry after the Retry-After header. Troubleshoot
GEThttps://api.getcount.com/partners/recurring-invoice-templates
Request
import crypto from 'node:crypto';

const BASE_URL = 'https://api.getcount.com';
const CLIENT_ID = process.env.COUNT_CLIENT_ID;
const CLIENT_SECRET = process.env.COUNT_CLIENT_SECRET;
const ACCESS_TOKEN = process.env.COUNT_ACCESS_TOKEN;

const method = 'GET';
const signingPath = '/recurring-invoice-templates';
const timestamp = Math.floor(Date.now() / 1000).toString();
const bodyString = '';

const bodyHash = '';
const baseString = `${method}:${signingPath}:${timestamp}:${bodyHash}`;
const signature = crypto.createHmac('sha256', CLIENT_SECRET).update(baseString).digest('hex');

const response = await fetch(`${BASE_URL}/partners/recurring-invoice-templates`, {
  method,
  headers: {
    'x-client-id': CLIENT_ID,
    'x-timestamp': timestamp,
    'x-signature': signature,
    Authorization: `Bearer ${ACCESS_TOKEN}`,
  },
});

console.log(await response.json());
Response · 200
{
  "status": "success",
  "message": "Success on fetching recurring invoice templates",
  "data": {
    "result": [
      {
        "id": "c4d5e6f7-a8b9-0123-cdef-456789012345",
        "invoiceTitle": "Monthly consulting retainer",
        "summary": "Recurring monthly invoice for Acme Corporation",
        "email": "contact@acme.com",
        "currency": "USD",
        "subtotal": 1000,
        "taxTotal": 85,
        "total": 1085,
        "invoiceType": "invoice",
        "customer": {
          "id": "dfa3219e-6af8-4c53-997a-037534f63a35",
          "customer": "Acme Corporation",
          "email": "contact@acme.com",
          "contactName": "John Doe"
        },
        "invoiceProducts": [
          {
            "id": "d5e6f7a8-b9c0-1234-defa-567890123456",
            "productServiceId": "aa11bb22-cc33-dd44-ee55-ff6677889900",
            "description": "Consulting services",
            "quantity": 10,
            "unitPrice": 100,
            "price": 100,
            "nonTaxable": false
          }
        ],
        "createdInvoiceTemplate": {
          "recurrencePattern": "monthly",
          "recurrenceInterval": 1,
          "occurrenceCount": null,
          "remainingOccurrence": null,
          "recurrenceEndDate": null,
          "nextInvoiceDate": "2026-04-01",
          "inAdvanceCreationDays": 0,
          "creationDate": "2026-04-01",
          "emailCustomer": true
        },
        "createdAt": "2026-01-15T10:30:00.000Z",
        "updatedAt": "2026-01-28T14:22:30.000Z"
      }
    ],
    "page": 1,
    "limit": 20,
    "totalPages": 1,
    "totalRecords": 1
  }
}