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

invoiceNumberstringrequiredHuman-readable sequential invoice number (e.g. INV-2025-0501)
statusstringrequiredInvoice state: draft, sent, viewed, paid, overdue, or void
issuerobjectrequiredBilling entity details including GSTIN and address
recipientobjectrequiredClient details for whom the invoice is raised
lineItemsarray<object>requiredIndividual service or product lines with quantity, price, and tax
taxBreakdownarray<object>optionalTax components (CGST, SGST, IGST) with rates and amounts
grandTotalnumberrequiredFinal amount due including all taxes
dueDatestring (ISO 8601)requiredPayment 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.
Extended
{
  "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

Paste the example above into JSONKit's tools to validate, minify, or explore the structure interactively.

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