API Documentation

Integrate Kagaz invoice generation into your applications.RESTful API with comprehensive documentation.

Getting Started

The Kagaz API allows you to create and manage invoices programmatically. Our RESTful API uses standard HTTP methods and returns JSON responses.

Base URL
https://api.kagaz.app/v1
Quick Example
curl -X POST https://api.kagaz.app/v1/invoices \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "number": "INV-001",
    "currency": "USD",
    "client_name": "John Doe",
    "client_email": "[email protected]",
    "issuer_name": "Your Company",
    "issuer_email": "[email protected]",
    "issuedDate": "2024-01-15",
    "dueDate": "2024-02-15",
    "items": [
      {
        "title": "Web Development",
        "quantity": 1,
        "rate": 1000,
        "unit": "project"
      }
    ]
  }'

Authentication

All API requests require authentication using your API key. Include your API key in the Authorization header using Bearer authentication.

Demo API Key: Sign up to get your personal API key with higher rate limits.

POST/v1/invoices

Create Invoice

Create a new invoice with client details, line items, and payment information.

Request Parameters
ParameterTypeDescription
numberRequiredstringUnique invoice number (e.g., "INV-001")
currencyRequiredstring3-letter currency code (USD, EUR, GBP, INR)
client_nameRequiredstringClient's full name
client_emailRequiredstringClient's email address
itemsRequiredarrayArray of invoice line items
titleRequiredstringItem description
quantityRequirednumberItem quantity
rateRequirednumberItem rate/price
Example Request
{
  "number": "INV-2024-001",
  "currency": "USD",
  "theme": "#3b82f6",
  "client_name": "Acme Corporation",
  "client_email": "[email protected]",
  "issuer_name": "Your Company LLC",
  "issuer_email": "[email protected]",
  "issuedDate": "2024-01-15",
  "dueDate": "2024-02-15",
  "items": [
    {
      "title": "Website Design",
      "quantity": 1,
      "rate": 2500,
      "unit": "project"
    }
  ]
}
GET/v1/invoices/:id

Get Invoice

Retrieve a specific invoice by its ID.

curl -X GET https://api.kagaz.app/v1/invoices/INVOICE_ID \
  -H "Authorization: Bearer YOUR_API_KEY"
GET/v1/invoices

List Invoices

Get a paginated list of your invoices with optional filtering.

Query Parameters
ParameterTypeDescription
statusOptionalstringFilter by status (draft, sent, paid, overdue)
pageOptionalnumberPage number (default: 1)
limitOptionalnumberItems per page (default: 10, max: 100)
GET/v1/invoices/:id/pdf

Download PDF

Generate and download a PDF version of an invoice.

Rate Limits

API rate limits vary by plan:

  • Free: 100 requests/month
  • Basic: 2,000 requests/month
  • Growth: 5,000 requests/month
  • Scale: 10,000 requests/month

Error Handling

The API uses standard HTTP status codes and returns detailed error messages in JSON format.

{
  "success": false,
  "error": "Validation error",
  "details": [
    "client_email is required"
  ]
}