Business

Invoice JSON Example

A detailed JSON example for a business invoice — includes line items, tax breakdown, payment terms, and totals. Ideal for accounting APIs, ERP integrations, and billing systems. Copy-ready.

{
  "id": "inv_2025-05-001",
  "invoiceNumber": "INV-2025-0501",
  "status": "sent",
  "currency": "INR",
  "issuer": {
    "name": "TechCraft Solutions Pvt Ltd",
    "gstin": "24AABCT1332L1ZE",
    "address": {
      "line1": "501, Iscon Emporio, Satellite",
      "city": "Ahmedabad",
      "state": "Gujarat",
      "postalCode": "380015",
      "country": "IN"
    },
    "email": "billing@techcraft.example.com",
    "phone": "+91-79-4040-5050"
  },
  "recipient": {
    "name": "Ravi Mehta",
    "company": "Mehta Enterprises",
    "gstin": "24ABCDE1234F1ZA",
    "address": {
      "line1": "42, Shyamal Cross Road",
      "city": "Ahmedabad",
      "state": "Gujarat",
      "postalCode": "380015",
      "country": "IN"
    },
    "email": "ravi.mehta@example.com"
  },
  "lineItems": [
    {
      "description": "Web Application Development — May 2025",
      "quantity": 1,
      "unit": "project",
      "unitPrice": 75000,
      "subtotal": 75000,
      "taxRate": 18,
      "taxAmount": 13500,
      "total": 88500
    },
    {
      "description": "Monthly Maintenance & Support",
      "quantity": 1,
      "unit": "month",
      "unitPrice": 15000,
      "subtotal": 15000,
      "taxRate": 18,
      "taxAmount": 2700,
      "total": 17700
    }
  ],
  "subtotal": 90000,
  "taxBreakdown": [
    {
      "type": "CGST",
      "rate": 9,
      "amount": 8100
    },
    {
      "type": "SGST",
      "rate": 9,
      "amount": 8100
    }
  ],
  "totalTax": 16200,
  "grandTotal": 106200,
  "amountPaid": 0,
  "amountDue": 106200,
  "paymentTerms": "Net 30",
  "dueDate": "2025-06-01T00:00:00Z",
  "notes": "Bank transfer preferred. Account details on file.",
  "issuedAt": "2025-05-01T00:00:00Z",
  "createdAt": "2025-05-01T09:00:00Z",
  "updatedAt": "2025-05-01T09:00:00Z"
}

Field Reference

invoiceNumberrequiredstringHuman-readable sequential invoice number (e.g. INV-2025-0501)
statusrequiredstringInvoice state: draft, sent, viewed, paid, overdue, or void
issuerrequiredobjectBilling entity details including GSTIN and address
recipientrequiredobjectClient details for whom the invoice is raised
lineItemsrequiredarray<object>Individual service or product lines with quantity, price, and tax
taxBreakdownoptionalarray<object>Tax components (CGST, SGST, IGST) with rates and amounts
grandTotalrequirednumberFinal amount due including all taxes
dueDaterequiredstring (ISO 8601)Payment due date based on payment terms

Variants

MinimalSimple invoice with two line items and a single tax rate, no breakdown.
{
  "id": "inv_2025-04-001",
  "invoiceNumber": "INV-2025-0401",
  "status": "draft",
  "currency": "INR",
  "issuer": {
    "name": "TechCraft Solutions Pvt Ltd",
    "email": "billing@techcraft.example.com"
  },
  "recipient": {
    "name": "Priya Sharma",
    "email": "priya.sharma@example.com"
  },
  "lineItems": [
    {
      "description": "Logo Design",
      "quantity": 1,
      "unit": "project",
      "unitPrice": 8000,
      "taxRate": 18,
      "total": 9440
    }
  ],
  "subtotal": 8000,
  "totalTax": 1440,
  "grandTotal": 9440,
  "amountDue": 9440,
  "dueDate": "2025-05-01T00:00:00Z",
  "issuedAt": "2025-04-01T00:00:00Z"
}
ExtendedMulti-line invoice with partial payment, late fee clause, and PDF download link.
{
  "id": "inv_2025-05-001",
  "invoiceNumber": "INV-2025-0501",
  "status": "partially_paid",
  "currency": "INR",
  "issuer": {
    "name": "TechCraft Solutions Pvt Ltd",
    "gstin": "24AABCT1332L1ZE",
    "address": {
      "line1": "501, Iscon Emporio, Satellite",
      "city": "Ahmedabad",
      "state": "Gujarat",
      "postalCode": "380015",
      "country": "IN"
    },
    "email": "billing@techcraft.example.com"
  },
  "recipient": {
    "name": "Ravi Mehta",
    "company": "Mehta Enterprises",
    "gstin": "24ABCDE1234F1ZA",
    "address": {
      "line1": "42, Shyamal Cross Road",
      "city": "Ahmedabad",
      "state": "Gujarat",
      "postalCode": "380015",
      "country": "IN"
    },
    "email": "ravi.mehta@example.com"
  },
  "lineItems": [
    {
      "description": "Web Application Development — May 2025",
      "quantity": 1,
      "unit": "project",
      "unitPrice": 75000,
      "subtotal": 75000,
      "taxRate": 18,
      "taxAmount": 13500,
      "total": 88500
    },
    {
      "description": "Monthly Maintenance & Support",
      "quantity": 1,
      "unit": "month",
      "unitPrice": 15000,
      "subtotal": 15000,
      "taxRate": 18,
      "taxAmount": 2700,
      "total": 17700
    }
  ],
  "subtotal": 90000,
  "taxBreakdown": [
    {
      "type": "CGST",
      "rate": 9,
      "amount": 8100
    },
    {
      "type": "SGST",
      "rate": 9,
      "amount": 8100
    }
  ],
  "totalTax": 16200,
  "grandTotal": 106200,
  "amountPaid": 50000,
  "amountDue": 56200,
  "payments": [
    {
      "amount": 50000,
      "method": "bank_transfer",
      "reference": "NEFT20250510XYZ",
      "paidAt": "2025-05-10T14:00:00Z"
    }
  ],
  "paymentTerms": "Net 30",
  "lateFeePolicy": "1.5% per month after due date",
  "dueDate": "2025-06-01T00:00:00Z",
  "pdfUrl": "https://billing.example.com/invoices/INV-2025-0501.pdf",
  "notes": "Bank transfer preferred. Account details on file.",
  "issuedAt": "2025-05-01T00:00:00Z",
  "createdAt": "2025-05-01T09:00:00Z",
  "updatedAt": "2025-05-10T14:05:00Z"
}

Common Use Cases

  • Generating and sending GST-compliant invoices from a SaaS billing system
  • Syncing invoice data to accounting software like Tally, Zoho Books, or QuickBooks
  • Building a self-serve client portal where customers can view and download invoices
invoicebillingaccountingGSTERPfinance

Validate or format this JSON

One click loads this exact example into the tool — no copy-paste needed. Format it, validate it, explore the tree, or generate TypeScript types instantly.

Frequently Asked Questions

The id is an internal database identifier (opaque, random). The invoiceNumber is a human-readable sequential label shown on the document (INV-2025-0501). Keep them separate so you can change numbering schemes without breaking references.

Include a taxBreakdown array with each component (CGST, SGST, IGST, CESS) listed separately with rate and amount. This matches GST invoice requirements under Indian law and makes the data useful for GSTR filing.

Store amounts as numbers in JSON, but ensure your backend uses a decimal/fixed-point type (not float) to avoid rounding errors. For very high-precision APIs, store as strings in paise (smallest currency unit).

Related JSON Examples