Finance template

India GST Tax Invoice

CGST Rules 2017 Rule 46 compliant tax invoice. Renders CGST + SGST for intra-state supplies or IGST for inter-state, per-line HSN/SAC codes, place-of-supply block.

Pro, Business & Scale plansCountry: INLanguage: enIN-GST
slug: in-gst-invoiceRendered with sample data
01

Quick start

Reference the template by its slug and pass your data. The same call works from any language; pick whichever fits your stack. Replace $KAMY_API_KEY with a key from the dashboard.

curl
curl https://kamy.dev/api/v1/render \
  -H "Authorization: Bearer $KAMY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "templateSlug": "in-gst-invoice",
    "data": {
      "invoiceNumber": "GST/2026-27/0148",
      "issueDate": "2026-04-15",
      "irn": "8a4f9c7e2b1d6f3e5a8b9c2d1e4f6a7b9c2d1e4f6a7b9c2d1e4f6a7b9c2d1e4f",
      "currency": "INR",
      "supplyType": "intra-state",
      "isInterState": false,
      "reverseCharge": false,
      "placeOfSupply": {
        "state": "Karnataka",
        "stateCode": "29"
      },
      "supplier": {
        "name": "Bengaluru Software Services Pvt. Ltd.",
        "gstin": "29ABCDE1234F1Z5",
        "address": [
          "6th Floor, Embassy Tech Square",
          "Bellandur, Bengaluru, KA 560103"
        ],
        "email": "[email protected]",
        "bankAccount": "00112233445566",
        "ifsc": "HDFC0001234"
      },
      "recipient": {
        "name": "Mysore Tech Innovations Pvt. Ltd.",
        "gstin": "29FGHIJ5678K2Z9",
        "address": [
          "Plot 14, Hebbal Industrial Area",
      // …
    }
  }'
node.js
import { Kamy } from "@kamydev/sdk";

const kamy = new Kamy({ apiKey: process.env.KAMY_API_KEY! });

const { url } = await kamy.render({
  templateSlug: "in-gst-invoice",
  data: {
    "invoiceNumber": "GST/2026-27/0148",
    "issueDate": "2026-04-15",
    "irn": "8a4f9c7e2b1d6f3e5a8b9c2d1e4f6a7b9c2d1e4f6a7b9c2d1e4f6a7b9c2d1e4f",
    "currency": "INR",
    "supplyType": "intra-state",
    "isInterState": false,
    "reverseCharge": false,
    "placeOfSupply": {
      "state": "Karnataka",
      "stateCode": "29"
    },
    "supplier": {
      "name": "Bengaluru Software Services Pvt. Ltd.",
      "gstin": "29ABCDE1234F1Z5",
      "address": [
        "6th Floor, Embassy Tech Square",
        "Bellandur, Bengaluru, KA 560103"
      ],
      "email": "[email protected]",
      "bankAccount": "00112233445566",
      "ifsc": "HDFC0001234"
    },
    "recipient": {
      "name": "Mysore Tech Innovations Pvt. Ltd.",
      "gstin": "29FGHIJ5678K2Z9",
      "address": [
        "Plot 14, Hebbal Industrial Area",
    // …
  },
});

console.log(url); // signed URL, valid for 1 hour
python
import os, requests

resp = requests.post(
    "https://kamy.dev/api/v1/render",
    headers={"Authorization": f"Bearer {os.environ['KAMY_API_KEY']}"},
    json={
        "templateSlug": "in-gst-invoice",
        "data": {
          "invoiceNumber": "GST/2026-27/0148",
          "issueDate": "2026-04-15",
          "irn": "8a4f9c7e2b1d6f3e5a8b9c2d1e4f6a7b9c2d1e4f6a7b9c2d1e4f6a7b9c2d1e4f",
          "currency": "INR",
          "supplyType": "intra-state",
          "isInterState": false,
          "reverseCharge": false,
          "placeOfSupply": {
            "state": "Karnataka",
            "stateCode": "29"
          },
          "supplier": {
            "name": "Bengaluru Software Services Pvt. Ltd.",
            "gstin": "29ABCDE1234F1Z5",
            "address": [
              "6th Floor, Embassy Tech Square",
              "Bellandur, Bengaluru, KA 560103"
            ],
            "email": "[email protected]",
            "bankAccount": "00112233445566",
            "ifsc": "HDFC0001234"
          },
          "recipient": {
            "name": "Mysore Tech Innovations Pvt. Ltd.",
            "gstin": "29FGHIJ5678K2Z9",
            "address": [
              "Plot 14, Hebbal Industrial Area",
          // …
        },
    },
)
resp.raise_for_status()
print(resp.json()["url"])
02

Sample payload

The full sample data the live preview above renders from. Use it as a starting point for your own integration — every field is optional except those marked required in the schema below.

json
{
  "invoiceNumber": "GST/2026-27/0148",
  "issueDate": "2026-04-15",
  "irn": "8a4f9c7e2b1d6f3e5a8b9c2d1e4f6a7b9c2d1e4f6a7b9c2d1e4f6a7b9c2d1e4f",
  "currency": "INR",
  "supplyType": "intra-state",
  "isInterState": false,
  "reverseCharge": false,
  "placeOfSupply": {
    "state": "Karnataka",
    "stateCode": "29"
  },
  "supplier": {
    "name": "Bengaluru Software Services Pvt. Ltd.",
    "gstin": "29ABCDE1234F1Z5",
    "address": [
      "6th Floor, Embassy Tech Square",
      "Bellandur, Bengaluru, KA 560103"
    ],
    "email": "[email protected]",
    "bankAccount": "00112233445566",
    "ifsc": "HDFC0001234"
  },
  "recipient": {
    "name": "Mysore Tech Innovations Pvt. Ltd.",
    "gstin": "29FGHIJ5678K2Z9",
    "address": [
      "Plot 14, Hebbal Industrial Area",
      "Mysuru, KA 570016"
    ],
    "email": "[email protected]"
  },
  "lineItems": [
    {
      "description": "ERP customization · April 2026",
      "hsn": "998313",
      "quantity": 1,
      "unitPrice": 250000,
      "taxableValue": 250000,
      "cgstRate": 9,
      "cgstAmount": 22500,
      "sgstRate": 9,
      "sgstAmount": 22500,
      "lineTotal": 295000
    },
    {
      "description": "Quarterly support retainer",
      "hsn": "998313",
      "quantity": 1,
      "unitPrice": 60000,
      "taxableValue": 60000,
      "cgstRate": 9,
      "cgstAmount": 5400,
      "sgstRate": 9,
      "sgstAmount": 5400,
      "lineTotal": 70800
    }
  ],
  "taxableValue": 310000,
  "totalCgst": 27900,
  "totalSgst": 27900,
  "total": 365800,
  "paymentTerms": "Net 30 from issue date.",
  "notes": "Intra-state supply — CGST 9% + SGST 9% (total GST 18%) per Schedule III."
}
03

JSON Schema

The render endpoint validates your payload against this JSON Schema before queuing the render. Validation errors come back with HTTP 400 and a VALIDATION_FAILED code listing every offending path.

json
{
  "type": "object",
  "required": [
    "invoiceNumber",
    "issueDate",
    "supplier",
    "recipient",
    "supplyType",
    "isInterState",
    "placeOfSupply",
    "lineItems",
    "taxableValue",
    "total"
  ],
  "properties": {
    "invoiceNumber": {
      "type": "string",
      "minLength": 1,
      "maxLength": 16
    },
    "issueDate": {
      "type": "string"
    },
    "irn": {
      "type": "string"
    },
    "currency": {
      "type": "string",
      "minLength": 3,
      "maxLength": 3
    },
    "supplyType": {
      "type": "string",
      "enum": [
        "intra-state",
        "inter-state"
      ]
    },
    "isInterState": {
      "type": "boolean"
    },
    "reverseCharge": {
      "type": "boolean"
    },
    "placeOfSupply": {
      "type": "object",
      "required": [
        "state",
        "stateCode"
      ],
      "properties": {
        "state": {
          "type": "string"
        },
        "stateCode": {
          "type": "string"
        }
      }
    },
    "supplier": {
      "type": "object",
      "required": [
        "name",
        "gstin"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "gstin": {
          "type": "string",
          "pattern": "^[0-9A-Z]{15}$"
        },
        "address": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "email": {
          "type": "string",
          "format": "email"
        },
        "bankAccount": {
          "type": "string"
        },
        "ifsc": {
          "type": "string"
        }
      }
    },
    "recipient": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "gstin": {
          "type": "string"
        },
        "address": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "email": {
          "type": "string",
          "format": "email"
        }
      }
    },
    "lineItems": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": [
          "description",
          "hsn",
          "quantity",
          "unitPrice",
          "taxableValue",
          "lineTotal"
        ],
        "properties": {
          "description": {
            "type": "string"
          },
          "hsn": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "unitPrice": {
            "type": "number"
          },
          "taxableValue": {
            "type": "number"
          },
          "cgstRate": {
            "type": "number"
          },
          "cgstAmount": {
            "type": "number"
          },
          "sgstRate": {
            "type": "number"
          },
          "sgstAmount": {
            "type": "number"
          },
          "igstRate": {
            "type": "number"
          },
          "igstAmount": {
            "type": "number"
          },
          "lineTotal": {
            "type": "number"
          }
        }
      }
    },
    "taxableValue": {
      "type": "number"
    },
    "totalCgst": {
      "type": "number"
    },
    "totalSgst": {
      "type": "number"
    },
    "totalIgst": {
      "type": "number"
    },
    "cessAmount": {
      "type": "number"
    },
    "total": {
      "type": "number"
    },
    "notes": {
      "type": "string"
    },
    "paymentTerms": {
      "type": "string"
    }
  }
}
India GST Tax Invoice template — Kamy PDF API — Kamy