Katixo/API DocumentationBeta

Katixo API

Build integrations with Katixo's accounting, invoicing, inventory, and GST compliance platform. The API follows REST conventions, uses JSON for all request and response bodies, and authenticates via JWT Bearer tokens.

Beta notice: The Katixo API is in active development. Endpoints documented here are stable, but new endpoints and fields may be added. Breaking changes will be announced with at least 30 days notice via the changelog.

Base URL

https://api.katixo.com/api/v1

All API requests must be made over HTTPS. HTTP requests are rejected.

Quick start

1. Register and sign in to get a JWT access token (see Authentication).

2. Make your first request:

curl https://api.katixo.com/api/v1/invoices \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
  -H "Content-Type: application/json"

This returns a paginated list of your invoices. See Authentication for details on obtaining and refreshing tokens.

Response format

All API responses are wrapped in a standard ApiResponse envelope:

{
  "success": true,
  "message": "Invoices retrieved successfully",
  "data": { ... },
  "errors": null
}

On error, success is false and the errors field contains validation details:

{
  "success": false,
  "message": "Validation failed",
  "data": null,
  "errors": {
    "invoiceDate": "must not be null",
    "contactId": "must not be null"
  }
}

Resources

Conventions

Pagination — List endpoints return paginated results using Spring Pageable. Use page (0-indexed), size, and sort query parameters. Default page size is 20.
Paginated response — Paginated endpoints return a PagedResponse inside the data field:
{
  "success": true,
  "message": "...",
  "data": {
    "content": [ ... ],
    "page": 0,
    "size": 20,
    "totalElements": 142,
    "totalPages": 8,
    "last": false
  },
  "errors": null
}
Dates — Timestamps use ISO 8601 format. Financial dates (invoice date, due date) use YYYY-MM-DD (LocalDate). Audit timestamps use Instant format.
Amounts — All monetary amounts use BigDecimal with up to 2 decimal places. 1234.56 represents ₹1,234.56.
IDs — All resource IDs are UUIDs (e.g., 550e8400-e29b-41d4-a716-446655440000).
Multi-tenancy — The organization context (org_id) is embedded in your JWT token. You can switch organizations using the POST /api/v1/users/me/switch-org endpoint.