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/v1All 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
Authentication
JWT tokens, OTP login, refresh flow, and role-based access.
Invoices
Create, send, cancel, and manage GST-compliant invoices.
Items
Product catalog with HSN codes, pricing, batches, and BOM.
Contacts
Manage customers, vendors, GST details, and contact persons.
Inventory
Batch tracking, expiry alerts, and available stock queries.
GST & Tax
GST review center, GSTR-1, GSTR-3B data and exports.
Purchase Bills
Record purchase bills, manage attachments, and bulk post.
Expenses
Track and categorize business expenses.
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.