2026 RELEASELive Demo
KatixoAIERP
Subscription & Billing Automation Guide

Recurring Invoices & Subscriptions

Automate repeating billing cycles in Katixo. Ideal for Annual Maintenance Contracts (AMC), monthly retainer agreements, facility leases, software subscriptions, and scheduled repeat client billings.

1. Module Overview: Automated Headless Invoicing

Rather than manually re-creating identical monthly invoices for repeat clients, recurring profiles automate invoice creation on designated schedule dates:

Flexible Frequencies

Configure Weekly, Monthly, Quarterly, Semi-Annual, or Annual generation cadences.

Auto-Send Option

Automatically transitions invoices to SENT status and dispatches PDF copies via WhatsApp and Email.

Fixed Term or Perpetual

Set fixed contract dates (e.g. 12 months) or keep perpetual until client cancellation.

2. How to Set Up a Recurring Profile (Step-by-Step UI Guide)

  1. 1
    Go to Sales > Recurring Invoices > Click "New Recurring Profile":Select the customer contact.
  2. 2
    Configure Schedule & Term:Choose frequency (e.g. Monthly), Start Date, and optional End Date. Enable "Auto Send" if you want the system to deliver the bill without manual review.
  3. 3
    Define Invoice Template Lines:Add retainer items, services, or rental lines with negotiated rates and GST.
  4. 4
    Activate Profile:Save the profile. On the due date, Katixo's cron job automatically generates the next invoice and increments the generation counter.

Developer & REST API Reference

Programmatically query, create, stop, and resume recurring billing schedules via REST:

GET/api/v1/recurring-invoices
GET/api/v1/recurring-invoices/{id}
POST/api/v1/recurring-invoices
PUT/api/v1/recurring-invoices/{id}
POST/api/v1/recurring-invoices/{id}/stop
POST/api/v1/recurring-invoices/{id}/resume

Create a recurring invoice

POST/api/v1/recurring-invoices
curl -X POST https://api.katixo.com/api/v1/recurring-invoices \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
  -H "Content-Type: application/json" \
  -d '{
    "contactId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "frequency": "MONTHLY",
    "startDate": "2026-07-01",
    "endDate": "2027-06-30",
    "autoSend": true,
    "lines": [
      {
        "description": "Monthly AMC — POS System",
        "quantity": 1,
        "unitPrice": 5000.00,
        "gstRate": 18.00
      }
    ],
    "notes": "Annual Maintenance Contract — POS hardware and software"
  }'

Request body

FieldTypeRequiredDescription
contactIdUUIDYesCustomer contact to bill.
frequencystringYesBilling frequency: WEEKLY, MONTHLY, QUARTERLY, YEARLY.
startDatedateYesDate of the first invoice.
linesarrayYesLine items (same structure as invoice lines).
endDatedateNoWhen to stop generating invoices. Runs indefinitely if omitted.
autoSendbooleanNoAutomatically send generated invoices. Default: false.

Stop & resume

POST/api/v1/recurring-invoices/{id}/stop
POST/api/v1/recurring-invoices/{id}/resume

Pause a recurring invoice schedule without deleting it. No new invoices are generated while stopped. Resume to continue from where it left off.

The RecurringInvoice object

{
  "id": "f6a7b8c9-d0e1-2345-6789-abcdef012345",
  "contactId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "customerName": "Sharma General Store",
  "frequency": "MONTHLY",
  "startDate": "2026-07-01",
  "endDate": "2027-06-30",
  "nextInvoiceDate": "2026-08-01",
  "status": "ACTIVE",
  "autoSend": true,
  "invoicesGenerated": 1,
  "totalBilled": 5900.00,
  "lines": [
    {
      "description": "Monthly AMC — POS System",
      "quantity": 1,
      "unitPrice": 5000.00,
      "gstRate": 18.00,
      "lineTotal": 5900.00
    }
  ],
  "notes": "Annual Maintenance Contract — POS hardware and software",
  "createdAt": "2026-06-15T10:00:00Z"
}